MZ��������������������@������������������������������������������ �!�L�!This program cannot be run in DOS mode. $�������PE��L�6K�Y���������(���4�����������@����@��������������������������c������� ��������������������������`�P��������������������������������������������������������������������������������b���������������������������.text���l'������(�����������������`�P`.data�������@������,��������������@�`�.rdata������P������.��������������@�`@.bss��������P�����������������������`�.idata��P���`����� �������������@�0�.CRT����4����������4�������������@�0�.tls���� ����������6�������������@�0�/4����������������8�������������@�B/19�����8#�����$��<�������������@�B/31�����k������ ���`�������������@�B/45������"������$�����������������@�B/57���������0�������������������@�0B/70�����& ���@�������������������@�B/81�����g���P�������������������@�B/92���������p�������������������@�B�������������������������������������������������Í�&������'������1�f�=��@�MZ��SW������SW������SW�����<PW����th�PW���SW���tJ�$�����%���$���������SW���SW���SW��hdW�������=�A@�tm1���Í�&�����$����%���f��<�@�����@�PE������@�u��Qf��t?f���j����������]���������1������K����v��$�)@�����1���Ãyt�,���������1���������f���,��SW��D$�PW��D$PW��D$PW��$PW���PW��8PW��D$��$����,�f�U1�������WV�U�S�׃�|�0����$��)čD$����������@�����@�����@�����@�����@�����@�����@���̃���5�SW�������d����1��X�=(dW��9�����$����׃������SW���uޡ�SW�1ۃ�������SW����M���PW������SW�������������H;W���t�D$�����D$����$�����Ѓ�����$�-@��$dW�����SW��$�@���#������\dW���SW���@�����t[1���v���t,��t'��������� ~�˃���"D���v���'������u��v���'������ �����u��SW���SW���t�U��E�� ���E£�@@��PW��E��ƍ�����E��$�"�����E��=PW��D��1ۉ����$�}"���x�<$�"���M��������|$�$�L$�f"��9]�uɋE����u�������5PW�����LdW��PW���PW��D$�PW��D$�PW��$�"��� PW��PW���������PW���u �@"���PW��e�[^_]á�SW������������$����"����SW��������D$�W��$��W���!������SW�����������SW��������$�dW����a�����SW�����D$�W��$�W��!������1�������$�q!����������'��������SW�����������������������SW�����������v���������U�����A@���t<�$�P@��dW����������t�D$P@��$�dW���� �t �$�A@����$`@��I���Í�&����U��]Ð����������VS���(PW��\$ �t$$����1���t �t$�$�ҋV�����������SD�K@��[^Í�����������VS���\$ �$$P@�����D$������D$�@@��\$�$����4$�D$1P@��� ���$�D$� ���t$ ��[^�;���v�WVS���\$$�t$ �����lj$�c���<$�D$�����D$�D$8P@�����\$$�t$ ��[^_�\ ���t&��S ���t&���'����S��(�$� ���D$ZP@��D$�D$����D$�����D$����$�����l���D$�������D$�����D$�����D$�"@��D$uP@��$�b ���$�����([Ð�t&�VS���\$ ���p����$� ���$���~ ���������$�^ ���$�D$�����t$ ��[^�< ���t&��D$�'�����&����S���D$(�$�0����t�Ív���'������[�$�����u��[Ív���'����VS��$�t$8�D$~P@��D$�P@��D$�����D$�����$�P@�����4$������$�D$�D$X$@��D$�P@��e���\$�$�D$�����D$�����D$�!@��D$uP@��)���\$0��$[^�� ���t&���'����S���\$ �$�����0PW��,PW���t�D$,PW��$�����CD�@��CH0"@���[�� �������������UWVS���0PW��t$0�4$�PD�� ���D$�������D$�P@��$� ���$�D$�P@�� ���$���D$�P@�� ���l$�lj4$� ���|$�4$� ���\$0��[^_]�G��� �������������S���\$ �C8�����C<�����C@�����CD�����$�L ���C0�$�� ���D$�C,�$�� ���\$�$�D$����D$ @@�� ����[É���'����VS������D$h�P@��D$l�P@��D$p�P@��D$t�P@��D$x�����D$|Q@�DŽ$����Q@�DŽ$����Q@�DŽ$�����P@�DŽ$���������W �����H �����Q ���t$�\$�D$�D$=Q@��$HQ@�� ���T$|�D$��$�����D$ ����D$�Q@��T$@�T$h�D$R@��D$(R@��D$2R@��D$:R@��D$JR@��$�D$T�����D$PjQ@��D$L�Q@��D$H�Q@��D$D�Q@��D$<�Q@��T$8�D$4�Q@��D$0�Q@��D$,�Q@��D$(�Q@��D$$�Q@��.���Ĕ���[^Í�������'����UWVS���\$0�t$4�l$8�$� ���4$���D$�����{ ���|$�D$�$XR@��w ���ljD$�E �$�����E$�$�C���<$�s ���t$4�\$0��[^_]������&����WVS���\$$�|$(�t$ �$� ���<$�D$�����\$$�t$ ��[^_�����&����S���\$ �$����(PW��$PW���t�D$$PW��$�j���C$p@��Cl0@�ǃ��p@��CL�@��$�D$�R@�����$�D$ ����D$�����D$�R@�����$�D$$����D$�����D$�R@��k���$�D$(����D$�����D$�R@��K���$�D$4����D$�����D$�R@��+���$�D$,����D$�����D$�R@�����$�D$0����D$�����D$�R@������$�D$�@��D$�R@������$�D$ @��D$�R@������$�D$�@��D$�R@������[Í�����UWVS��\�|$t�D$�����\$�t$p�G(�$����4$����4$������\$�D$�4$�x���$�`���$���N���l$�t$�D$�$S@�����D$�����ÉD$�G(�$�M���$�����\[^_]Ð�t&��D$�D$�S����v��D$�@$�D$����VS��$�\$0�$$P@������ƋC<�D$�C8�4$�D$>S@��D$CS@��D$����C@�4$�D$OS@��D$����CD�4$�D$YS@��D$����4$����(PW��\$0�@L��$[^���v���'����VS��$�\$0�$$P@��[�����D$>S@��D$CS@��C<�4$�D$�C8�D$�C���D$OS@��4$�+���C@�D$YS@��4$����CD�4$�}���C<�D$�C8�$�D$�w���S@��u(�CD��t�$����(PW��\$0�@$��$[^���������$�P��������S���D$$�\$ �D$�(PW��$�Pl�S@��u�CD��t��[�f��C<�$�D$�C8�D$� ����[Ð�t&�� PW���t� PW�ÐS��(�$ PW������tW�$dS@�����������D$�����D$�@��D$����D$@@��D$�����\$�$�M���$ PW��D$���� PW���([Ít&���'�����PW���t�PW�ÐS��(�$PW������tW�$tS@�������A���D$�����D$ @��D$H����D$�@��D$P���\$�$����$PW��D$�%���PW���([Ít&���'����VS�Éփ��b����\$�D$�����D$�S@��$�������t�D$�����t$�@4�$�����$�����[^Ít&���'����VS��4�\$H�D$�P@��$�g���|$D��D$,����t�$�����$� ����4[^�f��$������T$,�D$�����D$�����D$�����$�T$�T$(�T$�����������D$,�@�D$�S@��D$����D$����D$����$�����D$�o���D$�������D$�����D$�����D$�"@��D$uP@��$�e���4$�����D$,�$�����$����T$(�������D$(�$��������D$1��u�����t&��D$1��e�����������$�A@��i����Ð�������������%DcW����%@cW����%<cW����%8cW����%4cW����%0cW����%,cW����%(cW����%$cW����% cW����%cW����%cW����%cW����%cW����%cW����%cW����%cW����%�cW����%�bW����%�bW����%�bW����%�bW����%�bW����%�bW����%�bW����%�bW����%�bW����%�bW����%�bW����%�bW����%�bW����%�bW����%�bW����%�bW����%�bW����%�bW����%�bW����%�bW����%�bW����%�bW����%�bW����%�bW����%�cW����%�cW����%�cW����%�cW����%|cW����%xcW����%tcW����%pcW����%lcW����%hcW����%dcW����%`cW����%\cW����%XcW����%TcW����%PcW����%LcW����%�cW����%�cW����%�cW����%�cW����%�cW����%�cW����%�cW����%�cW����%�cW����%�cW����%�cW����%�cW����%�cW����%�cW����%�cW����%�cW����%�cW����%�cW����%�cW����%�cW���f�f�f�f�S��(��SW��$�������D$������$����*����SW��$�Y���D$��SW��$�H���D$�D$�D$�D$�D$�D$0�$�$���ËD$�$�*����SW��D$�$����$�����SW��d����(��[Ð�D$0�$�xdW���([Í�&������'�������D$ �$�1�������������Ð����A@�����t��f��С�A@��P�@��A@���u���Ít&�S���P7@����t!��t��P7@���u��$�%@�������[�1���ÍC��P7@���u��ɍv���'�����4PW���t�Ð�t&��4PW����딐����%PdW�����������1�Ð������������UWVS��,��A@��D$�����D$����=N�@�t�У�A@���,[^_]ÍD$�$�dW����\$3\$��cW�����cW����dW��ƍD$�$� dW���3\$3\$1�1�1���N�@�t���Љ5�A@���A@���,[^_]Ð���D�O�@����t&�U���(� SW� ���E�U�$SW�����$�����QW���PW��,SW��E��PW���A@��E��A@��E��$dW����$@;W��4dW�����cW��D$ ���$�,dW������������������D$$��t��t����������t&��T$(�D$�D$ �T$�$� ������������������'����S���=�A@��D$$t ��A@������t��t;������[���0�W���0�W�t�f����t�Ѓ���0�W�u������[����D$(�D$����D$�D$ �$����f�1�Ð��������������<��SW��D$H�D$P���D$Xt)�ʋT$@�\$�\$ �T$�T$D�\$(�T$�T$�$���������<Ð�t&��D$��SW��V ��f���<�L;W��D$@�����w��h<W��@�\$ �@�\$�@�\$�@�L$�D$\;W��D$�pdW���@�$����1���<Ð������Ð�������������D$Ít&���'�����D$Ð����������S���pdW��D$����D$����\$$�$�<W���@�D$�L���D$ �\$�D$�pdW���@�$��������� �������������WVS��0�5�SW���������=�SW�1ۍW�� 9�w�zO9����������9�u�$����������������v�5�SW���މF������� ��G�F�D$�D$����D$��SW��D�$�<dW�����tm�D$(�P����t6��@��t.�D$ �SW��D$@����D$�D$�\$�$�8dW�����t��SW���0[^_�1��J�����dW��$�<W��D$������SW��D�D$�G�$�<W��D$�v����\$�$�<W��f�����������SW���tÍ�����U��WVS��L��SW�����8���@����������3 ����SW�����)čD$���SW���@W�-�@W�����������_����@W����������@W���������=�@W���@W����7����@W��C�����������@W�sI��S�{����@�����@�������@��E������ �u�����E���T$�$L=W��]����e�[^_]û�@W����@W�s됍�&�����s�;�����@�����@��������@W�����@�r١�SW�1ۅ� 믃�;�SW�}��<[��SW��4���������tލM��D$����L$�@�$�<dW�����������EȉD$��SW����D$�E؉D$�Ẻ$�8dW���덉���'������@W��3���1����K��������!�������@��� ����f����@��HЋE�)�ЉẺ������E�f����@������@W������������ׁ������>�H�)�ЉẺ��i����Ë�ŋE�)��ljẺ��N����>뮋 �SW��A�D$�A�@�$�<W��D$������D$�$=W����������U��S���]���=����wK=���������=���������D$�����$��������������t-�$������c����'����=����t)=���������=����tW��SW���t=�]�]������t&��D$�����$����p�����������t��$����и�����]�����v���'�����D$�����$����0����u��D$����$�������~����=����j����D$�����$���������tX���I����$������|���f��D$����$��������a�����&�����D$����$�������A�����&�����D$����$�������!����������UWVS���$�SW���cW���SW����-0dW��=�dW���t(�v���$�Ճ����ׅ�u��t�C�4$�Ћ[��u��$�SW��dW�����[^_]Ív���SW���uÍ�����S���D$����$����������tB�D$ �$�SW���D$$�C��cW���SW�����SW��$�SW��C�dW�1�����[ø���������'����S����SW��\$ ��u��1�[Ð��&�����$�SW���cW���SW�����t�9�u �N�9�t(�B��u��$�SW��dW�����1�[Ð��&�����H�J�$�&���$�SW��dW����ыB��SW����ڍt&�S���D$$������r��u ��SW��������������[Ð��SW����������SW���uޡ�SW���t�X�$����ۉ�u���SW�������SW������$�SW���cW���랉���'������SW���t��SW����������[Ív��$�SW��dW����������Y����t&������c���������@<�8PE��t1��f�f�x����Ív��D$f�8MZt1��f���&������'����VS�T$�\$R<�r�B���Dt1ɐ�P9�wP9�r����(9�u�1�[^Ív�UWVS���|$0�<$�i��1҃�wf�=��@�MZt����[^_]Ð���@��F�����t�<�@����@���@��h�\��t�1�������(9�t&�D$����|$�$������uރ��ډ�[^_]�f���1�[��^_]Ít&�1�f�=��@�MZt���VS���@��������tJ�<�@��\$����@����@�����@��r�D��t"1ɍ������P9�rP9�r����(9�u�1ɉ�[^Ð����[^É���'����1�f�=��@�MZt�Ð���@��F�����t�<�@����@�Ð�t&�V1�f�=��@�MZS�L$t ��[^Ð��&�������@�������t�<�@�����@����@��Z�D��t�1�f��@' t��t������(9�u�1���[^�f��Ɖ�[^É���'����1�f�=��@�MZt��ø��@����������@�EЉ�É���'����1�f�=��@�MZt�f�VS���@��d�����tJ�<�@��\$����@����@�����@��r�D��t 1ɍ������P9�rP9�r����(9�u�1�[^��f��@$[^�������t&�WV1�f�=��@�MZS�\$t��[^_Í��������@��������t�<�@�����@�����@���t��y�Q���Tt��J9�rJ9�r����(9�u�1���[^_���@�u��t&������H��u�P��tׅ��p[����@���^_Ð��������QP=����L$r������ �-���=���w�)�� �XYÐ��%�dW����%�dW����%�dW����%�dW����%�dW����%�dW����%�dW����%�dW����%�dW����%�dW����%�dW����%�dW����%|dW����%tdW����%ldW����%ddW����%`dW����%XdW����%TdW����%HdW����%DdW���f�f�f�f�f�f���SW�Ív���'�����D$��SW�Ð����U������ ����������D$�����D$����D$�S@��D$�S@��D$�S@��$�����D$�����D$�����$� ����Ð�����$�A@�������Ð���������������$�A@�������Ð������������U��]����������������7@�@7@��������� 7@��������������������������������������������������������������������������������������������������������������������������������������������������������� ��������������������������������S@��@������S@�p@��������������S@��@��S@��S@�p@��������������S@��@������S@������������������S@��@��������������������������S@�P@�������������������������T@�P@�������������������������T@� "@������������������������� T@��@�������������������������T@�P@�������������������������T@�P@�������������������������T@�`@�������������������������!T@��@������S@� @�������������@T@����������������d7@���������������������6@��6@�N�@���D������������������������������������libgcj-16.dll�_Jv_RegisterClasses���org.gtk.Demo�color��gtk-application-prefer-dark-theme�You activated action: "%s"�response�_Cancel�_Open�Open File�app�/application_demo/menus.ui�appmenu�menubar�Peter Mattis�Spencer Kimball�Josh MacDonald�and many more...�Owen Taylor�Tony Gale�Matthias Clasen <mclasen@redhat.com>�3.22.12����%s, Running against GTK+ %d.%d.%d�About GTK+ Code Demos�title�gtk3-demo�logo-icon-name�documenters�authors��Program to demonstrate GTK+ functions.�comments�http://www.gtk.org�website�license-type�(C) 1997-2013 The GTK+ Team�copyright�version�GTK+ Code Demos�program-name��You activated radio action: "%s". Current value: %s�/application_demo/application.ui�message�infobar�status�buffer�menutool�toolmenu�clicked_cb�update_statusbar�mark_set_callback��Cursor at row %d column %d - %d chars in document�(ii)�window-size�maximized�fullscreen�DemoApplication�DemoApplicationWindow�application�Error loading file: "%s"�flags�org.gtk.Demo2�application-id�titlebar�false�shape�s�'oval'�bold�about�file1�logo�new�open�save�save-as�quit�dark���������������������������GVariant�����������l�����(���������������������������������� ������������ ��� ������������������������������������������������������"���"���#���%���%���%���&���(���*���,���.���0���2���2���3���3���3���3���3���4���5���5���8���8���8���8���9���:���;���<���<���>���@���A���B���D���E���F���F���F���H���H���H���J���J���L���N���O���O���P���Q���T���U���U���X���X���Y���Y���\���\���\���\���]���]���]���^���`���b���c���f���g���g���g���g���g���h���h���h���h���i���i���j���k���l���m���n���o���o���s���t���w���y���{���|���}���}���~�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������L�"����l�� �v�x��;+��Xǣ�V���;+���v�X+���O�����8�����O���v��O���\��C8������\���v��]��zd��s�$a����zd���v��d��gj��_'�@����gj���v��j���o���������o���v��o��DŽ��y���DŽ���L�Ԅ�����O:������ �v��������s�X$������� �v�����}���R�(����}����v���������`S�x��������v�����X���������X����v�p���G�����r�����G����v�X��������}����������v���������| �������v�0��������3�������v���j���y���j��v�x�.�L������.��L�D�H��#�s���H� �v�X������',������v������(������� �v���a5��4�����a5��v�p5�;���s����;��L�;�;�LK������;��v�0;��@��[[x����@��v��@�pw��Ҿi����pw��v��w�||�2��X����||� �L��|��|���:�����|��L��|��}�+ʳ������}��v��}����(������v������7��������v�0��(��r�6�����(���v�@��)���p�����)�� �v�8�������ڸ�������v�Ь�=��V��'���=���v�H��ȶ���x|����ȶ��L�̶�Զ��w?����Զ��v���������2��������v��������� �������v������-��������v���lR���u�����lR��v��R��W��$������W� �v��W�XY��K�H����XY��v�hY�.Z����1����.Z��L�<Z�HZ�P9�����HZ��v�`Z�d�}������d��v�0d�j�0�����j� �v�(j�{��������{��v�({�����.���������v����g��/��`���g���v�x�������/<�������v����ǵ���#q����ǵ��v�ص�`���� �����`���v�x��y���(����y�� �v��������N@N��������v�������yI�{������ �v�������n��:������ �v�������I*�������v��������������v����$��������$��v��$�2��_���2��v�02��>��4H�����>� �v��>��b�qO�u����b� �v��b����@��������� �v�ȕ�c��M�D����c���v�p��w��������w���v��������8匼�������L�������I�[������� �v��������aҼ����� �L�������V�������v�����H� ��������v� �� ��+N���� � �v�� ����qr�������v���',��؍����',� �v�8,�!:��������!:� �v�0:�G�n�`����G��v�G��J�� �������J��v��J��K�2�������K��v��K��T����]s����T��v��T�Z����9V���Z��v�Z�@��̖����@���v�P�����;�,�r�������v�З� ��Z��3���� ���L��� ��'seYh��� ���v�0���Q��;������Q� �v��R����ȁ������ �L������b�u��������v� ��g���Kp����g�� �v�p�����6�,������ �v����p��3Xt����p���v��������)I ,�������v����X���.?�����X���v�`��D��|�1����D���v�X���-��KN�����-� �v�.��;�� �������;��v�<��A�D=�������A��v��A��H�|,D6����H��v��H��S�CEC=����S��v��S�c^�F�Z���c^��v�p^��a��8������a� �v��a����G�A����� �v������JUi������� �v�������I�������v�0���Xn q�������L������F�$������v���m2��������m2��v��2�7��������7��v� 7��H��������H��v��H��d�Nx������d��v��d����W^������ �v�(��'���Ӫ}����'���v�0�����/�������v���1���@<���1�� �v�@��p��Yw����p�� �L�|����������������L���������ͨ�������v��������26'������� �v�����& ��E� �����& ��v�& ��& �r�N������& ��v��& ��+ ��R<d����+ � �v��+ ��? �c5p�����? � �L��? ��? ��������? � �v��? ��W �I�������W ��v��W �Ws �������Ws � �v�hs �� �y\:����� ��L� � �$� �4}����$� ��v�8� �m� �l!�����m� ��L�|� ��� �ȢBr����� ��v��� �� �d6�S���� ��v� �f2 ��c����f2 � �v�x2 ��O ��V����O � �v��O ��h ��������h ��v��h ��y �D�֢����y � �v��y ��� �j�S������ ��v�Ȫ �� ����F}���� ��v�� �� �vd^���� � �v�(� ��� ���������� ��L��� ��� ��L�m����� ��v��� �B� ��l����B� ��v�P� ��� ��-�x����� ��v��� �+I��9�����+I��v�@I��Q�z? D�����Q��v��Q��W��x�p�����W��L�X� X���,���� X��v�8X��]���rz����]� �v��]��i���y�����i� �v��j����g��������v��������`�P��������v�������||������� �v�����K���E������v���c�k�(9����c��L�l�p� O����p��L�x�|�������|��L�����n�������v���/����;���/���v�H������|1"������ �v�������ڲ ������� �v���������rw��������v����� ��hK������ ��v� � �=� ���S���=� ��v�P� ��� �9�cy����� ��v��� �@���b{����@���v�H�����^�&������v���%�92������%��v�(%��,�ǢW�����,��v��,�G9�h������G9��v�P9��J���%����J��v��J�.p��d������.p��v�@p��u���������u��v��u�w{��?������w{� �v��{�Գ��_����Գ��v�������?�����v��)&���$����)&��v�@&�+������+� �v� +��:�2ĉ����:� �v��:�C���8C���C� �v�C��H�h$'�����H� �v��H����$����� �v����N��IxP�����N���v�`����������������v����6���ex����6���v�H�����e&������v���t7�v�������t7��v��7�=�O{����=��L�$=�4=��+���4=��v�H=�jI��Y����jI��v�xI�AY�=�����AY� �v�PY���Ե��������L������56���������v�������o�)����� �v� �����r��������v�������<⇼�������L���������o��������L��������Gڔ������ �v����t ���zCE���t � �v�� ��K��B������K��v�L�|W��Ck̼���|W� �L��W��W��u�������W��v��W��Z���zCE����Z� �v�[�d� �9r����d� �v�d��e�� ������e��L��e��e��+������e��v��e�4��ua�����4�� �v�@��2R���c����2R��L�<R�`R�ۑ�����`R��v�pR�K����ip����K���L�X��\��������\���v�h��4���L����4���L�<�����U�E��������v��������W���������v����b���)t ����b���v�x������{Mg������� �v�������brick.png�����������PNG ��� IHDR�������T�����*����sBIT|d���� pHYs���������tEXtSoftware�www.inkscape.org��<��0IDATx��i�Օ�� ��'� ���FW��<F�n۩U��v@��c�ݚhwX���$�#� 51���8D[�8'�m� F����������=��U�:����8�Z��{��뾻�L��-�J_EDV���Ók0�<\��O�J�H��H_4t|�*��g��Uuy��DZ�j�V�jD�4`�X�X`pR�JE"-�_+�]Dd���M��"�SAY]"�k�7�n���֍Dږ��Edp;�ⷀ�T���y�w�{V��a��� �D"mC�{tY��t#�o�5�^F5F��~$ҧh���z�s9����&"���U���*���M5�d�~����{�� �a)�z�T��"�����@<����=� (�N/�U��ʋDڂJ]D������isW`��y>|�by�H[P��E�3"r��,����ؚ�Ģ��3d��'`f�2#����������Jw��� <)"�;�h&�Г����|�TUWT,3i� ]Dv�~�m��稾f@S��(��z��\[��H��(ң��S>AD�f��n]-�u��mυ�p��.�Pf$�V��&AmvR,�?x6�����(��S��� �E"mGh����}_������o�*HV�7����EɊDږPC�yߖ���Q�=ৎ����X� �?�@V$�ք���� J�PU�Ω{����Q^�������:�Y�H�d4��:�B�6�t�-��S�/�%��[Ug���tEz��=�q�GO�(����&{�/z��"`/U}�`�H�#�1t "��ȤĽ4�+<侔U���0��7�.SU�ܼ�"����ߨ�c�F"��*"��o=��쿁CӼ�Dd�E�ܣU�ΆE�a1�6��P�("r�0��ބۀSU���:�H�A� ��������7{U�C��Uuy��FDn�⼹X����7R�H����Y� |ZU{ �E�����ԙ���Dd]���Ȕ�e�o0#_�h]"�f"";�R���'����$�8�v�������X�g��uE�Tuz���u�o������w�����!i6"2�;P6����ö�g��!ɽӀ]X��T�`H�c��� L�z�sU�'<K$�!9�9UU����e�>�p�b��� `��cTuNcԍD"Ep�)����0�~M�T�c$iw{�v��jผ�cp-��|X�wt�;;H�:�g�Q�EU]�H]"�NFUW��`��.VS�{D�q���T�����N��ć�UDd!+ �!����!"�����p�?�bnr�QՅ-S�$� �6Ş}�!��Kh�2v�xY�t\�P���?�����5�J��F�/|��v�^�1�=��Y��'':�����oI��`���k���=>E^��z�����W=��m�f����������W��%�sd�^�+���(� ���_�����|�� �:�X�I.�1�Ȣ��/�6�hg��zw� ��e�.�<e~�E�)�����}j������2/��w�W�;~�Q���<��� _�(�,�Z������Q��|m��}Y��+p^� ��T�a��!�?�!���y��^�d:_Jt���(�>n�/�C=�� �k0��Vx���� #�y�U��.}9�c�� �Q�s����aJ���=u<�Oz�t08�d�����1�4��� 0�.��Ӯ�d�q�&���hC�e5R�w�� o��=���=����=���!� #����m1Ti�7�c!0'�Km��76�б!�݁�</��E���G�����]��N6�±�E�,,L��իf}`w�b��""���.�V������x�������,W�0`tR�y�׃�"r��^WRN�OM��Y�xLm?���X�H�+��,��A�{�0e1�� "�)�� ˴��ب�W�p �hk`�B�^�Vԓ��j�7�)s�p0#�>�]��fU����둷q�9�,���s�8$���������yw��ѷ����B㺯�y��o'�W$�p���� ��h��rU���!�']~."Uf��#�(��x� ��ۯ�}N[�:�\:Գ���%�88@^H�m���'_S��[�f� $Y�99只�?k��Go��K�� 9�W���U};/��8IK����LCN"� ��н�x����`^\��2r�i>$��^p�m�B�������wϹ�7����O��.�-:�PcK���A�G]+�v$�zpT#iw�����{�?���V�NU0%�ʲ���|�� S��Nιmnj�C }��(g��@۫���l���v"!=��<C�AE�T�p���I����"�7l�ehY��{��Ț�zA(;O������4���Ԋd��x��v��Z�؏�x���-h H�*v�-��,C���L#��ޗ�lBXt�,���cDd����|'NC�#)��k5o�W(o���VF߹���$q��#/�P���}~H�"�E�Q�Xx�4����>�Z�{ ���EC� <�q5�<g�^A!;�e��[\����.UKU���\� �}���N��̆����4b[n�j����zM����:)���l���QD^>YW6��@DV�"��1 svʢc�虆."���|��wT,w��̧7����S������>d�7l��#�C�lҍ����q\/��Dd���z�9 =�w��8V�%�N��k�_���9�Q��m��.�!fZdg��jW��L����d*�k}f�����.�l����ؿƉ(k�>GU��zdѱ=��Џh��y�AUon���e�eMC-��1ر�,&'#�\�>(�;!o*S߮�Ⱥ��z`{�{$�����=�wM�:��]s�1�R�$7'� �f1�r�Dd�������P�GD�_��d�҅%ݸ:@����_�zY,I�0����!�N�"��D� `��#���oz�hv��PU��4����4��ׯT�ˀ����Mh�MG�`�z+��j�.�S��Ÿ���z\�f��ȫ�Ҧ��`:�~�/�E�a����X`�z�az;S{gpT25h ����=�����HU}�I����vnC?�tﲛ�_��B�h����d�B6���vl*IhoWG�֦��߆��?̴�;��̺���H7�n=�zKɚ��ko���l�,����\�����>Ta�+GU�'V$.�{.�Psl�6}���"���]�����h[:�ПvRճ<O#��O�ȯ�2Tu&��,甏Oz�N i3����~Ӷ��V��x�Q���;r�-���)j�R�h����h�tx���X�v�\L�¨��vm�u�C#"#���.���d�V_O��1�;Uui�g�L���F�j�����+�_[�d����N��E�Q�����e��SMLz]���#�OU�����s���t���i~����� �l��M�$U�GU_j���[��bM�QٷI�x���b�|��S܇P�~�,�f���>/��+R>���ӫ��f�|��K�ȡ���� �w�R���i��z�6U�#"��}.(p��\�EuM�7����h����NNQV��k"r3�g?�*"�%a�zH^���f�����=a�Q�fg�ShD��O��iW�ѹ��*`p�����vC8���qO?���"� �i,��&�qo��39�ܒ�0��9�>�}����SXl������u�<&&Ӎz��ll]�u('�]�e�:�\L*P�Dlk�<���]�Ц�Zg�[%���2�6�{y2�MWأt� ���w%p8����3G���ç;����OMN���]IG{������ |���m���Z ����U�s�`��ݶG�d�����P�Y�������>�.�d;��{^�:7�Q�����&$kT��c����"�\������i�u�HDƊ�ɵM�*p0j����}��(�����|��LT�4�?�S��t��"�q`I0��Fy����{�P�7iA��J ��M���H�˳�&�m�285o�c��w�LJX��^ -�h�^#o4ى}�&���s}��\ӣ�wrF���]F��dI�i�6O���+ x�_��X>C�u��Ҁ���o�����q^�x[!�B�sWf���3�yz"c}�X?|�Y�v�mq�Y̩VJ������f�(�I��8���i�(��!�Dd+l륈S���k�zA�������!�����Z���p'p��qM�&dm�=��L|�ݟ��οT�����-R�l����RN������9@��$]��2��kN��s��y� ϝdy������%����bg�T���k��"r�%(xTU���txئ`��U5��U$�W�M��C���'�����eQ#�� ��T������6�.ˈ$�S���>�V�~$��x����j��Fc�!�M\xK���HG�5G��|��\8�0��xó�#)��lu=�&[$ґ �Uui�H"�ZF�&g�}� ���5��#�:A=zO%���?����>�ኘ��v�.t^���Y�vN$�)b<�������)����/"��$��1g�Bz���G"{���"���T��;�o�X��ݰ�E���a�fμh�Ȫ@)C���>{;�U���R�{Z�H$����@� 8�4����G"+)ݣ�9�-������8&�_;�˔�ѻQ�07�V�d�(2>y$�q*3t��D���7���fr p��N����T6t�%XdK�Z`��4����٪:���D"K�zR霝\�8&�p�Z��H$�AC ��3���Ӱ��e��^�b�ݠ-���t M1�5(�)l;�D,�/�E���.x$�O� ��a; ���ڴ�7�B��� �����T9�H$��،-�.B>����IEND�B`���(uuay)gnome-fs-directory.png�������$������GdkP��$��������0���0�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������K���������������������������������������������������������������z������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������^�����������������������������������������������������������������������������������������������������������������������������˼���������������������������������������������������������tvf��$������������������������������������������������������������������������������������������������������������������������������������������������������������������}���}�����������x�)*$��������$��������������������������������������������������������������������������������������������������������������������������|���|���z���y���y���z���y���y���x���w���w���v���v���u���������;<2����������������������������������������������������������������������������������������_���������������������������������ü���u���s���q���q���p���p���p���o���o���n���m���m���l���l�y{g�����������������������������������������������������������������������������������t�|n�Z\U������������������������������������������j�}�i�{~h�y|f�x{e�z}g�z}f�x{e�y{f�x{d�x{e�wyc�uyc�or]�oq]�lnZ�oqa�rtc�tvd�vwg�vwg�vwe�vwe�vwg�y{k�xyi�xyh�vwe�y{j�{|l�{|k�|~m�~p�}~m���q�|~m���x�\^O�����������������������������������������twa�ps^�or^�nq\�mo[�nq]�mo[�mo[�mp\�mp[�lo[�knZ�Z[J���������������������������������������������������������������������������������������������������������������������������������������������ikW�fiV�egU�cfS�ceS�dgT�ceS�ceS�cfS�ceS�beS�RUD�%&�������������������������������������������������������������������������������������������������vvn����������������������������������������bdR�_bP�^`O�]`N�]_N�^`O�]`N�]_N�]_N�]_N�]_N�AB6�gj]�����������������������������������������������������������������������������������������������������������������������������������������wxn�_aO�]_N�[^M�[]L�Z]L�[^M�Z\L�Z]L�Y[J�Y\K�?A4�BB;����������ʷ��ɴ��ɳ��dz��ï��®��®������������������������������������������������������������������t�������������������������������������MNE�������������������������������������������������������ɳ��Ƴ��Ƴ��Ű�����������������������������������������������������������������������������}q�������������������������������������34-���~��������������������������������������������������Ƴ��ů��ï��®���������������������������������������������������������������������������������|}p������������������������������������������������������������������������������������������ű��İ��ï��®�������������������������������������������������������������������������������������yzm����������������������������������������������κ����̸��̷��˷��ʶ��ɵ��ȳ��Dz��Ʋ��ű��İ��¯��®�����������������������������������������������������������������������������������������wxk������������������������������������������κ����̷��̶��˶��ʵ��ɴ��ȳ��Dz��Ų��ı��ð��¯�������������������������������������������������������������������������������������������������vxk��������������������������������������������̷��ʶ��˵��ʵ��ȴ��Dz��Ʊ��Ű��İ��ï��®�����������������������������������������������������������������������������������������������������uvi������������������������������������������˶��ʵ��ɴ��ɴ��ȳ��Dz��Ʊ��Ű��İ��ï��®���������������������������������������������������������������������������������������������������������rsh������������������������������������������ɴ��ȳ��dz��Dz��Ʊ��Ű��į��ï��®�����������������������������������������������������������������������������������������������������������������pqf������������������������������������������Ȳ��DZ��Ʊ��Ű��į��í��¬�������������������������������������������������������������������������������������������������������������������������mob������������������������������������������Ű��İ��Į��í��¬���������������������������������������������������������������������������������������������������������������������������������lna���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������jl_���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ik_���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������hj^������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������hj]������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������hj]�������� ������������������� �������������������������������������������������������������������������������������������������������������������������������������������������~���}���~�hj]����������� ������������� ������������������������������������������������������������������������������������������������������������������������������������������������~���}���}���|�hj]�������������� ������� ��������������������������������������������������������������������������������������������������������������������������������������������~���}���{���{���z���{�fh\�������������� �������������!��������������������������������������������������������������������������������������������������������������������������������}���|���z���y���y���y���{�egZ��������&�������������������(���������������������������������������������������������������������������������������������������������������������~���~���|���{���y���x���x���x���y���z�ceY��������+�������������������)�������������������������������������������������������������������������������������������������������������~���}���}���|���z���y���w���w���w���x���y���{�bdX��������/���!����������������)���������������������������������������������������������������������������������������������������������~���}���}���|���z���y���x���w���w���w���y���z���{�bdW��������/��� ����������������&�����������������������������������������������������������������������������������������������������~���}���|���|���{���z���y���x���x���y���y���z���|���|�bdX��������*������������� ��������������{}m�{}m�x{k�yzj�xzj�vxj�vvh�suh�suf�qsf�qse�pqc�oqc�oqc�lna�lm`�kl_�jk^�ij]�hj]�hi]�hi]�fh[�fg\�dfZ�egZ�dfZ�dfY�dfZ�dfY�ceY�ceY�ceX�ceX�bdX�bdX�ceY�()$��������%���������������� ������q���������������������������������������������������������������������������������������������������������������������������������������������������������������y��������� ����������������������������$���(���'���+���+���,���.���+���,���.���.���,���-���-���0���/���0���/���2���1���/���1���0���2���/���/���1���2���/���1���0���0���-���)���"��������������� ���������������� �������������������������������������������������������������������������������������������������������������������������������������������������������������� ��������������������������������������������� ��� ��� ������ ������ ������ ������ ������ ��������������� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������(uuay)gnome-gimp.png��R �������PNG ��� IHDR���0���0���W�����gAMA���1�_�� IDATx��Yk�]�u��>�{�9wgll�c�#��<l 6�!��U�$}�j�#Q鿤�CUß����H�i$���-��@m9�²���9�af<߹�s�=g?V�}����qK$"�5[��;���}k}k���>���ǯ��_Q�ܹ�u�7���u�p,�+�����k,��� !�]��?����w � �@����u ܴry����=>�ّ/$~IDhx���m��~�G�ȱ���=�fR.���w��'{ˡC"_"�#a������cv*�KD�v� �܂��VK�6��Wzt���l�0��[�;��.� 9��<ckGn����l�R;y��介~�� &��/��x�ԙ��������~w��:��$\"�:�An��(�E��FW�~���#AcR)ĭ�4���\���OKs{&��R�@*=tӪ����W�|B$�B�D��p-���xgp�7z�K�~����RH���� ��Ѣ�rW\OBy������Ǔ4+���+ݟ�<w� ��?���d�����ͣ�6��w��㈽RiGJ �4�?��z3���k����%I�tŲ�5�+�e�*�{ϲ���_��8�lIp����x��~E7��5#;��}�w!�$�r���K�*���d���� 0;K�3�@_�[�=���f?,w�u���4�]�T��.&�+D�Ut���鏮��7����-_����I� ��TRi������怡�Y����,�����&�/V��}�a��Yk� �yd��ЎBD��)@�PPt��"h"�V����έ�|`ǝ�*�ǴցTZ���!�n=~��+���i�%�eNf):6"��{oy�/��Y&Z �V�LJ��L����2S������ҳ���̊�\�w�������wW�_d0�0�ɍ�5C)�4��X��'~�Α�)�/�|�*�+�h�0C�7�熆���wF⸭]ρ08��4�PR�Bq�[[��w7�8�J�i�)װ)1�a6H�)�a03�ac`��6Fhc��'H�����Llw�/��ڝ7�m���W�v>�����~��x�WQ,��Z`�o�l��R�Z�2������-���v� h��JC ����g@0`�����O�\�!�8 �3���v3�X����0�zE_s]�^fv�y��\�o�����<����ЦM��z������������^��0�����o���-[��~ c8���ȤD�IdR!��,����j�9���ic�����_[6#)�f���ݼaÆ�m�!!Dqbb�������?=�ȶK�F|������/b``�{����ޏ5kǐJ��������ǖ-[��ƪ��P*�V��R1�Z[�J�z3�Wp�d������T�M��d����ldS*wx===��m۶G��ǽf�Io��&�q<��?����ժx�Wh~~�v��i���^{m?�8��رc�ꫯBJ�V��������R R*(��h�֒Ʊ��='���20�I.gN;��H�C��y��Qy�B�v��r'����'���=�Z v�څF��3'�`��F��m<��3�����={�e��&�$A;I�I�J(��{��f0$��G�����V (�mb� 0V:��@��rhrr�B�����,���_�ѣGP,š���s�@�>���q߃�a�֭\����SO��h��n�R��f}��uՙ��0�l��#��٩T*����-�u�M0�8O*ܝ����=== fF�eh�Z(�J����(9�ϝ���9������3'0�n�~�i(���RJT�8{�}�Π�^���&���V�fX &��fg�seג�3����|߇��Ð�(B�p �h�Pڇ����o���}+�ex~����ԅSH�Jk�Zm������I�ښ��U��@B�f��U�̈��_�Lk��q��a��y��a!mU'mhـ=�`6`f,��? V�l��$�j ApY)�r�ԇs1��r�����o�}�c}�ɞ�i4˲w��aE{{zz�0Q.G��b��C�ZI�T�P��y>��=��er�JkLL]�T����I���q�3���|����fnqT��u�x��+���ֺZ�T� �(ð�Ja I\C����Y��V AA��lI��Hc뚶�p�������2z��� �y5@�4�<5}�n�ב˦p���M��?q���x�^���R{dy��Z����I�ΜG&SH�rk@+���Ą�nN�F�s�qnb��}3�V�����ZZk�R�����v;[�P!`�i���f��[�����`f��9;;{x���H����IS�iFJ*��Ci��T��J0;W���<.^Z@�d��-��(�B�������/�St�z��@��n/�5̘jg�<�9덎�����]�` �ۼq��L��|�,�H�6��Ն�B�T,�T*��7BO�����=��"��Sg�r0��}��S�K0H3��z�jS��U������^���<o���O^�ti�f�� �""����� �;Bl��)�JS�^k�1���"Ja�r�r���Q�P`����<yAW*����B����jy�os����)�B��s�Ev�+�?�3gΨ4M�;q��w����8��#G�$K!�.�==��c��3�0V����<g�����8��8���I�f�z�Ռ[�֦#��J��IU��qu����n��M�=���F����I=z����ٳg��Z��922��^z��%@ދt (����@?��`�0����@ y���V����$���Ό��x� ܹ^x����A)�֗_~�������aO���kk�B�c}"x�������"0��z���������Jό�2��ʲa�d��|h�Tڲ^j��T*�e `xx��}������ޑ����b�Zc��sF��� .�*$3�]ߋ-��z����L��V�5^�T�:����?��tJK���ς��.v����t�N�������喈��������իW����y����C�����D#����eu�*�Q��eW<Ȯ��a��A����v_�l ɥJ��6�nkj�H�E����"��B7�uߙ��j�lc���%uM\��"�u�����kL��Z����������� �U��דd�w���V2u�:���i�6n:�|:��8��V�D;'1}EB0��ǬtE�(>uWu��~NLW�̧������0i��OR�����IEND�B`���(uuay)entry_buffer.cj������/* Entry/Entry Buffer * * GtkEntryBuffer provides the text content in a GtkEntry. * Applications can provide their own buffer implementation, * e.g. to provide secure handling for passwords in memory. */ #include <glib/gi18n.h> #include <gtk/gtk.h> GtkWidget * do_entry_buffer (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *vbox; GtkWidget *label; GtkWidget *entry; GtkEntryBuffer *buffer; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Entry Buffer"); gtk_window_set_resizable (GTK_WINDOW (window), FALSE); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), "Entries share a buffer. Typing in one is reflected in the other."); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); /* Create a buffer */ buffer = gtk_entry_buffer_new (NULL, 0); /* Create our first entry */ entry = gtk_entry_new_with_buffer (buffer); gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, FALSE, 0); /* Create the second entry */ entry = gtk_entry_new_with_buffer (buffer); gtk_entry_set_visibility (GTK_ENTRY (entry), FALSE); gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, FALSE, 0); g_object_unref (buffer); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)col_resize_cursor.png���������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��t��t�fx���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3�����IDATX��]hSg�'I�&��ڤ���`��N�sS�u�(T�G�j���SAhŀL��bލ]�)l`)�)�2�7ވ�_A�إR/*�ӭK�����䜴�9�.�AL?�����sq������>�}�ִ����[V�����?~��aO�7���);�YXX����g�29�f>22�EӴ�B���%+��177�D�ѩ�ׯ��Sixx�M���u�L�������E���D$��z�j`_vu������F�FGG.^�(�����e�\��E�\�"�߿WUu����p,��t��ݍ۷o����xl�,�h$ۭiMMM�G���������VN�s,��T1���oرcG�������Z�i�X��Ը5�����BI������244�lhh�joo�d)��6J�eee��,�}��1[,K$����k��cV���&7MӒ��gB��*�x��g�Z:::�^��'�0ꚛ��@0�-K�www�߷o_���LɡC�lSSS�N~~>%%%?~��6X^�$q��m���P��� ���4��ʢ���'ϝ;�K " ����������UTT؞>}J<�������t^$!��055�i��l6������2��ݫݸq���ӧb��VM�~���������~$IB�$I��撛��R������ϧ;&In����1a��_[�n-��99�/_�hzz:8::/..@:$Iz�Ȭ�p8Dww����\KK�W@�L-����hoo�699�n������Gii)�gU�s�<H?;nݺe�{�̙3?ܼy��H�H�x����Ͳ,+>4�nwz�N�BՕ�0����9�N���o����jjj�>v��S�g���@iUUU�,�����r������.�g�%�5�)���)���EQb����e�$��hS�!�9�2==���re4��>vf�.�SUU�>�/�rEQbG�]����ϟO��I��3� l�F�jkk�0E�_�<bۉ'.�B�����۰ؘQ(V��iZD�u �����k@��˘/�����B�H���[����(��~4���"��{!�<����p��������$�Ɗ�֥^fH�q 6222�(J`ppp���xJ�#��`GG����\����&�F*Rg�Y���U��K�G�m%�5��?��d�fYz������IEND�B`���(uuay)sw_resize_cursor.png�����Y�������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��t��t�fx���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3����6IDATX���K�W�?'o�_�έ�:[Ӛ!k(��+;(���\ŕ����f������`7c�j0���e����� �^�� m�Qf�tu�4v�,y_s�.��uf�پp�������<�}^�_�ui��C���n�`C�mll�@0�6�+�wqq�-�0~�B���܄w���ݦD"Ѻ���q<�dnn�'N�>|xtuu�ۊ������`bjjꨮ볆aH]�_���s@9`� B�~Ehrr�w�Rj~~�;��Q ضLD"�ú�G������Zu���l:��\�v�3��� L�Tj *@*�����^�ohbbb�n�� !����R���q��q(�Ţ�ak===������V{�d���f2�t,//�z�*uuu�p8���n?X��۷�n�{ �ɼ���f������p��i����ߺ��Ry��v�B)�iy����ښ ����K�. �����*N�:�hii�.�l9{��9�������Ȉ�F������O�>�lw�L�i#�͛7�|���<x�����j�����5�����|aa!���ܷ��4 ���k{(ԍ7�4M�����R�?^�B!����ͧ���_� � ��4M�ܺu��|��|xd�m������������a�Ş������[z����N�=�f�1<<��v�jkk��X,�0��y���4����b�X���[�V���<��o2/9���;w��|�����G�]9v옃"� ���.\.����������M��+X���|�������hOMMM�V� ��ڱ a�ل��>3::�uUUU%p� ��S���$���>�����kRʢ�"��f�jyy�s��{���w=�{p:������Vk��t.���%���ZA!��R�y���$�0�; 7e��������q)�F'�Z�A>��AGGB�}��/RYY����u�-��\��rH) �˥.\��s�K555a�$WA-��###�D�EI�W&����O�:r�qK ���$�v����@x�<ֶ�J�r� ��@i` x����o�������������%s����О�J�����IEND�B`���(uuay)search_entry2.c�������/* Entry/Delayed Search Entry * * GtkSearchEntry sets up GtkEntries ready for search. Search entries * have their "changed" signal delayed and should be used * when the searched operation is slow such as loads of entries * to search, or online searches. */ #include <gtk/gtk.h> static void search_changed_cb (GtkSearchEntry *entry, GtkLabel *result_label) { const char *text; text = gtk_entry_get_text (GTK_ENTRY (entry)); g_message ("search changed: %s", text); gtk_label_set_text (result_label, text ? text : ""); } static void changed_cb (GtkEditable *editable) { const char *text; text = gtk_entry_get_text (GTK_ENTRY (editable)); g_message ("changed: %s", text); } static gboolean window_key_press_event_cb (GtkWidget *widget, GdkEvent *event, GtkSearchBar *bar) { return gtk_search_bar_handle_event (bar, event); } static void search_changed (GtkSearchEntry *entry, GtkLabel *label) { gtk_label_set_text (label, "search-changed"); } static void next_match (GtkSearchEntry *entry, GtkLabel *label) { gtk_label_set_text (label, "next-match"); } static void previous_match (GtkSearchEntry *entry, GtkLabel *label) { gtk_label_set_text (label, "previous-match"); } static void stop_search (GtkSearchEntry *entry, GtkLabel *label) { gtk_label_set_text (label, "stop-search"); } GtkWidget * do_search_entry2 (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *vbox; GtkWidget *hbox; GtkWidget *label; GtkWidget *entry; GtkWidget *container; GtkWidget *searchbar; GtkWidget *button; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "Delayed Search Entry"); gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (do_widget)); gtk_window_set_resizable (GTK_WINDOW (window), TRUE); gtk_widget_set_size_request (window, 200, -1); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_container_set_border_width (GTK_CONTAINER (vbox), 0); entry = gtk_search_entry_new (); container = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 10); gtk_widget_set_halign (container, GTK_ALIGN_CENTER); gtk_box_pack_start (GTK_BOX (container), entry, FALSE, FALSE, 0); searchbar = gtk_search_bar_new (); gtk_search_bar_connect_entry (GTK_SEARCH_BAR (searchbar), GTK_ENTRY (entry)); gtk_search_bar_set_show_close_button (GTK_SEARCH_BAR (searchbar), FALSE); gtk_container_add (GTK_CONTAINER (searchbar), container); gtk_box_pack_start (GTK_BOX (vbox), searchbar, FALSE, FALSE, 0); /* Hook the search bar to key presses */ g_signal_connect (window, "key-press-event", G_CALLBACK (window_key_press_event_cb), searchbar); /* Help */ label = gtk_label_new ("Start Typing to search"); gtk_box_pack_start (GTK_BOX (vbox), label, TRUE, TRUE, 0); /* Toggle button */ button = gtk_toggle_button_new_with_label ("Search"); g_object_bind_property (button, "active", searchbar, "search-mode-enabled", G_BINDING_BIDIRECTIONAL); gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0); /* Result */ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 10); gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox), 0); label = gtk_label_new ("Result:"); gtk_label_set_xalign (GTK_LABEL (label), 0.0); gtk_widget_set_margin_start (label, 6); gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0); label = gtk_label_new (""); gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0); g_signal_connect (entry, "search-changed", G_CALLBACK (search_changed_cb), label); g_signal_connect (entry, "changed", G_CALLBACK (changed_cb), label); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 10); gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox), 0); label = gtk_label_new ("Signal:"); gtk_label_set_xalign (GTK_LABEL (label), 0.0); gtk_widget_set_margin_start (label, 6); gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0); label = gtk_label_new (""); gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0); g_signal_connect (entry, "search-changed", G_CALLBACK (search_changed), label); g_signal_connect (entry, "next-match", G_CALLBACK (next_match), label); g_signal_connect (entry, "previous-match", G_CALLBACK (previous_match), label); g_signal_connect (entry, "stop-search", G_CALLBACK (stop_search), label); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)spinbutton/��6���transparent.c����������/* Overlay/Transparency * * Use transparent background on GdkWindows to create a shadow effect on a GtkOverlay widget. */ #include <gtk/gtk.h> #define SHADOW_OFFSET_X 7 #define SHADOW_OFFSET_Y 7 #define SHADOW_RADIUS 5 static void draw_shadow_box (cairo_t *cr, GdkRectangle rect, double radius, double transparency) { cairo_pattern_t *pattern; double x0, x1, x2, x3; double y0, y1, y2, y3; x0 = rect.x; x1 = rect.x + radius; x2 = rect.x + rect.width - radius; x3 = rect.x + rect.width; y0 = rect.y; y1 = rect.y + radius; y2 = rect.y + rect.height - radius; y3 = rect.y + rect.height; /* Fill non-border part */ cairo_set_source_rgba (cr, 0, 0, 0, transparency); cairo_rectangle (cr, x1, y1, x2 - x1, y2 - y1); cairo_fill (cr); /* Upper border */ pattern = cairo_pattern_create_linear (0, y0, 0, y1); cairo_pattern_add_color_stop_rgba (pattern, 0.0, 0.0, 0, 0, 0.0); cairo_pattern_add_color_stop_rgba (pattern, 1.0, 0.0, 0, 0, transparency); cairo_set_source (cr, pattern); cairo_pattern_destroy (pattern); cairo_rectangle (cr, x1, y0, x2 - x1, y1 - y0); cairo_fill (cr); /* Bottom border */ pattern = cairo_pattern_create_linear (0, y2, 0, y3); cairo_pattern_add_color_stop_rgba (pattern, 0.0, 0.0, 0, 0, transparency); cairo_pattern_add_color_stop_rgba (pattern, 1.0, 0.0, 0, 0, 0.0); cairo_set_source (cr, pattern); cairo_pattern_destroy (pattern); cairo_rectangle (cr, x1, y2, x2 - x1, y3 - y2); cairo_fill (cr); /* Left border */ pattern = cairo_pattern_create_linear (x0, 0, x1, 0); cairo_pattern_add_color_stop_rgba (pattern, 0.0, 0.0, 0, 0, 0.0); cairo_pattern_add_color_stop_rgba (pattern, 1.0, 0.0, 0, 0, transparency); cairo_set_source (cr, pattern); cairo_pattern_destroy (pattern); cairo_rectangle (cr, x0, y1, x1 - x0, y2 - y1); cairo_fill (cr); /* Right border */ pattern = cairo_pattern_create_linear (x2, 0, x3, 0); cairo_pattern_add_color_stop_rgba (pattern, 0.0, 0.0, 0, 0, transparency); cairo_pattern_add_color_stop_rgba (pattern, 1.0, 0.0, 0, 0, 0.0); cairo_set_source (cr, pattern); cairo_pattern_destroy (pattern); cairo_rectangle (cr, x2, y1, x3 - x2, y2 - y1); cairo_fill (cr); /* NW corner */ pattern = cairo_pattern_create_radial (x1, y1, 0, x1, y1, radius); cairo_pattern_add_color_stop_rgba (pattern, 0.0, 0.0, 0, 0, transparency); cairo_pattern_add_color_stop_rgba (pattern, 1.0, 0.0, 0, 0, 0.0); cairo_set_source (cr, pattern); cairo_pattern_destroy (pattern); cairo_rectangle (cr, x0, y0, x1 - x0, y1 - y0); cairo_fill (cr); /* NE corner */ pattern = cairo_pattern_create_radial (x2, y1, 0, x2, y1, radius); cairo_pattern_add_color_stop_rgba (pattern, 0.0, 0.0, 0, 0, transparency); cairo_pattern_add_color_stop_rgba (pattern, 1.0, 0.0, 0, 0, 0.0); cairo_set_source (cr, pattern); cairo_pattern_destroy (pattern); cairo_rectangle (cr, x2, y0, x3 - x2, y1 - y0); cairo_fill (cr); /* SW corner */ pattern = cairo_pattern_create_radial (x1, y2, 0, x1, y2, radius); cairo_pattern_add_color_stop_rgba (pattern, 0.0, 0.0, 0, 0, transparency); cairo_pattern_add_color_stop_rgba (pattern, 1.0, 0.0, 0, 0, 0.0); cairo_set_source (cr, pattern); cairo_pattern_destroy (pattern); cairo_rectangle (cr, x0, y2, x1 - x0, y3 - y2); cairo_fill (cr); /* SE corner */ pattern = cairo_pattern_create_radial (x2, y2, 0, x2, y2, radius); cairo_pattern_add_color_stop_rgba (pattern, 0.0, 0.0, 0, 0, transparency); cairo_pattern_add_color_stop_rgba (pattern, 1.0, 0.0, 0, 0, 0.0); cairo_set_source (cr, pattern); cairo_pattern_destroy (pattern); cairo_rectangle (cr, x2, y2, x3 - x2, y3 - y2); cairo_fill (cr); } static gboolean draw_callback (GtkWidget *widget, cairo_t *cr, gpointer data) { GdkRectangle rect; gtk_widget_get_allocation (widget, &rect); rect.x += SHADOW_OFFSET_X; rect.y += SHADOW_OFFSET_Y; rect.width -= SHADOW_OFFSET_X; rect.height -= SHADOW_OFFSET_Y; draw_shadow_box (cr, rect, SHADOW_RADIUS, 0.4); return FALSE; } GtkWidget * do_transparent (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *view; GtkWidget *sw; GtkWidget *overlay; GtkWidget *entry; GtkCssProvider *provider; gchar *css; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_default_size (GTK_WINDOW (window), 450, 450); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_window_set_title (GTK_WINDOW (window), "Transparency"); gtk_container_set_border_width (GTK_CONTAINER (window), 0); view = gtk_text_view_new (); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (sw), view); overlay = gtk_overlay_new (); gtk_container_add (GTK_CONTAINER (overlay), sw); gtk_container_add (GTK_CONTAINER (window), overlay); entry = gtk_entry_new (); provider = gtk_css_provider_new (); css = g_strdup_printf ("* { border-width: 0px %dpx %dpx 0px; }", SHADOW_OFFSET_X, SHADOW_OFFSET_Y); gtk_css_provider_load_from_data (provider, css, -1, NULL); g_free (css); gtk_style_context_add_provider (gtk_widget_get_style_context (entry), GTK_STYLE_PROVIDER (provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); g_signal_connect (entry, "draw", G_CALLBACK (draw_callback), NULL); gtk_overlay_add_overlay (GTK_OVERLAY (overlay), entry); gtk_widget_set_halign (entry, GTK_ALIGN_CENTER); gtk_widget_set_valign (entry, GTK_ALIGN_START); gtk_widget_show_all (overlay); } if (!gtk_widget_get_visible (window)) gtk_widget_show (window); else gtk_widget_destroy (window); return window; } ��(uuay)appmenu.ui��������������<?xml version="1.0" encoding="UTF-8"?> <interface><!-- interface-requires gtk+ 3.10 --><menu id="appmenu"><section><item><attribute name="label" translatable="yes">About</attribute><attribute name="action">app.about</attribute></item></section><section><item><attribute name="label" translatable="yes">_Quit</attribute><attribute name="action">app.quit</attribute><attribute name="accel"><Primary>q</attribute></item></section></menu></interface> ��(uuay)gnu-keys.png��������������PNG ��� IHDR���0���0���W�����gAMA�����a���IDATx��kt]e��゙[rr�-M�&i�4Io�Ŧ�������C;D�gPQ��T�����Tg�ule����P�^Ҧ��-msk��~9I�m�}y�|��)��̗��:��~�y��y��}�.q�K\����2��C^��F�d"弋�K��t᪵�U�rL+�ͷR�u����-�Y<e�o0�o��v��`/pp��]�����d��ŗ\5�|d��%���������ϙ�n�H�#Y�m��k��F��������}߯z���C��>VV^�z��U+W� ���(=ݽ�o� `�L-(`Fy9&N����aYV�왳�v��mۏ���:�/L�/z�e��f�������B01o2�jy��_���8��P��ϱ�u�p� H)B0��qm_���[���� ȿV�;�@V(\{��^��fr(6���IG{��������x�3��c�K�ս��( ��*H$�|��)�T�4h�?�]Ȃ����e��n�e�������Y9�kj�x�4J��b���d+W^y%��լ���hB�� ����������L ��[�|a�������Il2F~~�����+���&O�G��@Uө�����|�A<����_��� 8n�S�O���n$�I1��U�fV^~�<`wn~�� �t�4'8���͞-�Z���XYy���ށ�T������������{߽ۿ��_��q����ǎR\RȬ�J� I�l�[�8y�%e��^�UQ�5�M�c��_���EVvϕx�K"�����y��n��/﮻�������iK�,�55�4�k���>+cY��=�\mOw�0� ��x�m��O~���/��P��Be``�}��r��!�ʊ)-����3�b��l�я�[��i%�h�F*�$�Lc�u�T��c��P���⒊;>u{���)j0��%yyB���` �p㉸�퇿]WWWw�B�ǁQ`���r�Jn���'���7j�B4E�4L��o߫4�k����p$���/��w�]�������M�P5�b$�q����|�t�b�嗱��k�Ҳr=�elt�_=�"Ge������G7t��M�0M�������'��������߽������;~�����rt]G"��I�A�4¡0����hhl���zF�F��3:��$ccc$IF�c�8z��9�z�G �B�B&�M�رc<��.����馛)/+�W|��|f9�pEQP��<��.�����ӿx��b&��8�Ҋ�����o�R�����inm&77J��j�-_Ƽy�9s�4gΝ"���JY8R"}�����q�ʦa�&�j`A4M���lذ�k�\��k ���ԾZ��olDUUt]�����_�}�}RL7^L@�G>��2EUPu������������.+�ZJ�Bz{z���of$6JEE%�� �;�.�'���˪��g�H�C� �"Y�z�@0H__/C�A�=ơC�عs'K�,a�c�ض͑#u��}�ct�L%O�xɼ��@QQQov(�����G�&]]]�]P�e�1����H��SPX�+��0Lښ�hhlॗv�Hũ���c�H�.���iii�q,��*QU������Ξ�ս�����Gb��Y�A��x|;w�$;7�p(��*���斪�y��������ϝx��d���0� �x�������_b�f��/���H_��y�_�|��'�<������9��Bcǎ�8y�����3˙;g�P�s �&���pl��}��G3���RK� �v�5�V���>3�tZ͆O~��7^/f�(�����=����>.\���w��Ià�����a&M��/}TM#;+���#���?EQQ��*̟;�˗�z�ΎN�o�d*Iii�2~n����}���.**g�d�����h���+HOjo.��a���� 7\�rY���"��������&6>���55<��.<ץ���-?��p��7QZV�i���o=B��:��=�=�X��u�,���K��p��UܱAR{`?���w���E 'OP6�ן�"#�QtM!12C���ʛK��c�o}����wc�)��� �R0u ���#<���p�����'�YZ�]�t�������|{E����g�+xt�&�8��c;6��ф@�5B�0�L��nN�:������Ar,M"1F*�&�J��.�x �H���L�2e��[o��JY��� �����:�P,������n��0������_�-[H��L)��i�D�?Q���3����z(BA�8��`j�ES�R0���!z{�H��I#`�ɤQ�FBz(�B$����̚e5wϚ5+0!w�#�l��s�a��0�� �[�}�P8�P�m�h ;���֭?&�eJ�D�x"��������JUU�;~����;n<E =�m�H$�kc��kC'm��4��kc���V��lX���3�����������a�ض���� }�Ν���y�xZ�J��[�9Tw��������̀��ioo������A �_���[eS3�=_���m!T<W�**���"�]�����@vvvQeu�-+V�ЅH)I�� �� ���]$R Z�[i8���6��3 �#���e\�b��*�A���$���$�I,��4L`p��tM14�t=��� ��n�tCÕ.RJEA7 2V=`�H�1<8x �H��t�M����V��g� ��|��u\ҙ4�D|�4y��c����4���V2�P��*2V�v��rܬ�v��n��aߧ���D�F�Q�q���(�B:����]�Fc�k���m�� g;l�^?6oLē� M8�7k�,EH�/|�AH�븨Bœ�kc�-�Q]өYZC$������>�%�'�4 U�?��>D"Y�y�����_���?���?��,k�f:���ōm[��+��k&����������pm���TTT,�]=[(������x3���SE�_�8R����88���I����*��"@����+�_�F��������W\��=�������|v4��������,\W M�� ��-�郵ug��s�rm��7d m��ݽ횪�B<��r-�/�<!��p�7�]�t�\|O�j v�����>�P@(hB;u� �5?=�x'u���yj�S_���kO�Y��pݡ:+>��6�M����>�����۾d��;O5�;��{}#�6//o�<�x�m��Mӌ��)||����?�UUU���kg�ho#�8ؙ�e�N�q�3�Z�\/� g_~K�� ��Tϩ����ryA�T[Qe�������ύ�&�e,�7\d�����>��Y��''UTTT�3�L'��l�����K}�A���C�R�J%A ����k�B�����g[���ԌT�����4��h���z��o>Jh�B���kV�����jUSÙL��� DUU��;�?v����T�aYv��ȡc=gN7=��=�'��y�iT]��m-m���V3�K����h���q�����Cow��L&0���N��C��D���z���.L��\��Τ���/�y���۽����e˗�r�sM��5���.b��$ ��Dc�x}�k+V.�Ng{��cC#4�y/x'�Q�V��]���ʫ��YZZꍌ Y{��Q~��WR����na�������s����w����kwD"��&��w?�K\����{���;�$�誂����IEND�B`���(uuay)list_store.c�*������/* Tree View/List Store * * The GtkListStore is used to store data in list form, to be used * later on by a GtkTreeView to display it. This demo builds a * simple GtkListStore and displays it. * */ #include <gtk/gtk.h> static GtkWidget *window = NULL; static GtkTreeModel *model = NULL; static guint timeout = 0; typedef struct { const gboolean fixed; const guint number; const gchar *severity; const gchar *description; } Bug; enum { COLUMN_FIXED, COLUMN_NUMBER, COLUMN_SEVERITY, COLUMN_DESCRIPTION, COLUMN_PULSE, COLUMN_ICON, COLUMN_ACTIVE, COLUMN_SENSITIVE, NUM_COLUMNS }; static Bug data[] = { { FALSE, 60482, "Normal", "scrollable notebooks and hidden tabs" }, { FALSE, 60620, "Critical", "gdk_window_clear_area (gdkwindow-win32.c) is not thread-safe" }, { FALSE, 50214, "Major", "Xft support does not clean up correctly" }, { TRUE, 52877, "Major", "GtkFileSelection needs a refresh method. " }, { FALSE, 56070, "Normal", "Can't click button after setting in sensitive" }, { TRUE, 56355, "Normal", "GtkLabel - Not all changes propagate correctly" }, { FALSE, 50055, "Normal", "Rework width/height computations for TreeView" }, { FALSE, 58278, "Normal", "gtk_dialog_set_response_sensitive () doesn't work" }, { FALSE, 55767, "Normal", "Getters for all setters" }, { FALSE, 56925, "Normal", "Gtkcalender size" }, { FALSE, 56221, "Normal", "Selectable label needs right-click copy menu" }, { TRUE, 50939, "Normal", "Add shift clicking to GtkTextView" }, { FALSE, 6112, "Enhancement","netscape-like collapsable toolbars" }, { FALSE, 1, "Normal", "First bug :=)" }, }; static gboolean spinner_timeout (gpointer data) { GtkTreeIter iter; guint pulse; if (model == NULL) return G_SOURCE_REMOVE; gtk_tree_model_get_iter_first (model, &iter); gtk_tree_model_get (model, &iter, COLUMN_PULSE, &pulse, -1); if (pulse == G_MAXUINT) pulse = 0; else pulse++; gtk_list_store_set (GTK_LIST_STORE (model), &iter, COLUMN_PULSE, pulse, COLUMN_ACTIVE, TRUE, -1); return G_SOURCE_CONTINUE; } static GtkTreeModel * create_model (void) { gint i = 0; GtkListStore *store; GtkTreeIter iter; /* create list store */ store = gtk_list_store_new (NUM_COLUMNS, G_TYPE_BOOLEAN, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN); /* add data to the list store */ for (i = 0; i < G_N_ELEMENTS (data); i++) { gchar *icon_name; gboolean sensitive; if (i == 1 || i == 3) icon_name = "battery-caution-charging-symbolic"; else icon_name = NULL; if (i == 3) sensitive = FALSE; else sensitive = TRUE; gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, COLUMN_FIXED, data[i].fixed, COLUMN_NUMBER, data[i].number, COLUMN_SEVERITY, data[i].severity, COLUMN_DESCRIPTION, data[i].description, COLUMN_PULSE, 0, COLUMN_ICON, icon_name, COLUMN_ACTIVE, FALSE, COLUMN_SENSITIVE, sensitive, -1); } return GTK_TREE_MODEL (store); } static void fixed_toggled (GtkCellRendererToggle *cell, gchar *path_str, gpointer data) { GtkTreeModel *model = (GtkTreeModel *)data; GtkTreeIter iter; GtkTreePath *path = gtk_tree_path_new_from_string (path_str); gboolean fixed; /* get toggled iter */ gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (model, &iter, COLUMN_FIXED, &fixed, -1); /* do something with the value */ fixed ^= 1; /* set new value */ gtk_list_store_set (GTK_LIST_STORE (model), &iter, COLUMN_FIXED, fixed, -1); /* clean up */ gtk_tree_path_free (path); } static void add_columns (GtkTreeView *treeview) { GtkCellRenderer *renderer; GtkTreeViewColumn *column; GtkTreeModel *model = gtk_tree_view_get_model (treeview); /* column for fixed toggles */ renderer = gtk_cell_renderer_toggle_new (); g_signal_connect (renderer, "toggled", G_CALLBACK (fixed_toggled), model); column = gtk_tree_view_column_new_with_attributes ("Fixed?", renderer, "active", COLUMN_FIXED, NULL); /* set this column to a fixed sizing (of 50 pixels) */ gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_fixed_width (GTK_TREE_VIEW_COLUMN (column), 50); gtk_tree_view_append_column (treeview, column); /* column for bug numbers */ renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes ("Bug number", renderer, "text", COLUMN_NUMBER, NULL); gtk_tree_view_column_set_sort_column_id (column, COLUMN_NUMBER); gtk_tree_view_append_column (treeview, column); /* column for severities */ renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes ("Severity", renderer, "text", COLUMN_SEVERITY, NULL); gtk_tree_view_column_set_sort_column_id (column, COLUMN_SEVERITY); gtk_tree_view_append_column (treeview, column); /* column for description */ renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes ("Description", renderer, "text", COLUMN_DESCRIPTION, NULL); gtk_tree_view_column_set_sort_column_id (column, COLUMN_DESCRIPTION); gtk_tree_view_append_column (treeview, column); /* column for spinner */ renderer = gtk_cell_renderer_spinner_new (); column = gtk_tree_view_column_new_with_attributes ("Spinning", renderer, "pulse", COLUMN_PULSE, "active", COLUMN_ACTIVE, NULL); gtk_tree_view_column_set_sort_column_id (column, COLUMN_PULSE); gtk_tree_view_append_column (treeview, column); /* column for symbolic icon */ renderer = gtk_cell_renderer_pixbuf_new (); column = gtk_tree_view_column_new_with_attributes ("Symbolic icon", renderer, "icon-name", COLUMN_ICON, "sensitive", COLUMN_SENSITIVE, NULL); gtk_tree_view_column_set_sort_column_id (column, COLUMN_ICON); gtk_tree_view_append_column (treeview, column); } static gboolean window_closed (GtkWidget *widget, GdkEvent *event, gpointer user_data) { model = NULL; window = NULL; if (timeout != 0) { g_source_remove (timeout); timeout = 0; } return FALSE; } GtkWidget * do_list_store (GtkWidget *do_widget) { if (!window) { GtkWidget *vbox; GtkWidget *label; GtkWidget *sw; GtkWidget *treeview; /* create window, etc */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "List Store"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 8); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8); gtk_container_add (GTK_CONTAINER (window), vbox); label = gtk_label_new ("This is the bug list (note: not based on real data, it would be nice to have a nice ODBC interface to bugzilla or so, though)."); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_box_pack_start (GTK_BOX (vbox), sw, TRUE, TRUE, 0); /* create tree model */ model = create_model (); /* create tree view */ treeview = gtk_tree_view_new_with_model (model); gtk_tree_view_set_search_column (GTK_TREE_VIEW (treeview), COLUMN_DESCRIPTION); g_object_unref (model); gtk_container_add (GTK_CONTAINER (sw), treeview); /* add columns to the tree view */ add_columns (GTK_TREE_VIEW (treeview)); /* finish & show */ gtk_window_set_default_size (GTK_WINDOW (window), 280, 250); g_signal_connect (window, "delete-event", G_CALLBACK (window_closed), NULL); } if (!gtk_widget_get_visible (window)) { gtk_widget_show_all (window); if (timeout == 0) { /* FIXME this should use the animation-duration instead */ timeout = g_timeout_add (80, spinner_timeout, NULL); } } else { gtk_widget_destroy (window); window = NULL; if (timeout != 0) { g_source_remove (timeout); timeout = 0; } } return window; } ��(uuay)ew_resize_cursor.png������������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��t��t�fx���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3�����IDATX��]hSg�'I�&��ڤ���`��N�sS�u�(T�G�j���SAhŀL��bލ]�)l`)�)�2�7ވ�_A�إR/*�ӭK�����䜴�9�.�AL?�����sq������>�}�ִ����[V�����?~��aO�7���);�YXX����g�29�f>22�EӴ�B���%+��177�D�ѩ�ׯ��Sixx�M���u�L�������E���D$��z�j`_vu������F�FGG.^�(�����e�\��E�\�"�߿WUu����p,��t��ݍ۷o����xl�,�h$ۭiMMM�G���������VN�s,��T1���oرcG�������Z�i�X��Ը5�����BI������244�lhh�joo�d)��6J�eee��,�}��1[,K$����k��cV���&7MӒ��gB��*�x��g�Z:::�^��'�0ꚛ��@0�-K�www�߷o_���LɡC�lSSS�N~~>%%%?~��6X^�$q��m���P��� ���4��ʢ���'ϝ;�K " ����������UTT؞>}J<�������t^$!��055�i��l6������2��ݫݸq���ӧb��VM�~���������~$IB�$I��撛��R������ϧ;&In����1a��_[�n-��99�/_�hzz:8::/..@:$Iz�Ȭ�p8Dww����\KK�W@�L-����hoo�699�n������Gii)�gU�s�<H?;nݺe�{�̙3?ܼy��H�H�x����Ͳ,+>4�nwz�N�BՕ�0����9�N���o����jjj�>v��S�g���@iUUU�,�����r������.�g�%�5�)���)���EQb����e�$��hS�!�9�2==���re4��>vf�.�SUU�>�/�rEQbG�]����ϟO��I��3� l�F�jkk�0E�_�<bۉ'.�B�����۰ؘQ(V��iZD�u �����k@��˘/�����B�H���[����(��~4���"��{!�<����p��������$�Ɗ�֥^fH�q 6222�(J`ppp���xJ�#��`GG����\����&�F*Rg�Y���U��K�G�m%�5��?��d�fYz������IEND�B`���(uuay)copy_cursor.png��-�������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��n��n��^���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3���� IDATX��OhW�?ov�͘1&K�a\����.bi.�Cr�"x�ۃЃPAK=饅���EO-XZj��R�*�`� ����AR7Ү�ۮ����o��z�l��5�ٶ?���7������^��gE�>c�/a>ð�a�����-..~z��!P����e�""�NLL����U&�a����������h|�֭/�o��.��!O:����$I�={�H>���{�J�X�]�v�Ν;��ٳr�������tǜA�jE �(�d``@���_N�>-�lV�٬?~\DD�0�����@�u��c�SSSё#G$�"qG�֢��|>/�tZl�۶���W�;&I�$�.]zXwN`��?z��<xP�(��}�]�z5����x�����Z��{��Q.��p��}}}d2*� ���d�Y��4�r۶�}_������,�P"���$����R)r��7o����J�;�mc�� " �b�!X���8�V�q��M������\�r˲ضm�bq-�V�����֭[_z|�T*-?OOO/k9wG�0�;"���oN�8�1�ZXXXu�5����̙3�%��fH|` HV�pdd��ڵk��jկ���j6??o._�|cÆ ����>OW�+�[)al��\��K_Ӣ]���߁� �e�P=w�5;;�ɓ'�������+9[i��5�ǣ6��A1P,�CkM&��Z��u�N����Y��%{��a��`�R�M�6aY@Y���1����ՎT*��eYoi����yʶm������Q��|�h4�8�?��+��q��>,a.[�Һ�7����P�R9@5 �ܹ������<����{�.I��T3��8��h�RrwB����,/^l(E.�cxx�z�N�X�Z���BD��j�5����Z��zAk�`YV����#ׯ_�B��X����������y� 6A�1I�o�R���$I�]k����Imiž�J�'�gffԩS�����T*)�� C���p]���m�ugh6��E'~V_�o�Q, 4�����IEND�B`���(uuay)floppybuddy.gif����`������GIF89aP�F������� !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~��ぁ������������������������������������������������������������������������������������������������������������������������=v{����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������!�NETSCAPE2.0��!� ���,����L�>��� H����*\Ȱ�Ç#J�H��ŋ3j�ȱ�Ǐ C�I�dA�(S�\�r�Ʌ�N�jI��̗ c��JϞ@�����H����2hJ�2�rD)@*0�.����O�[�vDٕ@��Xsjj��l�6$��٫w��5��mW�)���9-��͢�{�,ҁEg�u8��� �5|��b������S�C�J%�x3�|C�f���۸Ic��qh��q�}vm�B�N��������-�8�(U/g��ys���_�9�q�ٵ�^?�9y��ï�>�d�����|p���_M�6�~����ϕ�v�(�ބ`�.�}� W!�*I����І�9g�N���������AȚkhq���8S�)��5�H�g�f>�$JB�H��L:���m�h:��QIe��!I��6 $�0JY$dH�X��'u���m���Ah긑�*�9�|j��B��昉a�рx&�b�����e1�aJ�Yzi��v�i���J����:*�����A*=�ҫ���������Ꚕ���,B�k$��K�O9Ūl}<�WL%�*Q�M��i�.W�~H���S;R������v������ն;�m_2xn~)�.�����kn�2zk0����.9,o�[.��f���w���#�!� ���,����L�>��� H����*\Ȱ�Ç#J�H��ŋ3j�ȱ�Ǐ C�I�dA�(S�\�r�Ʌ�N�jI��̗ c��JϞ@�����&EE4eS�F����@�TL}Z� 4�T�I�b͚��P� �v�X�(��Dː�յj7�)֩V�U��{�n���*��4�Y��R{���5�*ʹ��� �,��h�q �|PJ�|��]�x'�ФsW��Z���_S����ޙ�'[�}�u�[[E�%��č_O�|9s��ϥ�.P����as����s���SW�������o8y����g�uh�`� ��w�%�V�"h r�Y�]��ɗփ��v�N��(�����ǁ��d���`]&��L%�Db�'�\~ rуx�vڌ�Ԉҍ&�x!��A�j�Fd�("��6��DP�8%JU�����q�E[�V`�`)����eH_����q�y&[k�x'���Q�G�)"}y~�`1Uh!�;)Zބ�N�N�f꒤�v*i�����I+¤Ҩ��hꥄ�����Vk����j��*t뎵�����*+Od!U�_��D�l�v���5�`u]�6�k؎4�����-�M����f�ҷ�yfb�������nW�J5�Ӣ������c��$�K�~���n���7���G,�T�!��This GIF file was assembled by CDavis with GIF Construction Set from: Alchemy Mindworks Inc. P.O. Box 500 Beeton, Ontario L0G 1A0 CANADA. �!� ���,����L�>��� H����*\Ȱ�Ç#J�H��ŋ3j�ȱ�Ǐ C�I�dA�(S�\�r�Ʌ�N�jI��̗ c��JϞ@�����H����2hJ�2�rD)@*0�.����O�[�vDٕ@��Xsjj��l�6$��٫w��5��mW�)���9-��͢�{�,ҁEg�u8��� �5|��b������S�C�J%�x3�|C�f���۸Ic��qh��q�}vm�B�N��������-�8�(U/g��ys���_�9�q�ٵ�^?�9y��ï�>�d�����|p���_M�6�~����ϕ�v�(�ބ`�.�}� W!�*I����І�9g�N���������AȚkhq���8S�)��5�H�g�f>�$JB�H��L:���m�h:��QIe��!I��6 $�0JY$dH�X��'u���m���Ah긑�*�9�|j��B��昉a�рx&�b�����e1�aJ�Yzi��v�i���J����:*�����A*=�ҫ���������Ꚕ���,B�k$��K�O9Ūl}<�WL%�*Q�M��i�.W�~H���S;R������v������ն;�m_2xn~)�.�����kn�2zk0����.9,o�[.��f���w���#�!� ���,����L�>��� H����*\Ȱ�Ç#J�H��ŋ3j�ȱ�Ǐ C�I�dA�(S�\�r�Ʌ�N�jI��̗ c��JϞ@�����&EE4eS�F����@�TL}Z� 4�T�I�b͚��P� �v�X�(��Dː�յj7�)֩V�U��{�n���*��4�Y��R{���5�*ʹ��� �,��h�q �|PJ�|��]�x'�ФsW��Z���_S����ޙ�'[�}�u�[[E�%��č_O�|9s��ϥ�.P����as����s���SW�������o8y����g�uh�`� ��w�%�V�"h r�Y�]��ɗփ��v�N��(�����ǁ��d���`]&��L%�Db�'�\~ rуx�vڌ�Ԉҍ&�x!��A�j�Fd�("��6��DP�8%JU�����q�E[�V`�`)����eH_����q�y&[k�x'���Q�G�)"}y~�`1Uh!�;)Zބ�N�N�f꒤�v*i�����I+¤Ҩ��hꥄ�����Vk����j��*t뎵�����*+Od!U�_��D�l�v���5�`u]�6�k؎4�����-�M����f�ҷ�yfb�������nW�J5�Ӣ������c��$�K�~���n���7���G,�T�!�This space for rent...�!� ���,����L�>��� H����*\Ȱ�Ç#J�H��ŋ3j�ȱ�Ǐ C�I�dA�(S�\�r�Ʌ�N�jI��̗ c��JϞ@�����H����2hJ�2�rD)@*0�.����O�[�vDٕ@��Xsjj��l�6$��٫w��5��mW�)���9-��͢�{�,ҁEg�u8��� �5|��b������S�C�J%�x3�|C�f���۸Ic��qh��q�}vm�B�N��������-�8�(U/g��ys���_�9�q�ٵ�^?�9y��ï�>�d�����|p���_M�6�~����ϕ�v�(�ބ`�.�}� W!�*I����І�9g�N���������AȚkhq���8S�)��5�H�g�f>�$JB�H��L:���m�h:��QIe��!I��6 $�0JY$dH�X��'u���m���Ah긑�*�9�|j��B��昉a�рx&�b�����e1�aJ�Yzi��v�i���J����:*�����A*=�ҫ���������Ꚕ���,B�k$��K�O9Ūl}<�WL%�*Q�M��i�.W�~H���S;R������v������ն;�m_2xn~)�.�����kn�2zk0����.9,o�[.��f���w���#�!� ���,����L�>��� H����*\Ȱ�Ç#J�H��ŋ3j�ȱ�Ǐ C�I�dA�(S�\�r�Ʌ�N�jI��̗ c��JϞ@�����&EE4eS�F����@�TL}Z� 4�T�I�b͚��P� �v�X�(��Dː�յj7�)֩V�U��{�n���*��4�Y��R{���5�*ʹ��� �,��h�q �|PJ�|��]�x'�ФsW��Z���_S����ޙ�'[�}�u�[[E�%��č_O�|9s��ϥ�.P����as����s���SW�������o8y����g�uh�`� ��w�%�V�"h r�Y�]��ɗփ��v�N��(�����ǁ��d���`]&��L%�Db�'�\~ rуx�vڌ�Ԉҍ&�x!��A�j�Fd�("��6��DP�8%JU�����q�E[�V`�`)����eH_����q�y&[k�x'���Q�G�)"}y~�`1Uh!�;)Zބ�N�N�f꒤�v*i�����I+¤Ҩ��hꥄ�����Vk����j��*t뎵�����*+Od!U�_��D�l�v���5�`u]�6�k؎4�����-�M����f�ҷ�yfb�������nW�J5�Ӣ������c��$�K�~���n���7���G,�T�!��This GIF file was assembled with GIF Construction Set from: Alchemy Mindworks Inc. P.O. Box 500 Beeton, Ontario L0G 1A0 CANADA. This comment block will not appear in files created with a registered version of GIF Construction Set�;��(uuay)css_multiplebgs.c�������������/* Theming/Multiple Backgrounds * * Gtk themes are written using CSS. Every widget is build of multiple items * that you can style very similarly to a regular website. * */ #include <gtk/gtk.h> static void show_parsing_error (GtkCssProvider *provider, GtkCssSection *section, const GError *error, GtkTextBuffer *buffer) { GtkTextIter start, end; const char *tag_name; gtk_text_buffer_get_iter_at_line_index (buffer, &start, gtk_css_section_get_start_line (section), gtk_css_section_get_start_position (section)); gtk_text_buffer_get_iter_at_line_index (buffer, &end, gtk_css_section_get_end_line (section), gtk_css_section_get_end_position (section)); if (g_error_matches (error, GTK_CSS_PROVIDER_ERROR, GTK_CSS_PROVIDER_ERROR_DEPRECATED)) tag_name = "warning"; else tag_name = "error"; gtk_text_buffer_apply_tag_by_name (buffer, tag_name, &start, &end); } static void css_text_changed (GtkTextBuffer *buffer, GtkCssProvider *provider) { GtkTextIter start, end; char *text; gtk_text_buffer_get_start_iter (buffer, &start); gtk_text_buffer_get_end_iter (buffer, &end); gtk_text_buffer_remove_all_tags (buffer, &start, &end); text = gtk_text_buffer_get_text (buffer, &start, &end, FALSE); gtk_css_provider_load_from_data (provider, text, -1, NULL); g_free (text); gtk_style_context_reset_widgets (gdk_screen_get_default ()); } static gboolean drawing_area_draw (GtkWidget *widget, cairo_t *cr) { GtkStyleContext *context = gtk_widget_get_style_context (widget); gtk_render_background (context, cr, 0, 0, gtk_widget_get_allocated_width (widget), gtk_widget_get_allocated_height (widget)); gtk_render_frame (context, cr, 0, 0, gtk_widget_get_allocated_width (widget), gtk_widget_get_allocated_height (widget)); return FALSE; } static void apply_css (GtkWidget *widget, GtkStyleProvider *provider) { gtk_style_context_add_provider (gtk_widget_get_style_context (widget), provider, G_MAXUINT); if (GTK_IS_CONTAINER (widget)) gtk_container_forall (GTK_CONTAINER (widget), (GtkCallback) apply_css, provider); } GtkWidget * do_css_multiplebgs (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *paned, *container, *child; GtkStyleProvider *provider; GtkTextBuffer *text; GBytes *bytes; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "Multiple Backgrounds"); gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (do_widget)); gtk_window_set_default_size (GTK_WINDOW (window), 400, 300); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); container = gtk_overlay_new (); gtk_widget_add_events (container, GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK); gtk_container_add (GTK_CONTAINER (window), container); child = gtk_drawing_area_new (); gtk_widget_set_name (child, "canvas"); g_signal_connect (child, "draw", G_CALLBACK (drawing_area_draw), NULL); gtk_container_add (GTK_CONTAINER (container), child); child = gtk_button_new (); gtk_widget_add_events (child, GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK); gtk_overlay_add_overlay (GTK_OVERLAY (container), child); gtk_widget_set_name (child, "bricks-button"); gtk_widget_set_halign (child, GTK_ALIGN_CENTER); gtk_widget_set_valign (child, GTK_ALIGN_CENTER); gtk_widget_set_size_request (child, 250, 84); paned = gtk_paned_new (GTK_ORIENTATION_VERTICAL); gtk_overlay_add_overlay (GTK_OVERLAY (container), paned); /* Need a filler so we get a handle */ child = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (paned), child); text = gtk_text_buffer_new (NULL); gtk_text_buffer_create_tag (text, "warning", "underline", PANGO_UNDERLINE_SINGLE, NULL); gtk_text_buffer_create_tag (text, "error", "underline", PANGO_UNDERLINE_ERROR, NULL); provider = GTK_STYLE_PROVIDER (gtk_css_provider_new ()); container = gtk_scrolled_window_new (NULL, NULL); gtk_container_add (GTK_CONTAINER (paned), container); child = gtk_text_view_new_with_buffer (text); gtk_container_add (GTK_CONTAINER (container), child); g_signal_connect (text, "changed", G_CALLBACK (css_text_changed), provider); bytes = g_resources_lookup_data ("/css_multiplebgs/css_multiplebgs.css", 0, NULL); gtk_text_buffer_set_text (text, g_bytes_get_data (bytes, NULL), g_bytes_get_size (bytes)); g_bytes_unref (bytes); g_signal_connect (provider, "parsing-error", G_CALLBACK (show_parsing_error), gtk_text_view_get_buffer (GTK_TEXT_VIEW (child))); apply_css (window, provider); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)cssview.css�������������/* Make the text editor has a nice style */ .view { color: #2e3436; font-family: Monospace; background-color: alpha(white, 0.30); } .view:selected { color: white; background-color: #4a90d9; } scrollbar trough, .scrollbars-junction { background-color: alpha(white, 0.80); } scrollbar slider { border-width: 3px; border-style: solid; border-radius: 10px; border-color: transparent; background-clip: padding-box; background-color: #999; } scrollbar slider:hover { background-color: #555; } paned separator { background-color: alpha(white, 0.80); background-image: linear-gradient(transparent, transparent 1px, #999 1px, #999 4px, transparent 4px); background-size: 40px auto; background-repeat: no-repeat; background-position: center; } paned separator:hover { background-image: linear-gradient(transparent, transparent 1px, #555 1px, #555 4px, transparent 4px); } ��(uuay)scale.c��������������/* Scale * * GtkScale is a way to select a value from a range. * Scales can have marks to help pick special values, * and they can also restrict the values that can be * chosen. */ #include <gtk/gtk.h> GtkWidget * do_scale (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkBuilder *builder; builder = gtk_builder_new_from_resource ("/scale/scale.ui"); gtk_builder_connect_signals (builder, NULL); window = GTK_WIDGET (gtk_builder_get_object (builder, "window1")); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); g_object_unref (builder); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)theming_style_classes/����reset.css�������p������/* @import this colorsheet to get the default values for every property. * This is useful when writing special CSS tests that should not be * inluenced by themes - not even the default ones. * Keep in mind that the output will be very ugly and not look like * anything GTK. * Also, when adding new style properties, please add them here. */ * { all: unset; } ��(uuay)cssview.css������������/* Make the text editor has a nice style */ .view { color: #2e3436; font-family: Monospace; background-color: alpha(white, 0.30); } .view:selected { color: white; background-color: #4a90d9; } scrollbar trough, .scrollbars-junction { background-color: alpha(white, 0.80); } scrollbar slider { border-width: 3px; border-style: solid; border-radius: 10px; border-color: transparent; background-clip: padding-box; background-color: #999; } scrollbar slider:hover { background-color: #555; } paned separator { background-color: alpha(white, 0.80); background-image: linear-gradient(transparent, transparent 1px, #999 1px, #999 4px, transparent 4px); background-size: 40px auto; background-repeat: no-repeat; background-position: center; } paned separator:hover { background-image: linear-gradient(transparent, transparent 1px, #555 1px, #555 4px, transparent 4px); } ��(uuay)printing.c�����������/* Printing/Printing * * GtkPrintOperation offers a simple API to support printing * in a cross-platform way. * */ #include <math.h> #include <gtk/gtk.h> /* In points */ #define HEADER_HEIGHT (10*72/25.4) #define HEADER_GAP (3*72/25.4) typedef struct { gchar *resourcename; gdouble font_size; gint lines_per_page; gchar **lines; gint num_lines; gint num_pages; } PrintData; static void begin_print (GtkPrintOperation *operation, GtkPrintContext *context, gpointer user_data) { PrintData *data = (PrintData *)user_data; GBytes *bytes; int i; double height; height = gtk_print_context_get_height (context) - HEADER_HEIGHT - HEADER_GAP; data->lines_per_page = floor (height / data->font_size); bytes = g_resources_lookup_data (data->resourcename, 0, NULL); data->lines = g_strsplit (g_bytes_get_data (bytes, NULL), "\n", 0); g_bytes_unref (bytes); i = 0; while (data->lines[i] != NULL) i++; data->num_lines = i; data->num_pages = (data->num_lines - 1) / data->lines_per_page + 1; gtk_print_operation_set_n_pages (operation, data->num_pages); } static void draw_page (GtkPrintOperation *operation, GtkPrintContext *context, gint page_nr, gpointer user_data) { PrintData *data = (PrintData *)user_data; cairo_t *cr; PangoLayout *layout; gint text_width, text_height; gdouble width; gint line, i; PangoFontDescription *desc; gchar *page_str; cr = gtk_print_context_get_cairo_context (context); width = gtk_print_context_get_width (context); cairo_rectangle (cr, 0, 0, width, HEADER_HEIGHT); cairo_set_source_rgb (cr, 0.8, 0.8, 0.8); cairo_fill_preserve (cr); cairo_set_source_rgb (cr, 0, 0, 0); cairo_set_line_width (cr, 1); cairo_stroke (cr); layout = gtk_print_context_create_pango_layout (context); desc = pango_font_description_from_string ("sans 14"); pango_layout_set_font_description (layout, desc); pango_font_description_free (desc); pango_layout_set_text (layout, data->resourcename, -1); pango_layout_get_pixel_size (layout, &text_width, &text_height); if (text_width > width) { pango_layout_set_width (layout, width); pango_layout_set_ellipsize (layout, PANGO_ELLIPSIZE_START); pango_layout_get_pixel_size (layout, &text_width, &text_height); } cairo_move_to (cr, (width - text_width) / 2, (HEADER_HEIGHT - text_height) / 2); pango_cairo_show_layout (cr, layout); page_str = g_strdup_printf ("%d/%d", page_nr + 1, data->num_pages); pango_layout_set_text (layout, page_str, -1); g_free (page_str); pango_layout_set_width (layout, -1); pango_layout_get_pixel_size (layout, &text_width, &text_height); cairo_move_to (cr, width - text_width - 4, (HEADER_HEIGHT - text_height) / 2); pango_cairo_show_layout (cr, layout); g_object_unref (layout); layout = gtk_print_context_create_pango_layout (context); desc = pango_font_description_from_string ("monospace"); pango_font_description_set_size (desc, data->font_size * PANGO_SCALE); pango_layout_set_font_description (layout, desc); pango_font_description_free (desc); cairo_move_to (cr, 0, HEADER_HEIGHT + HEADER_GAP); line = page_nr * data->lines_per_page; for (i = 0; i < data->lines_per_page && line < data->num_lines; i++) { pango_layout_set_text (layout, data->lines[line], -1); pango_cairo_show_layout (cr, layout); cairo_rel_move_to (cr, 0, data->font_size); line++; } g_object_unref (layout); } static void end_print (GtkPrintOperation *operation, GtkPrintContext *context, gpointer user_data) { PrintData *data = (PrintData *)user_data; g_free (data->resourcename); g_strfreev (data->lines); g_free (data); } GtkWidget * do_printing (GtkWidget *do_widget) { GtkPrintOperation *operation; GtkPrintSettings *settings; PrintData *data; GError *error = NULL; operation = gtk_print_operation_new (); data = g_new0 (PrintData, 1); data->resourcename = g_strdup ("/sources/printing.c"); data->font_size = 12.0; g_signal_connect (G_OBJECT (operation), "begin-print", G_CALLBACK (begin_print), data); g_signal_connect (G_OBJECT (operation), "draw-page", G_CALLBACK (draw_page), data); g_signal_connect (G_OBJECT (operation), "end-print", G_CALLBACK (end_print), data); gtk_print_operation_set_use_full_page (operation, FALSE); gtk_print_operation_set_unit (operation, GTK_UNIT_POINTS); gtk_print_operation_set_embed_page_setup (operation, TRUE); settings = gtk_print_settings_new (); gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_OUTPUT_BASENAME, "gtk-demo"); gtk_print_operation_set_print_settings (operation, settings); gtk_print_operation_run (operation, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG, GTK_WINDOW (do_widget), &error); g_object_unref (operation); g_object_unref (settings); if (error) { GtkWidget *dialog; dialog = gtk_message_dialog_new (GTK_WINDOW (do_widget), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s", error->message); g_error_free (error); g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); gtk_widget_show (dialog); } return NULL; } ��(uuay)hand_cursor.png��������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��t��t�fx���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3����eIDATX��OLW�?o�E�a�OBa7�p[)�ă)�M�����&�<���n���COz�(!у��x�k�Ė����f�Z�]`wv��a݁���4�{��7���~��{��?"�H$bܸq��<���������d�7���R�W�^�����!�}��|�rpqq����S���jii)s���s@=P�Z sʥ������E"��0�X�qZ�Z���N���Rz �`mm��^��J*�C!�l6�^c Y �J)��,�t�t: @{{�������������O�%�Ô��8�mc�6J)M�`���d���g�~f�fϋ/�����b����&�N �P(�B�����T���* ���N%��j���ׯ_���͛ͧN��`�3o$An��F�ѩ�/�@ ����|���*������֦>�,���aVWW�����Ћye�=,��~���t�����O��ض ��{��6@8fpp���y��]��Y�������5gΜ��4�֖���e ���������ӧO�333�ѣGU>�����<x��Ą;655����i2::���]]]������.|\YY�����;w�0==��RBJ �ÇɷnݺE<w��?�4Mw��88����v˺�b�mmmRJ511@*�*�[4-X���o�.�x]K�ؔ���a����d���yUWWc�ۯ��*��|>t]/���h�^o�F���q���@0t������� fgg�������G�!�@�u��x���k,�r�s��1�eSS�d��CCC�a`Y��S]]Mss3ϟ?w� �&��X]]-Z8"�Ǐ'��p��U��8q۶�4MN�<�������� @H)��m]��\�ⶕR ��L&�������*j%�ɤ+++U�_�A{��%�J�� ��,�IGG�`p��[[[��鑓���� ~�X��tww�t��/��� �XLnކ�a��B�Q��kϞ=�9r��X,6��nf���:}����i��g�D"�ʾ�����ť���������b��@�b�@P���K�s����I`q�/rg���������\��|�Vl����s�@���H�([[x����IEND�B`���(uuay)images/�|������w_resize_cursor.png�����K�������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��t��t�fx���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3����(IDATX��OH#w�?3�7f����b� bi�^L��IB��� � ���K��=�F�*z�a�X {� �$�m=�؊���U�5&��L���Ljk���~�G�{�y�;��<x���?bddD����BQ�ɳ������������߿g�,��@J&�_���mll(���D"���g�(��$��S�ԏ�=��$�D"���� @LNN�`0�'�P�������dr/����Y�Y�R�T��i��E:�FӴR�(3������~-))q���2� ܿ+)�N��u]�M�E���������E0����CQ�� �J�!D�S&����C�������������0��ف��lD�u�iiiyqpp�nkk��������˭��ccc?�B�w��g��V�- � ��tqq��H$�~tt���r�_^^�u�ݟVUU�K�$r< �ϛ��6�4��M����|kk+��xlם�B!vwwK�N��X,&b������J�?�����V�����疖�4�9������^SS#2�79���B!fgg��⼊�����v)��s�F(�@4����"�r���ᅮ�kDJ1ƶ-�EUU�^o��������[m<z��P(��5�bY������������|����-��S��#���~��7����u������hoo��fKʲ�������ۧ�!p�y�$I ��t:�}>_��n%��jkkk;@�4��0�c�ޱy #�����=s8'����������@�0#LyP(d��{��������^������l�I�I�&� %�1ଫ�kraaA���z�����@�������s`���s���?ohh�D g���h�v��� zzzB���,EIr�L$�:::����RSS�ǀ��;�>==�ztt�u]!D4���c��,�v�������7�c��q[�d� �|�� K@����H��0Q���/�B�j�ܷ�� ���h������\�9S1����; 7m-��b,�`�W�:�������ҋP�� ����IEND�B`���(uuay)images.c������6������/* Images * * GtkImage is used to display an image; the image can be in a number of formats. * Typically, you load an image into a GdkPixbuf, then display the pixbuf. * * This demo code shows some of the more obscure cases, in the simple * case a call to gtk_image_new_from_file() is all you need. * * If you want to put image data in your program as a C variable, * use the make-inline-pixbuf program that comes with GTK+. * This way you won't need to depend on loading external files, your * application binary can be self-contained. */ #include <gtk/gtk.h> #include <glib/gstdio.h> #include <stdio.h> #include <errno.h> static GtkWidget *window = NULL; static GdkPixbufLoader *pixbuf_loader = NULL; static guint load_timeout = 0; static GInputStream * image_stream = NULL; static void progressive_prepared_callback (GdkPixbufLoader *loader, gpointer data) { GdkPixbuf *pixbuf; GtkWidget *image; image = GTK_WIDGET (data); pixbuf = gdk_pixbuf_loader_get_pixbuf (loader); /* Avoid displaying random memory contents, since the pixbuf * isn't filled in yet. */ gdk_pixbuf_fill (pixbuf, 0xaaaaaaff); gtk_image_set_from_pixbuf (GTK_IMAGE (image), pixbuf); } static void progressive_updated_callback (GdkPixbufLoader *loader, gint x, gint y, gint width, gint height, gpointer data) { GtkWidget *image; GdkPixbuf *pixbuf; image = GTK_WIDGET (data); /* We know the pixbuf inside the GtkImage has changed, but the image * itself doesn't know this; so give it a hint by setting the pixbuf * again. Queuing a redraw used to be sufficient, but nowadays GtkImage * uses GtkIconHelper which caches the pixbuf state and will just redraw * from the cache. */ pixbuf = gtk_image_get_pixbuf (GTK_IMAGE (image)); g_object_ref (pixbuf); gtk_image_set_from_pixbuf (GTK_IMAGE (image), pixbuf); g_object_unref (pixbuf); } static gint progressive_timeout (gpointer data) { GtkWidget *image; image = GTK_WIDGET (data); /* This shows off fully-paranoid error handling, so looks scary. * You could factor out the error handling code into a nice separate * function to make things nicer. */ if (image_stream) { gssize bytes_read; guchar buf[256]; GError *error = NULL; bytes_read = g_input_stream_read (image_stream, buf, 256, NULL, &error); if (bytes_read < 0) { GtkWidget *dialog; dialog = gtk_message_dialog_new (GTK_WINDOW (window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "Failure reading image file 'alphatest.png': %s", error->message); g_error_free (error); g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); g_object_unref (image_stream); image_stream = NULL; gtk_widget_show (dialog); load_timeout = 0; return FALSE; /* uninstall the timeout */ } if (!gdk_pixbuf_loader_write (pixbuf_loader, buf, bytes_read, &error)) { GtkWidget *dialog; dialog = gtk_message_dialog_new (GTK_WINDOW (window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "Failed to load image: %s", error->message); g_error_free (error); g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); g_object_unref (image_stream); image_stream = NULL; gtk_widget_show (dialog); load_timeout = 0; return FALSE; /* uninstall the timeout */ } if (bytes_read == 0) { /* Errors can happen on close, e.g. if the image * file was truncated we'll know on close that * it was incomplete. */ error = NULL; if (!g_input_stream_close (image_stream, NULL, &error)) { GtkWidget *dialog; dialog = gtk_message_dialog_new (GTK_WINDOW (window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "Failed to load image: %s", error->message); g_error_free (error); g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); gtk_widget_show (dialog); g_object_unref (image_stream); image_stream = NULL; g_object_unref (pixbuf_loader); pixbuf_loader = NULL; load_timeout = 0; return FALSE; /* uninstall the timeout */ } g_object_unref (image_stream); image_stream = NULL; /* Errors can happen on close, e.g. if the image * file was truncated we'll know on close that * it was incomplete. */ error = NULL; if (!gdk_pixbuf_loader_close (pixbuf_loader, &error)) { GtkWidget *dialog; dialog = gtk_message_dialog_new (GTK_WINDOW (window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "Failed to load image: %s", error->message); g_error_free (error); g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); gtk_widget_show (dialog); g_object_unref (pixbuf_loader); pixbuf_loader = NULL; load_timeout = 0; return FALSE; /* uninstall the timeout */ } g_object_unref (pixbuf_loader); pixbuf_loader = NULL; } } else { GError *error = NULL; image_stream = g_resources_open_stream ("/images/alphatest.png", 0, &error); if (image_stream == NULL) { GtkWidget *dialog; dialog = gtk_message_dialog_new (GTK_WINDOW (window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s", error->message); g_error_free (error); g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); gtk_widget_show (dialog); load_timeout = 0; return FALSE; /* uninstall the timeout */ } if (pixbuf_loader) { gdk_pixbuf_loader_close (pixbuf_loader, NULL); g_object_unref (pixbuf_loader); } pixbuf_loader = gdk_pixbuf_loader_new (); g_signal_connect (pixbuf_loader, "area-prepared", G_CALLBACK (progressive_prepared_callback), image); g_signal_connect (pixbuf_loader, "area-updated", G_CALLBACK (progressive_updated_callback), image); } /* leave timeout installed */ return TRUE; } static void start_progressive_loading (GtkWidget *image) { /* This is obviously totally contrived (we slow down loading * on purpose to show how incremental loading works). * The real purpose of incremental loading is the case where * you are reading data from a slow source such as the network. * The timeout simply simulates a slow data source by inserting * pauses in the reading process. */ load_timeout = gdk_threads_add_timeout (150, progressive_timeout, image); g_source_set_name_by_id (load_timeout, "[gtk+] progressive_timeout"); } static void cleanup_callback (GObject *object, gpointer data) { if (load_timeout) { g_source_remove (load_timeout); load_timeout = 0; } if (pixbuf_loader) { gdk_pixbuf_loader_close (pixbuf_loader, NULL); g_object_unref (pixbuf_loader); pixbuf_loader = NULL; } if (image_stream) { g_object_unref (image_stream); image_stream = NULL; } } static void toggle_sensitivity_callback (GtkWidget *togglebutton, gpointer user_data) { GtkContainer *container = user_data; GList *list; GList *tmp; list = gtk_container_get_children (container); tmp = list; while (tmp != NULL) { /* don't disable our toggle */ if (GTK_WIDGET (tmp->data) != togglebutton) gtk_widget_set_sensitive (GTK_WIDGET (tmp->data), !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (togglebutton))); tmp = tmp->next; } g_list_free (list); } GtkWidget * do_images (GtkWidget *do_widget) { GtkWidget *frame; GtkWidget *vbox; GtkWidget *image; GtkWidget *label; GtkWidget *button; GIcon *gicon; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Images"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); g_signal_connect (window, "destroy", G_CALLBACK (cleanup_callback), NULL); gtk_container_set_border_width (GTK_CONTAINER (window), 8); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8); gtk_container_set_border_width (GTK_CONTAINER (vbox), 8); gtk_container_add (GTK_CONTAINER (window), vbox); label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), "<u>Image loaded from a file</u>"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); gtk_widget_set_halign (frame, GTK_ALIGN_CENTER); gtk_widget_set_valign (frame, GTK_ALIGN_CENTER); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); image = gtk_image_new_from_icon_name ("gtk3-demo", GTK_ICON_SIZE_DIALOG); gtk_container_add (GTK_CONTAINER (frame), image); /* Animation */ label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), "<u>Animation loaded from a file</u>"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); gtk_widget_set_halign (frame, GTK_ALIGN_CENTER); gtk_widget_set_valign (frame, GTK_ALIGN_CENTER); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); image = gtk_image_new_from_resource ("/images/floppybuddy.gif"); gtk_container_add (GTK_CONTAINER (frame), image); /* Symbolic icon */ label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), "<u>Symbolic themed icon</u>"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); gtk_widget_set_halign (frame, GTK_ALIGN_CENTER); gtk_widget_set_valign (frame, GTK_ALIGN_CENTER); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); gicon = g_themed_icon_new_with_default_fallbacks ("battery-caution-charging-symbolic"); image = gtk_image_new_from_gicon (gicon, GTK_ICON_SIZE_DIALOG); gtk_container_add (GTK_CONTAINER (frame), image); /* Progressive */ label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), "<u>Progressive image loading</u>"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); gtk_widget_set_halign (frame, GTK_ALIGN_CENTER); gtk_widget_set_valign (frame, GTK_ALIGN_CENTER); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); /* Create an empty image for now; the progressive loader * will create the pixbuf and fill it in. */ image = gtk_image_new_from_pixbuf (NULL); gtk_container_add (GTK_CONTAINER (frame), image); start_progressive_loading (image); /* Sensitivity control */ button = gtk_toggle_button_new_with_mnemonic ("_Insensitive"); gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); g_signal_connect (button, "toggled", G_CALLBACK (toggle_sensitivity_callback), vbox); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)default_cursor.png��������������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��t��t�fx���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3�����IDATX��MHle���q����uC/w5�H�F)h�mZ�\*E�TJ7 ��4R[J$�����P���h��(i��LjWf�=�<-f�ZsT�Exx7/�?������W����u]�777��w +"�����廆����~�����m�8�""�������������0�@yy�I ��wh��1�V*u]g~~�Ӊ�bI\ZZ��f�=�^�)DX�����*���TUUk]]]ui��&��TUebb���:E��z��6 ��a������\.HNN~����-��u!������2>>Nkk+V�5wooo�f��PU���a���HKK�����H5 ah�\100@gg'��鎍�����F \n����璘�������ڗ@ �!��6�����app�����WVV���N����tww3<<LNN�O�d � "�\.����b�`6����fqq���<���?��������3�)pf�-yAII��)qqqb�Z��v��I�u���~(�����2���PU���.z{{����ahh�'��|l2��d2�f�9 "�\R��s���]ץ��F�f����x�ާ@�:`.��[hhh]����T�x<�(����H}}�h�&MMM����E70����FY\\\w:��k�&��բ(�ddd����x�7��C>077'������ �1Pptt����EQ$55UZZZDUU���� 8~��m�?�橩�%�C��<::�X�4������$��̔��cY^^�^#��n`~~�G���N�����666$11Q������P���A�Jbwww���y�-7Q.����ٙlooK �������%tװ5_�( �����纚�����O<�/n���p8>�%�a���MGI�=t^�=�%�O��z��������Q�f^�������`G�������IEND�B`���(uuay)shortcuts/����������l���t���A���sources/-����������k���'�����������?���N��������������/���8���x���;��������������b�����������������������(�������n�������#�������>�����������������������������������������]�������q���c���B���X���z����������9���2�����������������e���%���m���H���L���3���D���Q���U�������d����������all_scroll_cursor.png���������������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��t��t�fx���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3�����IDATX���olSUƟ�2E�Mh���U0mJ;`J��A�� �� ���n61F�Ә�F��Fd�Uʒm��� �����۵���(�}�P.���Or��{�}~�y�}���ХR��H$�>��� ����'�(J=1х>��@����#"nnn���F&"���� �B�=( ٝ�%">x� `�����D����_X� $�zEQ�8p���633_�t�{��gB�O&��;� �ڬ��g"�/~;S����G������k�����hF��v~��x߾}S�ks���LD|����B�O�R�G"����LD�v����xx2�ɨ$�����%%%��ٳ��հ���'N���t:�ff �$Ib����۟�x<�.�ǎ���i��lM��7o;Ux�Db?�{�;�Nv�����`��j}������ѣ�W�^��M�6���������ڵ���v�O����%���O���d��#x ������L&�f��������?�$���h�7 ����ֲ�{{{�/��(766��P9�N�z��6����""niia�����:�DħO�n�P�����;w�d!y�ޟ���C܉�܄�`��(�N���g���( ��;��;v������h:�R<iy_�<y�.T�������Ν;7�>��%-X��L�חuK?�z�Ӊ���l6�����!�b�i۶m���p�֭[iÆ �����ѥK�N��l�2$�1!�!�n�����B���^���:�)//V������Duuu��~�ʕ6UUŚ5k�ܷZ����8s�L'�7B�PG~ �V+' ���B���o���3�.�'-Z�N�eO:�v�}�3`4��`��͛7���Stuu�L&C�������u������\���JN&������`�`�#�ٚU`,�nڴ�7n�Ξ=KUUU�.���p�d2�s���o�\�d2�G���b�|���5��Y�f m��u����A�`0TSS�(����}���o�ܲ��*Y���tZ�_�>7��X�l����M���B6�X����v��l�L&����k�ܹMȆX��(F�v��߯���z����N�Eooo���D_�/^��<n4W�\��/_�Lkk+zzz&��0�V+�����z����K�R��qL��g4���U���[,����sl_�)z�����WS��X�vmAq��̊����}�_�5�k���2�,����N �r�J��bB����ŋ���ݫx!_*����w�W�X��hTȲ�-��L�O������&�Ia���d2q$~�?ZZZ�1�W��gL|��dznhh�?22"�Ѩ����̓"�aX�j�ơ���`06��9�LG�^(��(1��O3s�����x�w��@.ģ���"��w-~?��Z ���4��8g�ɻ������IEND�B`���(uuay)assistant.c�����������/* Assistant * * Demonstrates a sample multi-step assistant. Assistants are used to divide * an operation into several simpler sequential steps, and to guide the user * through these steps. */ #include <gtk/gtk.h> static GtkWidget *assistant = NULL; static GtkWidget *progress_bar = NULL; static gboolean apply_changes_gradually (gpointer data) { gdouble fraction; /* Work, work, work... */ fraction = gtk_progress_bar_get_fraction (GTK_PROGRESS_BAR (progress_bar)); fraction += 0.05; if (fraction < 1.0) { gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progress_bar), fraction); return G_SOURCE_CONTINUE; } else { /* Close automatically once changes are fully applied. */ gtk_widget_destroy (assistant); assistant = NULL; return G_SOURCE_REMOVE; } } static void on_assistant_apply (GtkWidget *widget, gpointer data) { /* Start a timer to simulate changes taking a few seconds to apply. */ g_timeout_add (100, apply_changes_gradually, NULL); } static void on_assistant_close_cancel (GtkWidget *widget, gpointer data) { GtkWidget **assistant = (GtkWidget **) data; gtk_widget_destroy (*assistant); *assistant = NULL; } static void on_assistant_prepare (GtkWidget *widget, GtkWidget *page, gpointer data) { gint current_page, n_pages; gchar *title; current_page = gtk_assistant_get_current_page (GTK_ASSISTANT (widget)); n_pages = gtk_assistant_get_n_pages (GTK_ASSISTANT (widget)); title = g_strdup_printf ("Sample assistant (%d of %d)", current_page + 1, n_pages); gtk_window_set_title (GTK_WINDOW (widget), title); g_free (title); /* The fourth page (counting from zero) is the progress page. The * user clicked Apply to get here so we tell the assistant to commit, * which means the changes up to this point are permanent and cannot * be cancelled or revisited. */ if (current_page == 3) gtk_assistant_commit (GTK_ASSISTANT (widget)); } static void on_entry_changed (GtkWidget *widget, gpointer data) { GtkAssistant *assistant = GTK_ASSISTANT (data); GtkWidget *current_page; gint page_number; const gchar *text; page_number = gtk_assistant_get_current_page (assistant); current_page = gtk_assistant_get_nth_page (assistant, page_number); text = gtk_entry_get_text (GTK_ENTRY (widget)); if (text && *text) gtk_assistant_set_page_complete (assistant, current_page, TRUE); else gtk_assistant_set_page_complete (assistant, current_page, FALSE); } static void create_page1 (GtkWidget *assistant) { GtkWidget *box, *label, *entry; box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12); gtk_container_set_border_width (GTK_CONTAINER (box), 12); label = gtk_label_new ("You must fill out this entry to continue:"); gtk_box_pack_start (GTK_BOX (box), label, FALSE, FALSE, 0); entry = gtk_entry_new (); gtk_entry_set_activates_default (GTK_ENTRY (entry), TRUE); gtk_widget_set_valign (entry, GTK_ALIGN_CENTER); gtk_box_pack_start (GTK_BOX (box), entry, TRUE, TRUE, 0); g_signal_connect (G_OBJECT (entry), "changed", G_CALLBACK (on_entry_changed), assistant); gtk_widget_show_all (box); gtk_assistant_append_page (GTK_ASSISTANT (assistant), box); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), box, "Page 1"); gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), box, GTK_ASSISTANT_PAGE_INTRO); } static void create_page2 (GtkWidget *assistant) { GtkWidget *box, *checkbutton; box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12); gtk_container_set_border_width (GTK_CONTAINER (box), 12); checkbutton = gtk_check_button_new_with_label ("This is optional data, you may continue " "even if you do not check this"); gtk_box_pack_start (GTK_BOX (box), checkbutton, FALSE, FALSE, 0); gtk_widget_show_all (box); gtk_assistant_append_page (GTK_ASSISTANT (assistant), box); gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant), box, TRUE); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), box, "Page 2"); } static void create_page3 (GtkWidget *assistant) { GtkWidget *label; label = gtk_label_new ("This is a confirmation page, press 'Apply' to apply changes"); gtk_widget_show (label); gtk_assistant_append_page (GTK_ASSISTANT (assistant), label); gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), label, GTK_ASSISTANT_PAGE_CONFIRM); gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant), label, TRUE); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), label, "Confirmation"); } static void create_page4 (GtkWidget *assistant) { progress_bar = gtk_progress_bar_new (); gtk_widget_set_halign (progress_bar, GTK_ALIGN_CENTER); gtk_widget_set_valign (progress_bar, GTK_ALIGN_CENTER); gtk_widget_show (progress_bar); gtk_assistant_append_page (GTK_ASSISTANT (assistant), progress_bar); gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), progress_bar, GTK_ASSISTANT_PAGE_PROGRESS); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), progress_bar, "Applying changes"); /* This prevents the assistant window from being * closed while we're "busy" applying changes. */ gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant), progress_bar, FALSE); } GtkWidget* do_assistant (GtkWidget *do_widget) { if (!assistant) { assistant = gtk_assistant_new (); gtk_window_set_default_size (GTK_WINDOW (assistant), -1, 300); gtk_window_set_screen (GTK_WINDOW (assistant), gtk_widget_get_screen (do_widget)); create_page1 (assistant); create_page2 (assistant); create_page3 (assistant); create_page4 (assistant); g_signal_connect (G_OBJECT (assistant), "cancel", G_CALLBACK (on_assistant_close_cancel), &assistant); g_signal_connect (G_OBJECT (assistant), "close", G_CALLBACK (on_assistant_close_cancel), &assistant); g_signal_connect (G_OBJECT (assistant), "apply", G_CALLBACK (on_assistant_apply), NULL); g_signal_connect (G_OBJECT (assistant), "prepare", G_CALLBACK (on_assistant_prepare), NULL); } if (!gtk_widget_get_visible (assistant)) gtk_widget_show (assistant); else { gtk_widget_destroy (assistant); assistant = NULL; } return assistant; } ��(uuay)not_allowed_cursor.png���������������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��n��n��^���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3�����IDATX��kLT�����<���1�+��Hk��>��((ךƔ����6)QL5�S�VML�r�k�MM��Q�Z. Sf���0g���PT@�~i��d�L�9{������ ��� �g"���������������Inkk��^�嵂 īT�QE��ӧ(�;EQ����^�Z�Op���@hii��[�V����A�����˗Bww7<�f3�V+V�\�5�L���nkk�MBB�_�(AL �l6�7F���n8q�\UUEQ@��OA .\���<6�|����8**�0��O�I�D���됐����(**�n7��#��_EQ� شi���K��bΜ9[���ǂ@loo��b�\;y�x��p��9��a?�U�+��EK�.Źs稣���i� �>��������S�͛w�������c��j�bÆ ���ĪU������:������֭[�����PRR�w�l��G p8�����f͢�S���b���H������R�#���z��Yk}}��>|�eeeQDD��f�������Z����#f�ۛt:� ��:��KJJbcJAA�Hp��LV��Xoo�����,�{��ܹ�CCC��ٳLF������d2Qdd$EGG��ի�sN������@~��M���f���d�X�d2QXX���q���JNN���?-((��v�]�`0�^��ٳgSyy9���RDDEFFRLL�x�Bill� §�k����ݽ{��3���D�Ӿ}���s�?<t������ZE�דZ����HjjjbDD���#QQQt��q������j� �'�*I���~�Z䜃1�9����t:�9r����<WNNNIkk딵k�J�e<44����by��z����`0�bbbBF+��V� ���);��������1�.99y`�������Ť��ʽ��E�/_���%33�rcccs\\�Dgg'A�-[ `<d�Y�}I���`�q���h���˥��v���ӧ����w��}����Z���N�#��ѥ�v�0\�����r�z���Gp�����������N�,--Mjll�b�֭t����/^|�������ZZZD��|>�{=�U�������F ���@�;w.1�8c�gdd��p���M�s:u��-�,ؾ}�¡�!ώ;H�ѐ�`���`:z�(9�^���b�?A�������� �X,d0(00������m�6<--�E�eee�����D��Z�v�����+z��4 ��z ��ϟ��>���1ԇ@�������*������G��L�2|ѢE488��߿� ��v�I����N����RRRH�$�h4���hɒ%�9�����H���5���O�<�m�٘�d"�VK*��A �4c�������*UUU5�?�l���444��l�ŋ��e��j5��z���e���m�~�+�����AxJJJF���ի\�ӑJ�"I���T*��Ƞ��2���+oss�Puu��k�.��t�A Y�I��P^^)�³����5�����B �����Ê����b�h4$�� _2I�H�R��������K�.U����/{?���]�x� K���+W�� �$��(�J����|R�����Û�G��'�~4� @��{���}�����eee�V�%Q?�}ŊTWW�E��ϟ��@�?B����Z25�0��,��c�~�dɒt�����^������b�̙3�f�-644�=p����7o>��{�N�C��A��)}J��URRR�ƍ����fsXHH�F�$�����p8�YWW��k=���| ����k�X���/c��00���S��j���0�^����l>sb��5�Թ���Z�z_�@ߜ��F����3�j��ɤ�P�@�O��0�)�$OE��_�_ ��N2����IEND�B`���(uuay)crosshair_cursor.png������������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��t��t�fx���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3�����IDATX��OkA��܈JQP��M=h�ԛǂGۯ�Eh/�{���CO�B ~�����4�B��Y���}=�&ƐMw����\&�wߙ�}ߙgf���~�q� ���5M� pIDB�u_������Q���r]�}�VVVV�R��a�����@��������hEDdii�\̬�U�5��l6��c{�,d!��}6p&�x��F'"*�e^�7�8u��J ��p����(m� ���')1(Di��n�Zω��y�N�S��j�Rm��� �����i\���dnn.4����(�� ���juu5�`�H룔B)e�w�}��PAd��#�2�зN�z�����9׀�H�^�<n\ ��㋳���������Q����`��������]�T�䧵���[�'Љ��Z����� p��c�,�Sq={�[[[;�R�JT[���>�m��@x��jI���m�B�O��q�W�g�K���'ow;�ؠ�R�7br��p�g�,�|��k������3±K@w �g F�3� ��p�`��\,�:] %8Y������l��4#�h6�mN�Q��ן����uX�V?Z���G��I�[� \���"q�T� ��p�\%����O�O�R�y�D�\ :3tL�#�L����?�Q�D�w��TS������IEND�B`���(uuay)reset.css������p������/* @import this colorsheet to get the default values for every property. * This is useful when writing special CSS tests that should not be * inluenced by themes - not even the default ones. * Keep in mind that the output will be very ugly and not look like * anything GTK. * Also, when adding new style properties, please add them here. */ * { all: unset; } ��(uuay)glarea-gles.vs.glsl�����]�������attribute vec4 position; uniform mat4 mvp; void main() { gl_Position = mvp * position; } ��(uuay)headerbar.cp ������/* Header Bar * * GtkHeaderBar is a container that is suitable for implementing * window titlebars. One of its features is that it can position * a title (and optional subtitle) centered with regard to the * full width, regardless of variable-width content at the left * or right. * * It is commonly used with gtk_window_set_titlebar() */ #include <gtk/gtk.h> GtkWidget * do_headerbar (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *header; GtkWidget *button; GtkWidget *box; GtkWidget *image; GIcon *icon; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_window_set_default_size (GTK_WINDOW (window), 600, 400); header = gtk_header_bar_new (); gtk_header_bar_set_show_close_button (GTK_HEADER_BAR (header), TRUE); gtk_header_bar_set_title (GTK_HEADER_BAR (header), "Welcome to Facebook - Log in, sign up or learn more"); gtk_header_bar_set_has_subtitle (GTK_HEADER_BAR (header), FALSE); button = gtk_button_new (); icon = g_themed_icon_new ("mail-send-receive-symbolic"); image = gtk_image_new_from_gicon (icon, GTK_ICON_SIZE_BUTTON); g_object_unref (icon); gtk_container_add (GTK_CONTAINER (button), image); gtk_header_bar_pack_end (GTK_HEADER_BAR (header), button); box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_style_context_add_class (gtk_widget_get_style_context (box), "linked"); button = gtk_button_new (); gtk_container_add (GTK_CONTAINER (button), gtk_image_new_from_icon_name ("pan-start-symbolic", GTK_ICON_SIZE_BUTTON)); gtk_container_add (GTK_CONTAINER (box), button); button = gtk_button_new (); gtk_container_add (GTK_CONTAINER (button), gtk_image_new_from_icon_name ("pan-end-symbolic", GTK_ICON_SIZE_BUTTON)); gtk_container_add (GTK_CONTAINER (box), button); gtk_header_bar_pack_start (GTK_HEADER_BAR (header), box); gtk_window_set_titlebar (GTK_WINDOW (window), header); gtk_container_add (GTK_CONTAINER (window), gtk_text_view_new ()); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)ui/� ���i���sizegroup.c��������/* Size Groups * * GtkSizeGroup provides a mechanism for grouping a number of * widgets together so they all request the same amount of space. * This is typically useful when you want a column of widgets to * have the same size, but you can't use a GtkTable widget. * * Note that size groups only affect the amount of space requested, * not the size that the widgets finally receive. If you want the * widgets in a GtkSizeGroup to actually be the same size, you need * to pack them in such a way that they get the size they request * and not more. For example, if you are packing your widgets * into a table, you would not include the GTK_FILL flag. */ #include <glib/gi18n.h> #include <gtk/gtk.h> /* Convenience function to create a combo box holding a number of strings */ GtkWidget * create_combo_box (const char **strings) { GtkWidget *combo_box; const char **str; combo_box = gtk_combo_box_text_new (); for (str = strings; *str; str++) gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo_box), *str); gtk_combo_box_set_active (GTK_COMBO_BOX (combo_box), 0); return combo_box; } static void add_row (GtkGrid *table, int row, GtkSizeGroup *size_group, const char *label_text, const char **options) { GtkWidget *combo_box; GtkWidget *label; label = gtk_label_new_with_mnemonic (label_text); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_widget_set_valign (label, GTK_ALIGN_BASELINE); gtk_widget_set_hexpand (label, TRUE); gtk_grid_attach (table, label, 0, row, 1, 1); combo_box = create_combo_box (options); gtk_label_set_mnemonic_widget (GTK_LABEL (label), combo_box); gtk_widget_set_halign (combo_box, GTK_ALIGN_END); gtk_widget_set_valign (combo_box, GTK_ALIGN_BASELINE); gtk_size_group_add_widget (size_group, combo_box); gtk_grid_attach (table, combo_box, 1, row, 1, 1); } static void toggle_grouping (GtkToggleButton *check_button, GtkSizeGroup *size_group) { GtkSizeGroupMode new_mode; /* GTK_SIZE_GROUP_NONE is not generally useful, but is useful * here to show the effect of GTK_SIZE_GROUP_HORIZONTAL by * contrast. */ if (gtk_toggle_button_get_active (check_button)) new_mode = GTK_SIZE_GROUP_HORIZONTAL; else new_mode = GTK_SIZE_GROUP_NONE; gtk_size_group_set_mode (size_group, new_mode); } GtkWidget * do_sizegroup (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *table; GtkWidget *frame; GtkWidget *vbox; GtkWidget *check_button; GtkSizeGroup *size_group; static const char *color_options[] = { "Red", "Green", "Blue", NULL }; static const char *dash_options[] = { "Solid", "Dashed", "Dotted", NULL }; static const char *end_options[] = { "Square", "Round", "Double Arrow", NULL }; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Size Groups"); gtk_window_set_resizable (GTK_WINDOW (window), FALSE); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); g_object_set_data_full (G_OBJECT (window), "size-group", size_group, g_object_unref); /* Create one frame holding color options */ frame = gtk_frame_new ("Color Options"); gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0); table = gtk_grid_new (); gtk_container_set_border_width (GTK_CONTAINER (table), 5); gtk_grid_set_row_spacing (GTK_GRID (table), 5); gtk_grid_set_column_spacing (GTK_GRID (table), 10); gtk_container_add (GTK_CONTAINER (frame), table); add_row (GTK_GRID (table), 0, size_group, "_Foreground", color_options); add_row (GTK_GRID (table), 1, size_group, "_Background", color_options); /* And another frame holding line style options */ frame = gtk_frame_new ("Line Options"); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); table = gtk_grid_new (); gtk_container_set_border_width (GTK_CONTAINER (table), 5); gtk_grid_set_row_spacing (GTK_GRID (table), 5); gtk_grid_set_column_spacing (GTK_GRID (table), 10); gtk_container_add (GTK_CONTAINER (frame), table); add_row (GTK_GRID (table), 0, size_group, "_Dashing", dash_options); add_row (GTK_GRID (table), 1, size_group, "_Line ends", end_options); /* And a check button to turn grouping on and off */ check_button = gtk_check_button_new_with_mnemonic ("_Enable grouping"); gtk_box_pack_start (GTK_BOX (vbox), check_button, FALSE, FALSE, 0); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button), TRUE); g_signal_connect (check_button, "toggled", G_CALLBACK (toggle_grouping), size_group); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)nwse_resize_cursor.png���������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��t��t�fx���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3�����IDATX��MH#g��3�F�]i4"�5-�JI����{�#=���A @�S.{P�˲�֞���H�ॗ�P�Uc����Fbk��tԴ����H��|�d=�?���y���1������,�І,�=V������0 �����7���F�����雪B���UWW����cE6�����|�F�.�\�]P;;;��l6�iI��0�����'���XQĻ%ikkk�&�AH�uc~~�[�S�������Kp�ݤ(������y>�}� k>ULj�X��:9�ڦ�����d�ɗO� K)!�z���d����O.�5�. ������� K��V�5������ϙ$I?������pdd�rqq�TU�U�o�U��xHE��|9>��dYf�$Ž^��i�""I����� ���J�d�]]]�yvv��nwDOOɲ�DQ��\�w��(��1f�������6�!� e���P"�`�$�].ף���g�T�����@�����(L������a���Q$���͟� ������������G������c�t:s ���IUUfMLL��D"����KE���^ =�)���4~prr�����577�@������躞`��������?L�R��D�566-��� "���sss1�?x����䕕���@�n�gb��Q___�a%������l.u/�r0Kn��Ԕ�1Ɩ��+�@1U�ty �{����|=�N�Ea���k����p����?�y~P~}}�T���b���P(T5::�Umm���`�����<���d�߬P(�g��/�L]"e� ��N�k����WWW�I&�og�ٻDT��sG��� @�?a5�����w`Zrf{������ǫ�p��7��a��i�V���bb��Cv����IEND�B`���(uuay)changedisplay.c���D������/* Change Display * * Demonstrates migrating a window between different displays. * A display is a mouse and keyboard with some number of * associated monitors. The neat thing about having multiple * displays is that they can be on a completely separate * computers, as long as there is a network connection to the * computer where the application is running. * * Only some of the windowing systems where GTK+ runs have the * concept of multiple displays. (The X Window System is the * main example.) Other windowing systems can only handle one * keyboard and mouse, and combine all monitors into * a single display. * * This is a moderately complex example, and demonstrates: * * - Tracking the currently open displays * * - Changing the display for a window * * - Letting the user choose a window by clicking on it * * - Using GtkListStore and GtkTreeView * * - Using GtkDialog */ #include <string.h> #include <glib/gi18n.h> #include <gtk/gtk.h> /* The ChangeDisplayInfo structure corresponds to a toplevel window and * holds pointers to widgets inside the toplevel window along with other * information about the contents of the window. * This is a common organizational structure in real applications. */ typedef struct _ChangeDisplayInfo ChangeDisplayInfo; struct _ChangeDisplayInfo { GtkWidget *window; GtkSizeGroup *size_group; GtkTreeModel *display_model; GdkDisplay *current_display; }; /* These enumerations provide symbolic names for the columns * in the two GtkListStore models. */ enum { DISPLAY_COLUMN_NAME, DISPLAY_COLUMN_DISPLAY, DISPLAY_NUM_COLUMNS }; enum { SCREEN_COLUMN_NUMBER, SCREEN_COLUMN_SCREEN, SCREEN_NUM_COLUMNS }; /* Finds the toplevel window under the mouse pointer, if any. */ static GtkWidget * find_toplevel_at_pointer (GdkDisplay *display) { GdkWindow *pointer_window; GtkWidget *widget = NULL; pointer_window = gdk_device_get_window_at_position (gtk_get_current_event_device (), NULL, NULL); /* The user data field of a GdkWindow is used to store a pointer * to the widget that created it. */ if (pointer_window) { gpointer widget_ptr; gdk_window_get_user_data (pointer_window, &widget_ptr); widget = widget_ptr; } return widget ? gtk_widget_get_toplevel (widget) : NULL; } static gboolean button_release_event_cb (GtkWidget *widget, GdkEventButton *event, gboolean *clicked) { *clicked = TRUE; return TRUE; } /* Asks the user to click on a window, then waits for them click * the mouse. When the mouse is released, returns the toplevel * window under the pointer, or NULL, if there is none. */ static GtkWidget * query_for_toplevel (GdkScreen *screen, const char *prompt) { GdkDisplay *display = gdk_screen_get_display (screen); GtkWidget *popup, *label, *frame; GdkCursor *cursor; GtkWidget *toplevel = NULL; GdkDevice *device; popup = gtk_window_new (GTK_WINDOW_POPUP); gtk_window_set_screen (GTK_WINDOW (popup), screen); gtk_window_set_modal (GTK_WINDOW (popup), TRUE); gtk_window_set_position (GTK_WINDOW (popup), GTK_WIN_POS_CENTER); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT); gtk_container_add (GTK_CONTAINER (popup), frame); label = gtk_label_new (prompt); g_object_set (label, "margin", 10, NULL); gtk_container_add (GTK_CONTAINER (frame), label); gtk_widget_show_all (popup); cursor = gdk_cursor_new_from_name (display, "crosshair"); device = gtk_get_current_event_device (); if (gdk_seat_grab (gdk_device_get_seat (device), gtk_widget_get_window (popup), GDK_SEAT_CAPABILITY_ALL_POINTING, FALSE, cursor, NULL, NULL, NULL) == GDK_GRAB_SUCCESS) { gboolean clicked = FALSE; g_signal_connect (popup, "button-release-event", G_CALLBACK (button_release_event_cb), &clicked); /* Process events until clicked is set by button_release_event_cb. * We pass in may_block=TRUE since we want to wait if there * are no events currently. */ while (!clicked) g_main_context_iteration (NULL, TRUE); toplevel = find_toplevel_at_pointer (gdk_screen_get_display (screen)); if (toplevel == popup) toplevel = NULL; } g_object_unref (cursor); gtk_widget_destroy (popup); gdk_flush (); /* Really release the grab */ return toplevel; } /* Prompts the user for a toplevel window to move, and then moves * that window to the currently selected display */ static void query_change_display (ChangeDisplayInfo *info) { GdkScreen *screen = gtk_widget_get_screen (info->window); GtkWidget *toplevel; toplevel = query_for_toplevel (screen, "Please select the toplevel\n" "to move to the new screen"); if (toplevel) gtk_window_set_screen (GTK_WINDOW (toplevel), gdk_display_get_default_screen (info->current_display)); else gdk_display_beep (gdk_screen_get_display (screen)); } /* Called when the user clicks on a button in our dialog or * closes the dialog through the window manager. Unless the * "Change" button was clicked, we destroy the dialog. */ static void response_cb (GtkDialog *dialog, gint response_id, ChangeDisplayInfo *info) { if (response_id == GTK_RESPONSE_OK) query_change_display (info); else gtk_widget_destroy (GTK_WIDGET (dialog)); } /* Called when the user clicks on "Open..." in the display * frame. Prompts for a new display, and then opens a connection * to that display. */ static void open_display_cb (GtkWidget *button, ChangeDisplayInfo *info) { GtkWidget *content_area; GtkWidget *dialog; GtkWidget *display_entry; GtkWidget *dialog_label; gchar *new_screen_name = NULL; GdkDisplay *result = NULL; dialog = gtk_dialog_new_with_buttons ("Open Display", GTK_WINDOW (info->window), GTK_DIALOG_MODAL, _("_Cancel"), GTK_RESPONSE_CANCEL, _("_OK"), GTK_RESPONSE_OK, NULL); gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK); display_entry = gtk_entry_new (); gtk_entry_set_activates_default (GTK_ENTRY (display_entry), TRUE); dialog_label = gtk_label_new ("Please enter the name of\nthe new display\n"); content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); gtk_container_add (GTK_CONTAINER (content_area), dialog_label); gtk_container_add (GTK_CONTAINER (content_area), display_entry); gtk_widget_grab_focus (display_entry); gtk_widget_show_all (gtk_bin_get_child (GTK_BIN (dialog))); while (!result) { gint response_id = gtk_dialog_run (GTK_DIALOG (dialog)); if (response_id != GTK_RESPONSE_OK) break; new_screen_name = gtk_editable_get_chars (GTK_EDITABLE (display_entry), 0, -1); if (strcmp (new_screen_name, "") != 0) { result = gdk_display_open (new_screen_name); if (!result) { gchar *error_msg = g_strdup_printf ("Can't open display:\n\t%s\nplease try another one\n", new_screen_name); gtk_label_set_text (GTK_LABEL (dialog_label), error_msg); g_free (error_msg); } g_free (new_screen_name); } } gtk_widget_destroy (dialog); } /* Called when the user clicks on the "Close" button in the * "Display" frame. Closes the selected display. */ static void close_display_cb (GtkWidget *button, ChangeDisplayInfo *info) { if (info->current_display) gdk_display_close (info->current_display); } /* Called when the selected row in the display list changes. * Updates info->current_display, then refills the list of * screens. */ static void display_changed_cb (GtkTreeSelection *selection, ChangeDisplayInfo *info) { GtkTreeModel *model; GtkTreeIter iter; if (info->current_display) g_object_unref (info->current_display); if (gtk_tree_selection_get_selected (selection, &model, &iter)) gtk_tree_model_get (model, &iter, DISPLAY_COLUMN_DISPLAY, &info->current_display, -1); else info->current_display = NULL; } /* This function is used both for creating the "Display" and * "Screen" frames, since they have a similar structure. The * caller hooks up the right context for the value returned * in tree_view, and packs any relevant buttons into button_vbox. */ static void create_frame (ChangeDisplayInfo *info, const char *title, GtkWidget **frame, GtkWidget **tree_view, GtkWidget **button_vbox) { GtkTreeSelection *selection; GtkWidget *scrollwin; GtkWidget *hbox; *frame = gtk_frame_new (title); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8); gtk_container_set_border_width (GTK_CONTAINER (hbox), 8); gtk_container_add (GTK_CONTAINER (*frame), hbox); scrollwin = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrollwin), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrollwin), GTK_SHADOW_IN); gtk_box_pack_start (GTK_BOX (hbox), scrollwin, TRUE, TRUE, 0); *tree_view = gtk_tree_view_new (); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (*tree_view), FALSE); gtk_container_add (GTK_CONTAINER (scrollwin), *tree_view); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (*tree_view)); gtk_tree_selection_set_mode (selection, GTK_SELECTION_BROWSE); *button_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_box_pack_start (GTK_BOX (hbox), *button_vbox, FALSE, FALSE, 0); if (!info->size_group) info->size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); gtk_size_group_add_widget (GTK_SIZE_GROUP (info->size_group), *button_vbox); } /* If we have a stack of buttons, it often looks better if their contents * are left-aligned, rather than centered. This function creates a button * and left-aligns it contents. */ GtkWidget * left_align_button_new (const char *label) { GtkWidget *button = gtk_button_new_with_mnemonic (label); GtkWidget *child = gtk_bin_get_child (GTK_BIN (button)); gtk_widget_set_halign (child, GTK_ALIGN_START); gtk_widget_set_valign (child, GTK_ALIGN_CENTER); return button; } /* Creates the "Display" frame in the main window. */ GtkWidget * create_display_frame (ChangeDisplayInfo *info) { GtkWidget *frame; GtkWidget *tree_view; GtkWidget *button_vbox; GtkTreeViewColumn *column; GtkTreeSelection *selection; GtkWidget *button; create_frame (info, "Display", &frame, &tree_view, &button_vbox); button = left_align_button_new ("_Open..."); g_signal_connect (button, "clicked", G_CALLBACK (open_display_cb), info); gtk_box_pack_start (GTK_BOX (button_vbox), button, FALSE, FALSE, 0); button = left_align_button_new ("_Close"); g_signal_connect (button, "clicked", G_CALLBACK (close_display_cb), info); gtk_box_pack_start (GTK_BOX (button_vbox), button, FALSE, FALSE, 0); info->display_model = (GtkTreeModel *)gtk_list_store_new (DISPLAY_NUM_COLUMNS, G_TYPE_STRING, GDK_TYPE_DISPLAY); gtk_tree_view_set_model (GTK_TREE_VIEW (tree_view), info->display_model); column = gtk_tree_view_column_new_with_attributes ("Name", gtk_cell_renderer_text_new (), "text", DISPLAY_COLUMN_NAME, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view)); g_signal_connect (selection, "changed", G_CALLBACK (display_changed_cb), info); return frame; } /* Called when one of the currently open displays is closed. * Remove it from our list of displays. */ static void display_closed_cb (GdkDisplay *display, gboolean is_error, ChangeDisplayInfo *info) { GtkTreeIter iter; gboolean valid; for (valid = gtk_tree_model_get_iter_first (info->display_model, &iter); valid; valid = gtk_tree_model_iter_next (info->display_model, &iter)) { GdkDisplay *tmp_display; gtk_tree_model_get (info->display_model, &iter, DISPLAY_COLUMN_DISPLAY, &tmp_display, -1); if (tmp_display == display) { gtk_list_store_remove (GTK_LIST_STORE (info->display_model), &iter); break; } } } /* Adds a new display to our list of displays, and connects * to the "closed" signal so that we can remove it from the * list of displays again. */ static void add_display (ChangeDisplayInfo *info, GdkDisplay *display) { const gchar *name = gdk_display_get_name (display); GtkTreeIter iter; gtk_list_store_append (GTK_LIST_STORE (info->display_model), &iter); gtk_list_store_set (GTK_LIST_STORE (info->display_model), &iter, DISPLAY_COLUMN_NAME, name, DISPLAY_COLUMN_DISPLAY, display, -1); g_signal_connect (display, "closed", G_CALLBACK (display_closed_cb), info); } /* Called when a new display is opened */ static void display_opened_cb (GdkDisplayManager *manager, GdkDisplay *display, ChangeDisplayInfo *info) { add_display (info, display); } /* Adds all currently open displays to our list of displays, * and set up a signal connection so that we'll be notified * when displays are opened in the future as well. */ static void initialize_displays (ChangeDisplayInfo *info) { GdkDisplayManager *manager = gdk_display_manager_get (); GSList *displays = gdk_display_manager_list_displays (manager); GSList *tmp_list; for (tmp_list = displays; tmp_list; tmp_list = tmp_list->next) add_display (info, tmp_list->data); g_slist_free (tmp_list); g_signal_connect (manager, "display-opened", G_CALLBACK (display_opened_cb), info); } /* Cleans up when the toplevel is destroyed; we remove the * connections we use to track currently open displays, then * free the ChangeDisplayInfo structure. */ static void destroy_info (ChangeDisplayInfo *info) { GdkDisplayManager *manager = gdk_display_manager_get (); GSList *displays = gdk_display_manager_list_displays (manager); GSList *tmp_list; g_signal_handlers_disconnect_by_func (manager, display_opened_cb, info); for (tmp_list = displays; tmp_list; tmp_list = tmp_list->next) g_signal_handlers_disconnect_by_func (tmp_list->data, display_closed_cb, info); g_slist_free (tmp_list); g_object_unref (info->size_group); g_object_unref (info->display_model); if (info->current_display) g_object_unref (info->current_display); g_free (info); } static void destroy_cb (GObject *object, ChangeDisplayInfo **info) { destroy_info (*info); *info = NULL; } /* Main entry point. If the dialog for this demo doesn't yet exist, creates * it. Otherwise, destroys it. */ GtkWidget * do_changedisplay (GtkWidget *do_widget) { static ChangeDisplayInfo *info = NULL; if (!info) { GtkWidget *content_area; GtkWidget *vbox; GtkWidget *frame; info = g_new0 (ChangeDisplayInfo, 1); info->window = gtk_dialog_new_with_buttons ("Change Display", GTK_WINDOW (do_widget), 0, "Close", GTK_RESPONSE_CLOSE, "Change", GTK_RESPONSE_OK, NULL); gtk_window_set_default_size (GTK_WINDOW (info->window), 300, 400); g_signal_connect (info->window, "response", G_CALLBACK (response_cb), info); g_signal_connect (info->window, "destroy", G_CALLBACK (destroy_cb), &info); content_area = gtk_dialog_get_content_area (GTK_DIALOG (info->window)); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_container_set_border_width (GTK_CONTAINER (vbox), 8); gtk_box_pack_start (GTK_BOX (content_area), vbox, TRUE, TRUE, 0); frame = create_display_frame (info); gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0); initialize_displays (info); gtk_widget_show_all (info->window); return info->window; } else { gtk_widget_destroy (info->window); return NULL; } } ��(uuay)font_features.c�<������/* Pango/Font Features * * This example demonstrates support for OpenType font features with * Pango attributes. The attributes can be used manually or via Pango * markup. * * It can also be used to explore available features in OpenType fonts * and their effect. */ #include <gtk/gtk.h> #include <pango/pangofc-font.h> #include <hb.h> #include <hb-ot.h> #include <hb-ft.h> static GtkWidget *label; static GtkWidget *settings; static GtkWidget *font; static GtkWidget *script_lang; static GtkWidget *resetbutton; static GtkWidget *numcasedefault; static GtkWidget *numspacedefault; static GtkWidget *fractiondefault; static GtkWidget *stack; static GtkWidget *entry; #define num_features 40 static GtkWidget *toggle[num_features]; static GtkWidget *icon[num_features]; static const char *feature_names[num_features] = { "kern", "liga", "dlig", "hlig", "clig", "smcp", "c2sc", "pcap", "c2pc", "unic", "cpsp", "case", "lnum", "onum", "pnum", "tnum", "frac", "afrc", "zero", "nalt", "sinf", "swsh", "cswh", "locl", "calt", "hist", "salt", "titl", "rand", "subs", "sups", "init", "medi", "fina", "isol", "ss01", "ss02", "ss03", "ss04", "ss05" }; static void update_display (void) { GString *s; char *font_desc; char *font_settings; const char *text; gboolean has_feature; int i; hb_tag_t lang_tag; GtkTreeModel *model; GtkTreeIter iter; const char *lang; text = gtk_entry_get_text (GTK_ENTRY (entry)); font_desc = gtk_font_chooser_get_font (GTK_FONT_CHOOSER (font)); s = g_string_new (""); has_feature = FALSE; for (i = 0; i < num_features; i++) { if (!gtk_widget_is_sensitive (toggle[i])) continue; if (GTK_IS_RADIO_BUTTON (toggle[i])) { if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (toggle[i]))) { if (has_feature) g_string_append (s, ", "); g_string_append (s, gtk_buildable_get_name (GTK_BUILDABLE (toggle[i]))); g_string_append (s, " 1"); has_feature = TRUE; } } else { if (has_feature) g_string_append (s, ", "); g_string_append (s, gtk_buildable_get_name (GTK_BUILDABLE (toggle[i]))); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (toggle[i]))) g_string_append (s, " 1"); else g_string_append (s, " 0"); has_feature = TRUE; } } font_settings = g_string_free (s, FALSE); gtk_label_set_text (GTK_LABEL (settings), font_settings); if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (script_lang), &iter)) { model = gtk_combo_box_get_model (GTK_COMBO_BOX (script_lang)); gtk_tree_model_get (model, &iter, 3, &lang_tag, -1); lang = hb_language_to_string (hb_ot_tag_to_language (lang_tag)); } else lang = NULL; s = g_string_new (""); g_string_append_printf (s, "<span font_desc='%s' font_features='%s'", font_desc, font_settings); if (lang) g_string_append_printf (s, " lang='%s'", lang); g_string_append_printf (s, ">%s</span>", text); gtk_label_set_markup (GTK_LABEL (label), s->str); g_string_free (s, TRUE); g_free (font_desc); g_free (font_settings); } static PangoFont * get_pango_font (void) { PangoFontDescription *desc; PangoContext *context; PangoFontMap *map; desc = gtk_font_chooser_get_font_desc (GTK_FONT_CHOOSER (font)); context = gtk_widget_get_pango_context (font); map = pango_context_get_font_map (context); return pango_font_map_load_font (map, context, desc); } static struct { const char *name; hb_script_t script; } script_names[] = { { "Common", HB_SCRIPT_COMMON }, { "Inherited", HB_SCRIPT_INHERITED }, { "Unknown", HB_SCRIPT_UNKNOWN }, { "Arabic", HB_SCRIPT_ARABIC }, { "Armenian", HB_SCRIPT_ARMENIAN }, { "Bengali", HB_SCRIPT_BENGALI }, { "Cyrillic", HB_SCRIPT_CYRILLIC }, { "Devanagari", HB_SCRIPT_DEVANAGARI }, { "Georgian", HB_SCRIPT_GEORGIAN }, { "Greek", HB_SCRIPT_GREEK }, { "Gujarati", HB_SCRIPT_GUJARATI }, { "Gurmukhi", HB_SCRIPT_GURMUKHI }, { "Hangul", HB_SCRIPT_HANGUL }, { "Han", HB_SCRIPT_HAN }, { "Hebrew", HB_SCRIPT_HEBREW }, { "Hiragana", HB_SCRIPT_HIRAGANA }, { "Kannada", HB_SCRIPT_KANNADA }, { "Katakana", HB_SCRIPT_KATAKANA }, { "Lao", HB_SCRIPT_LAO }, { "Latin", HB_SCRIPT_LATIN }, { "Malayalam", HB_SCRIPT_MALAYALAM }, { "Oriya", HB_SCRIPT_ORIYA }, { "Tamil", HB_SCRIPT_TAMIL }, { "Telugu", HB_SCRIPT_TELUGU }, { "Thai", HB_SCRIPT_THAI }, { "Tibetan", HB_SCRIPT_TIBETAN }, { "Bopomofo", HB_SCRIPT_BOPOMOFO } /* FIXME: complete */ }; static struct { const char *name; hb_tag_t tag; } language_names[] = { { "Arabic", HB_TAG ('A','R','A',' ') }, { "Romanian", HB_TAG ('R','O','M',' ') }, { "Skolt Sami", HB_TAG ('S','K','S',' ') }, { "Northern Sami", HB_TAG ('N','S','M',' ') }, { "Kildin Sami", HB_TAG ('K','S','M',' ') }, { "Moldavian", HB_TAG ('M','O','L',' ') }, { "Turkish", HB_TAG ('T','R','K',' ') }, { "Azerbaijani", HB_TAG ('A','Z','E',' ') }, { "Crimean Tatar", HB_TAG ('C','R','T',' ') }, { "Serbian", HB_TAG ('S','R','B',' ') }, { "German", HB_TAG ('D','E','U',' ') } /* FIXME: complete */ }; typedef struct { hb_tag_t script_tag; hb_tag_t lang_tag; unsigned int script_index; unsigned int lang_index; } TagPair; static guint tag_pair_hash (gconstpointer data) { const TagPair *pair = data; return pair->script_tag + pair->lang_tag; } static gboolean tag_pair_equal (gconstpointer a, gconstpointer b) { const TagPair *pair_a = a; const TagPair *pair_b = b; return pair_a->script_tag == pair_b->script_tag && pair_a->lang_tag == pair_b->lang_tag; } static void update_script_combo (void) { GtkListStore *store; hb_font_t *hb_font; gint i, j, k, l; FT_Face ft_face; PangoFont *pango_font; GHashTable *tags; GHashTableIter iter; TagPair *pair; store = gtk_list_store_new (4, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT); pango_font = get_pango_font (); ft_face = pango_fc_font_lock_face (PANGO_FC_FONT (pango_font)), hb_font = hb_ft_font_create (ft_face, NULL); tags = g_hash_table_new_full (tag_pair_hash, tag_pair_equal, g_free, NULL); pair = g_new (TagPair, 1); pair->script_tag = HB_OT_TAG_DEFAULT_SCRIPT; pair->lang_tag = HB_OT_TAG_DEFAULT_LANGUAGE; g_hash_table_insert (tags, pair, g_strdup ("Default")); if (hb_font) { hb_tag_t tables[2] = { HB_OT_TAG_GSUB, HB_OT_TAG_GPOS }; hb_face_t *hb_face; hb_face = hb_font_get_face (hb_font); for (i= 0; i < 2; i++) { hb_tag_t scripts[80]; unsigned int script_count = G_N_ELEMENTS (scripts); hb_ot_layout_table_get_script_tags (hb_face, tables[i], 0, &script_count, scripts); for (j = 0; j < script_count; j++) { hb_tag_t languages[80]; unsigned int language_count = G_N_ELEMENTS (languages); pair = g_new (TagPair, 1); pair->script_tag = scripts[j]; pair->lang_tag = HB_OT_TAG_DEFAULT_LANGUAGE; pair->script_index = j; pair->lang_index = HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX; g_hash_table_add (tags, pair); hb_ot_layout_script_get_language_tags (hb_face, tables[i], j, 0, &language_count, languages); for (k = 0; k < language_count; k++) { pair = g_new (TagPair, 1); pair->script_tag = scripts[j]; pair->lang_tag = languages[k]; pair->script_index = j; pair->lang_index = k; g_hash_table_add (tags, pair); } } } hb_face_destroy (hb_face); } pango_fc_font_unlock_face (PANGO_FC_FONT (pango_font)); g_object_unref (pango_font); g_hash_table_iter_init (&iter, tags); while (g_hash_table_iter_next (&iter, (gpointer *)&pair, NULL)) { const char *scriptname; char scriptbuf[5]; const char *langname; char langbuf[5]; char *name; if (pair->script_tag == HB_OT_TAG_DEFAULT_SCRIPT) scriptname = "Default"; else if (pair->script_tag == HB_TAG ('m','a','t','h')) scriptname = "Math"; else { hb_script_t script; hb_tag_to_string (pair->script_tag, scriptbuf); scriptbuf[4] = 0; scriptname = scriptbuf; script = hb_script_from_iso15924_tag (pair->script_tag); for (k = 0; k < G_N_ELEMENTS (script_names); k++) { if (script == script_names[k].script) { scriptname = script_names[k].name; break; } } } if (pair->lang_tag == HB_OT_TAG_DEFAULT_LANGUAGE) langname = "Default"; else { hb_tag_to_string (pair->lang_tag, langbuf); langbuf[4] = 0; langname = langbuf; for (l = 0; l < G_N_ELEMENTS (language_names); l++) { if (pair->lang_tag == language_names[l].tag) { langname = language_names[l].name; break; } } } name = g_strdup_printf ("%s - %s", scriptname, langname); gtk_list_store_insert_with_values (store, NULL, -1, 0, name, 1, pair->script_index, 2, pair->lang_index, 3, pair->lang_tag, -1); g_free (name); } g_hash_table_destroy (tags); gtk_combo_box_set_model (GTK_COMBO_BOX (script_lang), GTK_TREE_MODEL (store)); gtk_combo_box_set_active (GTK_COMBO_BOX (script_lang), 0); } static void update_features (void) { gint i, j, k; GtkTreeModel *model; GtkTreeIter iter; guint script_index, lang_index; PangoFont *pango_font; FT_Face ft_face; hb_font_t *hb_font; for (i = 0; i < num_features; i++) gtk_widget_set_opacity (icon[i], 0); /* set feature presence checks from the font features */ if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (script_lang), &iter)) return; model = gtk_combo_box_get_model (GTK_COMBO_BOX (script_lang)); gtk_tree_model_get (model, &iter, 1, &script_index, 2, &lang_index, -1); pango_font = get_pango_font (); ft_face = pango_fc_font_lock_face (PANGO_FC_FONT (pango_font)), hb_font = hb_ft_font_create (ft_face, NULL); if (hb_font) { hb_tag_t tables[2] = { HB_OT_TAG_GSUB, HB_OT_TAG_GPOS }; hb_face_t *hb_face; hb_face = hb_font_get_face (hb_font); for (i = 0; i < 2; i++) { hb_tag_t features[80]; unsigned int count = G_N_ELEMENTS(features); hb_ot_layout_language_get_feature_tags (hb_face, tables[i], script_index, lang_index, 0, &count, features); for (j = 0; j < count; j++) { for (k = 0; k < num_features; k++) { if (hb_tag_from_string (feature_names[k], -1) == features[j]) gtk_widget_set_opacity (icon[k], 0.5); } } } hb_face_destroy (hb_face); } pango_fc_font_unlock_face (PANGO_FC_FONT (pango_font)); g_object_unref (pango_font); } static void font_changed (void) { update_script_combo (); } static void script_changed (void) { update_features (); update_display (); } static void reset_features (void) { int i; gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (numcasedefault), TRUE); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (numspacedefault), TRUE); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fractiondefault), TRUE); for (i = 0; i < num_features; i++) { if (!GTK_IS_RADIO_BUTTON (toggle[i])) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (toggle[i]), FALSE); gtk_widget_set_sensitive (toggle[i], FALSE); } } } static char *text; static void switch_to_entry (void) { text = g_strdup (gtk_entry_get_text (GTK_ENTRY (entry))); gtk_stack_set_visible_child_name (GTK_STACK (stack), "entry"); } static void switch_to_label (void) { g_free (text); text = NULL; gtk_stack_set_visible_child_name (GTK_STACK (stack), "label"); update_display (); } static gboolean entry_key_press (GtkEntry *entry, GdkEventKey *event) { if (event->keyval == GDK_KEY_Escape) { gtk_entry_set_text (GTK_ENTRY (entry), text); switch_to_label (); return GDK_EVENT_STOP; } return GDK_EVENT_PROPAGATE; } GtkWidget * do_font_features (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkBuilder *builder; int i; builder = gtk_builder_new_from_resource ("/font_features/font-features.ui"); gtk_builder_add_callback_symbol (builder, "update_display", update_display); gtk_builder_add_callback_symbol (builder, "font_changed", font_changed); gtk_builder_add_callback_symbol (builder, "script_changed", script_changed); gtk_builder_add_callback_symbol (builder, "reset", reset_features); gtk_builder_add_callback_symbol (builder, "switch_to_entry", switch_to_entry); gtk_builder_add_callback_symbol (builder, "switch_to_label", switch_to_label); gtk_builder_add_callback_symbol (builder, "entry_key_press", G_CALLBACK (entry_key_press)); gtk_builder_connect_signals (builder, NULL); window = GTK_WIDGET (gtk_builder_get_object (builder, "window")); label = GTK_WIDGET (gtk_builder_get_object (builder, "label")); settings = GTK_WIDGET (gtk_builder_get_object (builder, "settings")); resetbutton = GTK_WIDGET (gtk_builder_get_object (builder, "reset")); font = GTK_WIDGET (gtk_builder_get_object (builder, "font")); script_lang = GTK_WIDGET (gtk_builder_get_object (builder, "script_lang")); numcasedefault = GTK_WIDGET (gtk_builder_get_object (builder, "numcasedefault")); numspacedefault = GTK_WIDGET (gtk_builder_get_object (builder, "numspacedefault")); fractiondefault = GTK_WIDGET (gtk_builder_get_object (builder, "fractiondefault")); stack = GTK_WIDGET (gtk_builder_get_object (builder, "stack")); entry = GTK_WIDGET (gtk_builder_get_object (builder, "entry")); for (i = 0; i < num_features; i++) { char *iname; toggle[i] = GTK_WIDGET (gtk_builder_get_object (builder, feature_names[i])); iname = g_strconcat (feature_names[i], "_pres", NULL); icon[i] = GTK_WIDGET (gtk_builder_get_object (builder, iname)); g_free (iname); } font_changed (); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); g_object_unref (builder); } if (!gtk_widget_get_visible (window)) gtk_window_present (GTK_WINDOW (window)); else gtk_widget_destroy (window); return window; } ��(uuay)se_resize_cursor.png:�������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��t��t�fx���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3����IDATX��MHcW��s��IZ�U��t*K[ �K����-������"JA7J�J��R�n�"HCB t�.-��D̦P�VQ'?����5�$79���ؑN�Ԕ.���=�����9���]��>�e�)O�kK�����V�R���~������Cah��z+�<[+(����r"��5�Jɒ$I����%�ey&a�x| uP��FQ���! }l������`~���x<�RMMM�t:y<O<z��<����S"��gdrr��<MW$���]���GGG��d�0��j5��� Z]]��h4:>>���A����>Y�9��j���p��T*@DD����>�uf��9PWWw�D~�h4�^��$�Itvv ;;;ʉ� �������x&�b�J���l63��õ�(>�m����������R��^�x<?rΩ���p��T]]M�H$r����6������8�i��"3ƈ��d2�`�Xf�E@�V�x@E.�@�f����s.�� 4 �|>~xx���rMp�ӳ��2c�.ffff�ٔ ���~������@��u:ݗ�g�f���`��@��� ����^XX����Ͷ������V�}������.���E���]������؍́܉p"��j����v��zzz������m��\�����}~�Z�hnn��i��W!�|>�; o�L&lmm� [<�X,��B���h42��X2s�pX,T(���@��X,6�P(榦����t�́�`�D�s�R9�cF�DT�ɲ|1�1�1V��5��땑H$������������ZI�.�xQ��T�����`�sS�622������s^_YY���� ˲\(_.3F���U---�n ���5�T*犙�ʶ*��-//ˌ1ܶ�b�k�$�?�BY�8�i�F��������B�e�$IF�ʺlii�=Q#TB��i��t�`��}�w�셡����>����"����3�l8���2t��j��>P �$��0�8�� ˘�#�=��2��t���ן�a�,Ν�����IEND�B`���(uuay)reset.css�����p������/* @import this colorsheet to get the default values for every property. * This is useful when writing special CSS tests that should not be * inluenced by themes - not even the default ones. * Keep in mind that the output will be very ugly and not look like * anything GTK. * Also, when adding new style properties, please add them here. */ * { all: unset; } ��(uuay)none_cursor.png����������PNG ��� IHDR��� ��� ���szz����bKGD������������� pHYs����������tIME�6PA���iTXtComment�����Created with GIMPd.e���IDATX������� ��nH@���� ���W�����IEND�B`���(uuay)css_shadows/�����[���Y���application_demo.c������� ������/* Application Class * * Demonstrates a simple application. * * This example uses GtkApplication, GtkApplicationWindow, GtkBuilder * as well as GMenu and GResource. Due to the way GtkApplication is structured, * it is run as a separate process. */ #include "config.h" #include <gtk/gtk.h> static gboolean name_seen; static GtkWidget *placeholder; static void on_name_appeared (GDBusConnection *connection, const gchar *name, const gchar *name_owner, gpointer user_data) { name_seen = TRUE; } static void on_name_vanished (GDBusConnection *connection, const gchar *name, gpointer user_data) { if (!name_seen) return; if (placeholder) { gtk_widget_destroy (placeholder); g_object_unref (placeholder); placeholder = NULL; } } #ifdef G_OS_WIN32 #define APP_EXTENSION ".exe" #else #define APP_EXTENSION #endif GtkWidget * do_application_demo (GtkWidget *toplevel) { static guint watch = 0; if (watch == 0) watch = g_bus_watch_name (G_BUS_TYPE_SESSION, "org.gtk.Demo2", 0, on_name_appeared, on_name_vanished, NULL, NULL); if (placeholder == NULL) { const gchar *command; GError *error = NULL; if (g_file_test ("./gtk3-demo-application" APP_EXTENSION, G_FILE_TEST_IS_EXECUTABLE)) command = "./gtk3-demo-application" APP_EXTENSION; else command = "gtk3-demo-application"; if (!g_spawn_command_line_async (command, &error)) { g_warning ("%s", error->message); g_error_free (error); } placeholder = gtk_label_new (""); g_object_ref_sink (placeholder); } else { g_dbus_connection_call_sync (g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL), "org.gtk.Demo2", "/org/gtk/Demo2", "org.gtk.Actions", "Activate", g_variant_new ("(sava{sv})", "quit", NULL, NULL), NULL, 0, G_MAXINT, NULL, NULL); } return placeholder; } ��(uuay)context_menu_cursor.png����������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��t��t�fx���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3�����IDATX���_LSw���-P��耥����l�Yئ��b"�n����p���9S�j`ܓ��,�!��A���aYC�P$�Ku�����={h/v*ڱ���Ms{����{���"���-�t:�LOO�VUU�Hl� p8I""�n��^���EG��������)���>�����",@ss��A���{WI����۶m��k��ݻw������˗� <��#,�֭[%33S���% >�隆���#-�k�Y�a(����e�������U/^lMNN^ ,�%���W�^���ږ������9������bN�����R\�r�]�vi���%===_�/���@�{SE�Rtuu�g���r�������1/ �2Xy����߯U\�|���O�xh[�(�8s�---�Y��K�.}�< b����O��������ʳg�~ <����fߌ�y��I�?NYYYuggg-���x�d����رc����aÆ��������"�u�i�3j�������$&&b�۹~�:CCCڦM�>;z��dee�@��1�(���`&���%99Y�������|���O�8�1��������� �������7~�����`D�����a�1����Hmm����Jnn�������^�X��N��lL����b�����������%;v��0�͛7W� @\$m<�`�:tH�0���N�\����)�s�NIKK��)~���x<��J�'[$��I6?�����R�lhh�x(�z�ߍ�����q8�v�ezzZ�[��=�3�>>>�d�f`rr�{bb��4����ەR��a�oY�̍����{���������7u]W��Ւ��!˖-�;w�mmmm@����KED�n����:���S�N���0���Ad�����rd߾}�?~��x����߽{�a��HII�0D$ H�v�Z*�����>��4 ]�〔yw��p$�;w�C�- ?J� šP�^ PJ)�ƍ����O�W���:B�P��� z�ށP(t�����۷o��`������R���$!�h���ulRMM�;%%%[|>�tss�ccc���{������>>`���x��E*����f~7���PB���_Z���H��$�j�J3�9�5���@ER��e<�����T��%4������IEND�B`���(uuay)css_pixbufs.c����������/* Theming/Animated Backgrounds * * This demo is done in honour of the Pixbufs demo further down. * It is done exclusively with CSS as the background of the window. */ #include <gtk/gtk.h> static void show_parsing_error (GtkCssProvider *provider, GtkCssSection *section, const GError *error, GtkTextBuffer *buffer) { GtkTextIter start, end; const char *tag_name; gtk_text_buffer_get_iter_at_line_index (buffer, &start, gtk_css_section_get_start_line (section), gtk_css_section_get_start_position (section)); gtk_text_buffer_get_iter_at_line_index (buffer, &end, gtk_css_section_get_end_line (section), gtk_css_section_get_end_position (section)); if (g_error_matches (error, GTK_CSS_PROVIDER_ERROR, GTK_CSS_PROVIDER_ERROR_DEPRECATED)) tag_name = "warning"; else tag_name = "error"; gtk_text_buffer_apply_tag_by_name (buffer, tag_name, &start, &end); } static void css_text_changed (GtkTextBuffer *buffer, GtkCssProvider *provider) { GtkTextIter start, end; char *text; gtk_text_buffer_get_start_iter (buffer, &start); gtk_text_buffer_get_end_iter (buffer, &end); gtk_text_buffer_remove_all_tags (buffer, &start, &end); text = gtk_text_buffer_get_text (buffer, &start, &end, FALSE); gtk_css_provider_load_from_data (provider, text, -1, NULL); g_free (text); gtk_style_context_reset_widgets (gdk_screen_get_default ()); } static void apply_css (GtkWidget *widget, GtkStyleProvider *provider) { gtk_style_context_add_provider (gtk_widget_get_style_context (widget), provider, G_MAXUINT); if (GTK_IS_CONTAINER (widget)) gtk_container_forall (GTK_CONTAINER (widget), (GtkCallback) apply_css, provider); } GtkWidget * do_css_pixbufs (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *paned, *container, *child; GtkStyleProvider *provider; GtkTextBuffer *text; GBytes *bytes; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "Animated Backgrounds"); gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (do_widget)); gtk_window_set_default_size (GTK_WINDOW (window), 400, 300); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); paned = gtk_paned_new (GTK_ORIENTATION_VERTICAL); gtk_container_add (GTK_CONTAINER (window), paned); /* Need a filler so we get a handle */ child = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (paned), child); text = gtk_text_buffer_new (NULL); gtk_text_buffer_create_tag (text, "warning", "underline", PANGO_UNDERLINE_SINGLE, NULL); gtk_text_buffer_create_tag (text, "error", "underline", PANGO_UNDERLINE_ERROR, NULL); provider = GTK_STYLE_PROVIDER (gtk_css_provider_new ()); container = gtk_scrolled_window_new (NULL, NULL); gtk_container_add (GTK_CONTAINER (paned), container); child = gtk_text_view_new_with_buffer (text); gtk_container_add (GTK_CONTAINER (container), child); g_signal_connect (text, "changed", G_CALLBACK (css_text_changed), provider); bytes = g_resources_lookup_data ("/css_pixbufs/gtk.css", 0, NULL); gtk_text_buffer_set_text (text, g_bytes_get_data (bytes, NULL), g_bytes_get_size (bytes)); g_bytes_unref (bytes); g_signal_connect (provider, "parsing-error", G_CALLBACK (show_parsing_error), gtk_text_view_get_buffer (GTK_TEXT_VIEW (child))); apply_css (window, provider); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)alias_cursor.png������g�������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��t��t�fx���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3����DIDATX��MhTW�/3of?��Ih0M�H"1"A�.JK��n�,RwD� B@��]Y����E��Xli�!b�DI!b�X�8�/�S�̼���q�jc���?�}�{���9����/��8��lvĶ�9۶�m۞�d2 ˲�\XX�?r�H0�±�bI5���F����Q������Vn߾M0����}����H$r���Eȋ�[\����<���U;v�о}�466���f555��ŋ�������x�|qq��qK��Quuu����UUU���J�>}Z�����������5��l6�],s�;&�q�s�N��)�4���UVV�S�N��<�ƍ'�5��l��'N���K�㈥ؾԆ��ܡ��_�z���M6Ms���4�x��W�PQQAqq1���X�EUU�a099I �N�P(�$��0Ð���0����|>***���%���c"�>����JKK�d�aV���X�E4�ɓ'�ڵ��7o���hlldttt5|+�,k������o�����;w�p'Od۶[�t������l6[�N�Wt`�&mmm\�tixQD5����o� +���Ç߈�b?'�������J677��u���ƍ?��O]u�6mRCC�����T>��_ �g�8}�l]fp�8�-0���{zz6�?�4y��!�����̙�RU+"@�+��@�{�o۶m�m[gϞUKK�b��r�c�+ljM�������P($@���J&�9��&���"�x>r�T�p8�{��K@*�J������8���H�����{=�7�.�����x<�m�ܻw˲�B�ٳ���������joo����511!��$I�x\---�~�|�G�U&��$�����)���)���� � M��{zz�y����t��uY�����\�_>6����{��u]�9sF���ӹs�N�s��z琸p�FFF����% ]�rE,U�������fgff�jjj�������k�H$8~�8��dx�E��͛u��]�088���b?�OsZ7����������{�n�!�W!/�y�`�{���O��~���.�dF7�����IEND�B`���(uuay)gnome-gsame.png����������PNG ��� IHDR���0���0���W�����gAMA���1�_��^IDATx��Y�dWy��[{U����3ӳ�3�a0��+f1F� !�HI�<D��Dx�"E��D(&Q$�DP� ��2�Ǟ��===�յ�};��[֝�x����p���{�����K���__��K�?�)�q�����t����mg�F�k�7�N�7��qzy���>����7x�,��g��~S���w�o��ߟk�0���3��֫6�Y��,�b�MWr�?�[�?�;�j���1S�|�������z���oY�|쳷S;s%���>sj�\3�Җ�\+A� �������{?��+%�y��2�� P/=S� .>��٘cƘ2�j;�_���'VF��;�k�wN;��������nj�Y��o9���-���dG-����ӿ��w?�ӟ=��B()�����9� 4�&0L����.~��$%KL(K���~�|�_��ѹ�|����h#B�4�xۍK�x`�F�i�猆���F��?��Ikm��!��qc�Q%�7 B��Y`����x�)�uJRc���|�'g�8���w����:�{S@���6�s:�.�&��R�0 ���=y�;����zRJ��ß���[t_����}&�[i؋.�Y�����o<���/^��*���[@�{�w���\� ?�j���]`�*�s��L�1��6GU0!u����['�<_�k?v�=���gڟTJ=$�����{�냷}yzj�(����@$i�I�����ew������g�v7��#O?wn}� �/$3QHm���d�*�����ȹ��M0Q�a�I�J�DpS[1�(�����=�<�γ�3�n$&���q!�����/�~�m�o�[(���J|�SG���i�j +-��������������?�̉B��Jv1V%Sr��*���A�5q*��8�7d*#ֆ�̒:5���%����y�l�V�F�(��J��|�÷��1���X�.�Q�Mp4�`�hL`�<�h����~膉je�o���3�� �EAtTH(�UF�t�=�Tj i-֤�<��NG�h�K���?��ѳ�}jD�G���Z��v9s7.��R��"h���©+���i��h��:N���!�T�+j�h;Md�q��[?�3/��ȯ0���~ёj�c�a�y�#�N�$`&�4�?��� �"��INfcn��'2k@VD�Ǒ(���ԩ7� 2!T�jHc��j$�0ƒ�-읟�\���-7.��al� ]�Bi>K��U!Ejg;����*�s�f�����[)y�@����E� ��^����G�٠�L�^�B6v@��$��9J@���YJ���@�c��p@h�s�;�}��j�P� `����8V\�I��b+~�fժR9����֘���0r#�?ch��������E�b�5US�б2wd�ЙB�D���E�F�(�ՠ-�4ƶ��u�� �r���a�"nR���͜>��Y1U� @�2���q�{�78�a�sC^,y�r�\ģ'\�kW�!�WbJC�v��F�d�IJ�j�D�S��2�B ���#l�������\���S�8��I�M���J��V��@]e���߳�8��3����<M�Y�v%$O?;���L��R���Vgfwŷq�J�+�VE���e� �zN��a��eB�1:rɓ�t�I<�C��&�n��F�/���c/�\.<PZ�0<g{.t�ۗ���:}՜;*^��[�g`-�H�Z����h̤vcos�a�EW 1�J��2��P�7i��4:Ш�iC�1 �$I���A��IE��Ѝ"�_�FF댽ӫ������Lݜj�g/��>lu2mu���6����Z�YÿvW�녙��t�h6jLL�X��{wN�gy��=;��w��d�#lm'Y��,��}T�[����6Ns�D:b�j����^�t���G���)��ǟ�{��Mo�����{��.[�F�x�t+��(M� �AE�l��ZE���T�'�12�nF���/"Ql�Ҝ02�J+%A���m� �D)C�~l�"�oK�m! ��dn[yǹO�y�ԣ�%!�)�RjV)5��jK)kRJ�8�L]"� ��i昭�n�il �M3"����݄�"OZV��c6F.[����#7������U�P�xSD�q��[kSkmb���st!D�@<ߪ����v���:;f�4�����Z�G(9�����Α)� /Í#�$'�e�Z��bk��Ax>.v^@^��ֶ��Mkm�Z+�1Ba�1�B�I�T��n�+��$��:�vg��jT�3p�$�(c�'�h����3Mr�&&4� HP��iz�6�%�t ��N��;�j�Zk��T�!��X�����p�55�afv����V�hC�E�4��Mb�"��Ռ�7N�:!������hk3�\� J���r���$PF;*� ��6|k��1�L5!D0?9uY>���@�1�nR��I�i�Ē�:��6�/ʉ� Ɉ2�ֶhQ8����r�\���g�*h^��1b!D`����E`�3U� @=v�������V�0M�� "�����I��$���2���.f[� `uu{�����W[Bk�g�^ ,�������hk�B$���Z;�֎��$W���|��?Ԭ���7�pGj����<N$�$�tC&����{�.�T�V����^8q���_�:i�[��5��i�X�!L���Z���Yq���Џ��r|va��j�v��Ś~jqS�\l�9���ٻ�f� V��pym�Ջ��by�ι�����< �R���H��&�(s���+�;��� /�2���a�M����0`k��}�s�ݿ�(�X]��p4B ���6�st��7Ԛթ�/\�P�F���B$�L�Xܹ�|�ѣ_>z��}��������أ���O<��,��mF�Wu�̥�O�]{l���#3��-�R=И�^Z����I��+�~`�6t���kur��>��d�Z�֒8Ɋ3T�̬\3*_;w.6�����?:p`��f�9��z�Dg�n�Į�Kk�)Ԇ���fB�XJ�� Z�z�t���x�{nw�5�g1I��T+dy&�,#I�0�|�$�[7 �n�[��H^�ѷ�����Ώ�N�8���%�>Zq�����^�sw��~)�� !z��v��b(�p��d:H����(�4I�yF�RE I�Z�Q��=�.T�Zp�Z�%^+�x�:!I�f)I���>��3�\���G����h)cT�Z)��cG��Q�����z@�զ����2rG��K�k�kHuN��IAp��n�˅^��R7a@�ݡ��.Q�u�����Խ���]�;vu��Z��!T��}j�Q����N�RT+U�f��X��C�� �0&'B?LK�Rns��u�^\yJ y����v�~����1q�FC�bðpq1�!B@K)m!)��W.|��;}?�QS������ �4���,J�V��~� o��k�w�N���33�^��zb8��)q����]Y�x2�a�%�b �� !�TV�TR�qr)e����g���i���9#o$�4Ea�,Q��<ׄQ�\|����+eƽ®z@�����$��GI��������L��������/c�&J�~T�N���\^�Vm�R1��h!e�/4��O�Q�]�$�q]_x^D�h���1'�{&���of�@�&����`%���4�j�����.�����)!D��F����� �4�n�)�4�ι���Jڻ�0n�^@�eB'q��a��_|�9?�R��5�-��oL ����J��kgѣ��������4�`aaA���}�l6f���x�Ӿ�V����n���_L��L�y�^�8�+���)�,"������}�M�R�����]g�U/�m�C�C��Ҁ���/�� \K�y��lA�[�����_��/M����-u�ǽ�v���%�J�y#��҄D�v @�tpP�����K�Qq?6�6�*y��� �|�t�K�RRU�Ve���n������~�bՊ5.e�mm�qA��I}y`=�N�����m+�_ϾNi�Jg�3ޤ����W� ��������e)q+�|���%Ķ�;��^s���1��a�����IEND�B`���(uuay)rotated_text.c���!������/* Pango/Rotated Text * * This demo shows how to use PangoCairo to draw rotated and transformed * text. The right pane shows a rotated GtkLabel widget. * * In both cases, a custom PangoCairo shape renderer is installed to draw * a red heard using cairo drawing operations instead of the Unicode heart * character. */ #include <gtk/gtk.h> #include <string.h> #define HEART "♥" const char text[] = "I ♥ GTK+"; static void fancy_shape_renderer (cairo_t *cr, PangoAttrShape *attr, gboolean do_path, gpointer data) { double x, y; cairo_get_current_point (cr, &x, &y); cairo_translate (cr, x, y); cairo_scale (cr, (double) attr->ink_rect.width / PANGO_SCALE, (double) attr->ink_rect.height / PANGO_SCALE); switch (GPOINTER_TO_UINT (attr->data)) { case 0x2665: /* U+2665 BLACK HEART SUIT */ { cairo_move_to (cr, .5, .0); cairo_line_to (cr, .9, -.4); cairo_curve_to (cr, 1.1, -.8, .5, -.9, .5, -.5); cairo_curve_to (cr, .5, -.9, -.1, -.8, .1, -.4); cairo_close_path (cr); } break; } if (!do_path) { cairo_set_source_rgb (cr, 1., 0., 0.); cairo_fill (cr); } } PangoAttrList * create_fancy_attr_list_for_layout (PangoLayout *layout) { PangoAttrList *attrs; PangoFontMetrics *metrics; int ascent; PangoRectangle ink_rect, logical_rect; const char *p; /* Get font metrics and prepare fancy shape size */ metrics = pango_context_get_metrics (pango_layout_get_context (layout), pango_layout_get_font_description (layout), NULL); ascent = pango_font_metrics_get_ascent (metrics); logical_rect.x = 0; logical_rect.width = ascent; logical_rect.y = -ascent; logical_rect.height = ascent; ink_rect = logical_rect; pango_font_metrics_unref (metrics); /* Set fancy shape attributes for all hearts */ attrs = pango_attr_list_new (); for (p = text; (p = strstr (p, HEART)); p += strlen (HEART)) { PangoAttribute *attr; attr = pango_attr_shape_new_with_data (&ink_rect, &logical_rect, GUINT_TO_POINTER (g_utf8_get_char (p)), NULL, NULL); attr->start_index = p - text; attr->end_index = attr->start_index + strlen (HEART); pango_attr_list_insert (attrs, attr); } return attrs; } static gboolean rotated_text_draw (GtkWidget *widget, cairo_t *cr, gpointer data) { #define RADIUS 150 #define N_WORDS 5 #define FONT "Serif 18" PangoContext *context; PangoLayout *layout; PangoFontDescription *desc; cairo_pattern_t *pattern; PangoAttrList *attrs; double device_radius; int width, height; int i; /* Create a cairo context and set up a transformation matrix so that the user * space coordinates for the centered square where we draw are [-RADIUS, RADIUS], * [-RADIUS, RADIUS]. * We first center, then change the scale. */ width = gtk_widget_get_allocated_width (widget); height = gtk_widget_get_allocated_height (widget); device_radius = MIN (width, height) / 2.; cairo_translate (cr, device_radius + (width - 2 * device_radius) / 2, device_radius + (height - 2 * device_radius) / 2); cairo_scale (cr, device_radius / RADIUS, device_radius / RADIUS); /* Create and a subtle gradient source and use it. */ pattern = cairo_pattern_create_linear (-RADIUS, -RADIUS, RADIUS, RADIUS); cairo_pattern_add_color_stop_rgb (pattern, 0., .5, .0, .0); cairo_pattern_add_color_stop_rgb (pattern, 1., .0, .0, .5); cairo_set_source (cr, pattern); /* Create a PangoContext and set up our shape renderer */ context = gtk_widget_create_pango_context (widget); pango_cairo_context_set_shape_renderer (context, fancy_shape_renderer, NULL, NULL); /* Create a PangoLayout, set the text, font, and attributes */ layout = pango_layout_new (context); pango_layout_set_text (layout, text, -1); desc = pango_font_description_from_string (FONT); pango_layout_set_font_description (layout, desc); attrs = create_fancy_attr_list_for_layout (layout); pango_layout_set_attributes (layout, attrs); pango_attr_list_unref (attrs); /* Draw the layout N_WORDS times in a circle */ for (i = 0; i < N_WORDS; i++) { int width, height; /* Inform Pango to re-layout the text with the new transformation matrix */ pango_cairo_update_layout (cr, layout); pango_layout_get_pixel_size (layout, &width, &height); cairo_move_to (cr, - width / 2, - RADIUS * .9); pango_cairo_show_layout (cr, layout); /* Rotate for the next turn */ cairo_rotate (cr, G_PI*2 / N_WORDS); } /* free the objects we created */ pango_font_description_free (desc); g_object_unref (layout); g_object_unref (context); cairo_pattern_destroy (pattern); return FALSE; } GtkWidget * do_rotated_text (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *box; GtkWidget *drawing_area; GtkWidget *label; PangoLayout *layout; PangoAttrList *attrs; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Rotated Text"); gtk_window_set_default_size (GTK_WINDOW (window), 4 * RADIUS, 2 * RADIUS); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_set_homogeneous (GTK_BOX (box), TRUE); gtk_container_add (GTK_CONTAINER (window), box); /* Add a drawing area */ drawing_area = gtk_drawing_area_new (); gtk_container_add (GTK_CONTAINER (box), drawing_area); gtk_style_context_add_class (gtk_widget_get_style_context (drawing_area), GTK_STYLE_CLASS_VIEW); g_signal_connect (drawing_area, "draw", G_CALLBACK (rotated_text_draw), NULL); /* And a label */ label = gtk_label_new (text); gtk_container_add (GTK_CONTAINER (box), label); gtk_label_set_angle (GTK_LABEL (label), 45); /* Set up fancy stuff on the label */ layout = gtk_label_get_layout (GTK_LABEL (label)); pango_cairo_context_set_shape_renderer (pango_layout_get_context (layout), fancy_shape_renderer, NULL, NULL); attrs = create_fancy_attr_list_for_layout (layout); gtk_label_set_attributes (GTK_LABEL (label), attrs); pango_attr_list_unref (attrs); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)tabs.c�������/* Text View/Tabs * * GtkTextView can position text at fixed positions, using tabs. */ #include <gtk/gtk.h> #include <gdk/gdkkeysyms.h> GtkWidget * do_tabs (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *view; GtkWidget *sw; GtkTextBuffer *buffer; PangoTabArray *tabs; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "Tabs"); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_default_size (GTK_WINDOW (window), 450, 450); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 0); view = gtk_text_view_new (); gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (view), GTK_WRAP_WORD); gtk_text_view_set_left_margin (GTK_TEXT_VIEW (view), 20); gtk_text_view_set_right_margin (GTK_TEXT_VIEW (view), 20); tabs = pango_tab_array_new (3, TRUE); pango_tab_array_set_tab (tabs, 0, PANGO_TAB_LEFT, 0); pango_tab_array_set_tab (tabs, 1, PANGO_TAB_LEFT, 150); pango_tab_array_set_tab (tabs, 2, PANGO_TAB_LEFT, 300); gtk_text_view_set_tabs (GTK_TEXT_VIEW (view), tabs); pango_tab_array_free (tabs); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)); gtk_text_buffer_set_text (buffer, "one\ttwo\tthree\nfour\tfive\tsix\nseven\teight\tnine", -1); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (window), sw); gtk_container_add (GTK_CONTAINER (sw), view); gtk_widget_show_all (sw); } if (!gtk_widget_get_visible (window)) gtk_widget_show (window); else gtk_widget_destroy (window); return window; } ��(uuay)glarea-gl.vs.glslx�������#version 330 layout(location = 0) in vec4 position; uniform mat4 mvp; void main() { gl_Position = mvp * position; } ��(uuay)zoom_in_cursor.png��������������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��t��t�fx���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3�����IDATX��WklS���i0���e�".Q A�.ц��Z� �!���U�(~PZD[��!h�l#!�h�BDT!@[� �*�6 G���m��q�=s��q��R�tt5gf�|�9� x�$ɠ�j��/#�H�(�F���{4�K��p8ܚ��9�.�Ɗ0Yg(�W�TV��VEQ���ׅ��^qpp�0}�t��f�t�RJKK�����A�N���'���0��˥X�V��t ��t:Z�v-���+�hTQe�wmnBinnV)��%�<x�4�Z-i��qv�FC�"�9�BmnnV����,�u�,��˗'�@UUUt��e���KFqy��kii�V�"A��W�XA��0I�N��Ph�֭[�tf6���Ç�1�;;;�Ξ=��Çy�ȑ/Ν;�����ǜs�t:YIIIr^mm-q�ittt�;�hoo� �F�N,�|>����tӦM{���)�-q� ���;wnp�|>6o��3g�P0=}�t�w��~�%I�����2�L���s����UPP�S���Ѓ�q��t��JKK�\�3��H�(77�$Ib��O�����%Ir���%�755���� 3�@���v;��v����r��Y^������y�f#���4>%;w>!"Z�`���b�Q[[�o���$@h�N�v�9���'��p�B""jjjZ���`0*$I���PYY EQ����� ��+���ے���u��ɯE UVV��ݻ�`0ȋ��w-�q3<看�P^^�`0�����%�N�?JE]|��c���p��솆�9s~��1� ������'ɀZ�����4�R���v�D����jTWW�a����0������F#K��ju��T�%I��z}����E�Z�o~k����ͯ7�g����'�6�� ���@E���M�[�ד����@�͞=;it�\E����z��au8���^�f �$vm���&��9���ɓ$�yyyB__�� !���}��������\�v :��cY�g� � `M\i�|c�hUe�V������(**Bnn�����>�yk��5I��ݻw�E����"�H�5����!�@��vvv*�(�ڵk���ԩS���)�5��ݻw�===L�R�Z�d q�9�zk��b���b!���D��1�-ZD�H�R���b7n�p�@�J� 0.[��w�H�m9��߿�����(q���_�V����ݻ79۶m��/> ��&����������gf�9�d�֭�D�,˽D�����ٱ��6˲�(��-[�$畖�R0�v��`-b�d�|�P�����ѣGC�?f�!�l�̙t�ҥh8�1�ƘBD��MMMѢ��7��Q]]��ˠ�S�,,++����y�v�Yyy�N322����jjj����***&,�A���zb�����mH��-*��� �vtt< ������4mڴ ���fgg��f������6���_7 ����*�V{�f�}��zÁ@�������Z�X,d2�(//����hÆ t��E����Hkk��!�A����ޜ���cǎ}�t:݊�$���Ȳ����=z�_���gV�^mO�ԩS)A�B#�����˄�gddL)..֛�f�(�x��|���QY����� X�������nݺ����E� ���ǎ;�CCC��L��4"b�����tĮ���& ������3�̵Z��?�y�ZP�(���/��j?7��˶��0H�#�|���J����A�r����k��z>D�^��u:�����}�sL�*N$�"b!J3c�c�����+���@ ����|%%%�d�����^��L%Q�B#uww+W�\�pΕ�����7^���~�o�&����ƿ*�O8�|@�H�H0 1�U�^ vX����Re9I2������IEND�B`���(uuay)spinbutton.ui��E������<?xml version="1.0" encoding="UTF-8"?> <interface> <object class="GtkAdjustment" id="basic_adjustment"> <property name="lower">-10000</property> <property name="upper">10000</property> <property name="step_increment">0.5</property> <property name="page_increment">100</property> </object> <object class="GtkAdjustment" id="hex_adjustment"> <property name="upper">255</property> <property name="step_increment">1</property> <property name="page_increment">16</property> </object> <object class="GtkAdjustment" id="time_adjustment"> <property name="upper">1410</property> <property name="step_increment">30</property> <property name="page_increment">60</property> </object> <object class="GtkAdjustment" id="month_adjustment"> <property name="lower">1</property> <property name="upper">12</property> <property name="value">1</property> <property name="step_increment">1</property> <property name="page_increment">5</property> </object> <object class="GtkWindow" id="window"> <property name="title" translatable="yes">Spin Button</property> <child> <object class="GtkGrid"> <property name="visible">1</property> <property name="margin">20</property> <property name="row-spacing">10</property> <property name="column-spacing">10</property> <child> <object class="GtkLabel"> <property name="visible">1</property> <property name="label">_Numeric</property> <property name="use_underline">1</property> <property name="mnemonic_widget">basic_spin</property> <property name="xalign">1</property> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">0</property> </packing> </child> <child> <object class="GtkSpinButton" id="basic_spin"> <property name="visible">1</property> <property name="halign">start</property> <property name="width_chars">5</property> <property name="adjustment">basic_adjustment</property> <property name="climb_rate">1</property> <property name="digits">2</property> <property name="numeric">1</property> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">0</property> </packing> </child> <child> <object class="GtkLabel" id="basic_label"> <property name="visible">1</property> <property name="width_chars">10</property> <property name="xalign">1</property> </object> <packing> <property name="left_attach">2</property> <property name="top_attach">0</property> </packing> </child> <child> <object class="GtkLabel"> <property name="visible">1</property> <property name="label">_Hexadecimal</property> <property name="use_underline">1</property> <property name="mnemonic_widget">hex_spin</property> <property name="xalign">1</property> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">1</property> </packing> </child> <child> <object class="GtkSpinButton" id="hex_spin"> <property name="visible">1</property> <property name="halign">start</property> <property name="width_chars">4</property> <property name="adjustment">hex_adjustment</property> <signal name="input" handler="hex_spin_input"/> <signal name="output" handler="hex_spin_output"/> <property name="wrap">1</property> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">1</property> </packing> </child> <child> <object class="GtkLabel" id="hex_label"> <property name="visible">1</property> <property name="width_chars">10</property> <property name="xalign">1</property> </object> <packing> <property name="left_attach">2</property> <property name="top_attach">1</property> </packing> </child> <child> <object class="GtkLabel"> <property name="visible">1</property> <property name="label">_Time</property> <property name="use_underline">1</property> <property name="mnemonic_widget">time_spin</property> <property name="xalign">1</property> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">2</property> </packing> </child> <child> <object class="GtkSpinButton" id="time_spin"> <property name="visible">1</property> <property name="halign">start</property> <property name="width_chars">5</property> <property name="adjustment">time_adjustment</property> <signal name="input" handler="time_spin_input"/> <signal name="output" handler="time_spin_output"/> <property name="wrap">1</property> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">2</property> </packing> </child> <child> <object class="GtkLabel" id="time_label"> <property name="visible">1</property> <property name="width_chars">10</property> <property name="xalign">1</property> </object> <packing> <property name="left_attach">2</property> <property name="top_attach">2</property> </packing> </child> <child> <object class="GtkLabel"> <property name="visible">1</property> <property name="label">_Month</property> <property name="use_underline">1</property> <property name="mnemonic_widget">month_spin</property> <property name="xalign">1</property> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">3</property> </packing> </child> <child> <object class="GtkSpinButton" id="month_spin"> <property name="visible">1</property> <property name="halign">start</property> <property name="width_chars">9</property> <signal name="input" handler="month_spin_input"/> <signal name="output" handler="month_spin_output"/> <property name="adjustment">month_adjustment</property> <property name="wrap">1</property> <property name="update_policy">if-valid</property> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">3</property> </packing> </child> <child> <object class="GtkLabel" id="month_label"> <property name="visible">1</property> <property name="width_chars">10</property> <property name="xalign">1</property> </object> <packing> <property name="left_attach">2</property> <property name="top_attach">3</property> </packing> </child> </object> </child> </object> </interface> ��(uuay)gnome-calendar.png�� �������PNG ��� IHDR���0���0���W�����gAMA���1�_�� zIDATx��]lW�wvvw�����Nvc7��֤�}�B���"TDA��VT�臢Ҩ���Q Ay�h���)�BB �R��>ѠTb'����]�;wwf��a��7N�*�D�u5��;������w�N���;�N�n�n�����0�;�����x��}�����?&�E��x� ���@t�w���RJ��"T!�@QW �@a �H��_(�yJ�6'C"�"a�$� �B�u�Z �� �BiM*� �*=ܪD��;�Ϗw�e�BB� E*���es8�N��2�H)A6����/�O�����^���Z�J)[?J%����#/h���l�34�*�����aH�(���ω|>���*�c76�$2����'\O6�.�8y}��B�����1����aᅊ����m�s�u�'�X� �aH�B|r�ן�P(�J�(^)R�ԑR����������D�J�N�DΗ^����a���c_���kG-VVW6�l ����|��#bh��m�!n�e~y�e�9Fhf����A^G��#����7�)r�p���$^<|����]� ��Q�J��"��py�2�� �K�V�^�o�$���ʈ���� C��;Qؐ{�I��ȥn�c��2}�8��ڭ��;��r���k�� �� �L�d�G���ui������8ƃ@ �"�Z!��&7��ֽ@^�x�O��,k�*���)-l �]�o[��fM���Cz8@o�ܸ �K�;7�ę v���(d6LJ��x���h-���`����O����ˌ�]�5�M�d�U`�PHw�@���1�c; �9��D5#M��@.}@��<G����Y����8u�O���=ؠ�Ӣ�$��a�ϣ*eV�]cqu�)P��C!�*P�7ˁ��h����ѱ�y-^�w��̈́��%�?��zU?����b���(_+�N�[�F�V#�p�uq]�J��\����Nòe�}7z��@?PJ5�3��䍮r��ۇ���;w��FY��wm�r�2����������",����Bn�ƺ���Z��Ld��E��;�5���[��mb$VF���r�fD�3�<ù�9v�؉m۸��!�Sˋt���)J�2�ss�KI��3������"6OXJk�9 ��ql�e�ݺ���} Y` ������c�}�I����d�H�*�����\��++���!4Pf�ň��h�f��j�s36u���2h�ɱ\�m�HX��{/�-i�D#J�$�̰RY��� ���T��[�0�`��H&�� �d��2ܗ1.:�+T�P���\/Ȣ���KL�{��r)����2���x���g7��=�@.�g��YܕN{�R��m�����ݕ!��`<�+�͛B��J7<�8-�M�1w������Ѽ��<�ҋ�ı?�ί���ӧI�� �KIO:�ʥK,MN2[�pQXd�f�P(��Ɉt2�1>�7��vg�)��:��?��y��yF+C���?��l���S�K�l �=��˓�R)�/��fY���Z��)��Jg���D�eYZXbbG�F����@o�84�����ށ������X5���e��!J�:���O�����S)����N)���������<�D�B��KsIj�b��3�uk���nH�L��-���mۨ�:=��S�z�*�R�ܽ�|`�=�t*Eya������,�C���!Z�� ���o��pݘ�hoT��8��x�v�}�n���H%m�ݿ���=������y��W�{K��Dbm�&�#�����T�]�8�X[7ˁ뢠�Fk�c;���$N��(jA�7@.�kF)��`�6I�f��^r�'�J��0��x�]�<�G� 3W����˞={��rXV˧ ���h�o6��d�Z����H�I)7HĔW�5�L���z�Y�GG�>w�3cc��d�Y�v 180H�+Mm�֢�@��Q��Nt���R|�'��C���^���_��C���gzt�%�eTk�Ð���Z�25;�5��эIX���خ�h�&��B���r��Ļ�t�[�jE��Zj�c'���ak*ͮ�a1y�K��Tu]T������%o���nl(r � �~ض�rC��4����d'�Ƅ:o!:z��G�c�Xd��&��z�I��} !ҩ���h+���-�G�7 �I4�[��=�`���ŵ $M��ce��_ܿ��'F���{�1>7w��cc�ۀ^�k�1.Z�\���10�Ł�NVd����f��9v)c|t��=��<��3ccL�̔���1�E94y��0nz����z=Du�����:�3<�Q$" �S�W���4;�������jfy�1*��Q��X�c�3�4�v��ۉ@�j1/E�ƣ`ǀX_9\)��ە+���J3��.3���3��3���Mݼ7�M!�$h�b/��}�R�����_&'O�ͺ�2�]��t�jK�vq��N�l�|�"��DL�ر�dl�/���e�G2&�&M1A[��z�N���m�ɹ���2�F�jm«+�������W�q�3m<�������������I�t���Ly\0�T[�ś�dK]��_ht[^� o�ƍQa�PH����͎�7��1�Xy L2�[|��|h[����^��? Ğ���������IEND�B`���(uuay)css_shadows.c�������/* Theming/Shadows * * This demo shows how to use CSS shadows. */ #include <gtk/gtk.h> static void show_parsing_error (GtkCssProvider *provider, GtkCssSection *section, const GError *error, GtkTextBuffer *buffer) { GtkTextIter start, end; const char *tag_name; gtk_text_buffer_get_iter_at_line_index (buffer, &start, gtk_css_section_get_start_line (section), gtk_css_section_get_start_position (section)); gtk_text_buffer_get_iter_at_line_index (buffer, &end, gtk_css_section_get_end_line (section), gtk_css_section_get_end_position (section)); if (g_error_matches (error, GTK_CSS_PROVIDER_ERROR, GTK_CSS_PROVIDER_ERROR_DEPRECATED)) tag_name = "warning"; else tag_name = "error"; gtk_text_buffer_apply_tag_by_name (buffer, tag_name, &start, &end); } static void css_text_changed (GtkTextBuffer *buffer, GtkCssProvider *provider) { GtkTextIter start, end; char *text; gtk_text_buffer_get_start_iter (buffer, &start); gtk_text_buffer_get_end_iter (buffer, &end); gtk_text_buffer_remove_all_tags (buffer, &start, &end); text = gtk_text_buffer_get_text (buffer, &start, &end, FALSE); gtk_css_provider_load_from_data (provider, text, -1, NULL); g_free (text); gtk_style_context_reset_widgets (gdk_screen_get_default ()); } static void apply_css (GtkWidget *widget, GtkStyleProvider *provider) { gtk_style_context_add_provider (gtk_widget_get_style_context (widget), provider, G_MAXUINT); if (GTK_IS_CONTAINER (widget)) gtk_container_forall (GTK_CONTAINER (widget), (GtkCallback) apply_css, provider); } GtkWidget * create_toolbar (void) { GtkWidget *toolbar; GtkToolItem *item; toolbar = gtk_toolbar_new (); gtk_widget_set_valign (toolbar, GTK_ALIGN_CENTER); item = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "go-next"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); item = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "go-previous"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); item = gtk_tool_button_new (NULL, "Hello World"); gtk_tool_item_set_is_important (item, TRUE); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); return toolbar; } GtkWidget * do_css_shadows (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *paned, *container, *child; GtkStyleProvider *provider; GtkTextBuffer *text; GBytes *bytes; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "Shadows"); gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (do_widget)); gtk_window_set_default_size (GTK_WINDOW (window), 400, 300); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); paned = gtk_paned_new (GTK_ORIENTATION_VERTICAL); gtk_container_add (GTK_CONTAINER (window), paned); child = create_toolbar (); gtk_container_add (GTK_CONTAINER (paned), child); text = gtk_text_buffer_new (NULL); gtk_text_buffer_create_tag (text, "warning", "underline", PANGO_UNDERLINE_SINGLE, NULL); gtk_text_buffer_create_tag (text, "error", "underline", PANGO_UNDERLINE_ERROR, NULL); provider = GTK_STYLE_PROVIDER (gtk_css_provider_new ()); container = gtk_scrolled_window_new (NULL, NULL); gtk_container_add (GTK_CONTAINER (paned), container); child = gtk_text_view_new_with_buffer (text); gtk_container_add (GTK_CONTAINER (container), child); g_signal_connect (text, "changed", G_CALLBACK (css_text_changed), provider); bytes = g_resources_lookup_data ("/css_shadows/gtk.css", 0, NULL); gtk_text_buffer_set_text (text, g_bytes_get_data (bytes, NULL), g_bytes_get_size (bytes)); g_bytes_unref (bytes); g_signal_connect (provider, "parsing-error", G_CALLBACK (show_parsing_error), gtk_text_view_get_buffer (GTK_TEXT_VIEW (child))); apply_css (window, provider); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)revealer.c(������/* Revealer * * GtkRevealer is a container that animates showing and hiding * of its sole child with nice transitions. */ #include <gtk/gtk.h> static gint count = 0; static guint timeout = 0; static void change_direction (GtkRevealer *revealer) { if (gtk_widget_get_mapped (GTK_WIDGET (revealer))) { gboolean revealed; revealed = gtk_revealer_get_child_revealed (revealer); gtk_revealer_set_reveal_child (revealer, !revealed); } } static gboolean reveal_one (gpointer data) { GtkWidget *window = data; GtkBuilder *builder; gchar *name; GtkRevealer *revealer; builder = GTK_BUILDER (g_object_get_data (G_OBJECT (window), "builder")); name = g_strdup_printf ("revealer%d", count); revealer = (GtkRevealer *)gtk_builder_get_object (builder, name); gtk_revealer_set_reveal_child (revealer, TRUE); g_signal_connect (revealer, "notify::child-revealed", G_CALLBACK (change_direction), NULL); count++; if (count >= 9) { timeout = 0; return FALSE; } else return TRUE; } static GtkWidget *window = NULL; static void on_destroy (gpointer data) { window = NULL; if (timeout != 0) { g_source_remove (timeout); timeout = 0; } } GtkWidget * do_revealer (GtkWidget *do_widget) { if (!window) { GtkBuilder *builder; builder = gtk_builder_new_from_resource ("/revealer/revealer.ui"); gtk_builder_connect_signals (builder, NULL); window = GTK_WIDGET (gtk_builder_get_object (builder, "window")); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (on_destroy), NULL); g_object_set_data_full (G_OBJECT (window), "builder", builder, g_object_unref); } if (!gtk_widget_get_visible (window)) { count = 0; timeout = g_timeout_add (690, reveal_one, window); gtk_widget_show_all (window); } else { gtk_widget_destroy (window); } return window; } ��(uuay)wait_cursor.png���������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��t��t�fx���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3�����IDATX��]hT��gN2�dL�#f&I�5!1P�R�V|5 ��ׇ���Z�>X�E[!Ɗ>�[�/RI�/��\}h���|�x3�d�d���C�fb4�K�/]�8{�������k� ����(����>���1`x�|�(��7A""��i�BD�)k�eY����z||��o�jη���Ws��d2��I��?Y��4㐪�� ���Ç�x�7o�����ټy3;w����bۄ�����x����Տ`�OUU�e��w�]cbbq@QG��ǎ���(ʒ�d2�[��� X+A� @��O�����ir��Ez{{1M������V����x<����F���@UU���Cww7����֫W�>۸q�W�#"���Wv.������V������Ynݺ%�?�X,&���i���D"!G����j������N1M�^/S�ϟ��kQW8w��!���s���A._��a��ձo�>�n7�L���E,���v��z(,,����'O������444�r��UUU��W��5���)�,�KEQ�u]����x<N ������< X�n~��@ @uu5�6m���`9�?~����SZZʃ���躞����<<<�5`����������/D�Q'�MMMh�F"� �Lb�a0;;���TVVRTT��Q��۷s��M2�eee466��������w��������l����0M�χ��"�L277���4###\�~�3gΰ�~Z[[�a�����сa 9�@��~�˲�g�c��eQRRB*�"�L�L&���%�2::�eYX�ųg�����4��v�²,b��3WXX� �}��P��ONNbY.����yR�sss�~����YV����Ι�����,��4���6�����V0 ���`�,�L&�a�R)2��ch5Yɀ�(����� �f��Ȅ=�����i�4�L&,��RUUEMMM����"BQQ��U���v_��0^��-[���J��u��i���ND�555D"�w�ٕ���������Y�N������-������a�BD��|��J4��˗`[��8�HEQ[�_��)�����_�G�;$Kyy�lذA��������'^�W���;G��i���&�PH���%�L�����\RUս� ��sbb���yyy�={���Do�nY�sj��c�0:;;y��)��r��i�x�����i�_o��������K�R/�h.\� �pX����~�_�����K,s"��b���"�`PB���8qb�A��BG�������Z�X1MS���$ I0��'%%%RTT$�G.]�$W�\�ݻw���w��<y��L�4O�:�G`Pa��>q�G��ˎ���_�m�&�ׯ�@ >�����$Hii����KoooΚ�q�� �PxWI}nX*P�}}}��u�i�4M�H$"����&������ ٺu�<xP�ܹ#�t�ql�����3��P���f��di wuu���~�j�����J9r�O�!�S ���ѝ��R3�x<�n߾�3999��㉉������^����~��@(k��k��ӱX|����a�?.//?����I���%"������3�8K�i �{���С��h�Y ~��������2,��$0��4��F���\�:(5� ��OT#�,�}�Y��5��\��U�s�X�kʿг=����r����IEND�B`���(uuay)dialog.c����������/* Dialogs and Message Boxes * * Dialog widgets are used to pop up a transient window for user feedback. */ #include <glib/gi18n.h> #include <gtk/gtk.h> static GtkWidget *window = NULL; static GtkWidget *entry1 = NULL; static GtkWidget *entry2 = NULL; static void message_dialog_clicked (GtkButton *button, gpointer user_data) { GtkWidget *dialog; static gint i = 1; dialog = gtk_message_dialog_new (GTK_WINDOW (window), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_OK_CANCEL, "This message box has been popped up the following\n" "number of times:"); gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), "%d", i); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); i++; } static void interactive_dialog_clicked (GtkButton *button, gpointer user_data) { GtkWidget *content_area; GtkWidget *dialog; GtkWidget *hbox; GtkWidget *image; GtkWidget *table; GtkWidget *local_entry1; GtkWidget *local_entry2; GtkWidget *label; gint response; dialog = gtk_dialog_new_with_buttons ("Interactive Dialog", GTK_WINDOW (window), GTK_DIALOG_MODAL| GTK_DIALOG_DESTROY_WITH_PARENT, _("_OK"), GTK_RESPONSE_OK, "_Cancel", GTK_RESPONSE_CANCEL, NULL); content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8); gtk_container_set_border_width (GTK_CONTAINER (hbox), 8); gtk_box_pack_start (GTK_BOX (content_area), hbox, FALSE, FALSE, 0); image = gtk_image_new_from_icon_name ("dialog-question", GTK_ICON_SIZE_DIALOG); gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, FALSE, 0); table = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (table), 4); gtk_grid_set_column_spacing (GTK_GRID (table), 4); gtk_box_pack_start (GTK_BOX (hbox), table, TRUE, TRUE, 0); label = gtk_label_new_with_mnemonic ("_Entry 1"); gtk_grid_attach (GTK_GRID (table), label, 0, 0, 1, 1); local_entry1 = gtk_entry_new (); gtk_entry_set_text (GTK_ENTRY (local_entry1), gtk_entry_get_text (GTK_ENTRY (entry1))); gtk_grid_attach (GTK_GRID (table), local_entry1, 1, 0, 1, 1); gtk_label_set_mnemonic_widget (GTK_LABEL (label), local_entry1); label = gtk_label_new_with_mnemonic ("E_ntry 2"); gtk_grid_attach (GTK_GRID (table), label, 0, 1, 1, 1); local_entry2 = gtk_entry_new (); gtk_entry_set_text (GTK_ENTRY (local_entry2), gtk_entry_get_text (GTK_ENTRY (entry2))); gtk_grid_attach (GTK_GRID (table), local_entry2, 1, 1, 1, 1); gtk_label_set_mnemonic_widget (GTK_LABEL (label), local_entry2); gtk_widget_show_all (hbox); response = gtk_dialog_run (GTK_DIALOG (dialog)); if (response == GTK_RESPONSE_OK) { gtk_entry_set_text (GTK_ENTRY (entry1), gtk_entry_get_text (GTK_ENTRY (local_entry1))); gtk_entry_set_text (GTK_ENTRY (entry2), gtk_entry_get_text (GTK_ENTRY (local_entry2))); } gtk_widget_destroy (dialog); } GtkWidget * do_dialog (GtkWidget *do_widget) { GtkWidget *frame; GtkWidget *vbox; GtkWidget *vbox2; GtkWidget *hbox; GtkWidget *button; GtkWidget *table; GtkWidget *label; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Dialogs and Message Boxes"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 8); frame = gtk_frame_new ("Dialogs"); gtk_container_add (GTK_CONTAINER (window), frame); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8); gtk_container_set_border_width (GTK_CONTAINER (vbox), 8); gtk_container_add (GTK_CONTAINER (frame), vbox); /* Standard message dialog */ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); button = gtk_button_new_with_mnemonic ("_Message Dialog"); g_signal_connect (button, "clicked", G_CALLBACK (message_dialog_clicked), NULL); gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox), gtk_separator_new (GTK_ORIENTATION_HORIZONTAL), FALSE, FALSE, 0); /* Interactive dialog*/ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); button = gtk_button_new_with_mnemonic ("_Interactive Dialog"); g_signal_connect (button, "clicked", G_CALLBACK (interactive_dialog_clicked), NULL); gtk_box_pack_start (GTK_BOX (hbox), vbox2, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox2), button, FALSE, FALSE, 0); table = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (table), 4); gtk_grid_set_column_spacing (GTK_GRID (table), 4); gtk_box_pack_start (GTK_BOX (hbox), table, FALSE, FALSE, 0); label = gtk_label_new_with_mnemonic ("_Entry 1"); gtk_grid_attach (GTK_GRID (table), label, 0, 0, 1, 1); entry1 = gtk_entry_new (); gtk_grid_attach (GTK_GRID (table), entry1, 1, 0, 1, 1); gtk_label_set_mnemonic_widget (GTK_LABEL (label), entry1); label = gtk_label_new_with_mnemonic ("E_ntry 2"); gtk_grid_attach (GTK_GRID (table), label, 0, 1, 1, 1); entry2 = gtk_entry_new (); gtk_grid_attach (GTK_GRID (table), entry2, 1, 1, 1, 1); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)gnome-gimp.png���R �������PNG ��� IHDR���0���0���W�����gAMA���1�_�� IDATx��Yk�]�u��>�{�9wgll�c�#��<l 6�!��U�$}�j�#Q鿤�CUß����H�i$���-��@m9�²���9�af<߹�s�=g?V�}����qK$"�5[��;���}k}k���>���ǯ��_Q�ܹ�u�7���u�p,�+�����k,��� !�]��?����w � �@����u ܴry����=>�ّ/$~IDhx���m��~�G�ȱ���=�fR.���w��'{ˡC"_"�#a������cv*�KD�v� �܂��VK�6��Wzt���l�0��[�;��.� 9��<ckGn����l�R;y��介~�� &��/��x�ԙ��������~w��:��$\"�:�An��(�E��FW�~���#AcR)ĭ�4���\���OKs{&��R�@*=tӪ����W�|B$�B�D��p-���xgp�7z�K�~����RH���� ��Ѣ�rW\OBy������Ǔ4+���+ݟ�<w� ��?���d�����ͣ�6��w��㈽RiGJ �4�?��z3���k����%I�tŲ�5�+�e�*�{ϲ���_��8�lIp����x��~E7��5#;��}�w!�$�r���K�*���d���� 0;K�3�@_�[�=���f?,w�u���4�]�T��.&�+D�Ut���鏮��7����-_����I� ��TRi������怡�Y����,�����&�/V��}�a��Yk� �yd��ЎBD��)@�PPt��"h"�V����έ�|`ǝ�*�ǴցTZ���!�n=~��+���i�%�eNf):6"��{oy�/��Y&Z �V�LJ��L����2S������ҳ���̊�\�w�������wW�_d0�0�ɍ�5C)�4��X��'~�Α�)�/�|�*�+�h�0C�7�熆���wF⸭]ρ08��4�PR�Bq�[[��w7�8�J�i�)װ)1�a6H�)�a03�ac`��6Fhc��'H�����Llw�/��ڝ7�m���W�v>�����~��x�WQ,��Z`�o�l��R�Z�2������-���v� h��JC ����g@0`�����O�\�!�8 �3���v3�X����0�zE_s]�^fv�y��\�o�����<����ЦM��z������������^��0�����o���-[��~ c8���ȤD�IdR!��,����j�9���ic�����_[6#)�f���ݼaÆ�m�!!Dqbb�������?=�ȶK�F|������/b``�{����ޏ5kǐJ��������ǖ-[��ƪ��P*�V��R1�Z[�J�z3�Wp�d������T�M��d����ldS*wx===��m۶G��ǽf�Io��&�q<��?����ժx�Wh~~�v��i���^{m?�8��رc�ꫯBJ�V��������R R*(��h�֒Ʊ��='���20�I.gN;��H�C��y��Qy�B�v��r'����'���=�Z v�څF��3'�`��F��m<��3�����={�e��&�$A;I�I�J(��{��f0$��G�����V (�mb� 0V:��@��rhrr�B�����,���_�ѣGP,š���s�@�>���q߃�a�֭\����SO��h��n�R��f}��uՙ��0�l��#��٩T*����-�u�M0�8O*ܝ����=== fF�eh�Z(�J����(9�ϝ���9������3'0�n�~�i(���RJT�8{�}�Π�^���&���V�fX &��fg�seג�3����|߇��Ð�(B�p �h�Pڇ����o���}+�ex~����ԅSH�Jk�Zm������I�ښ��U��@B�f��U�̈��_�Lk��q��a��y��a!mU'mhـ=�`6`f,��? V�l��$�j ApY)�r�ԇs1��r�����o�}�c}�ɞ�i4˲w��aE{{zz�0Q.G��b��C�ZI�T�P��y>��=��er�JkLL]�T����I���q�3���|����fnqT��u�x��+���ֺZ�T� �(ð�Ja I\C����Y��V AA��lI��Hc뚶�p�������2z��� �y5@�4�<5}�n�ב˦p���M��?q���x�^���R{dy��Z����I�ΜG&SH�rk@+���Ą�nN�F�s�qnb��}3�V�����ZZk�R�����v;[�P!`�i���f��[�����`f��9;;{x���H����IS�iFJ*��Ci��T��J0;W���<.^Z@�d��-��(�B�������/�St�z��@��n/�5̘jg�<�9덎�����]�` �ۼq��L��|�,�H�6��Ն�B�T,�T*��7BO�����=��"��Sg�r0��}��S�K0H3��z�jS��U������^���<o���O^�ti�f�� �""����� �;Bl��)�JS�^k�1���"Ja�r�r���Q�P`����<yAW*����B����jy�os����)�B��s�Ev�+�?�3gΨ4M�;q��w����8��#G�$K!�.�==��c��3�0V����<g�����8��8���I�f�z�Ռ[�֦#��J��IU��qu����n��M�=���F����I=z����ٳg��Z��922��^z��%@ދt (����@?��`�0����@ y���V����$���Ό��x� ܹ^x����A)�֗_~�������aO���kk�B�c}"x�������"0��z���������Jό�2��ʲa�d��|h�Tڲ^j��T*�e `xx��}������ޑ����b�Zc��sF��� .�*$3�]ߋ-��z����L��V�5^�T�:����?��tJK���ς��.v����t�N�������喈��������իW����y����C�����D#����eu�*�Q��eW<Ȯ��a��A����v_�l ɥJ��6�nkj�H�E����"��B7�uߙ��j�lc���%uM\��"�u�����kL��Z����������� �U��דd�w���V2u�:���i�6n:�|:��8��V�D;'1}EB0��ǬtE�(>uWu��~NLW�̧������0i��OR�����IEND�B`���(uuay)gnome-gmush.png���������������PNG ��� IHDR���0���0���W�����gAMA���1�_��cIDATx��[�$�Y��NU�{�{���q��lb�K��"�1R�2QL�B �͑x��KH����<8h��`@�����/+lǻk{����LwOwuu�9U���U�� ������������}��|��������O�/}��O ĭ�h(.]X}��[W;�� <��_^qƜȄX����02#L��cŕ+k�z��k�����\����G��w�}��?��Ǔ�p2�&�N1iF���u�v�������Iuvr�;\{� |�鯭4��Ӊ�Q��X����dK�Rg�5�֊V����C�������F�Ͼ�'���C�L���Xp�z���W�G�ɬa0걺&�=����Y*�����_��K�+��ǎ��羓�c�̘�I�(���c�9�\{k-��)vGC�$����h�� �8�8K�_��_��x��WWg�W�'t�-��"� <��yDKf-&K1YF"����R�{�B�ٌXŀ��ڃ��z��斾�oE�c-i�bL�6�CzRJ�Y`�a4M �'!�;�8��OJZ�6ՠ�h<&M���#s��l�~�� ����c�>.�X�L��v��b��+Ng0Ƣ2E�eh���8kq�I�z]T�2Gd6��%"��@�n�Y>|�`����o��F���X�^=vx���ƚek-Ν���Ej@f22k���U|�a����s�� <�����5d��$�Z-�~@�Rc�F����,:��������ۼ��|�Gz���r�T��f�I�Z!|:� �8p� ��9��1���a���@J�ߗx��+6]�[��=Ӧ�j>p��On_����" ��b��c����3?ϛ��uk�O!��DQ��kuffZlnl��������>�RiΟy����b���ҌԦh�2Gl�����.�h��x��W��^�wM��DŽ��� �"C�(Bk ��&;;=��]�u4� �֮T*�:œq�fKss�dW�w>?v�}t�Z��$��n��R��*?x��� {!k��o�Ư-?�ܳ{�r���H�NS�G��v�I�Ra8 �� ~�����#&qL�$�R��0���e��r���s7��h�$NX����ť�u�V$J��&�����WrX._�M�9����<���|ߗ~��K)��5�8I�Lb�,�Z��n���#ʼn��i��$ J���}���y��`�1�j�����s�*�qȷ��om��R��)v{��s���p��/�oH����?��[�~q��X��!RJj�*�R�q�O��iA)�d2A)E�$�y�c�Z�s ��9G�Z���%��X\�gqa�����o���.κ��<�������=��s�t����ؗ��ŷ�D�>Rz{��D)>t�|����c��DQDE$IB����) ��jl�r��!.-�h68r� ��m���h6�:�O��������|=|��?����k�8�V����ۯ���G�kY��$ ��K��s�$I���i�2DQD�(�����A�0;3��#�8~|��Gfn�������рt�ww|��LN�\��B<�[������?~�+���?���q�;��h6x��O��|| \)�������,���T*��cPJ!�G�UG @��N�I�!�:��>r�C�t�]����q���B̀�f3'�����G'~��~�����O����wָc������J�B�eH)B0�L�}��B��Ck�s��p����F���Y�u�f�m��_��]^!��t����u������G/���4��G���K�9�RT*��8�B�n��ׅ!��ֲ��H��E0Dx�<RzD�⯟}����,BxX�~+~u�<P�3��� �n?z���[��'�uO'���M��(2�Ԟ�˲c�Z���^V��?���Y����,���F/\��UU��������=˜�J�)%i�N�.�$�2�sŠdg4b}����y�@�<\]�'�ڼ����2|-�Ȁ��7E���h�>�2���c�}��������U�/�d����xk�R�1��뽑�V@�D¿)i�>�e�d!�0i��h�QJM H)��WI�Ff�Io�ZG�n��&js��\*�x-'��F��k���H��d��$�v��>i�RΎ1fZE'2�zk�ܠ��9P�h-'PX���,�����0Ok��bIL&���&�;��|7W����9���r���Uˣ_ρ�m�w#���$IS�Zk�8�-���$�s�V������2[�/H�)d$J8���<�gY��y��F�A�e�q��)�t�>�1Sŗ ��<�.�d�iZ�OZ��_rљ#�Ϝ9�R�� 9�HӔ4M�}c��JGQ�V�[l4K`MI&�|^��B�»���x<���J)��M��|Pu���m�sn:����i��.�ݻ�],`���_�4�0(�]�����DkM�Xk�L&�q�p8���Lk��N^J�/]��4��E����:Q���ɀ|衇�Yg�R�������r���h�ŋi����PH��qo��vP~Oa���������Fž���������^��f������B��t�=4h���Nmv~��[o��Y��}E��f���]o��W^y�b�V*���I��(��v����Q���Z���z��`0�t���s9�8_ �� ���t�C ����Т_$�g�yf����KJy[�e���N-�իWq��h4��N{�^���_���l� ��$�D&��ͭ�(?N�-��������SO�����Z�C�Zm������aH�e4 ����իW����˯���n(�ƥ��\����ai�K�����k̀WD�4-��0,��N��X�U�\��_\�ﯔ�XL��e]�Gq�J�������k�@��q^x�VNb.?o�^j����2h��g��T�=q~-*I�,�$���&q�!D�o�����^-�/��y*�ˁ��-e@��$�"�E�yO�� ��ʖ�8ɣ�\���M�}�ٟ���JJ�!P�H�B*�z�g@�<�++|~�_/���+�ݟ�����[�Rв4=�}5��{e�RҺ.]7����R�m)�Ź� $ݒv�����IEND�B`���(uuay)iconview.c���#������/* Icon View/Icon View Basics * * The GtkIconView widget is used to display and manipulate icons. * It uses a GtkTreeModel for data storage, so the list store * example might be helpful. */ #include <glib/gi18n.h> #include <gtk/gtk.h> #include <string.h> static GtkWidget *window = NULL; #define FOLDER_NAME "/iconview/gnome-fs-directory.png" #define FILE_NAME "/iconview/gnome-fs-regular.png" enum { COL_PATH, COL_DISPLAY_NAME, COL_PIXBUF, COL_IS_DIRECTORY, NUM_COLS }; static GdkPixbuf *file_pixbuf, *folder_pixbuf; gchar *parent; GtkToolItem *up_button; /* Loads the images for the demo and returns whether the operation succeeded */ static void load_pixbufs (void) { if (file_pixbuf) return; /* already loaded earlier */ file_pixbuf = gdk_pixbuf_new_from_resource (FILE_NAME, NULL); /* resources must load successfully */ g_assert (file_pixbuf); folder_pixbuf = gdk_pixbuf_new_from_resource (FOLDER_NAME, NULL); g_assert (folder_pixbuf); } static void fill_store (GtkListStore *store) { GDir *dir; const gchar *name; GtkTreeIter iter; /* First clear the store */ gtk_list_store_clear (store); /* Now go through the directory and extract all the file * information */ dir = g_dir_open (parent, 0, NULL); if (!dir) return; name = g_dir_read_name (dir); while (name != NULL) { gchar *path, *display_name; gboolean is_dir; /* We ignore hidden files that start with a '.' */ if (name[0] != '.') { path = g_build_filename (parent, name, NULL); is_dir = g_file_test (path, G_FILE_TEST_IS_DIR); display_name = g_filename_to_utf8 (name, -1, NULL, NULL, NULL); gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, COL_PATH, path, COL_DISPLAY_NAME, display_name, COL_IS_DIRECTORY, is_dir, COL_PIXBUF, is_dir ? folder_pixbuf : file_pixbuf, -1); g_free (path); g_free (display_name); } name = g_dir_read_name (dir); } g_dir_close (dir); } static gint sort_func (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer user_data) { gboolean is_dir_a, is_dir_b; gchar *name_a, *name_b; int ret; /* We need this function because we want to sort * folders before files. */ gtk_tree_model_get (model, a, COL_IS_DIRECTORY, &is_dir_a, COL_DISPLAY_NAME, &name_a, -1); gtk_tree_model_get (model, b, COL_IS_DIRECTORY, &is_dir_b, COL_DISPLAY_NAME, &name_b, -1); if (!is_dir_a && is_dir_b) ret = 1; else if (is_dir_a && !is_dir_b) ret = -1; else { ret = g_utf8_collate (name_a, name_b); } g_free (name_a); g_free (name_b); return ret; } static GtkListStore * create_store (void) { GtkListStore *store; store = gtk_list_store_new (NUM_COLS, G_TYPE_STRING, G_TYPE_STRING, GDK_TYPE_PIXBUF, G_TYPE_BOOLEAN); /* Set sort column and function */ gtk_tree_sortable_set_default_sort_func (GTK_TREE_SORTABLE (store), sort_func, NULL, NULL); gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (store), GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, GTK_SORT_ASCENDING); return store; } static void item_activated (GtkIconView *icon_view, GtkTreePath *tree_path, gpointer user_data) { GtkListStore *store; gchar *path; GtkTreeIter iter; gboolean is_dir; store = GTK_LIST_STORE (user_data); gtk_tree_model_get_iter (GTK_TREE_MODEL (store), &iter, tree_path); gtk_tree_model_get (GTK_TREE_MODEL (store), &iter, COL_PATH, &path, COL_IS_DIRECTORY, &is_dir, -1); if (!is_dir) { g_free (path); return; } /* Replace parent with path and re-fill the model*/ g_free (parent); parent = path; fill_store (store); /* Sensitize the up button */ gtk_widget_set_sensitive (GTK_WIDGET (up_button), TRUE); } static void up_clicked (GtkToolItem *item, gpointer user_data) { GtkListStore *store; gchar *dir_name; store = GTK_LIST_STORE (user_data); dir_name = g_path_get_dirname (parent); g_free (parent); parent = dir_name; fill_store (store); /* Maybe de-sensitize the up button */ gtk_widget_set_sensitive (GTK_WIDGET (up_button), strcmp (parent, "/") != 0); } static void home_clicked (GtkToolItem *item, gpointer user_data) { GtkListStore *store; store = GTK_LIST_STORE (user_data); g_free (parent); parent = g_strdup (g_get_home_dir ()); fill_store (store); /* Sensitize the up button */ gtk_widget_set_sensitive (GTK_WIDGET (up_button), TRUE); } static void close_window(void) { gtk_widget_destroy (window); window = NULL; g_object_unref (file_pixbuf); file_pixbuf = NULL; g_object_unref (folder_pixbuf); folder_pixbuf = NULL; } GtkWidget * do_iconview (GtkWidget *do_widget) { if (!window) { GtkWidget *sw; GtkWidget *icon_view; GtkListStore *store; GtkWidget *vbox; GtkWidget *tool_bar; GtkToolItem *home_button; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size (GTK_WINDOW (window), 650, 400); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Icon View Basics"); g_signal_connect (window, "destroy", G_CALLBACK (close_window), NULL); load_pixbufs (); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), vbox); tool_bar = gtk_toolbar_new (); gtk_box_pack_start (GTK_BOX (vbox), tool_bar, FALSE, FALSE, 0); up_button = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_label (GTK_TOOL_BUTTON (up_button), _("_Up")); gtk_tool_button_set_use_underline (GTK_TOOL_BUTTON (up_button), TRUE); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (up_button), "go-up"); gtk_tool_item_set_is_important (up_button, TRUE); gtk_widget_set_sensitive (GTK_WIDGET (up_button), FALSE); gtk_toolbar_insert (GTK_TOOLBAR (tool_bar), up_button, -1); home_button = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_label (GTK_TOOL_BUTTON (home_button), _("_Home")); gtk_tool_button_set_use_underline (GTK_TOOL_BUTTON (home_button), TRUE); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (home_button), "go-home"); gtk_tool_item_set_is_important (home_button, TRUE); gtk_toolbar_insert (GTK_TOOLBAR (tool_bar), home_button, -1); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start (GTK_BOX (vbox), sw, TRUE, TRUE, 0); /* Create the store and fill it with the contents of '/' */ parent = g_strdup ("/"); store = create_store (); fill_store (store); icon_view = gtk_icon_view_new_with_model (GTK_TREE_MODEL (store)); gtk_icon_view_set_selection_mode (GTK_ICON_VIEW (icon_view), GTK_SELECTION_MULTIPLE); g_object_unref (store); /* Connect to the "clicked" signal of the "Up" tool button */ g_signal_connect (up_button, "clicked", G_CALLBACK (up_clicked), store); /* Connect to the "clicked" signal of the "Home" tool button */ g_signal_connect (home_button, "clicked", G_CALLBACK (home_clicked), store); /* We now set which model columns that correspond to the text * and pixbuf of each item */ gtk_icon_view_set_text_column (GTK_ICON_VIEW (icon_view), COL_DISPLAY_NAME); gtk_icon_view_set_pixbuf_column (GTK_ICON_VIEW (icon_view), COL_PIXBUF); /* Connect to the "item-activated" signal */ g_signal_connect (icon_view, "item-activated", G_CALLBACK (item_activated), store); gtk_container_add (GTK_CONTAINER (sw), icon_view); gtk_widget_grab_focus (icon_view); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)combobox.c����2������/* Combo Boxes * * The GtkComboBox widget allows to select one option out of a list. * The GtkComboBoxEntry additionally allows the user to enter a value * that is not in the list of options. * * How the options are displayed is controlled by cell renderers. */ #include <glib/gi18n.h> #include <gtk/gtk.h> enum { ICON_NAME_COL, TEXT_COL }; static GtkTreeModel * create_icon_store (void) { const gchar *icon_names[6] = { "dialog-warning", "process-stop", "document-new", "edit-clear", NULL, "document-open" }; const gchar *labels[6] = { N_("Warning"), N_("Stop"), N_("New"), N_("Clear"), NULL, N_("Open") }; GtkTreeIter iter; GtkListStore *store; gint i; store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING); for (i = 0; i < G_N_ELEMENTS (icon_names); i++) { if (icon_names[i]) { gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, ICON_NAME_COL, icon_names[i], TEXT_COL, _(labels[i]), -1); } else { gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, ICON_NAME_COL, NULL, TEXT_COL, "separator", -1); } } return GTK_TREE_MODEL (store); } /* A GtkCellLayoutDataFunc that demonstrates how one can control * sensitivity of rows. This particular function does nothing * useful and just makes the second row insensitive. */ static void set_sensitive (GtkCellLayout *cell_layout, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data) { GtkTreePath *path; gint *indices; gboolean sensitive; path = gtk_tree_model_get_path (tree_model, iter); indices = gtk_tree_path_get_indices (path); sensitive = indices[0] != 1; gtk_tree_path_free (path); g_object_set (cell, "sensitive", sensitive, NULL); } /* A GtkTreeViewRowSeparatorFunc that demonstrates how rows can be * rendered as separators. This particular function does nothing * useful and just turns the fourth row into a separator. */ static gboolean is_separator (GtkTreeModel *model, GtkTreeIter *iter, gpointer data) { GtkTreePath *path; gboolean result; path = gtk_tree_model_get_path (model, iter); result = gtk_tree_path_get_indices (path)[0] == 4; gtk_tree_path_free (path); return result; } static GtkTreeModel * create_capital_store (void) { struct { gchar *group; gchar *capital; } capitals[] = { { "A - B", NULL }, { NULL, "Albany" }, { NULL, "Annapolis" }, { NULL, "Atlanta" }, { NULL, "Augusta" }, { NULL, "Austin" }, { NULL, "Baton Rouge" }, { NULL, "Bismarck" }, { NULL, "Boise" }, { NULL, "Boston" }, { "C - D", NULL }, { NULL, "Carson City" }, { NULL, "Charleston" }, { NULL, "Cheyenne" }, { NULL, "Columbia" }, { NULL, "Columbus" }, { NULL, "Concord" }, { NULL, "Denver" }, { NULL, "Des Moines" }, { NULL, "Dover" }, { "E - J", NULL }, { NULL, "Frankfort" }, { NULL, "Harrisburg" }, { NULL, "Hartford" }, { NULL, "Helena" }, { NULL, "Honolulu" }, { NULL, "Indianapolis" }, { NULL, "Jackson" }, { NULL, "Jefferson City" }, { NULL, "Juneau" }, { "K - O" }, { NULL, "Lansing" }, { NULL, "Lincoln" }, { NULL, "Little Rock" }, { NULL, "Madison" }, { NULL, "Montgomery" }, { NULL, "Montpelier" }, { NULL, "Nashville" }, { NULL, "Oklahoma City" }, { NULL, "Olympia" }, { NULL, "P - S" }, { NULL, "Phoenix" }, { NULL, "Pierre" }, { NULL, "Providence" }, { NULL, "Raleigh" }, { NULL, "Richmond" }, { NULL, "Sacramento" }, { NULL, "Salem" }, { NULL, "Salt Lake City" }, { NULL, "Santa Fe" }, { NULL, "Springfield" }, { NULL, "St. Paul" }, { "T - Z", NULL }, { NULL, "Tallahassee" }, { NULL, "Topeka" }, { NULL, "Trenton" }, { NULL, NULL } }; GtkTreeIter iter, iter2; GtkTreeStore *store; gint i; store = gtk_tree_store_new (1, G_TYPE_STRING); for (i = 0; capitals[i].group || capitals[i].capital; i++) { if (capitals[i].group) { gtk_tree_store_append (store, &iter, NULL); gtk_tree_store_set (store, &iter, 0, capitals[i].group, -1); } else if (capitals[i].capital) { gtk_tree_store_append (store, &iter2, &iter); gtk_tree_store_set (store, &iter2, 0, capitals[i].capital, -1); } } return GTK_TREE_MODEL (store); } static void is_capital_sensitive (GtkCellLayout *cell_layout, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data) { gboolean sensitive; sensitive = !gtk_tree_model_iter_has_child (tree_model, iter); g_object_set (cell, "sensitive", sensitive, NULL); } static void fill_combo_entry (GtkWidget *combo) { gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), "One"); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), "Two"); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), "2\302\275"); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), "Three"); } /* A simple validating entry */ #define TYPE_MASK_ENTRY (mask_entry_get_type ()) #define MASK_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MASK_ENTRY, MaskEntry)) #define MASK_ENTRY_CLASS(vtable) (G_TYPE_CHECK_CLASS_CAST ((vtable), TYPE_MASK_ENTRY, MaskEntryClass)) #define IS_MASK_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MASK_ENTRY)) #define IS_MASK_ENTRY_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE ((vtable), TYPE_MASK_ENTRY)) #define MASK_ENTRY_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), TYPE_MASK_ENTRY, MaskEntryClass)) typedef struct _MaskEntry MaskEntry; struct _MaskEntry { GtkEntry entry; gchar *mask; }; typedef struct _MaskEntryClass MaskEntryClass; struct _MaskEntryClass { GtkEntryClass parent_class; }; static void mask_entry_editable_init (GtkEditableInterface *iface); G_DEFINE_TYPE_WITH_CODE (MaskEntry, mask_entry, GTK_TYPE_ENTRY, G_IMPLEMENT_INTERFACE (GTK_TYPE_EDITABLE, mask_entry_editable_init)); static void mask_entry_set_background (MaskEntry *entry) { if (entry->mask) { if (!g_regex_match_simple (entry->mask, gtk_entry_get_text (GTK_ENTRY (entry)), 0, 0)) { PangoAttrList *attrs; attrs = pango_attr_list_new (); pango_attr_list_insert (attrs, pango_attr_foreground_new (65535, 32767, 32767)); gtk_entry_set_attributes (GTK_ENTRY (entry), attrs); pango_attr_list_unref (attrs); return; } } gtk_entry_set_attributes (GTK_ENTRY (entry), NULL); } static void mask_entry_changed (GtkEditable *editable) { mask_entry_set_background (MASK_ENTRY (editable)); } static void mask_entry_init (MaskEntry *entry) { entry->mask = NULL; } static void mask_entry_class_init (MaskEntryClass *klass) { } static void mask_entry_editable_init (GtkEditableInterface *iface) { iface->changed = mask_entry_changed; } GtkWidget * do_combobox (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *vbox, *frame, *box, *combo, *entry; GtkTreeModel *model; GtkCellRenderer *renderer; GtkTreePath *path; GtkTreeIter iter; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Combo Boxes"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 10); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2); gtk_container_add (GTK_CONTAINER (window), vbox); /* A combobox demonstrating cell renderers, separators and * insensitive rows */ frame = gtk_frame_new ("Items with icons"); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_set_border_width (GTK_CONTAINER (box), 5); gtk_container_add (GTK_CONTAINER (frame), box); model = create_icon_store (); combo = gtk_combo_box_new_with_model (model); g_object_unref (model); gtk_container_add (GTK_CONTAINER (box), combo); renderer = gtk_cell_renderer_pixbuf_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, FALSE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, "icon-name", ICON_NAME_COL, NULL); gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combo), renderer, set_sensitive, NULL, NULL); renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, "text", TEXT_COL, NULL); gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combo), renderer, set_sensitive, NULL, NULL); gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (combo), is_separator, NULL, NULL); gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0); /* A combobox demonstrating trees. */ frame = gtk_frame_new ("Where are we ?"); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_set_border_width (GTK_CONTAINER (box), 5); gtk_container_add (GTK_CONTAINER (frame), box); model = create_capital_store (); combo = gtk_combo_box_new_with_model (model); g_object_unref (model); gtk_container_add (GTK_CONTAINER (box), combo); renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, "text", 0, NULL); gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combo), renderer, is_capital_sensitive, NULL, NULL); path = gtk_tree_path_new_from_indices (0, 8, -1); gtk_tree_model_get_iter (model, &iter, path); gtk_tree_path_free (path); gtk_combo_box_set_active_iter (GTK_COMBO_BOX (combo), &iter); /* A GtkComboBoxEntry with validation */ frame = gtk_frame_new ("Editable"); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_set_border_width (GTK_CONTAINER (box), 5); gtk_container_add (GTK_CONTAINER (frame), box); combo = gtk_combo_box_text_new_with_entry (); fill_combo_entry (combo); gtk_container_add (GTK_CONTAINER (box), combo); entry = g_object_new (TYPE_MASK_ENTRY, NULL); MASK_ENTRY (entry)->mask = "^([0-9]*|One|Two|2\302\275|Three)$"; gtk_container_remove (GTK_CONTAINER (combo), gtk_bin_get_child (GTK_BIN (combo))); gtk_container_add (GTK_CONTAINER (combo), entry); /* A combobox with string IDs */ frame = gtk_frame_new ("String IDs"); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_set_border_width (GTK_CONTAINER (box), 5); gtk_container_add (GTK_CONTAINER (frame), box); combo = gtk_combo_box_text_new (); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combo), "never", "Not visible"); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combo), "when-active", "Visible when active"); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combo), "always", "Always visible"); gtk_container_add (GTK_CONTAINER (box), combo); entry = gtk_entry_new (); g_object_bind_property (combo, "active-id", entry, "text", G_BINDING_BIDIRECTIONAL); gtk_container_add (GTK_CONTAINER (box), entry); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)application.c��@������ #include "config.h" #include <gtk/gtk.h> typedef GtkApplication DemoApplication; typedef GtkApplicationClass DemoApplicationClass; G_DEFINE_TYPE (DemoApplication, demo_application, GTK_TYPE_APPLICATION) typedef struct { GtkApplicationWindow parent_instance; GtkWidget *message; GtkWidget *infobar; GtkWidget *status; GtkWidget *menutool; GMenuModel *toolmenu; GtkTextBuffer *buffer; int width; int height; gboolean maximized; gboolean fullscreen; } DemoApplicationWindow; typedef GtkApplicationWindowClass DemoApplicationWindowClass; G_DEFINE_TYPE (DemoApplicationWindow, demo_application_window, GTK_TYPE_APPLICATION_WINDOW) static void create_window (GApplication *app, const char *contents); static void show_action_dialog (GSimpleAction *action) { const gchar *name; GtkWidget *dialog; name = g_action_get_name (G_ACTION (action)); dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, "You activated action: \"%s\"", name); g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); gtk_widget_show (dialog); } static void show_action_infobar (GSimpleAction *action, GVariant *parameter, gpointer data) { DemoApplicationWindow *window = data; gchar *text; const gchar *name; const gchar *value; name = g_action_get_name (G_ACTION (action)); value = g_variant_get_string (parameter, NULL); text = g_strdup_printf ("You activated radio action: \"%s\".\n" "Current value: %s", name, value); gtk_label_set_text (GTK_LABEL (window->message), text); gtk_widget_show (window->infobar); g_free (text); } static void activate_action (GSimpleAction *action, GVariant *parameter, gpointer user_data) { show_action_dialog (action); } static void activate_new (GSimpleAction *action, GVariant *parameter, gpointer user_data) { GApplication *app = user_data; create_window (app, NULL); } static void open_response_cb (GtkNativeDialog *dialog, gint response_id, gpointer user_data) { GtkFileChooserNative *native = user_data; GApplication *app = g_object_get_data (G_OBJECT (native), "app"); GtkWidget *message_dialog; GFile *file; char *contents; GError *error = NULL; if (response_id == GTK_RESPONSE_ACCEPT) { file = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (native)); if (g_file_load_contents (file, NULL, &contents, NULL, NULL, &error)) { create_window (app, contents); g_free (contents); } else { message_dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "Error loading file: \"%s\"", error->message); g_signal_connect (message_dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); gtk_widget_show (message_dialog); g_error_free (error); } } gtk_native_dialog_destroy (GTK_NATIVE_DIALOG (native)); g_object_unref (native); } static void activate_open (GSimpleAction *action, GVariant *parameter, gpointer user_data) { GApplication *app = user_data; GtkFileChooserNative *native; native = gtk_file_chooser_native_new ("Open File", NULL, GTK_FILE_CHOOSER_ACTION_OPEN, "_Open", "_Cancel"); g_object_set_data_full (G_OBJECT (native), "app", g_object_ref (app), g_object_unref); g_signal_connect (native, "response", G_CALLBACK (open_response_cb), native); gtk_native_dialog_show (GTK_NATIVE_DIALOG (native)); } static void activate_toggle (GSimpleAction *action, GVariant *parameter, gpointer user_data) { GVariant *state; show_action_dialog (action); state = g_action_get_state (G_ACTION (action)); g_action_change_state (G_ACTION (action), g_variant_new_boolean (!g_variant_get_boolean (state))); g_variant_unref (state); } static void activate_radio (GSimpleAction *action, GVariant *parameter, gpointer user_data) { show_action_infobar (action, parameter, user_data); g_action_change_state (G_ACTION (action), parameter); } static void activate_about (GSimpleAction *action, GVariant *parameter, gpointer user_data) { GtkWidget *window = user_data; const gchar *authors[] = { "Peter Mattis", "Spencer Kimball", "Josh MacDonald", "and many more...", NULL }; const gchar *documentors[] = { "Owen Taylor", "Tony Gale", "Matthias Clasen <mclasen@redhat.com>", "and many more...", NULL }; gtk_show_about_dialog (GTK_WINDOW (window), "program-name", "GTK+ Code Demos", "version", g_strdup_printf ("%s,\nRunning against GTK+ %d.%d.%d", PACKAGE_VERSION, gtk_get_major_version (), gtk_get_minor_version (), gtk_get_micro_version ()), "copyright", "(C) 1997-2013 The GTK+ Team", "license-type", GTK_LICENSE_LGPL_2_1, "website", "http://www.gtk.org", "comments", "Program to demonstrate GTK+ functions.", "authors", authors, "documenters", documentors, "logo-icon-name", "gtk3-demo", "title", "About GTK+ Code Demos", NULL); } static void activate_quit (GSimpleAction *action, GVariant *parameter, gpointer user_data) { GtkApplication *app = user_data; GtkWidget *win; GList *list, *next; list = gtk_application_get_windows (app); while (list) { win = list->data; next = list->next; gtk_widget_destroy (GTK_WIDGET (win)); list = next; } } static void update_statusbar (GtkTextBuffer *buffer, DemoApplicationWindow *window) { gchar *msg; gint row, col; gint count; GtkTextIter iter; /* clear any previous message, underflow is allowed */ gtk_statusbar_pop (GTK_STATUSBAR (window->status), 0); count = gtk_text_buffer_get_char_count (buffer); gtk_text_buffer_get_iter_at_mark (buffer, &iter, gtk_text_buffer_get_insert (buffer)); row = gtk_text_iter_get_line (&iter); col = gtk_text_iter_get_line_offset (&iter); msg = g_strdup_printf ("Cursor at row %d column %d - %d chars in document", row, col, count); gtk_statusbar_push (GTK_STATUSBAR (window->status), 0, msg); g_free (msg); } static void mark_set_callback (GtkTextBuffer *buffer, const GtkTextIter *new_location, GtkTextMark *mark, DemoApplicationWindow *window) { update_statusbar (buffer, window); } static void change_theme_state (GSimpleAction *action, GVariant *state, gpointer user_data) { GtkSettings *settings = gtk_settings_get_default (); g_object_set (G_OBJECT (settings), "gtk-application-prefer-dark-theme", g_variant_get_boolean (state), NULL); g_simple_action_set_state (action, state); } static void change_titlebar_state (GSimpleAction *action, GVariant *state, gpointer user_data) { GtkWindow *window = user_data; gtk_window_set_hide_titlebar_when_maximized (GTK_WINDOW (window), g_variant_get_boolean (state)); g_simple_action_set_state (action, state); } static void change_radio_state (GSimpleAction *action, GVariant *state, gpointer user_data) { g_simple_action_set_state (action, state); } static GActionEntry app_entries[] = { { "new", activate_new, NULL, NULL, NULL }, { "open", activate_open, NULL, NULL, NULL }, { "save", activate_action, NULL, NULL, NULL }, { "save-as", activate_action, NULL, NULL, NULL }, { "quit", activate_quit, NULL, NULL, NULL }, { "dark", activate_toggle, NULL, "false", change_theme_state } }; static GActionEntry win_entries[] = { { "titlebar", activate_toggle, NULL, "false", change_titlebar_state }, { "shape", activate_radio, "s", "'oval'", change_radio_state }, { "bold", activate_toggle, NULL, "false", NULL }, { "about", activate_about, NULL, NULL, NULL }, { "file1", activate_action, NULL, NULL, NULL }, { "logo", activate_action, NULL, NULL, NULL } }; static void clicked_cb (GtkWidget *widget, DemoApplicationWindow *window) { gtk_widget_hide (window->infobar); } static void startup (GApplication *app) { GtkBuilder *builder; GMenuModel *appmenu; GMenuModel *menubar; G_APPLICATION_CLASS (demo_application_parent_class)->startup (app); builder = gtk_builder_new (); gtk_builder_add_from_resource (builder, "/application_demo/menus.ui", NULL); appmenu = (GMenuModel *)gtk_builder_get_object (builder, "appmenu"); menubar = (GMenuModel *)gtk_builder_get_object (builder, "menubar"); gtk_application_set_app_menu (GTK_APPLICATION (app), appmenu); gtk_application_set_menubar (GTK_APPLICATION (app), menubar); g_object_unref (builder); } static void create_window (GApplication *app, const char *content) { DemoApplicationWindow *window; window = (DemoApplicationWindow *)g_object_new (demo_application_window_get_type (), "application", app, NULL); if (content) gtk_text_buffer_set_text (window->buffer, content, -1); gtk_window_present (GTK_WINDOW (window)); } static void activate (GApplication *app) { create_window (app, NULL); } static void demo_application_init (DemoApplication *app) { GSettings *settings; GAction *action; settings = g_settings_new ("org.gtk.Demo"); g_action_map_add_action_entries (G_ACTION_MAP (app), app_entries, G_N_ELEMENTS (app_entries), app); action = g_settings_create_action (settings, "color"); g_action_map_add_action (G_ACTION_MAP (app), action); g_object_unref (settings); } static void demo_application_class_init (DemoApplicationClass *class) { GApplicationClass *app_class = G_APPLICATION_CLASS (class); app_class->startup = startup; app_class->activate = activate; } static void demo_application_window_store_state (DemoApplicationWindow *win) { GSettings *settings; settings = g_settings_new ("org.gtk.Demo"); g_settings_set (settings, "window-size", "(ii)", win->width, win->height); g_settings_set_boolean (settings, "maximized", win->maximized); g_settings_set_boolean (settings, "fullscreen", win->fullscreen); g_object_unref (settings); } static void demo_application_window_load_state (DemoApplicationWindow *win) { GSettings *settings; settings = g_settings_new ("org.gtk.Demo"); g_settings_get (settings, "window-size", "(ii)", &win->width, &win->height); win->maximized = g_settings_get_boolean (settings, "maximized"); win->fullscreen = g_settings_get_boolean (settings, "fullscreen"); g_object_unref (settings); } static void demo_application_window_init (DemoApplicationWindow *window) { GtkWidget *menu; window->width = -1; window->height = -1; window->maximized = FALSE; window->fullscreen = FALSE; gtk_widget_init_template (GTK_WIDGET (window)); menu = gtk_menu_new_from_model (window->toolmenu); gtk_menu_tool_button_set_menu (GTK_MENU_TOOL_BUTTON (window->menutool), menu); g_action_map_add_action_entries (G_ACTION_MAP (window), win_entries, G_N_ELEMENTS (win_entries), window); } static void demo_application_window_constructed (GObject *object) { DemoApplicationWindow *window = (DemoApplicationWindow *)object; demo_application_window_load_state (window); gtk_window_set_default_size (GTK_WINDOW (window), window->width, window->height); if (window->maximized) gtk_window_maximize (GTK_WINDOW (window)); if (window->fullscreen) gtk_window_fullscreen (GTK_WINDOW (window)); G_OBJECT_CLASS (demo_application_window_parent_class)->constructed (object); } static void demo_application_window_size_allocate (GtkWidget *widget, GtkAllocation *allocation) { DemoApplicationWindow *window = (DemoApplicationWindow *)widget; GTK_WIDGET_CLASS (demo_application_window_parent_class)->size_allocate (widget, allocation); if (!window->maximized && !window->fullscreen) gtk_window_get_size (GTK_WINDOW (window), &window->width, &window->height); } static gboolean demo_application_window_state_event (GtkWidget *widget, GdkEventWindowState *event) { DemoApplicationWindow *window = (DemoApplicationWindow *)widget; gboolean res = GDK_EVENT_PROPAGATE; if (GTK_WIDGET_CLASS (demo_application_window_parent_class)->window_state_event) res = GTK_WIDGET_CLASS (demo_application_window_parent_class)->window_state_event (widget, event); window->maximized = (event->new_window_state & GDK_WINDOW_STATE_MAXIMIZED) != 0; window->fullscreen = (event->new_window_state & GDK_WINDOW_STATE_FULLSCREEN) != 0; return res; } static void demo_application_window_destroy (GtkWidget *widget) { DemoApplicationWindow *window = (DemoApplicationWindow *)widget; demo_application_window_store_state (window); GTK_WIDGET_CLASS (demo_application_window_parent_class)->destroy (widget); } static void demo_application_window_class_init (DemoApplicationWindowClass *class) { GObjectClass *object_class = G_OBJECT_CLASS (class); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class); object_class->constructed = demo_application_window_constructed; widget_class->size_allocate = demo_application_window_size_allocate; widget_class->window_state_event = demo_application_window_state_event; widget_class->destroy = demo_application_window_destroy; gtk_widget_class_set_template_from_resource (widget_class, "/application_demo/application.ui"); gtk_widget_class_bind_template_child (widget_class, DemoApplicationWindow, message); gtk_widget_class_bind_template_child (widget_class, DemoApplicationWindow, infobar); gtk_widget_class_bind_template_child (widget_class, DemoApplicationWindow, status); gtk_widget_class_bind_template_child (widget_class, DemoApplicationWindow, buffer); gtk_widget_class_bind_template_child (widget_class, DemoApplicationWindow, menutool); gtk_widget_class_bind_template_child (widget_class, DemoApplicationWindow, toolmenu); gtk_widget_class_bind_template_callback (widget_class, clicked_cb); gtk_widget_class_bind_template_callback (widget_class, update_statusbar); gtk_widget_class_bind_template_callback (widget_class, mark_set_callback); } int main (int argc, char *argv[]) { GtkApplication *app; app = GTK_APPLICATION (g_object_new (demo_application_get_type (), "application-id", "org.gtk.Demo2", "flags", G_APPLICATION_HANDLES_OPEN, NULL)); return g_application_run (G_APPLICATION (app), 0, NULL); } ��(uuay)shortcuts.ui�� ������<?xml version="1.0" encoding="UTF-8"?> <interface> <!-- interface-requires gtk+ 3.17 --> <object class="GtkWindow" id="window1"> <property name="title" translatable="yes">Shortcuts</property> <child> <object class="GtkBox"> <property name="visible">1</property> <property name="orientation">vertical</property> <property name="margin">50</property> <property name="spacing">10</property> <child> <object class="GtkButton"> <property name="visible">1</property> <property name="label">Builder</property> <signal name="clicked" handler="builder_shortcuts" swapped="1" object="window1"/> </object> </child> <child> <object class="GtkButton"> <property name="visible">1</property> <property name="label">GEdit</property> <signal name="clicked" handler="gedit_shortcuts" swapped="1" object="window1"/> </object> </child> <child> <object class="GtkButton"> <property name="visible">1</property> <property name="label">Clocks - All</property> <signal name="clicked" handler="clocks_shortcuts" swapped="1" object="window1"/> </object> </child> <child> <object class="GtkButton"> <property name="visible">1</property> <property name="label">Clocks - Stopwatch</property> <signal name="clicked" handler="clocks_shortcuts_stopwatch" swapped="1" object="window1"/> </object> </child> <child> <object class="GtkButton"> <property name="visible">1</property> <property name="label">Boxes</property> <signal name="clicked" handler="boxes_shortcuts" swapped="1" object="window1"/> </object> </child> <child> <object class="GtkButton"> <property name="visible">1</property> <property name="label">Boxes - Wizard</property> <signal name="clicked" handler="boxes_shortcuts_wizard" swapped="1" object="window1"/> </object> </child> <child> <object class="GtkButton"> <property name="visible">1</property> <property name="label">Boxes - Display</property> <signal name="clicked" handler="boxes_shortcuts_display" swapped="1" object="window1"/> </object> </child> </object> </child> </object> </interface> ��(uuay)panes.c��N������/* Paned Widgets * * The GtkPaned Widget divides its content area into two panes * with a divider in between that the user can adjust. A separate * child is placed into each pane. GtkPaned widgets can be split * horizontally or vertially. * * There are a number of options that can be set for each pane. * This test contains both a horizontal and a vertical GtkPaned * widget, and allows you to adjust the options for each side of * each widget. */ #include <gtk/gtk.h> void toggle_resize (GtkWidget *widget, GtkWidget *child) { GtkWidget *parent; GtkPaned *paned; gboolean is_child1; gboolean resize, shrink; parent = gtk_widget_get_parent (child); paned = GTK_PANED (parent); is_child1 = (child == gtk_paned_get_child1 (paned)); gtk_container_child_get (GTK_CONTAINER (paned), child, "resize", &resize, "shrink", &shrink, NULL); g_object_ref (child); gtk_container_remove (GTK_CONTAINER (parent), child); if (is_child1) gtk_paned_pack1 (paned, child, !resize, shrink); else gtk_paned_pack2 (paned, child, !resize, shrink); g_object_unref (child); } void toggle_shrink (GtkWidget *widget, GtkWidget *child) { GtkWidget *parent; GtkPaned *paned; gboolean is_child1; gboolean resize, shrink; parent = gtk_widget_get_parent (child); paned = GTK_PANED (parent); is_child1 = (child == gtk_paned_get_child1 (paned)); gtk_container_child_get (GTK_CONTAINER (paned), child, "resize", &resize, "shrink", &shrink, NULL); g_object_ref (child); gtk_container_remove (GTK_CONTAINER (parent), child); if (is_child1) gtk_paned_pack1 (paned, child, resize, !shrink); else gtk_paned_pack2 (paned, child, resize, !shrink); g_object_unref (child); } GtkWidget * create_pane_options (GtkPaned *paned, const gchar *frame_label, const gchar *label1, const gchar *label2) { GtkWidget *child1, *child2; GtkWidget *frame; GtkWidget *table; GtkWidget *label; GtkWidget *check_button; child1 = gtk_paned_get_child1 (paned); child2 = gtk_paned_get_child2 (paned); frame = gtk_frame_new (frame_label); gtk_container_set_border_width (GTK_CONTAINER (frame), 4); table = gtk_grid_new (); gtk_container_add (GTK_CONTAINER (frame), table); label = gtk_label_new (label1); gtk_grid_attach (GTK_GRID (table), label, 0, 0, 1, 1); check_button = gtk_check_button_new_with_mnemonic ("_Resize"); gtk_grid_attach (GTK_GRID (table), check_button, 0, 1, 1, 1); g_signal_connect (check_button, "toggled", G_CALLBACK (toggle_resize), child1); check_button = gtk_check_button_new_with_mnemonic ("_Shrink"); gtk_grid_attach (GTK_GRID (table), check_button, 0, 2, 1, 1); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button), TRUE); g_signal_connect (check_button, "toggled", G_CALLBACK (toggle_shrink), child1); label = gtk_label_new (label2); gtk_grid_attach (GTK_GRID (table), label, 1, 0, 1, 1); check_button = gtk_check_button_new_with_mnemonic ("_Resize"); gtk_grid_attach (GTK_GRID (table), check_button, 1, 1, 1, 1); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button), TRUE); g_signal_connect (check_button, "toggled", G_CALLBACK (toggle_resize), child2); check_button = gtk_check_button_new_with_mnemonic ("_Shrink"); gtk_grid_attach (GTK_GRID (table), check_button, 1, 2, 1, 1); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button), TRUE); g_signal_connect (check_button, "toggled", G_CALLBACK (toggle_shrink), child2); return frame; } GtkWidget * do_panes (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *frame; GtkWidget *hpaned; GtkWidget *vpaned; GtkWidget *button; GtkWidget *vbox; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_window_set_title (GTK_WINDOW (window), "Paned Widgets"); gtk_container_set_border_width (GTK_CONTAINER (window), 0); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), vbox); vpaned = gtk_paned_new (GTK_ORIENTATION_VERTICAL); gtk_box_pack_start (GTK_BOX (vbox), vpaned, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER(vpaned), 5); hpaned = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL); gtk_paned_add1 (GTK_PANED (vpaned), hpaned); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_IN); gtk_widget_set_size_request (frame, 60, 60); gtk_paned_add1 (GTK_PANED (hpaned), frame); button = gtk_button_new_with_mnemonic ("_Hi there"); gtk_container_add (GTK_CONTAINER(frame), button); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_IN); gtk_widget_set_size_request (frame, 80, 60); gtk_paned_add2 (GTK_PANED (hpaned), frame); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_IN); gtk_widget_set_size_request (frame, 60, 80); gtk_paned_add2 (GTK_PANED (vpaned), frame); /* Now create toggle buttons to control sizing */ gtk_box_pack_start (GTK_BOX (vbox), create_pane_options (GTK_PANED (hpaned), "Horizontal", "Left", "Right"), FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox), create_pane_options (GTK_PANED (vpaned), "Vertical", "Top", "Bottom"), FALSE, FALSE, 0); gtk_widget_show_all (vbox); } if (!gtk_widget_get_visible (window)) gtk_widget_show (window); else gtk_widget_destroy (window); return window; } ��(uuay)markup/�������textmask.c��� ������/* Pango/Text Mask * * This demo shows how to use PangoCairo to draw text with more than * just a single color. */ #include <glib/gi18n.h> #include <gtk/gtk.h> static gboolean draw_text (GtkWidget *da, cairo_t *cr, gpointer data) { cairo_pattern_t *pattern; PangoLayout *layout; PangoFontDescription *desc; cairo_save (cr); layout = gtk_widget_create_pango_layout (da, "Pango power!\nPango power!\nPango power!"); desc = pango_font_description_from_string ("sans bold 34"); pango_layout_set_font_description (layout, desc); pango_font_description_free (desc); cairo_move_to (cr, 30, 20); pango_cairo_layout_path (cr, layout); g_object_unref (layout); pattern = cairo_pattern_create_linear (0.0, 0.0, gtk_widget_get_allocated_width (da), gtk_widget_get_allocated_height (da)); cairo_pattern_add_color_stop_rgb (pattern, 0.0, 1.0, 0.0, 0.0); cairo_pattern_add_color_stop_rgb (pattern, 0.2, 1.0, 0.0, 0.0); cairo_pattern_add_color_stop_rgb (pattern, 0.3, 1.0, 1.0, 0.0); cairo_pattern_add_color_stop_rgb (pattern, 0.4, 0.0, 1.0, 0.0); cairo_pattern_add_color_stop_rgb (pattern, 0.6, 0.0, 1.0, 1.0); cairo_pattern_add_color_stop_rgb (pattern, 0.7, 0.0, 0.0, 1.0); cairo_pattern_add_color_stop_rgb (pattern, 0.8, 1.0, 0.0, 1.0); cairo_pattern_add_color_stop_rgb (pattern, 1.0, 1.0, 0.0, 1.0); cairo_set_source (cr, pattern); cairo_fill_preserve (cr); cairo_pattern_destroy (pattern); cairo_set_source_rgb (cr, 0.0, 0.0, 0.0); cairo_set_line_width (cr, 0.5); cairo_stroke (cr); cairo_restore (cr); return TRUE; } GtkWidget * do_textmask (GtkWidget *do_widget) { static GtkWidget *window = NULL; static GtkWidget *da; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_resizable (GTK_WINDOW (window), TRUE); gtk_widget_set_size_request (window, 400, 200); gtk_window_set_title (GTK_WINDOW (window), "Text Mask"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); da = gtk_drawing_area_new (); gtk_container_add (GTK_CONTAINER (window), da); g_signal_connect (da, "draw", G_CALLBACK (draw_text), NULL); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)fishbowl/���������������n_resize_cursor.png��������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��t��t�fx���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3�����IDATX���KcW�?�%ql�!:����,Z�I��CV�.�����E��e�2.[EܸD�BĮ�F�O��]�(�i�P��M4?�%�{�x�LLR ��b�p�#��s���s�=��ʿ�)�z��d�*�h4�~:�^ByC�4-����=��s؋y�t:���4>z�H��4�� �����?�@�T�X,����r��!�x���Jix�|h9_�~�l6��l��;���jt]���ۖ�bW����s���$��rJ����,���KEQJޗ��TVVV�$~�*�wFGG�����R��B����l[[ۃ���{�����p�\����o�����(�"�(��F�����d2�x���b3D�u@���255�y�7�����������eqqQ�b�}��������#t����W�� pwM �����t]�C�P�D�z�r_��{<�N�3��)�1��&�K�j@v��:::�N!����f��땑H�|gg�ϖ�����[������KdR�ԷB166v���x<2���������� ����ኌ#���G�ZƃB122RQ�)B⭫�P��ΞH)�B���q=��ͽb���G�b1QxN�4!���H����VPM�UmDkkk��ɤmuu�i8�{xxX�iZ��R�R*��ݟ�\��|EUUU��nB��/��ꪪ �EQ���������~�����9FYʢ��3�������j ���I)����\R��a��KF�<5��쵵�_�����xa�fɽx:pf�/��P"��S!��mw:����i�l��E�}�%`����j�!A`�q�t��@q��VExC�(��e��d�|>��6khmoo��� E.��3؇��nll�H&�g�D"�H$2�����`��5���� �ߵ�G�ks��F�Ә5�����[ޛ H�f��V��~�$����D���c̊UQ��f�����7�D;[t�&�S����IEND�B`���(uuay)s_resize_cursor.png��������������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��t��t�fx���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3�����IDATX��AH#W�3�k�����b���vŃK��"���R -�`�Ń�k��⡷Rz*�V�9-(�j$!K#�R��`�b'&jgf�{=L"�M��Bi��f&�}�y���� �ץ�;.�ɘ�p�C��葖��������ESO�;��X�LRJ�����`P��=Q�����tڍ�b*��h4�����8�i�E_-���p]��l6�e2��T �0��`�#���z�!��B��Fj܂z�4�T�ɕR�⼷�$]+�n�Z��4�.YI>)�U���%+I����2���a0�|.�|^��G��R3��������H$�i��>�O�?;88�����{��xFThii�+�H|����CSS�������Ʌ��R���l�x<�j����~������]�����!�O�����Fx~~��|>���)L�,_��lllLٶ-766��a���^��Z��ufff"���Qr��������t&5�<�MOO߳,����UD�����O~��c�]�Ƌ���s����,��' ���׆���ཛ8�}��A�����{�e巷�/@\r�)�>Ї���<V�*����>�J) ����҄���Y@��hsss4�Lʑ�}hh�x<������scc�i8>�g�@��4M !&�ɯ���ॠ*�U�P(L444|������{岥�ib��a\��===����a(z�8�;��nY�g{{{65�\-6::��R*�� �R<�+�n۶����)��q^ċ'�Ԃ\.�[[[�oaa�|�M��٩ ����f%e�X @������xwpp�5�u��7.۶m;���?��{��*g�4/�xit�-x��/�^A���"Do�|O@�������&-5!:��pk���O�����fk��a����IEND�B`���(uuay)spinner.c��������������/* Spinner * * GtkSpinner allows to show that background activity is on-going. * */ #include <glib/gi18n.h> #include <gtk/gtk.h> static GtkWidget *spinner_sensitive = NULL; static GtkWidget *spinner_unsensitive = NULL; static void on_play_clicked (GtkButton *button, gpointer user_data) { gtk_spinner_start (GTK_SPINNER (spinner_sensitive)); gtk_spinner_start (GTK_SPINNER (spinner_unsensitive)); } static void on_stop_clicked (GtkButton *button, gpointer user_data) { gtk_spinner_stop (GTK_SPINNER (spinner_sensitive)); gtk_spinner_stop (GTK_SPINNER (spinner_unsensitive)); } GtkWidget * do_spinner (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *content_area; GtkWidget *vbox; GtkWidget *hbox; GtkWidget *button; GtkWidget *spinner; if (!window) { window = gtk_dialog_new_with_buttons ("Spinner", GTK_WINDOW (do_widget), 0, _("_Close"), GTK_RESPONSE_NONE, NULL); gtk_window_set_resizable (GTK_WINDOW (window), FALSE); g_signal_connect (window, "response", G_CALLBACK (gtk_widget_destroy), NULL); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); content_area = gtk_dialog_get_content_area (GTK_DIALOG (window)); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_box_pack_start (GTK_BOX (content_area), vbox, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); /* Sensitive */ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5); spinner = gtk_spinner_new (); gtk_container_add (GTK_CONTAINER (hbox), spinner); gtk_container_add (GTK_CONTAINER (hbox), gtk_entry_new ()); gtk_container_add (GTK_CONTAINER (vbox), hbox); spinner_sensitive = spinner; /* Disabled */ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5); spinner = gtk_spinner_new (); gtk_container_add (GTK_CONTAINER (hbox), spinner); gtk_container_add (GTK_CONTAINER (hbox), gtk_entry_new ()); gtk_container_add (GTK_CONTAINER (vbox), hbox); spinner_unsensitive = spinner; gtk_widget_set_sensitive (hbox, FALSE); button = gtk_button_new_with_label (_("Play")); g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (on_play_clicked), spinner); gtk_container_add (GTK_CONTAINER (vbox), button); button = gtk_button_new_with_label (_("Stop")); g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (on_stop_clicked), spinner); gtk_container_add (GTK_CONTAINER (vbox), button); /* Start by default to test for: * https://bugzilla.gnome.org/show_bug.cgi?id=598496 */ on_play_clicked (NULL, NULL); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)application.ui������������<?xml version="1.0"?> <interface> <template class="DemoApplicationWindow" parent="GtkApplicationWindow"> <property name="title" translatable="yes">Application Class</property> <property name="default-width">200</property> <property name="default-height">200</property> <property name="icon-name">document-open</property> <child> <object class="GtkGrid"> <property name="visible">1</property> <child> <object class="GtkToolbar"> <property name="visible">1</property> <property name="hexpand">1</property> <style> <class name="primary-toolbar"/> </style> <child> <object class="GtkMenuToolButton" id="menutool"> <property name="visible">1</property> <property name="icon-name">document-open</property> </object> </child> <child> <object class="GtkToolButton"> <property name="visible">1</property> <property name="icon-name">application-exit</property> <property name="action-name">app.quit</property> </object> </child> <child> <object class="GtkSeparatorToolItem"> <property name="visible">1</property> </object> </child> <child> <object class="GtkToolButton"> <property name="visible">1</property> <property name="icon-name">applications-other</property> <property name="action-name">win.logo</property> </object> </child> </object> <packing> <property name="left-attach">0</property> <property name="top-attach">0</property> </packing> </child> <child> <object class="GtkInfoBar" id="infobar"> <property name="no-show-all">1</property> <property name="hexpand">1</property> <child internal-child="content_area"> <object class="GtkBox" id="content_area"> <child> <object class="GtkLabel" id="message"> <property name="visible">1</property> <property name="hexpand">1</property> </object> </child> </object> </child> <child internal-child="action_area"> <object class="GtkBox"> <child> <object class="GtkButton"> <property name="visible">1</property> <property name="valign">center</property> <property name="label" translatable="yes">_OK</property> <property name="use_underline">1</property> <signal name="clicked" handler="clicked_cb"/> </object> </child> </object> </child> </object> <packing> <property name="left-attach">0</property> <property name="top-attach">1</property> </packing> </child> <child> <object class="GtkScrolledWindow"> <property name="visible">1</property> <property name="shadow-type">in</property> <child> <object class="GtkTextView"> <property name="visible">1</property> <property name="hexpand">1</property> <property name="vexpand">1</property> <property name="buffer">buffer</property> </object> </child> </object> <packing> <property name="left-attach">0</property> <property name="top-attach">2</property> </packing> </child> <child> <object class="GtkStatusbar" id="status"> <property name="hexpand">1</property> <property name="visible">1</property> </object> <packing> <property name="left-attach">0</property> <property name="top-attach">3</property> </packing> </child> </object> </child> </template> <menu id="toolmenu"> <item> <attribute name="label">File1</attribute> <attribute name="action">win.file1</attribute> </item> </menu> <object class="GtkTextBuffer" id="buffer"> <signal name="changed" handler="update_statusbar"/> <signal name="mark-set" handler="mark_set_callback"/> </object> </interface> ��(uuay)apple-red.png����� �������PNG ��� IHDR���0���0���W�����gAMA�����a�� �IDATx��[�]Wy�k���9s��8� N��)J�ڄ���ڨ��B�>p��E��� ���W�K� �R@����@��@Bq��S+��8v�3�s��k}�>�3�1��^�|�֞9����������e{�^���tv�y���_��Tz߇�}�����r���c�ks����M�?p�<�p+��E�>���*ܾ�֏������� W]�v��fg���vw����>y�v!�����'+�_���d�L��o�m]a��D�֭���G����7��L����#ͯ�굿����>tb���ލW-,.����{�>��E�,�&�+֬�h��/���ڳ{^�>߄���z���;��������?����/ ;p�o}�U�.�t���KGŇ�f���6�)o�]�����E�Z��9�1|�}~������W--7C���4��� ;��%���씍o�zۍ!�� g|a���NgnMo�����,�V�K�U!��@0�G�|��n��ڱk5p�J�o��g&;W�5B8tpa�o���;[6:���O�\ �2�R wͮ�r|���Ο�=����Z����EB��|[��aղ���,�ꭿ��w~����x�����V�m�B)�F�h������c�ݷ�����������}�\I�����n}G�Sef�c"��v�Ԫg��/-�3�j"��`��wo�gpr��>���A�����qo��w��;7�����O ̄� &�A�X��A۰ض��8p�S��9p��M����Nwnm��Ⴣja~�n,�v�?s��{v}��7���ُO����P��v4!t��������T�UM�O��h[(��0�:��4�uȢ(����;��'�yn�9����?S��c�b���ጙ�!|'���/������͛7���+��Wu_ի�N�H)����D��^'�j�FĪBĐ,h.�%49� ���0o��fH_ ��C������S�v&/ʁn�z����hɖ��tJ�?ܽ���^�q���6]��^��~�ӣ�&��5���)��G����1��!@��2� �ĺ�ۖz�f� �r��\饊6���?7��=����_�ޓw����ַ��/����;��w'W��7���y���'���^��������j�c ��w�z��CDqbO1�H��!���af��曖c��P2�6,d�h�R�Ѐ���ص�0�h�O~�ί�{r�/����VOM���Vl���^}��5�#��ey_\�3���*1�D7��*J�x�*4+D�ƨ��$���"�,�X���^��SxAJ�pǏv�pǏ�8��G�ݍY�m��e��M��zr\�ǎ1�?L�����N�Ɉq�� X4LI�z��!u$Dw���!P�!�X(3J���⺫~����w>�����*�;o��;�� f��LթѦO{� ��A�?�Mt�z��U�:���z47"��qsH���NDS����@�8ɜn5A7���5e��<�3����a���t�H��`�����_ v:,�~��J�;I����`�U"�*� �af�#�Pp�w�D0�U��S����"V�ka��`�9�z���T��5��^�W/�8���Ogn��l�?������P2⠥��Qs���8���;��A�� T��"�J9%�3��^]�vݫ )����%�@�_��j�B�xɘ9w'��f�T�(�0����-/lp�a��A�Ai�#�aE�N�0NK�m7]���E�;���tz�`@~�$Zɘ`x���D��^1CQ��ƱoN���@�pu,��@�z�%��j�S����6����:ઔ�E�k������)�e� �"����`��h� �"���T����FP�v,GbrJ>5���Z�S T�P'4Q�u���G�l��b*-�+1�8�ʨ>L Uǣ",*��V1�,E��,� �*���U;Ή@�&D��"�Ǐљ�&}a5\)�"J�F0U��3 s�h Б�B�+�isa�����+ ������J)-M�:&��Xɸ� "����y4â�d-���Tr���D@����#�Ȱ(�q��@�����S�<��ܶw�ŧ����UL��ЛYE�*J.�D �B�#�%Cdb�`#�j��0#�qZUT)�h������}7kCPK����V���f�ZaoI��@�PB iA�� ֩�#����F�� Q���>JdŽP�1I��P�"XTlX�E"i����a<�F�oy��F �ж}���g$���HF��AQW\��%SPpCU �����bQ�2��-�PXj %D O�X�pm���a<����[��{��K/E꺦r�B�[9FE���2��g���T(>"�Z@<�hsaЎ�gy�hC��L_)���LMt�����t��zb�|�[{�v��0Fԕ*A"E"'U(�G3.��E��lPSZsD%;١�B�1�rch��&3Ԅ%$��D�9F�b��wƓ9��<�g���쵸^a�Pu���X�d�� &dW�Y5C�I�K!k�_�R2m$*�F �,B���iI)�1=z��O~�2��D^�g%�p�k.���6�3�0-����Q� ��BGQr0�Â��-�*c�ZA�*mCiZ�����v�;�`�d��H=� ����������K�1�Tޕ�i�MG ���d7� MiQ-��i���("����݀̒9Z�"�&�̠��1({�[��]�����+����+�+l�H�ѽ��/���n�oR����m�6R bN�����[Z)�֕A�%��< " 13��2�ptPر�ЉQ2\1��yFG�ϭN�]r��tw<����#��oZ��7S7�v�Q"RȪ����B.�ք֜R m�L��V�F6��Ѵ�hFUY�����?y�0��gt`|8�B�7.<e��@`x�B����� 3SL�M�d��Ҩ�V#KA4#�1%zi ���F�)�Z*���{������� ��ӈ��@8�%땏=}x�NJuS]D�lIiAQBFH�l�*8��U��(�({��y`�S��lgtϰx����x)^ \l�\;=ӛz�����i'��y�����f�&�梵�?�e�[ӫ��Ќ�<��Q�_t���{������2���Zf�W0Z..^\��p��n�p`��s��E�����.F�|�Q��c��G�NXt��r!c"k�d�Yyo�V��^���jW1ʥ�(VV�����1Z"���>6��3���{;ydbv��Xs�<�2N8��0�qY?�fza\�!���9��z�T�r�;������O�9����7��c�2~�ie��8]����щblE˜ �|�����\���������IEND�B`���(uuay)popover.ui������������<?xml version="1.0" encoding="UTF-8"?> <!-- Generated with glade 3.16.0 on Wed Nov 13 16:45:55 2013 --> <interface> <!-- interface-requires gtk+ 3.10 --> <object class="GtkListStore" id="liststore1"> <columns> <!-- column-name Name --> <column type="gchararray"/> </columns> <data> <row> <col id="0" translatable="yes">Item 1</col> </row> <row> <col id="0" translatable="yes">Item 2</col> </row> <row> <col id="0" translatable="yes">Item 3</col> </row> <row> <col id="0" translatable="yes">Item 4</col> </row> <row> <col id="0" translatable="yes">Item 5</col> </row> <row> <col id="0" translatable="yes">Item 6</col> </row> <row> <col id="0" translatable="yes">Item 7</col> </row> <row> <col id="0" translatable="yes">Item 8</col> </row> <row> <col id="0" translatable="yes">Item 9</col> </row> <row> <col id="0" translatable="yes">Item 10</col> </row> </data> </object> <object class="GtkWindow" id="window"> <child> <object class="GtkBox" id="box"> <property name="visible">1</property> <property name="orientation">vertical</property> <property name="spacing">6</property> <child> <object class="GtkEntry" id="entry1"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="primary_icon_name">edit-find</property> <property name="secondary_icon_name">edit-clear</property> </object> </child> <child> <object class="GtkScrolledWindow" id="scrolledwindow1"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="shadow_type">in</property> <property name="max-content-height">100</property> <child> <object class="GtkTreeView" id="treeview1"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="vexpand">1</property> <property name="model">liststore1</property> <property name="headers_visible">0</property> <property name="enable_search">0</property> <property name="search_column">2</property> <child internal-child="selection"> <object class="GtkTreeSelection" id="treeview-selection1"/> </child> <child> <object class="GtkTreeViewColumn" id="column1"> <child> <object class="GtkCellRendererText" id="cellrenderer1"/> <attributes> <attribute name="text">0</attribute> </attributes> </child> </object> </child> </object> </child> </object> <packing> <property name="position">1</property> </packing> </child> </object> </child> </object> </interface> ��(uuay)stack.c������������/* Stack * * GtkStack is a container that shows a single child at a time, * with nice transitions when the visible child changes. * * GtkStackSwitcher adds buttons to control which child is visible. */ #include <gtk/gtk.h> GtkWidget * do_stack (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkBuilder *builder; builder = gtk_builder_new_from_resource ("/stack/stack.ui"); gtk_builder_connect_signals (builder, NULL); window = GTK_WIDGET (gtk_builder_get_object (builder, "window1")); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); g_object_unref (builder); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)glarea-gl.fs.glsl������������#version 330 out vec4 outputColor; void main() { float lerpVal = gl_FragCoord.y / 500.0f; outputColor = mix(vec4(1.0f, 0.85f, 0.35f, 1.0f), vec4(0.2f, 0.2f, 0.2f, 1.0f), lerpVal); } ��(uuay)css_accordion.c�����������/* Theming/CSS Accordion * * A simple accordion demo written using CSS transitions and multiple backgrounds * */ #include <gtk/gtk.h> static void apply_css (GtkWidget *widget, GtkStyleProvider *provider) { gtk_style_context_add_provider (gtk_widget_get_style_context (widget), provider, G_MAXUINT); if (GTK_IS_CONTAINER (widget)) gtk_container_forall (GTK_CONTAINER (widget), (GtkCallback) apply_css, provider); } GtkWidget * do_css_accordion (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *container, *child; GtkStyleProvider *provider; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "CSS Accordion"); gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (do_widget)); gtk_window_set_default_size (GTK_WINDOW (window), 600, 300); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); container = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_set_halign (container, GTK_ALIGN_CENTER); gtk_widget_set_valign (container, GTK_ALIGN_CENTER); gtk_container_add (GTK_CONTAINER (window), container); child = gtk_button_new_with_label ("This"); gtk_container_add (GTK_CONTAINER (container), child); child = gtk_button_new_with_label ("Is"); gtk_container_add (GTK_CONTAINER (container), child); child = gtk_button_new_with_label ("A"); gtk_container_add (GTK_CONTAINER (container), child); child = gtk_button_new_with_label ("CSS"); gtk_container_add (GTK_CONTAINER (container), child); child = gtk_button_new_with_label ("Accordion"); gtk_container_add (GTK_CONTAINER (container), child); child = gtk_button_new_with_label (":-)"); gtk_container_add (GTK_CONTAINER (container), child); provider = GTK_STYLE_PROVIDER (gtk_css_provider_new ()); gtk_css_provider_load_from_resource (GTK_CSS_PROVIDER (provider), "/css_accordion/css_accordion.css"); apply_css (window, provider); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)css_accordion.css�����1������@import url("resource://css_accordion/reset.css"); * { transition-property: color, background-color, border-color, background-image, padding, border-width; transition-duration: 1s; font: 20px Cantarell; } window { background: linear-gradient(153deg, #151515, #151515 5px, transparent 5px) 0 0, linear-gradient(333deg, #151515, #151515 5px, transparent 5px) 10px 5px, linear-gradient(153deg, #222, #222 5px, transparent 5px) 0 5px, linear-gradient(333deg, #222, #222 5px, transparent 5px) 10px 10px, linear-gradient(90deg, #1b1b1b, #1b1b1b 10px, transparent 10px), linear-gradient(#1d1d1d, #1d1d1d 25%, #1a1a1a 25%, #1a1a1a 50%, transparent 50%, transparent 75%, #242424 75%, #242424); background-color: #131313; background-size: 20px 20px; } button { color: black; background-color: #bbb; border-style: solid; border-width: 2px 0 2px 2px; border-color: #333; padding: 12px 4px; } button:first-child { border-radius: 5px 0 0 5px; } button:last-child { border-radius: 0 5px 5px 0; border-width: 2px; } button:hover { padding: 12px 48px; background-color: #4870bc; } button *:hover { color: white; } button:hover:active, button:active { background-color: #993401; } ��(uuay)gnome-fs-regular.png���'������GdkP��'��������0���4���o����������������������������������������������������������������������������������������������������������������������������������������###�����K������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ppp����������� ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������!��� ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������!��� �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������!��� �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������!��� ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������!��� ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������QQQ�GGG�FFE�FFF�FFF�]]\������������0��������������������������������������������������������������������������������������������������������������������������������������������������������������������������lll�lll�EEE��������@����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������zzz��������F���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������G���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������F���������o�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������?�������������5���@���F���G���G���G���G���G���G���G���G���G���G���G���G���G���G���G���G���G���G���G���G���G���G���G���G���G���G���G���G���G���G���G���G���G���G���G���G���G���G���G���F���?���(�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������(uuay)textscroll.c����`������/* Text View/Automatic Scrolling * * This example demonstrates how to use the gravity of * GtkTextMarks to keep a text view scrolled to the bottom * while appending text. */ #include <gtk/gtk.h> /* Scroll to the end of the buffer. */ static gboolean scroll_to_end (GtkTextView *textview) { GtkTextBuffer *buffer; GtkTextIter iter; GtkTextMark *mark; char *spaces; char *text; static int count; buffer = gtk_text_view_get_buffer (textview); /* Get "end" mark. It's located at the end of buffer because * of right gravity */ mark = gtk_text_buffer_get_mark (buffer, "end"); gtk_text_buffer_get_iter_at_mark (buffer, &iter, mark); /* and insert some text at its position, the iter will be * revalidated after insertion to point to the end of inserted text */ spaces = g_strnfill (count++, ' '); gtk_text_buffer_insert (buffer, &iter, "\n", -1); gtk_text_buffer_insert (buffer, &iter, spaces, -1); text = g_strdup_printf ("Scroll to end scroll to end scroll " "to end scroll to end %d", count); gtk_text_buffer_insert (buffer, &iter, text, -1); g_free (spaces); g_free (text); /* Now scroll the end mark onscreen. */ gtk_text_view_scroll_mark_onscreen (textview, mark); /* Emulate typewriter behavior, shift to the left if we * are far enough to the right. */ if (count > 150) count = 0; return G_SOURCE_CONTINUE; } /* Scroll to the bottom of the buffer. */ static gboolean scroll_to_bottom (GtkTextView *textview) { GtkTextBuffer *buffer; GtkTextIter iter; GtkTextMark *mark; char *spaces; char *text; static int count; buffer = gtk_text_view_get_buffer (textview); /* Get end iterator */ gtk_text_buffer_get_end_iter (buffer, &iter); /* and insert some text at it, the iter will be revalidated * after insertion to point to the end of inserted text */ spaces = g_strnfill (count++, ' '); gtk_text_buffer_insert (buffer, &iter, "\n", -1); gtk_text_buffer_insert (buffer, &iter, spaces, -1); text = g_strdup_printf ("Scroll to bottom scroll to bottom scroll " "to bottom scroll to bottom %d", count); gtk_text_buffer_insert (buffer, &iter, text, -1); g_free (spaces); g_free (text); /* Move the iterator to the beginning of line, so we don't scroll * in horizontal direction */ gtk_text_iter_set_line_offset (&iter, 0); /* and place the mark at iter. the mark will stay there after we * insert some text at the end because it has left gravity. */ mark = gtk_text_buffer_get_mark (buffer, "scroll"); gtk_text_buffer_move_mark (buffer, mark, &iter); /* Scroll the mark onscreen. */ gtk_text_view_scroll_mark_onscreen (textview, mark); /* Shift text back if we got enough to the right. */ if (count > 40) count = 0; return G_SOURCE_CONTINUE; } static guint setup_scroll (GtkTextView *textview, gboolean to_end) { GtkTextBuffer *buffer; GtkTextIter iter; buffer = gtk_text_view_get_buffer (textview); gtk_text_buffer_get_end_iter (buffer, &iter); if (to_end) { /* If we want to scroll to the end, including horizontal scrolling, * then we just create a mark with right gravity at the end of the * buffer. It will stay at the end unless explicitly moved with * gtk_text_buffer_move_mark. */ gtk_text_buffer_create_mark (buffer, "end", &iter, FALSE); /* Add scrolling timeout. */ return g_timeout_add (50, (GSourceFunc) scroll_to_end, textview); } else { /* If we want to scroll to the bottom, but not scroll horizontally, * then an end mark won't do the job. Just create a mark so we can * use it with gtk_text_view_scroll_mark_onscreen, we'll position it * explicitly when needed. Use left gravity so the mark stays where * we put it after inserting new text. */ gtk_text_buffer_create_mark (buffer, "scroll", &iter, TRUE); /* Add scrolling timeout. */ return g_timeout_add (100, (GSourceFunc) scroll_to_bottom, textview); } } static void remove_timeout (GtkWidget *window, gpointer timeout) { g_source_remove (GPOINTER_TO_UINT (timeout)); } static void create_text_view (GtkWidget *hbox, gboolean to_end) { GtkWidget *swindow; GtkWidget *textview; guint timeout; swindow = gtk_scrolled_window_new (NULL, NULL); gtk_box_pack_start (GTK_BOX (hbox), swindow, TRUE, TRUE, 0); textview = gtk_text_view_new (); gtk_container_add (GTK_CONTAINER (swindow), textview); timeout = setup_scroll (GTK_TEXT_VIEW (textview), to_end); /* Remove the timeout in destroy handler, so we don't try to * scroll destroyed widget. */ g_signal_connect (textview, "destroy", G_CALLBACK (remove_timeout), GUINT_TO_POINTER (timeout)); } GtkWidget * do_textscroll (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *hbox; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "Automatic Scrolling"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_window_set_default_size (GTK_WINDOW (window), 600, 400); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); gtk_box_set_homogeneous (GTK_BOX (hbox), TRUE); gtk_container_add (GTK_CONTAINER (window), hbox); create_text_view (hbox, TRUE); create_text_view (hbox, FALSE); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)revealer.ui�����-������<?xml version="1.0" encoding="UTF-8"?> <interface> <!-- interface-requires gtk+ 3.6 --> <object class="GtkWindow" id="window"> <property name="border_width">5</property> <property name="default_width">300</property> <property name="default_height">300</property> <property name="title">Revealer</property> <child> <object class="GtkGrid"> <property name="visible">1</property> <property name="halign">center</property> <property name="valign">center</property> <child> <object class="GtkRevealer" id="revealer0"> <property name="visible">1</property> <property name="transition-duration">2000</property> <property name="transition-type">crossfade</property> <child> <object class="GtkImage"> <property name="visible">1</property> <property name="icon-name">face-cool-symbolic</property> <property name="icon-size">6</property> </object> </child> </object> <packing> <property name="left-attach">2</property> <property name="top-attach">2</property> </packing> </child> <child> <object class="GtkRevealer" id="revealer1"> <property name="visible">1</property> <property name="transition-duration">2000</property> <property name="transition-type">slide-up</property> <child> <object class="GtkImage"> <property name="visible">1</property> <property name="icon-name">face-cool-symbolic</property> <property name="icon-size">6</property> </object> </child> </object> <packing> <property name="left-attach">2</property> <property name="top-attach">1</property> </packing> </child> <child> <object class="GtkRevealer" id="revealer2"> <property name="visible">1</property> <property name="transition-duration">2000</property> <property name="transition-type">slide-right</property> <child> <object class="GtkImage"> <property name="visible">1</property> <property name="icon-name">face-cool-symbolic</property> <property name="icon-size">6</property> </object> </child> </object> <packing> <property name="left-attach">3</property> <property name="top-attach">2</property> </packing> </child> <child> <object class="GtkRevealer" id="revealer3"> <property name="visible">1</property> <property name="transition-duration">2000</property> <child> <object class="GtkImage"> <property name="visible">1</property> <property name="icon-name">face-cool-symbolic</property> <property name="icon-size">6</property> </object> </child> </object> <packing> <property name="left-attach">2</property> <property name="top-attach">3</property> </packing> </child> <child> <object class="GtkRevealer" id="revealer4"> <property name="visible">1</property> <property name="transition-duration">2000</property> <property name="transition-type">slide-left</property> <child> <object class="GtkImage"> <property name="visible">1</property> <property name="icon-name">face-cool-symbolic</property> <property name="icon-size">6</property> </object> </child> </object> <packing> <property name="left-attach">1</property> <property name="top-attach">2</property> </packing> </child> <child> <object class="GtkRevealer" id="revealer5"> <property name="visible">1</property> <property name="transition-duration">2000</property> <property name="transition-type">slide-up</property> <child> <object class="GtkImage"> <property name="visible">1</property> <property name="icon-name">face-cool-symbolic</property> <property name="icon-size">6</property> </object> </child> </object> <packing> <property name="left-attach">2</property> <property name="top-attach">0</property> </packing> </child> <child> <object class="GtkRevealer" id="revealer6"> <property name="visible">1</property> <property name="transition-duration">2000</property> <property name="transition-type">slide-right</property> <child> <object class="GtkImage"> <property name="visible">1</property> <property name="icon-name">face-cool-symbolic</property> <property name="icon-size">6</property> </object> </child> </object> <packing> <property name="left-attach">4</property> <property name="top-attach">2</property> </packing> </child> <child> <object class="GtkRevealer" id="revealer7"> <property name="visible">1</property> <property name="transition-duration">2000</property> <child> <object class="GtkImage"> <property name="visible">1</property> <property name="icon-name">face-cool-symbolic</property> <property name="icon-size">6</property> </object> </child> </object> <packing> <property name="left-attach">2</property> <property name="top-attach">4</property> </packing> </child> <child> <object class="GtkRevealer" id="revealer8"> <property name="visible">1</property> <property name="transition-duration">2000</property> <property name="transition-type">slide-left</property> <child> <object class="GtkImage"> <property name="visible">1</property> <property name="icon-name">face-cool-symbolic</property> <property name="icon-size">6</property> </object> </child> </object> <packing> <property name="left-attach">0</property> <property name="top-attach">2</property> </packing> </child> </object> </child> </object> </interface> ��(uuay)filtermodel/�������font-features.ui�������<?xml version="1.0" encoding="UTF-8"?> <!-- Generated with glade 3.18.1 --> <interface> <requires lib="gtk+" version="3.12"/> <object class="GtkWindow" id="window"> <property name="default-width">600</property> <property name="default-height">500</property> <child type="titlebar"> <object class="GtkHeaderBar"> <property name="visible">1</property> <property name="show_close_button">1</property> <property name="title">Font Features</property> <child> <object class="GtkButton" id="reset"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="receives_default">1</property> <property name="tooltip-text">Reset</property> <signal name="clicked" handler="reset" swapped="no"/> <child> <object class="GtkImage"> <property name="visible">1</property> <property name="icon_name">view-refresh-symbolic</property> </object> </child> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkScrolledWindow"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="hscrollbar_policy">never</property> <child> <object class="GtkViewport"> <property name="visible">1</property> <child> <object class="GtkBox"> <property name="visible">1</property> <property name="margin">10</property> <property name="orientation">vertical</property> <property name="spacing">6</property> <child> <object class="GtkFontButton" id="font"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="receives_default">1</property> <property name="font">Sans 12</property> <signal name="font-set" handler="font_changed" swapped="no"/> </object> </child> <child> <object class="GtkComboBox" id="script_lang"> <property name="visible">1</property> <property name="can_focus">1</property> <signal name="changed" handler="script_changed" swapped="no"/> <child> <object class="GtkCellRendererText"/> <attributes> <attribute name="text">0</attribute> </attributes> </child> </object> </child> <child> <object class="GtkExpander"> <property name="visible">1</property> <property name="can_focus">1</property> <child> <object class="GtkBox"> <property name="visible">1</property> <property name="margin_start">10</property> <property name="margin_end">10</property> <property name="margin_top">10</property> <property name="orientation">vertical</property> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="kern_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="kern_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="kern"> <property name="label" translatable="yes">Enabled</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="sensitive" bind-source="kern_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> </object> </child> <child type="label"> <object class="GtkLabel"> <property name="visible">1</property> <property name="label" translatable="yes">Kerning</property> </object> </child> </object> </child> <child> <object class="GtkExpander"> <property name="visible">1</property> <property name="can_focus">1</property> <child> <object class="GtkBox"> <property name="visible">1</property> <property name="margin_start">10</property> <property name="margin_end">10</property> <property name="margin_top">10</property> <property name="orientation">vertical</property> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="liga_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="liga_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="liga"> <property name="label" translatable="yes">Common Ligatures</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="sensitive" bind-source="liga_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="dlig_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="dlig_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="dlig"> <property name="label" translatable="yes">Discretionary Ligatures</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="sensitive" bind-source="dlig_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="hlig_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="hlig_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="hlig"> <property name="label" translatable="yes">Historical Ligatures</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="sensitive" bind-source="hlig_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="clig_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="clig_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="clig"> <property name="label" translatable="yes">Contextual Ligatures</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="sensitive" bind-source="clig_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> </object> </child> <child type="label"> <object class="GtkLabel"> <property name="visible">1</property> <property name="label" translatable="yes">Ligatures</property> </object> </child> </object> </child> <child> <object class="GtkExpander"> <property name="visible">1</property> <property name="can_focus">1</property> <child> <object class="GtkBox"> <property name="visible">1</property> <property name="margin_start">10</property> <property name="margin_end">10</property> <property name="margin_top">10</property> <property name="orientation">vertical</property> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="smcp_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="smcp_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="smcp"> <property name="label" translatable="yes">Small Caps</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="valign">baseline</property> <property name="sensitive" bind-source="smcp_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="c2sc_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="c2sc_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="c2sc"> <property name="label" translatable="yes">Small Caps from Caps</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="sensitive" bind-source="c2sc_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="pcap_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="pcap_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="pcap"> <property name="label" translatable="yes">Petite Caps</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="sensitive" bind-source="pcap_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="c2pc_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="c2pc_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="c2pc"> <property name="label" translatable="yes">Caps to Petite Caps</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="sensitive" bind-source="c2pc_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="unic_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="unic_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="unic"> <property name="label" translatable="yes">Unicase</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="sensitive" bind-source="unic_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="cpsp_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="cpsp_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="cpsp"> <property name="label" translatable="yes">Capital Spacing</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="sensitive" bind-source="cpsp_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="case_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="case_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="case"> <property name="label" translatable="yes">Case-sensitive Forms</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="sensitive" bind-source="case_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> </object> </child> <child type="label"> <object class="GtkLabel"> <property name="visible">1</property> <property name="label" translatable="yes">Letter Case</property> </object> </child> </object> </child> <child> <object class="GtkExpander"> <property name="visible">1</property> <property name="can_focus">1</property> <child> <object class="GtkBox"> <property name="visible">1</property> <property name="margin_start">10</property> <property name="margin_end">10</property> <property name="margin_top">10</property> <property name="orientation">vertical</property> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="numcasedefault_pres"> <property name="visible">1</property> <property name="opacity">0</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkRadioButton" id="numcasedefault"> <property name="label" translatable="yes">Default</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="active">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="lnum_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkRadioButton" id="lnum"> <property name="label" translatable="yes">Lining</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="active">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <property name="group">numcasedefault</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="onum_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkRadioButton" id="onum"> <property name="label" translatable="yes">Old-Style</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="active">1</property> <property name="valign">baseline</property> <property name="draw_indicator">1</property> <property name="group">numcasedefault</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> </object> </child> </object> </child> <child type="label"> <object class="GtkLabel"> <property name="visible">1</property> <property name="label" translatable="yes">Number Case</property> </object> </child> </object> </child> <child> <object class="GtkExpander"> <property name="visible">1</property> <property name="can_focus">1</property> <child> <object class="GtkBox"> <property name="visible">1</property> <property name="margin_start">10</property> <property name="margin_end">10</property> <property name="margin_top">10</property> <property name="orientation">vertical</property> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="numspacedefault_pres"> <property name="visible">1</property> <property name="opacity">0</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkRadioButton" id="numspacedefault"> <property name="label" translatable="yes">Default</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="active">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="pnum_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkRadioButton" id="pnum"> <property name="label" translatable="yes">Proportional</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="active">1</property> <property name="draw_indicator">1</property> <property name="group">numspacedefault</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="tnum_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkRadioButton" id="tnum"> <property name="label" translatable="yes">Tabular</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="active">1</property> <property name="draw_indicator">1</property> <property name="group">numspacedefault</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> </object> </child> </object> </child> <child type="label"> <object class="GtkLabel"> <property name="visible">1</property> <property name="label" translatable="yes">Number Spacing</property> </object> </child> </object> </child> <child> <object class="GtkExpander"> <property name="visible">1</property> <property name="can_focus">1</property> <child> <object class="GtkBox"> <property name="visible">1</property> <property name="margin_start">10</property> <property name="margin_end">10</property> <property name="margin_top">10</property> <property name="orientation">vertical</property> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="fractiondefault_pres"> <property name="visible">1</property> <property name="opacity">0</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkRadioButton" id="fractiondefault"> <property name="label" translatable="yes">Off</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="active">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="frac_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkRadioButton" id="frac"> <property name="label" translatable="yes">Normal</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="active">1</property> <property name="draw_indicator">1</property> <property name="group">fractiondefault</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="afrc_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkRadioButton" id="afrc"> <property name="label" translatable="yes">Alternate</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="active">1</property> <property name="draw_indicator">1</property> <property name="group">fractiondefault</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> </object> </child> </object> </child> <child type="label"> <object class="GtkLabel"> <property name="visible">1</property> <property name="label" translatable="yes">Fractions</property> </object> </child> </object> </child> <child> <object class="GtkExpander"> <property name="visible">1</property> <property name="can_focus">1</property> <child> <object class="GtkBox"> <property name="visible">1</property> <property name="margin_start">10</property> <property name="margin_end">10</property> <property name="margin_top">10</property> <property name="orientation">vertical</property> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="zero_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="zero_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="zero"> <property name="label" translatable="yes">Slashed Zero</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="sensitive" bind-source="zero_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="nalt_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="nalt_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="nalt"> <property name="label" translatable="yes">Alternative Annotations</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="sensitive" bind-source="nalt_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="sinf_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="sinf_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="sinf"> <property name="label" translatable="yes">Scientific Inferiors</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="sensitive" bind-source="sinf_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> </object> </child> <child type="label"> <object class="GtkLabel"> <property name="visible">1</property> <property name="label" translatable="yes">Numeric Extras</property> </object> </child> </object> </child> <child> <object class="GtkExpander"> <property name="visible">1</property> <property name="can_focus">1</property> <child> <object class="GtkBox"> <property name="visible">1</property> <property name="margin_start">10</property> <property name="margin_end">10</property> <property name="margin_top">10</property> <property name="orientation">vertical</property> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="swsh_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="swsh_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="swsh"> <property name="label" translatable="yes">Swash Glyphs</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="sensitive" bind-source="swsh_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="cswh_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="cswh_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="cswh"> <property name="label" translatable="yes">Contextual Swash</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="sensitive" bind-source="cswh_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="locl_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="locl_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="locl"> <property name="label" translatable="yes">Localized Forms</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="sensitive" bind-source="locl_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="calt_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="calt_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="calt"> <property name="label" translatable="yes">Contextual Alternatives</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="sensitive" bind-source="calt_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="hist_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="hist_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="hist"> <property name="label" translatable="yes">Historical Alternatives</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="sensitive" bind-source="hist_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="salt_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="salt_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="salt"> <property name="label" translatable="yes">Stylistic Alternatives</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="sensitive" bind-source="salt_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="titl_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="titl_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="titl"> <property name="label" translatable="yes">Titling Alternatives</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="sensitive" bind-source="titl_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="rand_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="rand_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="rand"> <property name="label" translatable="yes">Randomize</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="sensitive" bind-source="rand_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="subs_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="subs_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="subs"> <property name="label" translatable="yes">Subscript</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="sensitive" bind-source="subs_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="sups_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="sups_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="sups"> <property name="label" translatable="yes">Superscript</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="sensitive" bind-source="sups_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> </object> </child> <child type="label"> <object class="GtkLabel"> <property name="visible">1</property> <property name="label" translatable="yes">Character Alternatives</property> </object> </child> </object> </child> <child> <object class="GtkExpander"> <property name="visible">1</property> <property name="can_focus">1</property> <child> <object class="GtkBox"> <property name="visible">1</property> <property name="margin_start">10</property> <property name="margin_end">10</property> <property name="margin_top">10</property> <property name="orientation">vertical</property> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="init_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="init_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="init"> <property name="label" translatable="yes">Initial Forms</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="sensitive" bind-source="init_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="medi_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="medi_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="medi"> <property name="label" translatable="yes">Medial Forms</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="sensitive" bind-source="medi_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="fina_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="fina_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="fina"> <property name="label" translatable="yes">Final Forms</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="sensitive" bind-source="fina_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="isol_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="isol_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="isol"> <property name="label" translatable="yes">Isolated Forms</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="sensitive" bind-source="isol_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> </object> </child> <child type="label"> <object class="GtkLabel"> <property name="visible">1</property> <property name="label" translatable="yes">Positional Alternatives</property> </object> </child> </object> </child> <child> <object class="GtkExpander"> <property name="visible">1</property> <property name="can_focus">1</property> <child> <object class="GtkBox"> <property name="visible">1</property> <property name="margin_start">10</property> <property name="margin_end">10</property> <property name="margin_top">10</property> <property name="orientation">vertical</property> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="ss01_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="ss01_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="ss01"> <property name="label" translatable="yes">Set 1</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="sensitive" bind-source="ss01_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="ss02_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="ss02_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="ss02"> <property name="label" translatable="yes">Set 2</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="sensitive" bind-source="ss02_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="ss03_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="ss03_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="ss03"> <property name="label" translatable="yes">Set 3</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="sensitive" bind-source="ss03_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="ss04_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="ss04_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="ss04"> <property name="label" translatable="yes">Set 4</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="sensitive" bind-source="ss04_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <child> <object class="GtkImage" id="ss05_pres"> <property name="visible">1</property> <property name="icon-name">object-select-symbolic</property> <property name="icon-size">1</property> </object> </child> <child> <object class="GtkCheckButton" id="ss05_dflt"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> </object> </child> <child> <object class="GtkCheckButton" id="ss05"> <property name="label" translatable="yes">Set 5</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="valign">baseline</property> <signal name="notify::active" handler="update_display" swapped="no"/> <property name="sensitive" bind-source="ss05_dflt" bind-property="active" bind-flags="sync-create|bidirectional"/> </object> </child> </object> </child> </object> </child> <child type="label"> <object class="GtkLabel"> <property name="visible">1</property> <property name="label" translatable="yes">Alternative Stylistic Sets</property> </object> </child> </object> </child> </object> </child> <style> <class name="view"/> </style> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <property name="orientation">vertical</property> <child> <object class="GtkStack" id="stack"> <property name="visible">1</property> <property name="margin_start">20</property> <property name="margin_end">20</property> <property name="margin_top">20</property> <property name="margin_bottom">20</property> <child> <object class="GtkEventBox"> <property name="visible">1</property> <signal name="button-press-event" handler="switch_to_entry"/> <child> <object class="GtkLabel" id="label"> <property name="visible">1</property> <property name="wrap">1</property> <property name="xalign">0</property> <property name="yalign">0</property> <property name="valign">start</property> </object> </child> </object> <packing> <property name="name">label</property> </packing> </child> <child> <object class="GtkEntry" id="entry"> <property name="visible">1</property> <property name="text">Grumpy wizards make toxic brew for the evil Queen and Jack. A quick movement of the enemy will jeopardize six gunboats. The job of waxing linoleum frequently peeves chintzy kids. My girl wove six dozen plaid jackets before she quit. Twelve ziggurats quickly jumped a finch box. Разъяренный чтец эгоистично бьёт пятью жердями шустрого фехтовальщика. Наш банк вчера же выплатил Ф.Я. Эйхгольду комиссию за ценные вещи. Эх, чужак, общий съём цен шляп (юфть) – вдрызг! В чащах юга жил бы цитрус? Да, но фальшивый экземпляр! Τάχιστη αλώπηξ βαφής ψημένη γη, δρασκελίζει υπέρ νωθρού κυνός</property> <signal name="key-press-event" handler="entry_key_press"/> <signal name="activate" handler="switch_to_label"/> <property name="valign">start</property> <property name="width-chars">50</property> </object> <packing> <property name="name">entry</property> </packing> </child> </object> </child> <child> <object class="GtkLabel" id="settings"> <property name="visible">1</property> <property name="margin_start">20</property> <property name="margin_end">20</property> <property name="margin_bottom">20</property> <property name="xalign">0</property> <property name="valign">end</property> <property name="width-chars">50</property> <property name="max-width-chars">50</property> </object> <packing> <property name="expand">1</property> </packing> </child> </object> <packing> <property name="expand">1</property> </packing> </child> </object> </child> </object> </interface> ��(uuay)textview.c��������b������/* Text View/Multiple Views * * The GtkTextView widget displays a GtkTextBuffer. One GtkTextBuffer * can be displayed by multiple GtkTextViews. This demo has two views * displaying a single buffer, and shows off the widget's text * formatting features. * */ #include <gtk/gtk.h> #include <stdlib.h> /* for exit() */ static void easter_egg_callback (GtkWidget *button, gpointer data); static void create_tags (GtkTextBuffer *buffer) { /* Create a bunch of tags. Note that it's also possible to * create tags with gtk_text_tag_new() then add them to the * tag table for the buffer, gtk_text_buffer_create_tag() is * just a convenience function. Also note that you don't have * to give tags a name; pass NULL for the name to create an * anonymous tag. * * In any real app, another useful optimization would be to create * a GtkTextTagTable in advance, and reuse the same tag table for * all the buffers with the same tag set, instead of creating * new copies of the same tags for every buffer. * * Tags are assigned default priorities in order of addition to the * tag table. That is, tags created later that affect the same text * property affected by an earlier tag will override the earlier * tag. You can modify tag priorities with * gtk_text_tag_set_priority(). */ gtk_text_buffer_create_tag (buffer, "heading", "weight", PANGO_WEIGHT_BOLD, "size", 15 * PANGO_SCALE, NULL); gtk_text_buffer_create_tag (buffer, "italic", "style", PANGO_STYLE_ITALIC, NULL); gtk_text_buffer_create_tag (buffer, "bold", "weight", PANGO_WEIGHT_BOLD, NULL); gtk_text_buffer_create_tag (buffer, "big", /* points times the PANGO_SCALE factor */ "size", 20 * PANGO_SCALE, NULL); gtk_text_buffer_create_tag (buffer, "xx-small", "scale", PANGO_SCALE_XX_SMALL, NULL); gtk_text_buffer_create_tag (buffer, "x-large", "scale", PANGO_SCALE_X_LARGE, NULL); gtk_text_buffer_create_tag (buffer, "monospace", "family", "monospace", NULL); gtk_text_buffer_create_tag (buffer, "blue_foreground", "foreground", "blue", NULL); gtk_text_buffer_create_tag (buffer, "red_background", "background", "red", NULL); gtk_text_buffer_create_tag (buffer, "big_gap_before_line", "pixels_above_lines", 30, NULL); gtk_text_buffer_create_tag (buffer, "big_gap_after_line", "pixels_below_lines", 30, NULL); gtk_text_buffer_create_tag (buffer, "double_spaced_line", "pixels_inside_wrap", 10, NULL); gtk_text_buffer_create_tag (buffer, "not_editable", "editable", FALSE, NULL); gtk_text_buffer_create_tag (buffer, "word_wrap", "wrap_mode", GTK_WRAP_WORD, NULL); gtk_text_buffer_create_tag (buffer, "char_wrap", "wrap_mode", GTK_WRAP_CHAR, NULL); gtk_text_buffer_create_tag (buffer, "no_wrap", "wrap_mode", GTK_WRAP_NONE, NULL); gtk_text_buffer_create_tag (buffer, "center", "justification", GTK_JUSTIFY_CENTER, NULL); gtk_text_buffer_create_tag (buffer, "right_justify", "justification", GTK_JUSTIFY_RIGHT, NULL); gtk_text_buffer_create_tag (buffer, "wide_margins", "left_margin", 50, "right_margin", 50, NULL); gtk_text_buffer_create_tag (buffer, "strikethrough", "strikethrough", TRUE, NULL); gtk_text_buffer_create_tag (buffer, "underline", "underline", PANGO_UNDERLINE_SINGLE, NULL); gtk_text_buffer_create_tag (buffer, "double_underline", "underline", PANGO_UNDERLINE_DOUBLE, NULL); gtk_text_buffer_create_tag (buffer, "superscript", "rise", 10 * PANGO_SCALE, /* 10 pixels */ "size", 8 * PANGO_SCALE, /* 8 points */ NULL); gtk_text_buffer_create_tag (buffer, "subscript", "rise", -10 * PANGO_SCALE, /* 10 pixels */ "size", 8 * PANGO_SCALE, /* 8 points */ NULL); gtk_text_buffer_create_tag (buffer, "rtl_quote", "wrap_mode", GTK_WRAP_WORD, "direction", GTK_TEXT_DIR_RTL, "indent", 30, "left_margin", 20, "right_margin", 20, NULL); } static void insert_text (GtkTextBuffer *buffer) { GtkTextIter iter; GtkTextIter start, end; GdkPixbuf *pixbuf; GtkIconTheme *icon_theme; icon_theme = gtk_icon_theme_get_default (); pixbuf = gtk_icon_theme_load_icon (icon_theme, "gtk3-demo", 32, GTK_ICON_LOOKUP_GENERIC_FALLBACK, NULL); g_assert (pixbuf); /* get start of buffer; each insertion will revalidate the * iterator to point to just after the inserted text. */ gtk_text_buffer_get_iter_at_offset (buffer, &iter, 0); gtk_text_buffer_insert (buffer, &iter, "The text widget can display text with all kinds of nifty attributes. " "It also supports multiple views of the same buffer; this demo is " "showing the same buffer in two places.\n\n", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Font styles. ", -1, "heading", NULL); gtk_text_buffer_insert (buffer, &iter, "For example, you can have ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "italic", -1, "italic", NULL); gtk_text_buffer_insert (buffer, &iter, ", ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "bold", -1, "bold", NULL); gtk_text_buffer_insert (buffer, &iter, ", or ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "monospace (typewriter)", -1, "monospace", NULL); gtk_text_buffer_insert (buffer, &iter, ", or ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "big", -1, "big", NULL); gtk_text_buffer_insert (buffer, &iter, " text. ", -1); gtk_text_buffer_insert (buffer, &iter, "It's best not to hardcode specific text sizes; you can use relative " "sizes as with CSS, such as ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "xx-small", -1, "xx-small", NULL); gtk_text_buffer_insert (buffer, &iter, " or ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "x-large", -1, "x-large", NULL); gtk_text_buffer_insert (buffer, &iter, " to ensure that your program properly adapts if the user changes the " "default font size.\n\n", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Colors. ", -1, "heading", NULL); gtk_text_buffer_insert (buffer, &iter, "Colors such as ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "a blue foreground", -1, "blue_foreground", NULL); gtk_text_buffer_insert (buffer, &iter, " or ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "a red background", -1, "red_background", NULL); gtk_text_buffer_insert (buffer, &iter, " or even ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "a blue foreground on red background", -1, "blue_foreground", "red_background", NULL); gtk_text_buffer_insert (buffer, &iter, " (select that to read it) can be used.\n\n", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Underline, strikethrough, and rise. ", -1, "heading", NULL); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Strikethrough", -1, "strikethrough", NULL); gtk_text_buffer_insert (buffer, &iter, ", ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "underline", -1, "underline", NULL); gtk_text_buffer_insert (buffer, &iter, ", ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "double underline", -1, "double_underline", NULL); gtk_text_buffer_insert (buffer, &iter, ", ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "superscript", -1, "superscript", NULL); gtk_text_buffer_insert (buffer, &iter, ", and ", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "subscript", -1, "subscript", NULL); gtk_text_buffer_insert (buffer, &iter, " are all supported.\n\n", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Images. ", -1, "heading", NULL); gtk_text_buffer_insert (buffer, &iter, "The buffer can have images in it: ", -1); gtk_text_buffer_insert_pixbuf (buffer, &iter, pixbuf); gtk_text_buffer_insert_pixbuf (buffer, &iter, pixbuf); gtk_text_buffer_insert_pixbuf (buffer, &iter, pixbuf); gtk_text_buffer_insert (buffer, &iter, " for example.\n\n", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Spacing. ", -1, "heading", NULL); gtk_text_buffer_insert (buffer, &iter, "You can adjust the amount of space before each line.\n", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "This line has a whole lot of space before it.\n", -1, "big_gap_before_line", "wide_margins", NULL); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "You can also adjust the amount of space after each line; " "this line has a whole lot of space after it.\n", -1, "big_gap_after_line", "wide_margins", NULL); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "You can also adjust the amount of space between wrapped lines; " "this line has extra space between each wrapped line in the same " "paragraph. To show off wrapping, some filler text: the quick " "brown fox jumped over the lazy dog. Blah blah blah blah blah " "blah blah blah blah.\n", -1, "double_spaced_line", "wide_margins", NULL); gtk_text_buffer_insert (buffer, &iter, "Also note that those lines have extra-wide margins.\n\n", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Editability. ", -1, "heading", NULL); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "This line is 'locked down' and can't be edited by the user - just " "try it! You can't delete this line.\n\n", -1, "not_editable", NULL); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Wrapping. ", -1, "heading", NULL); gtk_text_buffer_insert (buffer, &iter, "This line (and most of the others in this buffer) is word-wrapped, " "using the proper Unicode algorithm. Word wrap should work in all " "scripts and languages that GTK+ supports. Let's make this a long " "paragraph to demonstrate: blah blah blah blah blah blah blah blah " "blah blah blah blah blah blah blah blah blah blah blah\n\n", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "This line has character-based wrapping, and can wrap between any two " "character glyphs. Let's make this a long paragraph to demonstrate: " "blah blah blah blah blah blah blah blah blah blah blah blah blah blah " "blah blah blah blah blah\n\n", -1, "char_wrap", NULL); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "This line has all wrapping turned off, so it makes the horizontal " "scrollbar appear.\n\n\n", -1, "no_wrap", NULL); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Justification. ", -1, "heading", NULL); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "\nThis line has center justification.\n", -1, "center", NULL); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "This line has right justification.\n", -1, "right_justify", NULL); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "\nThis line has big wide margins. Text text text text text text text " "text text text text text text text text text text text text text text " "text text text text text text text text text text text text text text " "text.\n", -1, "wide_margins", NULL); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Internationalization. ", -1, "heading", NULL); gtk_text_buffer_insert (buffer, &iter, "You can put all sorts of Unicode text in the buffer.\n\nGerman " "(Deutsch S\303\274d) Gr\303\274\303\237 Gott\nGreek " "(\316\225\316\273\316\273\316\267\316\275\316\271\316\272\316\254) " "\316\223\316\265\316\271\316\254 \317\203\316\261\317\202\nHebrew " "\327\251\327\234\327\225\327\235\nJapanese " "(\346\227\245\346\234\254\350\252\236)\n\nThe widget properly handles " "bidirectional text, word wrapping, DOS/UNIX/Unicode paragraph separators, " "grapheme boundaries, and so on using the Pango internationalization " "framework.\n", -1); gtk_text_buffer_insert (buffer, &iter, "Here's a word-wrapped quote in a right-to-left language:\n", -1); gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "\331\210\331\202\330\257 \330\250\330\257\330\243 " "\330\253\331\204\330\247\330\253 \331\205\331\206 " "\330\243\331\203\330\253\330\261 \330\247\331\204\331\205\330\244\330\263\330\263\330\247\330\252 " "\330\252\331\202\330\257\331\205\330\247 \331\201\331\212 " "\330\264\330\250\331\203\330\251 \330\247\331\203\330\263\331\212\331\210\331\206 " "\330\250\330\261\330\247\331\205\330\254\331\207\330\247 " "\331\203\331\205\331\206\330\270\331\205\330\247\330\252 " "\331\204\330\247 \330\252\330\263\330\271\331\211 \331\204\331\204\330\261\330\250\330\255\330\214 " "\330\253\331\205 \330\252\330\255\331\210\331\204\330\252 " "\331\201\331\212 \330\247\331\204\330\263\331\206\331\210\330\247\330\252 " "\330\247\331\204\330\256\331\205\330\263 \330\247\331\204\331\205\330\247\330\266\331\212\330\251 " "\330\245\331\204\331\211 \331\205\330\244\330\263\330\263\330\247\330\252 " "\331\205\330\247\331\204\331\212\330\251 \331\205\331\206\330\270\331\205\330\251\330\214 " "\331\210\330\250\330\247\330\252\330\252 \330\254\330\262\330\241\330\247 " "\331\205\331\206 \330\247\331\204\331\206\330\270\330\247\331\205 " "\330\247\331\204\331\205\330\247\331\204\331\212 \331\201\331\212 " "\330\250\331\204\330\257\330\247\331\206\331\207\330\247\330\214 " "\331\210\331\204\331\203\331\206\331\207\330\247 \330\252\330\252\330\256\330\265\330\265 " "\331\201\331\212 \330\256\330\257\331\205\330\251 \331\202\330\267\330\247\330\271 " "\330\247\331\204\331\205\330\264\330\261\331\210\330\271\330\247\330\252 " "\330\247\331\204\330\265\330\272\331\212\330\261\330\251. \331\210\330\243\330\255\330\257 " "\330\243\331\203\330\253\330\261 \331\207\330\260\331\207 " "\330\247\331\204\331\205\330\244\330\263\330\263\330\247\330\252 " "\331\206\330\254\330\247\330\255\330\247 \331\207\331\210 " "\302\273\330\250\330\247\331\206\331\203\331\210\330\263\331\210\331\204\302\253 " "\331\201\331\212 \330\250\331\210\331\204\331\212\331\201\331\212\330\247.\n\n", -1, "rtl_quote", NULL); gtk_text_buffer_insert (buffer, &iter, "You can put widgets in the buffer: Here's a button: ", -1); gtk_text_buffer_create_child_anchor (buffer, &iter); gtk_text_buffer_insert (buffer, &iter, " and a menu: ", -1); gtk_text_buffer_create_child_anchor (buffer, &iter); gtk_text_buffer_insert (buffer, &iter, " and a scale: ", -1); gtk_text_buffer_create_child_anchor (buffer, &iter); gtk_text_buffer_insert (buffer, &iter, " and an animation: ", -1); gtk_text_buffer_create_child_anchor (buffer, &iter); gtk_text_buffer_insert (buffer, &iter, " finally a text entry: ", -1); gtk_text_buffer_create_child_anchor (buffer, &iter); gtk_text_buffer_insert (buffer, &iter, ".\n", -1); gtk_text_buffer_insert (buffer, &iter, "\n\nThis demo doesn't demonstrate all the GtkTextBuffer features; " "it leaves out, for example: invisible/hidden text, tab stops, " "application-drawn areas on the sides of the widget for displaying " "breakpoints and such...", -1); /* Apply word_wrap tag to whole buffer */ gtk_text_buffer_get_bounds (buffer, &start, &end); gtk_text_buffer_apply_tag_by_name (buffer, "word_wrap", &start, &end); g_object_unref (pixbuf); } static gboolean find_anchor (GtkTextIter *iter) { while (gtk_text_iter_forward_char (iter)) { if (gtk_text_iter_get_child_anchor (iter)) return TRUE; } return FALSE; } static void attach_widgets (GtkTextView *text_view) { GtkTextIter iter; GtkTextBuffer *buffer; int i; buffer = gtk_text_view_get_buffer (text_view); gtk_text_buffer_get_start_iter (buffer, &iter); i = 0; while (find_anchor (&iter)) { GtkTextChildAnchor *anchor; GtkWidget *widget; anchor = gtk_text_iter_get_child_anchor (&iter); if (i == 0) { widget = gtk_button_new_with_label ("Click Me"); g_signal_connect (widget, "clicked", G_CALLBACK (easter_egg_callback), NULL); } else if (i == 1) { widget = gtk_combo_box_text_new (); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (widget), "Option 1"); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (widget), "Option 2"); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (widget), "Option 3"); } else if (i == 2) { widget = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, NULL); gtk_range_set_range (GTK_RANGE (widget), 0, 100); gtk_widget_set_size_request (widget, 70, -1); } else if (i == 3) { widget = gtk_image_new_from_resource ("/textview/floppybuddy.gif"); } else if (i == 4) { widget = gtk_entry_new (); } else { widget = NULL; /* avoids a compiler warning */ g_assert_not_reached (); } gtk_text_view_add_child_at_anchor (text_view, widget, anchor); gtk_widget_show_all (widget); ++i; } } GtkWidget * do_textview (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *vpaned; GtkWidget *view1; GtkWidget *view2; GtkWidget *sw; GtkTextBuffer *buffer; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_default_size (GTK_WINDOW (window), 450, 450); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_window_set_title (GTK_WINDOW (window), "Multiple Views"); gtk_container_set_border_width (GTK_CONTAINER (window), 0); vpaned = gtk_paned_new (GTK_ORIENTATION_VERTICAL); gtk_container_set_border_width (GTK_CONTAINER(vpaned), 5); gtk_container_add (GTK_CONTAINER (window), vpaned); /* For convenience, we just use the autocreated buffer from * the first text view; you could also create the buffer * by itself with gtk_text_buffer_new(), then later create * a view widget. */ view1 = gtk_text_view_new (); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view1)); view2 = gtk_text_view_new_with_buffer (buffer); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_paned_add1 (GTK_PANED (vpaned), sw); gtk_container_add (GTK_CONTAINER (sw), view1); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_paned_add2 (GTK_PANED (vpaned), sw); gtk_container_add (GTK_CONTAINER (sw), view2); create_tags (buffer); insert_text (buffer); attach_widgets (GTK_TEXT_VIEW (view1)); attach_widgets (GTK_TEXT_VIEW (view2)); gtk_widget_show_all (vpaned); } if (!gtk_widget_get_visible (window)) { gtk_widget_show (window); } else { gtk_widget_destroy (window); window = NULL; } return window; } static void recursive_attach_view (int depth, GtkTextView *view, GtkTextChildAnchor *anchor) { GtkWidget *child_view, *frame; if (depth > 4) return; child_view = gtk_text_view_new_with_buffer (gtk_text_view_get_buffer (view)); /* Frame is to add a black border around each child view */ frame = gtk_frame_new (NULL); gtk_container_add (GTK_CONTAINER (frame), child_view); gtk_text_view_add_child_at_anchor (view, frame, anchor); recursive_attach_view (depth + 1, GTK_TEXT_VIEW (child_view), anchor); } static void easter_egg_callback (GtkWidget *button, gpointer data) { static GtkWidget *window = NULL; gpointer window_ptr; GtkTextBuffer *buffer; GtkWidget *view; GtkTextIter iter; GtkTextChildAnchor *anchor; GtkWidget *sw; if (window) { gtk_window_present (GTK_WINDOW (window)); return; } buffer = gtk_text_buffer_new (NULL); gtk_text_buffer_get_start_iter (buffer, &iter); gtk_text_buffer_insert (buffer, &iter, "This buffer is shared by a set of nested text views.\n Nested view:\n", -1); anchor = gtk_text_buffer_create_child_anchor (buffer, &iter); gtk_text_buffer_insert (buffer, &iter, "\nDon't do this in real applications, please.\n", -1); view = gtk_text_view_new_with_buffer (buffer); recursive_attach_view (0, GTK_TEXT_VIEW (view), anchor); g_object_unref (buffer); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (window), sw); gtk_container_add (GTK_CONTAINER (sw), view); window_ptr = &window; g_object_add_weak_pointer (G_OBJECT (window), window_ptr); gtk_window_set_default_size (GTK_WINDOW (window), 300, 400); gtk_widget_show_all (window); } ��(uuay)iconview/������P���vertical_text_cursor.png����7�������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��t��t�fx���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3����IDATX�퓱Ka���DIIJjI��X�E�&�L��C�ZHQ�L�;�?8�8E���E*&%1`�mMr��uжOr�t�����>���A@@@@@��m/�z��RJu:���� &����w�]CJ)����n����hߝ��q�/..R�|)�˙��0=��X[[[�F�o�Ţ�V��R���ư״eY�-�;;;lmm�D^���5�������+:��+���=2���%�@ol��p8-��ť�S��e�����b��&�0�놀�����}�q��������Euuu%k�����@2�|�h4d�^�N"���R�����t�6���Rʩ��K\�euuU�C��l�B���x<>��d���eL�������@)��Q��8*���ǧ�����t]��96����I.�{������~� p~~�b0��Z�0�au��{� ���T*�����k�R�j�|�1$WVV�e��e۶������~�|� h�n�>��"@���h�� 4�?����I �,3����IEND�B`���(uuay)pickers.cg������/* Pickers * * These widgets are mainly intended for use in preference dialogs. * They allow to select colors, fonts, files, directories and applications. */ #include <gtk/gtk.h> GtkWidget * do_pickers (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *table, *label, *picker; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Pickers"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 10); table = gtk_grid_new (); gtk_grid_set_row_spacing (GTK_GRID (table), 3); gtk_grid_set_column_spacing (GTK_GRID (table), 10); gtk_container_add (GTK_CONTAINER (window), table); gtk_container_set_border_width (GTK_CONTAINER (table), 10); label = gtk_label_new ("Color:"); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_widget_set_valign (label, GTK_ALIGN_CENTER); gtk_widget_set_hexpand (label, TRUE); picker = gtk_color_button_new (); gtk_grid_attach (GTK_GRID (table), label, 0, 0, 1, 1); gtk_grid_attach (GTK_GRID (table), picker, 1, 0, 1, 1); label = gtk_label_new ("Font:"); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_widget_set_valign (label, GTK_ALIGN_CENTER); gtk_widget_set_hexpand (label, TRUE); picker = gtk_font_button_new (); gtk_grid_attach (GTK_GRID (table), label, 0, 1, 1, 1); gtk_grid_attach (GTK_GRID (table), picker, 1, 1, 1, 1); label = gtk_label_new ("File:"); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_widget_set_valign (label, GTK_ALIGN_CENTER); gtk_widget_set_hexpand (label, TRUE); picker = gtk_file_chooser_button_new ("Pick a File", GTK_FILE_CHOOSER_ACTION_OPEN); gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (picker), FALSE); gtk_grid_attach (GTK_GRID (table), label, 0, 2, 1, 1); gtk_grid_attach (GTK_GRID (table), picker, 1, 2, 1, 1); label = gtk_label_new ("Folder:"); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_widget_set_valign (label, GTK_ALIGN_CENTER); picker = gtk_file_chooser_button_new ("Pick a Folder", GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER); gtk_grid_attach (GTK_GRID (table), label, 0, 3, 1, 1); gtk_grid_attach (GTK_GRID (table), picker, 1, 3, 1, 1); label = gtk_label_new ("Mail:"); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_widget_set_valign (label, GTK_ALIGN_CENTER); gtk_widget_set_hexpand (label, TRUE); picker = gtk_app_chooser_button_new ("x-scheme-handler/mailto"); gtk_app_chooser_button_set_show_dialog_item (GTK_APP_CHOOSER_BUTTON (picker), TRUE); gtk_grid_attach (GTK_GRID (table), label, 0, 4, 1, 1); gtk_grid_attach (GTK_GRID (table), picker, 1, 4, 1, 1); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)reset.cssp������/* @import this colorsheet to get the default values for every property. * This is useful when writing special CSS tests that should not be * inluenced by themes - not even the default ones. * Keep in mind that the output will be very ugly and not look like * anything GTK. * Also, when adding new style properties, please add them here. */ * { all: unset; } ��(uuay)gnome-applets.png��������������PNG ��� IHDR���0���0���W�����gAMA�����a���bKGD������������� pHYs��`��`zxE����tIME�(������IDATx��Y��u��ګ���g㐢�9Җdk�MіI�@ӒF� 'P q^b=F� �I6�<Y��k I� �@L٢hQ#�҈Ԉξw����5}�(���e�<)�=�������{�#qs�$L.�K��gK����v�\&�H a��-'r#�pU�V�W cs�1,'��o�g])�6��˽��~�@�c��[� �: (�&P�O�sp�3_:z|dx�p�4Ȓ4'��:N���Z�eM��o�}���ߘ]XY���3�B|��y@.�ρ��|�s������y�_�$�,�H��(� �����<ϱ�]�vX[����>��G�/n��N(�9�&P*/��������=r�a�0��������**�,!!�IR�B�����_쯹�+baGRR�/dS*��?��{��ķ+}5�,�)����n����j]�R7��4%Mb�$%NRUS�/���.���C�ȥ���w������}�T�T*S��)�K覉a訪�,ɿ$�4!�c�8!�c�8����ŕ�;%�l3�j>�?��w�������\�R*�)U*��e�R�4Q5EQ�d�.�$邕��}�(���8��L��Kzk}�}��^o��| ��Ǟ�{�_꺎�i��i��� �J���� �ib������������)2���� �,S)����Ұt+�N�9v��oi�nʲ���h���F �,Q*WɃYӻ�/� �,Q�T���$uM�es���;B��6x��@�L��dp����edY�)�2��c��PU��wH2�xI��d Y����\'N�*�$��2Yz�R��r�a/�ۥ�'}x"K3�,#�R�,�,�f�4%�C|�&��+�!���4#�R$Ecy�I(W�pz��`��R�ӿ*2� {AަXS���#i�t2��EDa@x���v|� ��(�KӘ$�Iӄ4MI��qy�x��q�7/ӱ]TM�R.?��m��j���8ꮰQ��ݕ�w\�s�|���}�K"C�(&����j5�4��z��^z�;Flj☡�a\Ͽ�/xAډ��H�dO�A@����{x���ظ��ݱpmױ���|�;>��(���g}}�3gޣ^�g��V�\�,���r�Iݮ�����=�� +�]�i�E!����B����s=<��z������H��x� �wq�����/����*�� X��K�g]�.`$����Y_��N��8ΰ;mۢc��X�OǶ���c�:.���高������9u�0�x�9�TUM�A�&d�]o0�z�����R�����$I�i9���<�����дn��V5�x>����_f����eN��t���=�/~�SJ���uD�*]��U�(��Cǧ/��ֱ]���x��g�"e]�iJ��r�|�qXZ\���4��?ȓ�?J�LN�&<�fee�O�����ek h 9b3tM]�)��q�����?:���f����aee������O#IRV�6(�L.��X�E۲ ���x��ϳ�4χS����m;���N�,^�����_K�W���]k��l�SSSkj��ى�YZ^�G�ⶽ{���'��L����|6M66[�Uk<���<��c����Sor��Ǭo�awl�0$c���45��79v����ɓ����BGr|-[y ߐG�����O���l��x�����0>>��]Cܵ�G�fa��'�2,�b�y�c�hl�!���{>A!I����8V�����=�=X6M���{�8�*�f9 x���WJ%�I�q���ˬ���?ÿ���4��X��=� I,�ϒ�)aF1AA�1iS2M�8��V#������l������ľW_}�N`���nvC��C����y��Ȳ��� �Ο'=�������=?��ʪ�!q#�2%ä���J�����o�zw}yus��l^[[[��a�� ���R���N�Z1�l��{�&'�%�B�R� �45�$&�Ŭ�q% �$�� }� �Z�Z����\�4c�>{�`˲fFFF5���A (lvnzSo�}͖m��w�szr��;��B��A�k*�"�$ i�"+2����*�aP����_���K˫�/ߚ�����8��ju��j�'�F!���%�{�T;���%I�UU�Z�a�*�W)��:�r�0體��� R�V��jh�������ɩ1�9��n�ZoO�>.�^n(����H�pZ��F�F��m���f�Q�{lCM쯡j*��#�JwK�t72��y?����\�v�♶ ��'�� �m��멅�#� ��V��,ˆ�g�C3TE�s�uM����!YQU)#��m+�_܈�����?%!�@��C�^>���k�����R�(u�c�3�����e��՞�]l���A�����_x�)n���/�o�+�uh�Z�Q`Q�,�<��l�i�O����U c�g�7y�A|52��7]�B��9p� �@xq� �b���o�?������ڧE�~�p���{ ��ց�tcŘ��5�.�a��[A�����}�/ e���f� b�\�����G�Y�����D�@��6�$��-<�E/�E,��E��=�<VD�8q��//���.���!��<+d�M`��PV����<}��C�v�w�b�}H���B&*za+9B�{��z���4z�Q��$Pr8�C�7ze�^�)|��oթ� �{�������y շX�~o�$��Q�a���jm�Ӣ��� �"�E����B�b�xv����P�Z�s�|�EkS؎%�_�X����{.^�52* @�N�wB�h��JiO��{�]�Xd��Z��8'��Z��O���YG2Ad��;�@���zo�o�����������A�k�����IEND�B`���(uuay)gtk.css��������������/* You can edit the text in this window to change the * appearance of this Window. * Be careful, if you screw it up, nothing might be visible * anymore. :) */ /* This CSS resets all properties to their defaults values * and overrides all user settings and the theme in use */ @import url("resource://css_shadows/reset.css"); @import url("resource://css_shadows/cssview.css"); /* Get a nice background for the window */ .background { background-color: #4870bc; background-image: linear-gradient(to left, transparent, rgba(255,255,255,.07) 50%, transparent 50%), linear-gradient(to left, transparent, rgba(255,255,255,.13) 50%, transparent 50%), linear-gradient(to left, transparent, transparent 50%, rgba(255,255,255,.17) 50%), linear-gradient(to left, transparent, transparent 50%, rgba(255,255,255,.19) 50%); background-size: 29px, 59px, 73px, 109px; } button { color: black; padding: 10px; border-radius: 5px; transition: all 250ms ease-in; border: 1px transparent solid; } button:hover { text-shadow: 3px 3px 5px alpha(black, 0.75); -gtk-icon-shadow: 3px 3px 5px alpha(black, 0.75); box-shadow: 3px 3px 5px alpha(black, 0.5) inset; border: solid 1px alpha(black, 0.75); } button:active { padding: 11px 9px 9px 11px; text-shadow: 1px 1px 2.5px alpha(black, 0.6); -gtk-icon-shadow: 1px 1px 2.5px alpha(black, 0.6); } ��(uuay)menus.ui�������<?xml version="1.0"?> <interface> <menu id="appmenu"> <section> <item> <attribute name="label" translatable="yes">_New</attribute> <attribute name="action">app.new</attribute> <attribute name="accel"><Primary>n</attribute> </item> <item> <attribute name="label" translatable="yes">_Open</attribute> <attribute name="action">app.open</attribute> </item> <item> <attribute name="label" translatable="yes">_Save</attribute> <attribute name="action">app.save</attribute> <attribute name="accel"><Primary>s</attribute> </item> <item> <attribute name="label" translatable="yes">Save _As...</attribute> <attribute name="action">app.save-as</attribute> <attribute name="accel"><Primary>s</attribute> </item> </section> <section> <item> <attribute name="label" translatable="yes">_Quit</attribute> <attribute name="action">app.quit</attribute> <attribute name="accel"><Primary>q</attribute> </item> </section> </menu> <menu id="menubar"> <submenu> <attribute name="label" translatable="yes">_Preferences</attribute> <section> <item> <attribute name="label" translatable="yes">_Prefer Dark Theme</attribute> <attribute name="action">app.dark</attribute> </item> <item> <attribute name="label" translatable="yes">_Hide Titlebar when maximized</attribute> <attribute name="action">win.titlebar</attribute> </item> <submenu> <attribute name="label" translatable="yes">_Color</attribute> <section> <item> <attribute name="label" translatable="yes">_Red</attribute> <attribute name="action">app.color</attribute> <attribute name="target">red</attribute> <attribute name="accel"><Primary>r</attribute> </item> <item> <attribute name="label" translatable="yes">_Green</attribute> <attribute name="action">app.color</attribute> <attribute name="target">green</attribute> <attribute name="accel"><Primary>g</attribute> </item> <item> <attribute name="label" translatable="yes">_Blue</attribute> <attribute name="action">app.color</attribute> <attribute name="target">blue</attribute> <attribute name="accel"><Primary>b</attribute> </item> </section> </submenu> <submenu> <attribute name="label" translatable="yes">_Shape</attribute> <section> <item> <attribute name="label" translatable="yes">_Square</attribute> <attribute name="action">win.shape</attribute> <attribute name="target">square</attribute> <attribute name="accel"><Primary>s</attribute> </item> <item> <attribute name="label" translatable="yes">_Rectangle</attribute> <attribute name="action">win.shape</attribute> <attribute name="target">rectangle</attribute> <attribute name="accel"><Primary>r</attribute> </item> <item> <attribute name="label" translatable="yes">_Oval</attribute> <attribute name="action">win.shape</attribute> <attribute name="target">oval</attribute> <attribute name="accel"><Primary>o</attribute> </item> </section> </submenu> <item> <attribute name="label" translatable="yes">_Bold</attribute> <attribute name="action">win.bold</attribute> <attribute name="accel"><Primary><Shift>b</attribute> </item> </section> </submenu> <submenu> <attribute name="label" translatable="yes">_Help</attribute> <item> <attribute name="label" translatable="yes">_About</attribute> <attribute name="action">win.about</attribute> <attribute name="accel"><Primary>a</attribute> </item> </submenu> </menu> </interface> ��(uuay)offscreen_window2.c��D������/* Offscreen Windows/Effects * * Offscreen windows can be used to render elements multiple times to achieve * various effects. */ #include <glib/gi18n.h> #include <gtk/gtk.h> #define GTK_TYPE_MIRROR_BIN (gtk_mirror_bin_get_type ()) #define GTK_MIRROR_BIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_MIRROR_BIN, GtkMirrorBin)) #define GTK_MIRROR_BIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_MIRROR_BIN, GtkMirrorBinClass)) #define GTK_IS_MIRROR_BIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_MIRROR_BIN)) #define GTK_IS_MIRROR_BIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_MIRROR_BIN)) #define GTK_MIRROR_BIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_MIRROR_BIN, GtkMirrorBinClass)) typedef struct _GtkMirrorBin GtkMirrorBin; typedef struct _GtkMirrorBinClass GtkMirrorBinClass; struct _GtkMirrorBin { GtkContainer container; GtkWidget *child; GdkWindow *offscreen_window; }; struct _GtkMirrorBinClass { GtkContainerClass parent_class; }; GType gtk_mirror_bin_get_type (void) G_GNUC_CONST; GtkWidget* gtk_mirror_bin_new (void); /*** implementation ***/ static void gtk_mirror_bin_realize (GtkWidget *widget); static void gtk_mirror_bin_unrealize (GtkWidget *widget); static void gtk_mirror_bin_get_preferred_width (GtkWidget *widget, gint *minimum, gint *natural); static void gtk_mirror_bin_get_preferred_height (GtkWidget *widget, gint *minimum, gint *natural); static void gtk_mirror_bin_size_allocate (GtkWidget *widget, GtkAllocation *allocation); static gboolean gtk_mirror_bin_damage (GtkWidget *widget, GdkEventExpose *event); static gboolean gtk_mirror_bin_draw (GtkWidget *widget, cairo_t *cr); static void gtk_mirror_bin_add (GtkContainer *container, GtkWidget *child); static void gtk_mirror_bin_remove (GtkContainer *container, GtkWidget *widget); static void gtk_mirror_bin_forall (GtkContainer *container, gboolean include_internals, GtkCallback callback, gpointer callback_data); static GType gtk_mirror_bin_child_type (GtkContainer *container); G_DEFINE_TYPE (GtkMirrorBin, gtk_mirror_bin, GTK_TYPE_CONTAINER); static void to_child (GtkMirrorBin *bin, double widget_x, double widget_y, double *x_out, double *y_out) { *x_out = widget_x; *y_out = widget_y; } static void to_parent (GtkMirrorBin *bin, double offscreen_x, double offscreen_y, double *x_out, double *y_out) { *x_out = offscreen_x; *y_out = offscreen_y; } static void gtk_mirror_bin_class_init (GtkMirrorBinClass *klass) { GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass); widget_class->realize = gtk_mirror_bin_realize; widget_class->unrealize = gtk_mirror_bin_unrealize; widget_class->get_preferred_width = gtk_mirror_bin_get_preferred_width; widget_class->get_preferred_height = gtk_mirror_bin_get_preferred_height; widget_class->size_allocate = gtk_mirror_bin_size_allocate; widget_class->draw = gtk_mirror_bin_draw; g_signal_override_class_closure (g_signal_lookup ("damage-event", GTK_TYPE_WIDGET), GTK_TYPE_MIRROR_BIN, g_cclosure_new (G_CALLBACK (gtk_mirror_bin_damage), NULL, NULL)); container_class->add = gtk_mirror_bin_add; container_class->remove = gtk_mirror_bin_remove; container_class->forall = gtk_mirror_bin_forall; container_class->child_type = gtk_mirror_bin_child_type; } static void gtk_mirror_bin_init (GtkMirrorBin *bin) { gtk_widget_set_has_window (GTK_WIDGET (bin), TRUE); } GtkWidget * gtk_mirror_bin_new (void) { return g_object_new (GTK_TYPE_MIRROR_BIN, NULL); } static GdkWindow * pick_offscreen_child (GdkWindow *offscreen_window, double widget_x, double widget_y, GtkMirrorBin *bin) { GtkAllocation child_area; double x, y; if (bin->child && gtk_widget_get_visible (bin->child)) { to_child (bin, widget_x, widget_y, &x, &y); gtk_widget_get_allocation (bin->child, &child_area); if (x >= 0 && x < child_area.width && y >= 0 && y < child_area.height) return bin->offscreen_window; } return NULL; } static void offscreen_window_to_parent (GdkWindow *offscreen_window, double offscreen_x, double offscreen_y, double *parent_x, double *parent_y, GtkMirrorBin *bin) { to_parent (bin, offscreen_x, offscreen_y, parent_x, parent_y); } static void offscreen_window_from_parent (GdkWindow *window, double parent_x, double parent_y, double *offscreen_x, double *offscreen_y, GtkMirrorBin *bin) { to_child (bin, parent_x, parent_y, offscreen_x, offscreen_y); } static void gtk_mirror_bin_realize (GtkWidget *widget) { GtkMirrorBin *bin = GTK_MIRROR_BIN (widget); GtkAllocation allocation; GdkWindow *window; GdkWindowAttr attributes; gint attributes_mask; guint border_width; GtkRequisition child_requisition; gtk_widget_set_realized (widget, TRUE); gtk_widget_get_allocation (widget, &allocation); border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); attributes.x = allocation.x + border_width; attributes.y = allocation.y + border_width; attributes.width = allocation.width - 2 * border_width; attributes.height = allocation.height - 2 * border_width; attributes.window_type = GDK_WINDOW_CHILD; attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_SCROLL_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK; attributes.visual = gtk_widget_get_visual (widget); attributes.wclass = GDK_INPUT_OUTPUT; attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL; window = gdk_window_new (gtk_widget_get_parent_window (widget), &attributes, attributes_mask); gtk_widget_set_window (widget, window); gdk_window_set_user_data (window, widget); g_signal_connect (window, "pick-embedded-child", G_CALLBACK (pick_offscreen_child), bin); attributes.window_type = GDK_WINDOW_OFFSCREEN; child_requisition.width = child_requisition.height = 0; if (bin->child && gtk_widget_get_visible (bin->child)) { GtkAllocation child_allocation; gtk_widget_get_allocation (bin->child, &child_allocation); attributes.width = child_allocation.width; attributes.height = child_allocation.height; } bin->offscreen_window = gdk_window_new (gdk_screen_get_root_window (gtk_widget_get_screen (widget)), &attributes, attributes_mask); gdk_window_set_user_data (bin->offscreen_window, widget); if (bin->child) gtk_widget_set_parent_window (bin->child, bin->offscreen_window); gdk_offscreen_window_set_embedder (bin->offscreen_window, window); g_signal_connect (bin->offscreen_window, "to-embedder", G_CALLBACK (offscreen_window_to_parent), bin); g_signal_connect (bin->offscreen_window, "from-embedder", G_CALLBACK (offscreen_window_from_parent), bin); gdk_window_show (bin->offscreen_window); } static void gtk_mirror_bin_unrealize (GtkWidget *widget) { GtkMirrorBin *bin = GTK_MIRROR_BIN (widget); gdk_window_set_user_data (bin->offscreen_window, NULL); gdk_window_destroy (bin->offscreen_window); bin->offscreen_window = NULL; GTK_WIDGET_CLASS (gtk_mirror_bin_parent_class)->unrealize (widget); } static GType gtk_mirror_bin_child_type (GtkContainer *container) { GtkMirrorBin *bin = GTK_MIRROR_BIN (container); if (bin->child) return G_TYPE_NONE; return GTK_TYPE_WIDGET; } static void gtk_mirror_bin_add (GtkContainer *container, GtkWidget *widget) { GtkMirrorBin *bin = GTK_MIRROR_BIN (container); if (!bin->child) { gtk_widget_set_parent_window (widget, bin->offscreen_window); gtk_widget_set_parent (widget, GTK_WIDGET (bin)); bin->child = widget; } else g_warning ("GtkMirrorBin cannot have more than one child"); } static void gtk_mirror_bin_remove (GtkContainer *container, GtkWidget *widget) { GtkMirrorBin *bin = GTK_MIRROR_BIN (container); gboolean was_visible; was_visible = gtk_widget_get_visible (widget); if (bin->child == widget) { gtk_widget_unparent (widget); bin->child = NULL; if (was_visible && gtk_widget_get_visible (GTK_WIDGET (container))) gtk_widget_queue_resize (GTK_WIDGET (container)); } } static void gtk_mirror_bin_forall (GtkContainer *container, gboolean include_internals, GtkCallback callback, gpointer callback_data) { GtkMirrorBin *bin = GTK_MIRROR_BIN (container); g_return_if_fail (callback != NULL); if (bin->child) (*callback) (bin->child, callback_data); } static void gtk_mirror_bin_size_request (GtkWidget *widget, GtkRequisition *requisition) { GtkMirrorBin *bin = GTK_MIRROR_BIN (widget); GtkRequisition child_requisition; guint border_width; child_requisition.width = 0; child_requisition.height = 0; if (bin->child && gtk_widget_get_visible (bin->child)) gtk_widget_get_preferred_size ( (bin->child), &child_requisition, NULL); border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); requisition->width = border_width * 2 + child_requisition.width + 10; requisition->height = border_width * 2 + child_requisition.height * 2 + 10; } static void gtk_mirror_bin_get_preferred_width (GtkWidget *widget, gint *minimum, gint *natural) { GtkRequisition requisition; gtk_mirror_bin_size_request (widget, &requisition); *minimum = *natural = requisition.width; } static void gtk_mirror_bin_get_preferred_height (GtkWidget *widget, gint *minimum, gint *natural) { GtkRequisition requisition; gtk_mirror_bin_size_request (widget, &requisition); *minimum = *natural = requisition.height; } static void gtk_mirror_bin_size_allocate (GtkWidget *widget, GtkAllocation *allocation) { GtkMirrorBin *bin = GTK_MIRROR_BIN (widget); gint w, h; guint border_width; gtk_widget_set_allocation (widget, allocation); border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); w = allocation->width - border_width * 2; h = allocation->height - border_width * 2; if (gtk_widget_get_realized (widget)) gdk_window_move_resize (gtk_widget_get_window (widget), allocation->x + border_width, allocation->y + border_width, w, h); if (bin->child && gtk_widget_get_visible (bin->child)) { GtkRequisition child_requisition; GtkAllocation child_allocation; gtk_widget_get_preferred_size (bin->child, &child_requisition, NULL); child_allocation.x = 0; child_allocation.y = 0; child_allocation.height = child_requisition.height; child_allocation.width = child_requisition.width; if (gtk_widget_get_realized (widget)) gdk_window_move_resize (bin->offscreen_window, allocation->x + border_width, allocation->y + border_width, child_allocation.width, child_allocation.height); gtk_widget_size_allocate (bin->child, &child_allocation); } } static gboolean gtk_mirror_bin_damage (GtkWidget *widget, GdkEventExpose *event) { gdk_window_invalidate_rect (gtk_widget_get_window (widget), NULL, FALSE); return TRUE; } static gboolean gtk_mirror_bin_draw (GtkWidget *widget, cairo_t *cr) { GtkMirrorBin *bin = GTK_MIRROR_BIN (widget); GdkWindow *window; window = gtk_widget_get_window (widget); if (gtk_cairo_should_draw_window (cr, window)) { cairo_surface_t *surface; cairo_matrix_t matrix; cairo_pattern_t *mask; int height; if (bin->child && gtk_widget_get_visible (bin->child)) { surface = gdk_offscreen_window_get_surface (bin->offscreen_window); height = gdk_window_get_height (bin->offscreen_window); /* paint the offscreen child */ cairo_set_source_surface (cr, surface, 0, 0); cairo_paint (cr); cairo_matrix_init (&matrix, 1.0, 0.0, 0.3, 1.0, 0.0, 0.0); cairo_matrix_scale (&matrix, 1.0, -1.0); cairo_matrix_translate (&matrix, -10, - 3 * height - 10); cairo_transform (cr, &matrix); cairo_set_source_surface (cr, surface, 0, height); /* create linear gradient as mask-pattern to fade out the source */ mask = cairo_pattern_create_linear (0.0, height, 0.0, 2*height); cairo_pattern_add_color_stop_rgba (mask, 0.0, 0.0, 0.0, 0.0, 0.0); cairo_pattern_add_color_stop_rgba (mask, 0.25, 0.0, 0.0, 0.0, 0.01); cairo_pattern_add_color_stop_rgba (mask, 0.5, 0.0, 0.0, 0.0, 0.25); cairo_pattern_add_color_stop_rgba (mask, 0.75, 0.0, 0.0, 0.0, 0.5); cairo_pattern_add_color_stop_rgba (mask, 1.0, 0.0, 0.0, 0.0, 1.0); /* paint the reflection */ cairo_mask (cr, mask); cairo_pattern_destroy (mask); } } else if (gtk_cairo_should_draw_window (cr, bin->offscreen_window)) { gtk_render_background (gtk_widget_get_style_context (widget), cr, 0, 0, gdk_window_get_width (bin->offscreen_window), gdk_window_get_height (bin->offscreen_window)); if (bin->child) gtk_container_propagate_draw (GTK_CONTAINER (widget), bin->child, cr); } return FALSE; } /*** ***/ GtkWidget * do_offscreen_window2 (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *bin, *vbox; GtkWidget *hbox, *entry, *applybutton, *backbutton; GtkSizeGroup *group; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Effects"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 10); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); bin = gtk_mirror_bin_new (); group = gtk_size_group_new (GTK_SIZE_GROUP_VERTICAL); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); backbutton = gtk_button_new (); gtk_container_add (GTK_CONTAINER (backbutton), gtk_image_new_from_icon_name ("go-previous", 4)); gtk_size_group_add_widget (group, backbutton); entry = gtk_entry_new (); gtk_size_group_add_widget (group, entry); applybutton = gtk_button_new_with_label (_("Apply")); gtk_size_group_add_widget (group, applybutton); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_box_pack_start (GTK_BOX (vbox), bin, TRUE, TRUE, 0); gtk_container_add (GTK_CONTAINER (bin), hbox); gtk_box_pack_start (GTK_BOX (hbox), backbutton, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (hbox), applybutton, FALSE, FALSE, 0); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)apple-red.png���� �������PNG ��� IHDR���0���0���W�����gAMA�����a�� �IDATx��[�]Wy�k���9s��8� N��)J�ڄ���ڨ��B�>p��E��� ���W�K� �R@����@��@Bq��S+��8v�3�s��k}�>�3�1��^�|�֞9����������e{�^���tv�y���_��Tz߇�}�����r���c�ks����M�?p�<�p+��E�>���*ܾ�֏������� W]�v��fg���vw����>y�v!�����'+�_���d�L��o�m]a��D�֭���G����7��L����#ͯ�굿����>tb���ލW-,.����{�>��E�,�&�+֬�h��/���ڳ{^�>߄���z���;��������?����/ ;p�o}�U�.�t���KGŇ�f���6�)o�]�����E�Z��9�1|�}~������W--7C���4��� ;��%���씍o�zۍ!�� g|a���NgnMo�����,�V�K�U!��@0�G�|��n��ڱk5p�J�o��g&;W�5B8tpa�o���;[6:���O�\ �2�R wͮ�r|���Ο�=����Z����EB��|[��aղ���,�ꭿ��w~����x�����V�m�B)�F�h������c�ݷ�����������}�\I�����n}G�Sef�c"��v�Ԫg��/-�3�j"��`��wo�gpr��>���A�����qo��w��;7�����O ̄� &�A�X��A۰ض��8p�S��9p��M����Nwnm��Ⴣja~�n,�v�?s��{v}��7���ُO����P��v4!t��������T�UM�O��h[(��0�:��4�uȢ(����;��'�yn�9����?S��c�b���ጙ�!|'���/������͛7���+��Wu_ի�N�H)����D��^'�j�FĪBĐ,h.�%49� ���0o��fH_ ��C������S�v&/ʁn�z����hɖ��tJ�?ܽ���^�q���6]��^��~�ӣ�&��5���)��G����1��!@��2� �ĺ�ۖz�f� �r��\饊6���?7��=����_�ޓw����ַ��/����;��w'W��7���y���'���^��������j�c ��w�z��CDqbO1�H��!���af��曖c��P2�6,d�h�R�Ѐ���ص�0�h�O~�ί�{r�/����VOM���Vl���^}��5�#��ey_\�3���*1�D7��*J�x�*4+D�ƨ��$���"�,�X���^��SxAJ�pǏv�pǏ�8��G�ݍY�m��e��M��zr\�ǎ1�?L�����N�Ɉq�� X4LI�z��!u$Dw���!P�!�X(3J���⺫~����w>�����*�;o��;�� f��LթѦO{� ��A�?�Mt�z��U�:���z47"��qsH���NDS����@�8ɜn5A7���5e��<�3����a���t�H��`�����_ v:,�~��J�;I����`�U"�*� �af�#�Pp�w�D0�U��S����"V�ka��`�9�z���T��5��^�W/�8���Ogn��l�?������P2⠥��Qs���8���;��A�� T��"�J9%�3��^]�vݫ )����%�@�_��j�B�xɘ9w'��f�T�(�0����-/lp�a��A�Ai�#�aE�N�0NK�m7]���E�;���tz�`@~�$Zɘ`x���D��^1CQ��ƱoN���@�pu,��@�z�%��j�S����6����:ઔ�E�k������)�e� �"����`��h� �"���T����FP�v,GbrJ>5���Z�S T�P'4Q�u���G�l��b*-�+1�8�ʨ>L Uǣ",*��V1�,E��,� �*���U;Ή@�&D��"�Ǐљ�&}a5\)�"J�F0U��3 s�h Б�B�+�isa�����+ ������J)-M�:&��Xɸ� "����y4â�d-���Tr���D@����#�Ȱ(�q��@�����S�<��ܶw�ŧ����UL��ЛYE�*J.�D �B�#�%Cdb�`#�j��0#�qZUT)�h������}7kCPK����V���f�ZaoI��@�PB iA�� ֩�#����F�� Q���>JdŽP�1I��P�"XTlX�E"i����a<�F�oy��F �ж}���g$���HF��AQW\��%SPpCU �����bQ�2��-�PXj %D O�X�pm���a<����[��{��K/E꺦r�B�[9FE���2��g���T(>"�Z@<�hsaЎ�gy�hC��L_)���LMt�����t��zb�|�[{�v��0Fԕ*A"E"'U(�G3.��E��lPSZsD%;١�B�1�rch��&3Ԅ%$��D�9F�b��wƓ9��<�g���쵸^a�Pu���X�d�� &dW�Y5C�I�K!k�_�R2m$*�F �,B���iI)�1=z��O~�2��D^�g%�p�k.���6�3�0-����Q� ��BGQr0�Â��-�*c�ZA�*mCiZ�����v�;�`�d��H=� ����������K�1�Tޕ�i�MG ���d7� MiQ-��i���("����݀̒9Z�"�&�̠��1({�[��]�����+����+�+l�H�ѽ��/���n�oR����m�6R bN�����[Z)�֕A�%��< " 13��2�ptPر�ЉQ2\1��yFG�ϭN�]r��tw<����#��oZ��7S7�v�Q"RȪ����B.�ք֜R m�L��V�F6��Ѵ�hFUY�����?y�0��gt`|8�B�7.<e��@`x�B����� 3SL�M�d��Ҩ�V#KA4#�1%zi ���F�)�Z*���{������� ��ӈ��@8�%땏=}x�NJuS]D�lIiAQBFH�l�*8��U��(�({��y`�S��lgtϰx����x)^ \l�\;=ӛz�����i'��y�����f�&�梵�?�e�[ӫ��Ќ�<��Q�_t���{������2���Zf�W0Z..^\��p��n�p`��s��E�����.F�|�Q��c��G�NXt��r!c"k�d�Yyo�V��^���jW1ʥ�(VV�����1Z"���>6��3���{;ydbv��Xs�<�2N8��0�qY?�fza\�!���9��z�T�r�;������O�9����7��c�2~�ie��8]����щblE˜ �|�����\���������IEND�B`���(uuay)pointer_cursor.png�������������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��t��t�fx���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3����eIDATX��OLW�?o�E�a�OBa7�p[)�ă)�M�����&�<���n���COz�(!у��x�k�Ė����f�Z�]`wv��a݁���4�{��7���~��{��?"�H$bܸq��<���������d�7���R�W�^�����!�}��|�rpqq����S���jii)s���s@=P�Z sʥ������E"��0�X�qZ�Z���N���Rz �`mm��^��J*�C!�l6�^c Y �J)��,�t�t: @{{�������������O�%�Ô��8�mc�6J)M�`���d���g�~f�fϋ/�����b����&�N �P(�B�����T���* ���N%��j���ׯ_���͛ͧN��`�3o$An��F�ѩ�/�@ ����|���*������֦>�,���aVWW�����Ћye�=,��~���t�����O��ض ��{��6@8fpp���y��]��Y�������5gΜ��4�֖���e ���������ӧO�333�ѣGU>�����<x��Ą;655����i2::���]]]������.|\YY�����;w�0==��RBJ �ÇɷnݺE<w��?�4Mw��88����v˺�b�mmmRJ511@*�*�[4-X���o�.�x]K�ؔ���a����d���yUWWc�ۯ��*��|>t]/���h�^o�F���q���@0t������� fgg�������G�!�@�u��x���k,�r�s��1�eSS�d��CCC�a`Y��S]]Mss3ϟ?w� �&��X]]-Z8"�Ǐ'��p��U��8q۶�4MN�<�������� @H)��m]��\�ⶕR ��L&�������*j%�ɤ+++U�_�A{��%�J�� ��,�IGG�`p��[[[��鑓���� ~�X��tww�t��/��� �XLnކ�a��B�Q��kϞ=�9r��X,6��nf���:}����i��g�D"�ʾ�����ť���������b��@�b�@P���K�s����I`q�/rg���������\��|�Vl����s�@���H�([[x����IEND�B`���(uuay)css_blendmodes.css������������/* * First page. */ image.duck { background-image: url('resource://css_blendmodes/ducky.png'); background-size: cover; min-width: 200px; min-height: 200px; } image.gradient { background-image: linear-gradient(to right, red 0%%, green 50%%, blue 100%%); min-width: 200px; min-height: 200px; } /* * Second page. */ image.red { background: url('resource://css_blendmodes/blends.png') top center; min-width: 200px; min-height: 200px; } image.blue { background: url('resource://css_blendmodes/blends.png') bottom center; min-width: 200px; min-height: 200px; } /* * Third page. */ image.cyan { background: url('resource://css_blendmodes/cmy.jpg') top center; min-width: 200px; min-height: 200px; } image.magenta { background: url('resource://css_blendmodes/cmy.jpg') center center; min-width: 200px; min-height: 200px; } image.yellow { background: url('resource://css_blendmodes/cmy.jpg') bottom center; min-width: 200px; min-height: 200px; } image.blend0 { background-image: url('resource://css_blendmodes/ducky.png'), linear-gradient(to right, red 0%%, green 50%%, blue 100%%); background-size: cover; background-blend-mode: %s; min-width: 200px; min-height: 200px; } image.blend1 { background: url('resource://css_blendmodes/blends.png') top center, url('resource://css_blendmodes/blends.png') bottom center; background-blend-mode: %s; min-width: 200px; min-height: 200px; } image.blend2 { background: url('resource://css_blendmodes/cmy.jpg') top center, url('resource://css_blendmodes/cmy.jpg') center center, url('resource://css_blendmodes/cmy.jpg') bottom center; background-blend-mode: %s; min-width: 200px; min-height: 200px; } ��(uuay)gnome-calendar.png�� �������PNG ��� IHDR���0���0���W�����gAMA���1�_�� zIDATx��]lW�wvvw�����Nvc7��֤�}�B���"TDA��VT�臢Ҩ���Q Ay�h���)�BB �R��>ѠTb'����]�;wwf��a��7N�*�D�u5��;������w�N���;�N�n�n�����0�;�����x��}�����?&�E��x� ���@t�w���RJ��"T!�@QW �@a �H��_(�yJ�6'C"�"a�$� �B�u�Z �� �BiM*� �*=ܪD��;�Ϗw�e�BB� E*���es8�N��2�H)A6����/�O�����^���Z�J)[?J%����#/h���l�34�*�����aH�(���ω|>���*�c76�$2����'\O6�.�8y}��B�����1����aᅊ����m�s�u�'�X� �aH�B|r�ן�P(�J�(^)R�ԑR����������D�J�N�DΗ^����a���c_���kG-VVW6�l ����|��#bh��m�!n�e~y�e�9Fhf����A^G��#����7�)r�p���$^<|����]� ��Q�J��"��py�2�� �K�V�^�o�$���ʈ���� C��;Qؐ{�I��ȥn�c��2}�8��ڭ��;��r���k�� �� �L�d�G���ui������8ƃ@ �"�Z!��&7��ֽ@^�x�O��,k�*���)-l �]�o[��fM���Cz8@o�ܸ �K�;7�ę v���(d6LJ��x���h-���`����O����ˌ�]�5�M�d�U`�PHw�@���1�c; �9��D5#M��@.}@��<G����Y����8u�O���=ؠ�Ӣ�$��a�ϣ*eV�]cqu�)P��C!�*P�7ˁ��h����ѱ�y-^�w��̈́��%�?��zU?����b���(_+�N�[�F�V#�p�uq]�J��\����Nòe�}7z��@?PJ5�3��䍮r��ۇ���;w��FY��wm�r�2����������",����Bn�ƺ���Z��Ld��E��;�5���[��mb$VF���r�fD�3�<ù�9v�؉m۸��!�Sˋt���)J�2�ss�KI��3������"6OXJk�9 ��ql�e�ݺ���} Y` ������c�}�I����d�H�*�����\��++���!4Pf�ň��h�f��j�s36u���2h�ɱ\�m�HX��{/�-i�D#J�$�̰RY��� ���T��[�0�`��H&�� �d��2ܗ1.:�+T�P���\/Ȣ���KL�{��r)����2���x���g7��=�@.�g��YܕN{�R��m�����ݕ!��`<�+�͛B��J7<�8-�M�1w������Ѽ��<�ҋ�ı?�ί���ӧI�� �KIO:�ʥK,MN2[�pQXd�f�P(��Ɉt2�1>�7��vg�)��:��?��y��yF+C���?��l���S�K�l �=��˓�R)�/��fY���Z��)��Jg���D�eYZXbbG�F����@o�84�����ށ������X5���e��!J�:���O�����S)����N)���������<�D�B��KsIj�b��3�uk���nH�L��-���mۨ�:=��S�z�*�R�ܽ�|`�=�t*Eya������,�C���!Z�� ���o��pݘ�hoT��8��x�v�}�n���H%m�ݿ���=������y��W�{K��Dbm�&�#�����T�]�8�X[7ˁ뢠�Fk�c;���$N��(jA�7@.�kF)��`�6I�f��^r�'�J��0��x�]�<�G� 3W����˞={��rXV˧ ���h�o6��d�Z����H�I)7HĔW�5�L���z�Y�GG�>w�3cc��d�Y�v 180H�+Mm�֢�@��Q��Nt���R|�'��C���^���_��C���gzt�%�eTk�Ð���Z�25;�5��эIX���خ�h�&��B���r��Ļ�t�[�jE��Zj�c'���ak*ͮ�a1y�K��Tu]T������%o���nl(r � �~ض�rC��4����d'�Ƅ:o!:z��G�c�Xd��&��z�I��} !ҩ���h+���-�G�7 �I4�[��=�`���ŵ $M��ce��_ܿ��'F���{�1>7w��cc�ۀ^�k�1.Z�\���10�Ł�NVd����f��9v)c|t��=��<��3ccL�̔���1�E94y��0nz����z=Du�����:�3<�Q$" �S�W���4;�������jfy�1*��Q��X�c�3�4�v��ۉ@�j1/E�ƣ`ǀX_9\)��ە+���J3��.3���3��3���Mݼ7�M!�$h�b/��}�R�����_&'O�ͺ�2�]��t�jK�vq��N�l�|�"��DL�ر�dl�/���e�G2&�&M1A[��z�N���m�ɹ���2�F�jm«+�������W�q�3m<�������������I�t���Ly\0�T[�ś�dK]��_ht[^� o�ƍQa�PH����͎�7��1�Xy L2�[|��|h[����^��? Ğ���������IEND�B`���(uuay)entry_completion.c���s ������/* Entry/Entry Completion * * GtkEntryCompletion provides a mechanism for adding support for * completion in GtkEntry. * */ #include <glib/gi18n.h> #include <gtk/gtk.h> /* Creates a tree model containing the completions */ GtkTreeModel * create_completion_model (void) { GtkListStore *store; GtkTreeIter iter; store = gtk_list_store_new (1, G_TYPE_STRING); /* Append one word */ gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, "GNOME", -1); /* Append another word */ gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, "total", -1); /* And another word */ gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, "totally", -1); return GTK_TREE_MODEL (store); } GtkWidget * do_entry_completion (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *vbox; GtkWidget *label; GtkWidget *entry; GtkEntryCompletion *completion; GtkTreeModel *completion_model; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Entry Completion"); gtk_window_set_resizable (GTK_WINDOW (window), FALSE); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), "Completion demo, try writing <b>total</b> or <b>gnome</b> for example."); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); /* Create our entry */ entry = gtk_entry_new (); gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, FALSE, 0); /* Create the completion object */ completion = gtk_entry_completion_new (); /* Assign the completion to the entry */ gtk_entry_set_completion (GTK_ENTRY (entry), completion); g_object_unref (completion); /* Create a tree model and use it as the completion model */ completion_model = create_completion_model (); gtk_entry_completion_set_model (completion, completion_model); g_object_unref (completion_model); /* Use model column 0 as the text column */ gtk_entry_completion_set_text_column (completion, 0); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)pagesetup.c��/������/* Printing/Page Setup * * GtkPageSetupUnixDialog can be used if page setup is needed * independent of a full printing dialog. */ #include <math.h> #include <gtk/gtk.h> #include <gtk/gtkunixprint.h> static void done_cb (GtkDialog *dialog, gint response, gpointer data) { gtk_widget_destroy (GTK_WIDGET (dialog)); } GtkWidget * do_pagesetup (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { window = gtk_page_setup_unix_dialog_new ("Page Setup", GTK_WINDOW (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); g_signal_connect (window, "response", G_CALLBACK (done_cb), NULL); } if (!gtk_widget_get_visible (window)) gtk_widget_show (window); else gtk_widget_destroy (window); return window; } ��(uuay)toolpalette.c����3l������/* Tool Palette * * A tool palette widget shows groups of toolbar items as a grid of icons * or a list of names. */ #include <string.h> #include <gtk/gtk.h> static GtkWidget *window = NULL; static void load_icon_items (GtkToolPalette *palette); static void load_toggle_items (GtkToolPalette *palette); static void load_special_items (GtkToolPalette *palette); typedef struct _CanvasItem CanvasItem; struct _CanvasItem { GdkPixbuf *pixbuf; gdouble x, y; }; static gboolean drag_data_requested_for_drop = FALSE; static CanvasItem *drop_item = NULL; static GList *canvas_items = NULL; /********************************/ /* ====== Canvas drawing ====== */ /********************************/ static CanvasItem* canvas_item_new (GtkWidget *widget, GtkToolButton *button, gdouble x, gdouble y) { CanvasItem *item = NULL; const gchar *icon_name; GdkPixbuf *pixbuf; GtkIconTheme *icon_theme; int width; icon_name = gtk_tool_button_get_icon_name (button); icon_theme = gtk_icon_theme_get_for_screen (gtk_widget_get_screen (widget)); gtk_icon_size_lookup (GTK_ICON_SIZE_DIALOG, &width, NULL); pixbuf = gtk_icon_theme_load_icon (icon_theme, icon_name, width, GTK_ICON_LOOKUP_GENERIC_FALLBACK, NULL); if (pixbuf) { item = g_slice_new0 (CanvasItem); item->pixbuf = pixbuf; item->x = x; item->y = y; } return item; } static void canvas_item_free (CanvasItem *item) { g_object_unref (item->pixbuf); g_slice_free (CanvasItem, item); } static void canvas_item_draw (const CanvasItem *item, cairo_t *cr, gboolean preview) { gdouble cx = gdk_pixbuf_get_width (item->pixbuf); gdouble cy = gdk_pixbuf_get_height (item->pixbuf); gdk_cairo_set_source_pixbuf (cr, item->pixbuf, item->x - cx * 0.5, item->y - cy * 0.5); if (preview) cairo_paint_with_alpha (cr, 0.6); else cairo_paint (cr); } static gboolean canvas_draw (GtkWidget *widget, cairo_t *cr) { GList *iter; cairo_set_source_rgb (cr, 1, 1, 1); cairo_paint (cr); for (iter = canvas_items; iter; iter = iter->next) canvas_item_draw (iter->data, cr, FALSE); if (drop_item) canvas_item_draw (drop_item, cr, TRUE); return TRUE; } /*****************************/ /* ====== Palette DnD ====== */ /*****************************/ static void palette_drop_item (GtkToolItem *drag_item, GtkToolItemGroup *drop_group, gint x, gint y) { GtkWidget *drag_group = gtk_widget_get_parent (GTK_WIDGET (drag_item)); GtkToolItem *drop_item = gtk_tool_item_group_get_drop_item (drop_group, x, y); gint drop_position = -1; if (drop_item) drop_position = gtk_tool_item_group_get_item_position (GTK_TOOL_ITEM_GROUP (drop_group), drop_item); if (GTK_TOOL_ITEM_GROUP (drag_group) != drop_group) { gboolean homogeneous, expand, fill, new_row; g_object_ref (drag_item); gtk_container_child_get (GTK_CONTAINER (drag_group), GTK_WIDGET (drag_item), "homogeneous", &homogeneous, "expand", &expand, "fill", &fill, "new-row", &new_row, NULL); gtk_container_remove (GTK_CONTAINER (drag_group), GTK_WIDGET (drag_item)); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (drop_group), drag_item, drop_position); gtk_container_child_set (GTK_CONTAINER (drop_group), GTK_WIDGET (drag_item), "homogeneous", homogeneous, "expand", expand, "fill", fill, "new-row", new_row, NULL); g_object_unref (drag_item); } else gtk_tool_item_group_set_item_position (GTK_TOOL_ITEM_GROUP (drop_group), drag_item, drop_position); } static void palette_drop_group (GtkToolPalette *palette, GtkToolItemGroup *drag_group, GtkToolItemGroup *drop_group) { gint drop_position = -1; if (drop_group) drop_position = gtk_tool_palette_get_group_position (palette, drop_group); gtk_tool_palette_set_group_position (palette, drag_group, drop_position); } static void palette_drag_data_received (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *selection, guint info, guint time, gpointer data) { GtkAllocation allocation; GtkToolItemGroup *drop_group = NULL; GtkWidget *drag_palette = gtk_drag_get_source_widget (context); GtkWidget *drag_item = NULL; while (drag_palette && !GTK_IS_TOOL_PALETTE (drag_palette)) drag_palette = gtk_widget_get_parent (drag_palette); if (drag_palette) { drag_item = gtk_tool_palette_get_drag_item (GTK_TOOL_PALETTE (drag_palette), selection); drop_group = gtk_tool_palette_get_drop_group (GTK_TOOL_PALETTE (widget), x, y); } if (GTK_IS_TOOL_ITEM_GROUP (drag_item)) palette_drop_group (GTK_TOOL_PALETTE (drag_palette), GTK_TOOL_ITEM_GROUP (drag_item), drop_group); else if (GTK_IS_TOOL_ITEM (drag_item) && drop_group) { gtk_widget_get_allocation (GTK_WIDGET (drop_group), &allocation); palette_drop_item (GTK_TOOL_ITEM (drag_item), drop_group, x - allocation.x, y - allocation.y); } } /********************************/ /* ====== Passive Canvas ====== */ /********************************/ static void passive_canvas_drag_data_received (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *selection, guint info, guint time, gpointer data) { /* find the tool button, which is the source of this DnD operation */ GtkWidget *palette = gtk_drag_get_source_widget (context); CanvasItem *canvas_item = NULL; GtkWidget *tool_item = NULL; while (palette && !GTK_IS_TOOL_PALETTE (palette)) palette = gtk_widget_get_parent (palette); if (palette) tool_item = gtk_tool_palette_get_drag_item (GTK_TOOL_PALETTE (palette), selection); g_assert (NULL == drop_item); /* append a new canvas item when a tool button was found */ if (GTK_IS_TOOL_ITEM (tool_item)) canvas_item = canvas_item_new (widget, GTK_TOOL_BUTTON (tool_item), x, y); if (canvas_item) { canvas_items = g_list_append (canvas_items, canvas_item); gtk_widget_queue_draw (widget); } } /************************************/ /* ====== Interactive Canvas ====== */ /************************************/ static gboolean interactive_canvas_drag_motion (GtkWidget *widget, GdkDragContext *context, gint x, gint y, guint time, gpointer data) { if (drop_item) { /* already have a drop indicator - just update position */ drop_item->x = x; drop_item->y = y; gtk_widget_queue_draw (widget); gdk_drag_status (context, GDK_ACTION_COPY, time); } else { /* request DnD data for creating a drop indicator */ GdkAtom target = gtk_drag_dest_find_target (widget, context, NULL); if (!target) return FALSE; drag_data_requested_for_drop = FALSE; gtk_drag_get_data (widget, context, target, time); } return TRUE; } static void interactive_canvas_drag_data_received (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *selection, guint info, guint time, gpointer data) { /* find the tool button which is the source of this DnD operation */ GtkWidget *palette = gtk_drag_get_source_widget (context); GtkWidget *tool_item = NULL; CanvasItem *item; while (palette && !GTK_IS_TOOL_PALETTE (palette)) palette = gtk_widget_get_parent (palette); if (palette) tool_item = gtk_tool_palette_get_drag_item (GTK_TOOL_PALETTE (palette), selection); /* create a canvas item when a tool button was found */ g_assert (NULL == drop_item); if (!GTK_IS_TOOL_ITEM (tool_item)) return; if (drop_item) { canvas_item_free (drop_item); drop_item = NULL; } item = canvas_item_new (widget, GTK_TOOL_BUTTON (tool_item), x, y); /* Either create a new item or just create a preview item, depending on why the drag data was requested. */ if(drag_data_requested_for_drop) { canvas_items = g_list_append (canvas_items, item); drop_item = NULL; gtk_drag_finish (context, TRUE, FALSE, time); } else { drop_item = item; gdk_drag_status (context, GDK_ACTION_COPY, time); } gtk_widget_queue_draw (widget); } static gboolean interactive_canvas_drag_drop (GtkWidget *widget, GdkDragContext *context, gint x, gint y, guint time, gpointer data) { GdkAtom target = gtk_drag_dest_find_target (widget, context, NULL); if (!target) return FALSE; drag_data_requested_for_drop = TRUE; gtk_drag_get_data (widget, context, target, time); return FALSE; } static void interactive_canvas_drag_leave (gpointer data) { if (drop_item) { GtkWidget *widget = GTK_WIDGET (data); canvas_item_free (drop_item); drop_item = NULL; if (widget) gtk_widget_queue_draw (widget); } } static void on_combo_orientation_changed (GtkComboBox *combo_box, gpointer user_data) { GtkToolPalette *palette = GTK_TOOL_PALETTE (user_data); GtkScrolledWindow *sw; GtkTreeModel *model = gtk_combo_box_get_model (combo_box); GtkTreeIter iter; gint val = 0; sw = GTK_SCROLLED_WINDOW (gtk_widget_get_parent (GTK_WIDGET (palette))); if (!gtk_combo_box_get_active_iter (combo_box, &iter)) return; gtk_tree_model_get (model, &iter, 1, &val, -1); gtk_orientable_set_orientation (GTK_ORIENTABLE (palette), val); if (val == GTK_ORIENTATION_HORIZONTAL) gtk_scrolled_window_set_policy (sw, GTK_POLICY_AUTOMATIC, GTK_POLICY_NEVER); else gtk_scrolled_window_set_policy (sw, GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); } static void on_combo_style_changed (GtkComboBox *combo_box, gpointer user_data) { GtkToolPalette *palette = GTK_TOOL_PALETTE (user_data); GtkTreeModel *model = gtk_combo_box_get_model (combo_box); GtkTreeIter iter; gint val = 0; if (!gtk_combo_box_get_active_iter (combo_box, &iter)) return; gtk_tree_model_get (model, &iter, 1, &val, -1); if (val == -1) gtk_tool_palette_unset_style (palette); else gtk_tool_palette_set_style (palette, val); } GtkWidget * do_toolpalette (GtkWidget *do_widget) { GtkWidget *box = NULL; GtkWidget *hbox = NULL; GtkWidget *combo_orientation = NULL; GtkListStore *orientation_model = NULL; GtkWidget *combo_style = NULL; GtkListStore *style_model = NULL; GtkCellRenderer *cell_renderer = NULL; GtkTreeIter iter; GtkWidget *palette = NULL; GtkWidget *palette_scroller = NULL; GtkWidget *notebook = NULL; GtkWidget *contents = NULL; GtkWidget *contents_scroller = NULL; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Tool Palette"); gtk_window_set_default_size (GTK_WINDOW (window), 200, 600); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 8); /* Add widgets to control the ToolPalette appearance: */ box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); gtk_container_add (GTK_CONTAINER (window), box); /* Orientation combo box: */ orientation_model = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT); gtk_list_store_append (orientation_model, &iter); gtk_list_store_set (orientation_model, &iter, 0, "Horizontal", 1, GTK_ORIENTATION_HORIZONTAL, -1); gtk_list_store_append (orientation_model, &iter); gtk_list_store_set (orientation_model, &iter, 0, "Vertical", 1, GTK_ORIENTATION_VERTICAL, -1); combo_orientation = gtk_combo_box_new_with_model (GTK_TREE_MODEL (orientation_model)); cell_renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo_orientation), cell_renderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo_orientation), cell_renderer, "text", 0, NULL); gtk_combo_box_set_active_iter (GTK_COMBO_BOX (combo_orientation), &iter); gtk_box_pack_start (GTK_BOX (box), combo_orientation, FALSE, FALSE, 0); /* Style combo box: */ style_model = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT); gtk_list_store_append (style_model, &iter); gtk_list_store_set (style_model, &iter, 0, "Text", 1, GTK_TOOLBAR_TEXT, -1); gtk_list_store_append (style_model, &iter); gtk_list_store_set (style_model, &iter, 0, "Both", 1, GTK_TOOLBAR_BOTH, -1); gtk_list_store_append (style_model, &iter); gtk_list_store_set (style_model, &iter, 0, "Both: Horizontal", 1, GTK_TOOLBAR_BOTH_HORIZ, -1); gtk_list_store_append (style_model, &iter); gtk_list_store_set (style_model, &iter, 0, "Icons", 1, GTK_TOOLBAR_ICONS, -1); gtk_list_store_append (style_model, &iter); gtk_list_store_set (style_model, &iter, 0, "Default", 1, -1, /* A custom meaning for this demo. */ -1); combo_style = gtk_combo_box_new_with_model (GTK_TREE_MODEL (style_model)); cell_renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo_style), cell_renderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo_style), cell_renderer, "text", 0, NULL); gtk_combo_box_set_active_iter (GTK_COMBO_BOX (combo_style), &iter); gtk_box_pack_start (GTK_BOX (box), combo_style, FALSE, FALSE, 0); /* Add hbox */ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5); gtk_box_pack_start (GTK_BOX (box), hbox, TRUE, TRUE, 0); /* Add and fill the ToolPalette: */ palette = gtk_tool_palette_new (); load_icon_items (GTK_TOOL_PALETTE (palette)); load_toggle_items (GTK_TOOL_PALETTE (palette)); load_special_items (GTK_TOOL_PALETTE (palette)); palette_scroller = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (palette_scroller), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_container_set_border_width (GTK_CONTAINER (palette_scroller), 6); gtk_widget_set_hexpand (palette_scroller, TRUE); gtk_container_add (GTK_CONTAINER (palette_scroller), palette); gtk_container_add (GTK_CONTAINER (hbox), palette_scroller); gtk_widget_show_all (box); /* Connect signals: */ g_signal_connect (combo_orientation, "changed", G_CALLBACK (on_combo_orientation_changed), palette); g_signal_connect (combo_style, "changed", G_CALLBACK (on_combo_style_changed), palette); /* Keep the widgets in sync: */ on_combo_orientation_changed (GTK_COMBO_BOX (combo_orientation), palette); /* ===== notebook ===== */ notebook = gtk_notebook_new (); gtk_container_set_border_width (GTK_CONTAINER (notebook), 6); gtk_box_pack_end (GTK_BOX(hbox), notebook, FALSE, FALSE, 0); /* ===== DnD for tool items ===== */ g_signal_connect (palette, "drag-data-received", G_CALLBACK (palette_drag_data_received), NULL); gtk_tool_palette_add_drag_dest (GTK_TOOL_PALETTE (palette), palette, GTK_DEST_DEFAULT_ALL, GTK_TOOL_PALETTE_DRAG_ITEMS | GTK_TOOL_PALETTE_DRAG_GROUPS, GDK_ACTION_MOVE); /* ===== passive DnD dest ===== */ contents = gtk_drawing_area_new (); gtk_widget_set_app_paintable (contents, TRUE); g_object_connect (contents, "signal::draw", canvas_draw, NULL, "signal::drag-data-received", passive_canvas_drag_data_received, NULL, NULL); gtk_tool_palette_add_drag_dest (GTK_TOOL_PALETTE (palette), contents, GTK_DEST_DEFAULT_ALL, GTK_TOOL_PALETTE_DRAG_ITEMS, GDK_ACTION_COPY); contents_scroller = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (contents_scroller), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); gtk_container_add (GTK_CONTAINER (contents_scroller), contents); gtk_container_set_border_width (GTK_CONTAINER (contents_scroller), 6); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), contents_scroller, gtk_label_new ("Passive DnD Mode")); /* ===== interactive DnD dest ===== */ contents = gtk_drawing_area_new (); gtk_widget_set_app_paintable (contents, TRUE); g_object_connect (contents, "signal::draw", canvas_draw, NULL, "signal::drag-motion", interactive_canvas_drag_motion, NULL, "signal::drag-data-received", interactive_canvas_drag_data_received, NULL, "signal::drag-leave", interactive_canvas_drag_leave, contents, "signal::drag-drop", interactive_canvas_drag_drop, NULL, NULL); gtk_tool_palette_add_drag_dest (GTK_TOOL_PALETTE (palette), contents, GTK_DEST_DEFAULT_HIGHLIGHT, GTK_TOOL_PALETTE_DRAG_ITEMS, GDK_ACTION_COPY); contents_scroller = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (contents_scroller), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); gtk_container_add (GTK_CONTAINER (contents_scroller), contents); gtk_container_set_border_width (GTK_CONTAINER (contents_scroller), 6); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), contents_scroller, gtk_label_new ("Interactive DnD Mode")); } if (!gtk_widget_get_visible (window)) { gtk_widget_show_all (window); } else { gtk_widget_destroy (window); window = NULL; } return window; } static void load_icon_items (GtkToolPalette *palette) { GList *contexts; GList *l; GtkIconTheme *icon_theme; icon_theme = gtk_icon_theme_get_for_screen (gtk_widget_get_screen (GTK_WIDGET (palette))); contexts = gtk_icon_theme_list_contexts (icon_theme); for (l = contexts; l; l = l->next) { gchar *context = l->data; GList *icon_names; GList *ll; const guint max_icons = 10; guint icons_count = 0; GtkWidget *group = gtk_tool_item_group_new (context); gtk_container_add (GTK_CONTAINER (palette), group); if (g_strcmp0 (context, "Animations") == 0) continue; g_message ("Got context '%s'", context); icon_names = gtk_icon_theme_list_icons (icon_theme, context); icon_names = g_list_sort (icon_names, (GCompareFunc) strcmp); for (ll = icon_names; ll; ll = ll->next) { GtkToolItem *item; gchar *id = ll->data; if (g_str_equal (id, "emblem-desktop")) continue; if (g_str_has_suffix (id, "-symbolic")) continue; g_message ("Got id '%s'", id); item = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), id); gtk_tool_item_set_tooltip_text (GTK_TOOL_ITEM (item), id); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); /* Prevent us having an insane number of icons: */ ++icons_count; if(icons_count >= max_icons) break; } g_list_free_full (icon_names, g_free); } g_list_free_full (contexts, g_free); } static void load_toggle_items (GtkToolPalette *palette) { GSList *toggle_group = NULL; GtkToolItem *item; GtkWidget *group; char *label; int i; group = gtk_tool_item_group_new ("Radio Item"); gtk_container_add (GTK_CONTAINER (palette), group); for (i = 1; i <= 10; ++i) { label = g_strdup_printf ("#%d", i); item = gtk_radio_tool_button_new (toggle_group); gtk_tool_button_set_label (GTK_TOOL_BUTTON (item), label); g_free (label); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); toggle_group = gtk_radio_tool_button_get_group (GTK_RADIO_TOOL_BUTTON (item)); } } static GtkToolItem * create_entry_item (const char *text) { GtkToolItem *item; GtkWidget *entry; entry = gtk_entry_new (); gtk_entry_set_text (GTK_ENTRY (entry), text); gtk_entry_set_width_chars (GTK_ENTRY (entry), 5); item = gtk_tool_item_new (); gtk_container_add (GTK_CONTAINER (item), entry); return item; } static void load_special_items (GtkToolPalette *palette) { GtkToolItem *item; GtkWidget *group; GtkWidget *label_button; group = gtk_tool_item_group_new (NULL); label_button = gtk_button_new_with_label ("Advanced Features"); gtk_widget_show (label_button); gtk_tool_item_group_set_label_widget (GTK_TOOL_ITEM_GROUP (group), label_button); gtk_container_add (GTK_CONTAINER (palette), group); item = create_entry_item ("homogeneous=FALSE"); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); gtk_container_child_set (GTK_CONTAINER (group), GTK_WIDGET (item), "homogeneous", FALSE, NULL); item = create_entry_item ("homogeneous=FALSE, expand=TRUE"); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); gtk_container_child_set (GTK_CONTAINER (group), GTK_WIDGET (item), "homogeneous", FALSE, "expand", TRUE, NULL); item = create_entry_item ("homogeneous=FALSE, expand=TRUE, fill=FALSE"); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); gtk_container_child_set (GTK_CONTAINER (group), GTK_WIDGET (item), "homogeneous", FALSE, "expand", TRUE, "fill", FALSE, NULL); item = create_entry_item ("homogeneous=FALSE, expand=TRUE, new-row=TRUE"); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); gtk_container_child_set (GTK_CONTAINER (group), GTK_WIDGET (item), "homogeneous", FALSE, "expand", TRUE, "new-row", TRUE, NULL); item = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "go-up"); gtk_tool_item_set_tooltip_text (item, "Show on vertical palettes only"); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); gtk_tool_item_set_visible_horizontal (item, FALSE); item = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "go-next"); gtk_tool_item_set_tooltip_text (item, "Show on horizontal palettes only"); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); gtk_tool_item_set_visible_vertical (item, FALSE); item = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "edit-delete"); gtk_tool_item_set_tooltip_text (item, "Do not show at all"); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); gtk_widget_set_no_show_all (GTK_WIDGET (item), TRUE); item = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "view-fullscreen"); gtk_tool_item_set_tooltip_text (item, "Expanded this item"); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); gtk_container_child_set (GTK_CONTAINER (group), GTK_WIDGET (item), "homogeneous", FALSE, "expand", TRUE, NULL); item = gtk_tool_button_new (NULL, NULL); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "help-browser"); gtk_tool_item_set_tooltip_text (item, "A regular item"); gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1); } ��(uuay)sidebar.c����h ������/* Stack Sidebar * * GtkStackSidebar provides an automatic sidebar widget to control * navigation of a GtkStack object. This widget automatically updates it * content based on what is presently available in the GtkStack object, * and using the "title" child property to set the display labels. */ #include <glib/gi18n.h> #include <gtk/gtk.h> GtkWidget * do_sidebar (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *sidebar; GtkWidget *stack; GtkWidget *box; GtkWidget *widget; GtkWidget *header; const gchar* pages[] = { "Welcome to GTK+", "GtkStackSidebar Widget", "Automatic navigation", "Consistent appearance", "Scrolling", "Page 6", "Page 7", "Page 8", "Page 9", NULL }; const gchar *c = NULL; guint i; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_resizable (GTK_WINDOW (window), TRUE); gtk_widget_set_size_request (window, 500, 350); header = gtk_header_bar_new (); gtk_header_bar_set_show_close_button (GTK_HEADER_BAR(header), TRUE); gtk_window_set_titlebar (GTK_WINDOW(window), header); gtk_window_set_title (GTK_WINDOW(window), "Stack Sidebar"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); sidebar = gtk_stack_sidebar_new (); gtk_box_pack_start (GTK_BOX (box), sidebar, FALSE, FALSE, 0); stack = gtk_stack_new (); gtk_stack_set_transition_type (GTK_STACK (stack), GTK_STACK_TRANSITION_TYPE_SLIDE_UP_DOWN); gtk_stack_sidebar_set_stack (GTK_STACK_SIDEBAR (sidebar), GTK_STACK (stack)); /* Separator between sidebar and stack */ widget = gtk_separator_new (GTK_ORIENTATION_VERTICAL); gtk_box_pack_start (GTK_BOX(box), widget, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (box), stack, TRUE, TRUE, 0); for (i=0; (c = *(pages+i)) != NULL; i++ ) { if (i == 0) { widget = gtk_image_new_from_icon_name ("help-about", GTK_ICON_SIZE_MENU); gtk_image_set_pixel_size (GTK_IMAGE (widget), 256); } else { widget = gtk_label_new (c); } gtk_stack_add_named (GTK_STACK (stack), widget, c); gtk_container_child_set (GTK_CONTAINER (stack), widget, "title", c, NULL); } gtk_container_add (GTK_CONTAINER (window), box); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)blendmodes.ui���pA������<?xml version="1.0" encoding="UTF-8"?> <interface> <requires lib="gtk+" version="3.20"/> <object class="GtkWindow" id="window"> <property name="can_focus">False</property> <property name="resizable">False</property> <property name="title">CSS Blend Modes</property> <property name="default_width">400</property> <property name="default_height">300</property> <child> <object class="GtkGrid"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="border_width">12</property> <property name="row_spacing">12</property> <property name="column_spacing">12</property> <child> <object class="GtkLabel"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes">Blend mode:</property> <property name="xalign">0</property> <style> <class name="dim-label"/> </style> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">0</property> </packing> </child> <child> <object class="GtkScrolledWindow" id="scrolledwindow"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="vexpand">True</property> <property name="shadow_type">in</property> <property name="min_content_width">150</property> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">1</property> </packing> </child> <child> <object class="GtkStackSwitcher"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="halign">center</property> <property name="hexpand">True</property> <property name="stack">stack</property> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">0</property> </packing> </child> <child> <object class="GtkStack" id="stack"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="hexpand">True</property> <property name="vexpand">True</property> <property name="hhomogeneous">False</property> <property name="vhomogeneous">False</property> <property name="transition_type">crossfade</property> <child> <object class="GtkGrid"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="halign">center</property> <property name="valign">center</property> <property name="hexpand">False</property> <property name="vexpand">True</property> <property name="row_spacing">12</property> <property name="column_spacing">12</property> <child> <object class="GtkLabel"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes">Duck</property> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">0</property> </packing> </child> <child> <object class="GtkLabel"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes">Background</property> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">0</property> </packing> </child> <child> <object class="GtkImage"> <property name="visible">True</property> <property name="can_focus">False</property> <style> <class name="duck"/> </style> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">1</property> </packing> </child> <child> <object class="GtkImage"> <property name="visible">True</property> <property name="can_focus">False</property> <style> <class name="gradient"/> </style> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">1</property> </packing> </child> <child> <object class="GtkLabel"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes"> Blended picture</property> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">2</property> <property name="width">2</property> </packing> </child> <child> <object class="GtkImage"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="halign">center</property> <style> <class name="blend0"/> </style> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">3</property> <property name="width">2</property> </packing> </child> </object> <packing> <property name="name">page0</property> <property name="title" translatable="yes">Ducky</property> </packing> </child> <child> <object class="GtkGrid"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="halign">center</property> <property name="valign">center</property> <property name="hexpand">False</property> <property name="vexpand">True</property> <property name="row_spacing">12</property> <property name="column_spacing">12</property> <child> <object class="GtkLabel"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes">Red</property> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">0</property> </packing> </child> <child> <object class="GtkLabel"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes">Blue</property> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">0</property> </packing> </child> <child> <object class="GtkImage"> <property name="visible">True</property> <property name="can_focus">False</property> <style> <class name="red"/> </style> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">1</property> </packing> </child> <child> <object class="GtkImage"> <property name="visible">True</property> <property name="can_focus">False</property> <style> <class name="blue"/> </style> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">1</property> </packing> </child> <child> <object class="GtkLabel"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes"> Blended picture</property> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">2</property> <property name="width">2</property> </packing> </child> <child> <object class="GtkImage"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="halign">center</property> <style> <class name="blend1"/> </style> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">3</property> <property name="width">2</property> </packing> </child> </object> <packing> <property name="name">page1</property> <property name="title" translatable="yes">Blends</property> </packing> </child> <child> <object class="GtkGrid"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="halign">center</property> <property name="valign">center</property> <property name="hexpand">True</property> <property name="vexpand">True</property> <property name="row_spacing">6</property> <property name="column_spacing">12</property> <child> <object class="GtkImage"> <property name="visible">True</property> <property name="can_focus">False</property> <style> <class name="cyan"/> </style> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">1</property> </packing> </child> <child> <object class="GtkImage"> <property name="visible">True</property> <property name="can_focus">False</property> <style> <class name="magenta"/> </style> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">1</property> </packing> </child> <child> <object class="GtkImage"> <property name="visible">True</property> <property name="can_focus">False</property> <style> <class name="yellow"/> </style> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">3</property> </packing> </child> <child> <object class="GtkImage"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="halign">center</property> <style> <class name="blend2"/> </style> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">3</property> </packing> </child> <child> <object class="GtkLabel"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes">Cyan</property> <property name="xalign">0</property> <style> <class name="dim-label"/> </style> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">0</property> </packing> </child> <child> <object class="GtkLabel"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes">Magenta</property> <property name="xalign">0</property> <style> <class name="dim-label"/> </style> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">0</property> </packing> </child> <child> <object class="GtkLabel"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes">Yellow</property> <property name="xalign">0</property> <style> <class name="dim-label"/> </style> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">2</property> </packing> </child> <child> <object class="GtkLabel"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="label" translatable="yes">Blended picture</property> <property name="xalign">0</property> <attributes> <attribute name="weight" value="bold"/> </attributes> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">2</property> </packing> </child> </object> <packing> <property name="name">page2</property> <property name="title" translatable="yes">CMYK</property> </packing> </child> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">1</property> </packing> </child> </object> </child> <child type="titlebar"> <placeholder/> </child> </object> </interface> ��(uuay)row_resize_cursor.png�����������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��n��n��^���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3����`IDATX�͖]H[g����9�m��Y0�cV�"��!*pl݊��Fp�K/:�v�ū�y�~����ƛ���(���W�^-�����!���q�g��I�V�=��rr���~ɛ�/p������s�$�,��k �����C*�����_P@|�1�9������7n���iK�ĝ��i�9����,˴�����|�9��sN���@���TSSC���<�ǯ_�>r9�w�s������z���#�^O���]��$%r�o���v;���"Q�1F����������߿�c�؉I�T�@�k�9��v��tTQQA�1��(Ree%r�\������H�T�PȖ���jR�T$B<7c$�"�t�b � �rf,�˲�S0ĭ[� n�����Ç�뱱1tuu寵Z-����Şݼys�n���D(�p������#��.�V&�I51"zzzچ���p8���.\�[[[�3Ƹ ��$%�FFF�Y]]����,��@SS��6� Ȭ��v�!�_Kլ��o���_���H���R���ΪRu%�ᬱ����2�E1 �`�.��?��b��GH���Е�g�Ad�����Y�C��y�@���>P�_��$7��7o\��E3��}��P&����~��(��HDJ$�E<Oe9�V�=;55e���>c4�*���@����e��"(шJ���rs2�tS��Z�m��p�K�����dY>�̡��8{��Us$���|��d"Y��C�Vh�ڂ�����( _ZZ�]��\� @{ ��b�X�����(F���&T<,% �r�I�t��j��<t�4�j���?����^�Winn>~��EJ$�{�%I�1���T��[�@M__�g^�w���)---%��J��ݻw3�l� /�x�l6��z=�`Pioo/�R*��w��y�� ����� ���ۿ���4 )&�����j�t:�o߾��^�����T ����������B���4��ir:���G��N�_B`���8�v��9��?�\9m�mmm�����22�ڱ��1�i�o�#��#Ȝ�(�@�N���tv �������KCR�������IEND�B`���(uuay)font_features/���T���main.ui�}������<?xml version="1.0" encoding="UTF-8"?> <interface><!-- interface-requires gtk+ 3.10 --><object class="GtkTreeStore" id="treestore"><columns><!-- column-name NAME --><column type="gchararray"/><!-- column-name TITLE --><column type="gchararray"/><!-- column-name FILENAME --><column type="gchararray"/><!-- column-name FUNC --><column type="gpointer"/><!-- column-name STYLE --><column type="gint"/></columns></object><object class="GtkApplicationWindow" id="window"><property name="default-width">800</property><property name="default-height">600</property><property name="title">GTK+ Demo</property><signal name="delete-event" handler="gtk_false" swapped="no"/><signal name="destroy" handler="gtk_main_quit" swapped="no"/><child type="titlebar"><object class="GtkHeaderBar" id="headerbar"><property name="visible">1</property><property name="show-close-button">1</property><child><object class="GtkButton"><property name="visible">1</property><property name="valign">center</property><property name="can_focus">1</property><property name="action_name">win.run</property><style><class name="text-button"/></style><child><object class="GtkLabel"><property name="visible">1</property><property name="label" translatable="yes">Run</property></object></child></object></child></object></child><child><object class="GtkBox"><property name="visible">1</property><child><object class="GtkFrame"><property name="visible">1</property><child><object class="GtkScrolledWindow"><property name="width_request">120</property><property name="visible">1</property><property name="can_focus">1</property><property name="hscrollbar_policy">never</property><property name="min_content_width">150</property><child><object class="GtkTreeView" id="treeview"><property name="visible">1</property><property name="can_focus">1</property><property name="model">treestore</property><property name="headers_visible">0</property><child internal-child="selection"><object class="GtkTreeSelection" id="treeview-selection"><property name="mode">browse</property></object></child><child><object class="GtkTreeViewColumn"><child><object class="GtkCellRendererText"/><attributes><attribute name="style">4</attribute><attribute name="text">1</attribute></attributes></child><child><object class="GtkCellRendererText"><property name="text"> </property></object></child></object></child></object></child></object></child></object></child><child><object class="GtkNotebook" id="notebook"><property name="visible">1</property><property name="can_focus">1</property><property name="scrollable">1</property><property name="enable_popup">1</property><property name="show_border">0</property><child><object class="GtkScrolledWindow"><property name="visible">1</property><property name="can_focus">1</property><child><object class="GtkTextView" id="info-textview"><property name="visible">1</property><property name="can_focus">1</property><property name="left-margin">20</property><property name="right-margin">20</property><property name="top-margin">20</property><property name="bottom-margin">20</property><property name="pixels_above_lines">2</property><property name="pixels_below_lines">2</property><property name="editable">0</property><property name="wrap_mode">word</property><property name="cursor_visible">0</property></object></child></object><packing><property name="tab_expand">1</property></packing></child><child type="tab"><object class="GtkLabel"><property name="visible">1</property><property name="label" translatable="yes">_Info</property><property name="use_underline">1</property></object><packing><property name="tab_expand">1</property><property name="tab_fill">0</property></packing></child><child><object class="GtkScrolledWindow" id="source-scrolledwindow"><property name="visible">1</property><property name="can_focus">1</property><child><object class="GtkTextView" id="source-textview"><property name="visible">1</property><property name="can_focus">1</property><property name="left-margin">20</property><property name="right-margin">20</property><property name="top-margin">20</property><property name="bottom-margin">20</property><property name="editable">0</property><property name="cursor_visible">0</property></object></child></object><packing><property name="position">1</property><property name="tab_expand">1</property></packing></child><child type="tab"><object class="GtkLabel"><property name="visible">1</property><property name="label" translatable="yes">Source</property></object><packing><property name="position">1</property><property name="tab_fill">0</property></packing></child></object><packing><property name="expand">1</property><property name="position">1</property></packing></child></object></child></object></interface> ��(uuay)cell_cursor.png������������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��t��t�fx���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3����`IDATX���kG�?;�-K��_�D�J} �I� ����J C/=��b�܋�!�B���| �d� ��'� j E*q+D��*�V־f֎�ՏUr�vw�;�oyc�iʼ˱z�P����x<>*"I���G�T�>��nDtl�-��O777�LFVVVDDdqq�K ��)�]�9t���������@��^U��Gk��Y,O ��@�|D�>�j�^�6�B���n��6��w^�vkh��[��Ji��R�G ��<���2b��{�?�Ł����J�⊈x�'[[[$��K��&�~3o/�� "���ݡr��TZ�u�J6��\F�1` �~zz�۶�n����?���ᖵ���8����sssMcbhh����j4�f�؇N<n>��qoo�F���@(^���{:�˩���f|,�brr2 ��}���b�h~����������R�F@������89$�766n�Z?��ۿ_�!���~;�&� :(���&&&n�R���j5�y^��(�����g�NMMY���_���eY^�P�e``������t:}�u���ǎ�d�����w�8o\|�T�n�T*=���9���R���afgg����ɡ#<ւ�/���B����Q�Gp2�'�L����'���"���ρ'�_f\�T���G�<��T����8���K�m;a�)��;x�m��κi�1�SXh7����"�:�����Z����������A=�F�'�3kkkw�o���5C��4�`����:i9���7t�k� f �d�1���N@�a�C�Sc�������崛��k���b��f��������IEND�B`���(uuay)button_box.c��������/* Button Boxes * * The Button Box widgets are used to arrange buttons with padding. */ #include <glib/gi18n.h> #include <gtk/gtk.h> static GtkWidget * create_bbox (gint horizontal, char *title, gint spacing, gint layout) { GtkWidget *frame; GtkWidget *bbox; GtkWidget *button; frame = gtk_frame_new (title); if (horizontal) bbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); else bbox = gtk_button_box_new (GTK_ORIENTATION_VERTICAL); gtk_container_set_border_width (GTK_CONTAINER (bbox), 5); gtk_container_add (GTK_CONTAINER (frame), bbox); gtk_button_box_set_layout (GTK_BUTTON_BOX (bbox), layout); gtk_box_set_spacing (GTK_BOX (bbox), spacing); button = gtk_button_new_with_label (_("OK")); gtk_container_add (GTK_CONTAINER (bbox), button); button = gtk_button_new_with_label (_("Cancel")); gtk_container_add (GTK_CONTAINER (bbox), button); button = gtk_button_new_with_label (_("Help")); gtk_container_add (GTK_CONTAINER (bbox), button); return frame; } GtkWidget * do_button_box (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *main_vbox; GtkWidget *vbox; GtkWidget *hbox; GtkWidget *frame_horz; GtkWidget *frame_vert; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Button Boxes"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 10); main_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), main_vbox); frame_horz = gtk_frame_new ("Horizontal Button Boxes"); gtk_box_pack_start (GTK_BOX (main_vbox), frame_horz, TRUE, TRUE, 10); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox), 10); gtk_container_add (GTK_CONTAINER (frame_horz), vbox); gtk_box_pack_start (GTK_BOX (vbox), create_bbox (TRUE, "Spread", 40, GTK_BUTTONBOX_SPREAD), TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (vbox), create_bbox (TRUE, "Edge", 40, GTK_BUTTONBOX_EDGE), TRUE, TRUE, 5); gtk_box_pack_start (GTK_BOX (vbox), create_bbox (TRUE, "Start", 40, GTK_BUTTONBOX_START), TRUE, TRUE, 5); gtk_box_pack_start (GTK_BOX (vbox), create_bbox (TRUE, "End", 40, GTK_BUTTONBOX_END), TRUE, TRUE, 5); gtk_box_pack_start (GTK_BOX (vbox), create_bbox (TRUE, "Center", 40, GTK_BUTTONBOX_CENTER), TRUE, TRUE, 5); gtk_box_pack_start (GTK_BOX (vbox), create_bbox (TRUE, "Expand", 0, GTK_BUTTONBOX_EXPAND), TRUE, TRUE, 5); frame_vert = gtk_frame_new ("Vertical Button Boxes"); gtk_box_pack_start (GTK_BOX (main_vbox), frame_vert, TRUE, TRUE, 10); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox), 10); gtk_container_add (GTK_CONTAINER (frame_vert), hbox); gtk_box_pack_start (GTK_BOX (hbox), create_bbox (FALSE, "Spread", 10, GTK_BUTTONBOX_SPREAD), TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (hbox), create_bbox (FALSE, "Edge", 10, GTK_BUTTONBOX_EDGE), TRUE, TRUE, 5); gtk_box_pack_start (GTK_BOX (hbox), create_bbox (FALSE, "Start", 10, GTK_BUTTONBOX_START), TRUE, TRUE, 5); gtk_box_pack_start (GTK_BOX (hbox), create_bbox (FALSE, "End", 10, GTK_BUTTONBOX_END), TRUE, TRUE, 5); gtk_box_pack_start (GTK_BOX (hbox), create_bbox (FALSE, "Center", 10, GTK_BUTTONBOX_CENTER), TRUE, TRUE, 5); gtk_box_pack_start (GTK_BOX (hbox), create_bbox (FALSE, "Expand", 0, GTK_BUTTONBOX_EXPAND), TRUE, TRUE, 5); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)shortcuts-clocks.ui�������<?xml version="1.0" encoding="UTF-8"?> <interface> <!-- interface-requires gtk+ 3.17 --> <object class="GtkShortcutsWindow" id="shortcuts-clocks"> <property name="modal">1</property> <child> <object class="GtkShortcutsSection"> <property name="visible">1</property> <property name="section-name">shortcuts</property> <property name="max-height">10</property> <child> <object class="GtkShortcutsGroup"> <property name="visible">1</property> <property name="title" translatable="yes">General</property> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl>Page_Down</property> <property name="title" translatable="yes">Go to the next section</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl>Page_Up</property> <property name="title" translatable="yes">Go to the previous section</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><alt>Q</property> <property name="title" translatable="yes">Quit</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><alt>Right</property> <property name="direction">ltr</property> <property name="title" translatable="yes">Forward</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl>Left</property> <property name="direction">ltr</property> <property name="title" translatable="yes">Back</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><alt>Left</property> <property name="direction">rtl</property> <property name="title" translatable="yes">Forward</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl>Right</property> <property name="direction">rtl</property> <property name="title" translatable="yes">Back</property> </object> </child> </object> </child> <child> <object class="GtkShortcutsGroup"> <property name="visible">1</property> <property name="view">world</property> <property name="title" translatable="yes">World Clocks</property> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl>N</property> <property name="title" translatable="yes">Add a world clock</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl>S</property> <property name="title" translatable="yes">Select world clocks</property> </object> </child> </object> </child> <child> <object class="GtkShortcutsGroup"> <property name="visible">1</property> <property name="view">alarm</property> <property name="title" translatable="yes">Alarm</property> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl>N</property> <property name="title" translatable="yes">Add an alarm</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl>S</property> <property name="title" translatable="yes">Select alarms</property> </object> </child> </object> </child> <child> <object class="GtkShortcutsGroup"> <property name="visible">1</property> <property name="view">stopwatch</property> <property name="title" translatable="yes">Stopwatch</property> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator">Return space</property> <property name="title" translatable="yes">Start / Stop / Continue</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator">L</property> <property name="title" translatable="yes">Lap</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator">Delete</property> <property name="title" translatable="yes">Reset</property> </object> </child> </object> </child> <child> <object class="GtkShortcutsGroup"> <property name="visible">1</property> <property name="view">timer</property> <property name="title" translatable="yes">Timer</property> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator">Return space</property> <property name="title" translatable="yes">Start / Stop / Pause</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator">Delete</property> <property name="title" translatable="yes">Reset</property> </object> </child> </object> </child> </object> </child> </object> </interface> ��(uuay)spinbutton.c���������/* Spin Button * * GtkSpinButton provides convenient ways to input data * that can be seen as a value in a range. The examples * here show that this does not necessarily mean numeric * values, and it can include custom formatting. */ #include <glib/gi18n.h> #include <gtk/gtk.h> #include <math.h> #include <stdlib.h> static gint hex_spin_input (GtkSpinButton *spin_button, gdouble *new_val) { const gchar *buf; gchar *err; gdouble res; buf = gtk_entry_get_text (GTK_ENTRY (spin_button)); res = strtol (buf, &err, 16); *new_val = res; if (*err) return GTK_INPUT_ERROR; else return TRUE; } static gint hex_spin_output (GtkSpinButton *spin_button) { GtkAdjustment *adjustment; gchar *buf; gint val; adjustment = gtk_spin_button_get_adjustment (spin_button); val = (gint) gtk_adjustment_get_value (adjustment); if (fabs (val) < 1e-5) buf = g_strdup ("0x00"); else buf = g_strdup_printf ("0x%.2X", val); if (strcmp (buf, gtk_entry_get_text (GTK_ENTRY (spin_button)))) gtk_entry_set_text (GTK_ENTRY (spin_button), buf); g_free (buf); return TRUE; } static gint time_spin_input (GtkSpinButton *spin_button, gdouble *new_val) { const gchar *text; gchar **str; gboolean found = FALSE; gint hours; gint minutes; gchar *endh; gchar *endm; text = gtk_entry_get_text (GTK_ENTRY (spin_button)); str = g_strsplit (text, ":", 2); if (g_strv_length (str) == 2) { hours = strtol (str[0], &endh, 10); minutes = strtol (str[1], &endm, 10); if (!*endh && !*endm && 0 <= hours && hours < 24 && 0 <= minutes && minutes < 60) { *new_val = hours * 60 + minutes; found = TRUE; } } g_strfreev (str); if (!found) { *new_val = 0.0; return GTK_INPUT_ERROR; } return TRUE; } static gint time_spin_output (GtkSpinButton *spin_button) { GtkAdjustment *adjustment; gchar *buf; gdouble hours; gdouble minutes; adjustment = gtk_spin_button_get_adjustment (spin_button); hours = gtk_adjustment_get_value (adjustment) / 60.0; minutes = (hours - floor (hours)) * 60.0; buf = g_strdup_printf ("%02.0f:%02.0f", floor (hours), floor (minutes + 0.5)); if (strcmp (buf, gtk_entry_get_text (GTK_ENTRY (spin_button)))) gtk_entry_set_text (GTK_ENTRY (spin_button), buf); g_free (buf); return TRUE; } static gchar *month[12] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; static gint month_spin_input (GtkSpinButton *spin_button, gdouble *new_val) { gint i; gchar *tmp1, *tmp2; gboolean found = FALSE; for (i = 1; i <= 12; i++) { tmp1 = g_ascii_strup (month[i - 1], -1); tmp2 = g_ascii_strup (gtk_entry_get_text (GTK_ENTRY (spin_button)), -1); if (strstr (tmp1, tmp2) == tmp1) found = TRUE; g_free (tmp1); g_free (tmp2); if (found) break; } if (!found) { *new_val = 0.0; return GTK_INPUT_ERROR; } *new_val = (gdouble) i; return TRUE; } static gint month_spin_output (GtkSpinButton *spin_button) { GtkAdjustment *adjustment; gdouble value; gint i; adjustment = gtk_spin_button_get_adjustment (spin_button); value = gtk_adjustment_get_value (adjustment); for (i = 1; i <= 12; i++) if (fabs (value - (double)i) < 1e-5) { if (strcmp (month[i-1], gtk_entry_get_text (GTK_ENTRY (spin_button)))) gtk_entry_set_text (GTK_ENTRY (spin_button), month[i-1]); } return TRUE; } static gboolean value_to_label (GBinding *binding, const GValue *from, GValue *to, gpointer user_data) { g_value_take_string (to, g_strdup_printf ("%g", g_value_get_double (from))); return TRUE; } GtkWidget * do_spinbutton (GtkWidget *do_widget) { static GtkWidget *window; if (!window) { GtkBuilder *builder; GtkAdjustment *adj; GtkWidget *label; builder = gtk_builder_new_from_resource ("/spinbutton/spinbutton.ui"); gtk_builder_add_callback_symbols (builder, "hex_spin_input", G_CALLBACK (hex_spin_input), "hex_spin_output", G_CALLBACK (hex_spin_output), "time_spin_input", G_CALLBACK (time_spin_input), "time_spin_output", G_CALLBACK (time_spin_output), "month_spin_input", G_CALLBACK (month_spin_input), "month_spin_output", G_CALLBACK (month_spin_output), NULL); gtk_builder_connect_signals (builder, NULL); window = GTK_WIDGET (gtk_builder_get_object (builder, "window")); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Spin Buttons"); gtk_window_set_resizable (GTK_WINDOW (window), FALSE); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); adj = GTK_ADJUSTMENT (gtk_builder_get_object (builder, "basic_adjustment")); label = GTK_WIDGET (gtk_builder_get_object (builder, "basic_label")); g_object_bind_property_full (adj, "value", label, "label", G_BINDING_SYNC_CREATE, value_to_label, NULL, NULL, NULL); adj = GTK_ADJUSTMENT (gtk_builder_get_object (builder, "hex_adjustment")); label = GTK_WIDGET (gtk_builder_get_object (builder, "hex_label")); g_object_bind_property_full (adj, "value", label, "label", G_BINDING_SYNC_CREATE, value_to_label, NULL, NULL, NULL); adj = GTK_ADJUSTMENT (gtk_builder_get_object (builder, "time_adjustment")); label = GTK_WIDGET (gtk_builder_get_object (builder, "time_label")); g_object_bind_property_full (adj, "value", label, "label", G_BINDING_SYNC_CREATE, value_to_label, NULL, NULL, NULL); adj = GTK_ADJUSTMENT (gtk_builder_get_object (builder, "month_adjustment")); label = GTK_WIDGET (gtk_builder_get_object (builder, "month_label")); g_object_bind_property_full (adj, "value", label, "label", G_BINDING_SYNC_CREATE, value_to_label, NULL, NULL, NULL); g_object_unref (builder); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)gestures.c�������������/* Gestures * * Perform gestures on touchscreens and other input devices. This * demo reacts to long presses and swipes from all devices, plus * multi-touch rotate and zoom gestures. */ #include <gtk/gtk.h> static GtkGesture *rotate = NULL; static GtkGesture *zoom = NULL; static gdouble swipe_x = 0; static gdouble swipe_y = 0; static gboolean long_pressed = FALSE; static gboolean touchpad_swipe_gesture_begin (GtkGesture *gesture, GdkEventSequence *sequence, GtkWidget *widget) { /* Disallow touchscreen events here */ if (sequence != NULL) gtk_gesture_set_state (gesture, GTK_EVENT_SEQUENCE_DENIED); return sequence == NULL; } static void swipe_gesture_swept (GtkGestureSwipe *gesture, gdouble velocity_x, gdouble velocity_y, GtkWidget *widget) { swipe_x = velocity_x / 10; swipe_y = velocity_y / 10; gtk_widget_queue_draw (widget); } static void long_press_gesture_pressed (GtkGestureLongPress *gesture, gdouble x, gdouble y, GtkWidget *widget) { long_pressed = TRUE; gtk_widget_queue_draw (widget); } static void long_press_gesture_end (GtkGesture *gesture, GdkEventSequence *sequence, GtkWidget *widget) { long_pressed = FALSE; gtk_widget_queue_draw (widget); } static void rotation_angle_changed (GtkGestureRotate *gesture, gdouble angle, gdouble delta, GtkWidget *widget) { gtk_widget_queue_draw (widget); } static void zoom_scale_changed (GtkGestureZoom *gesture, gdouble scale, GtkWidget *widget) { gtk_widget_queue_draw (widget); } static gboolean drawing_area_draw (GtkWidget *widget, cairo_t *cr) { GtkAllocation allocation; gtk_widget_get_allocation (widget, &allocation); if (swipe_x != 0 || swipe_y != 0) { cairo_save (cr); cairo_set_line_width (cr, 6); cairo_move_to (cr, allocation.width / 2, allocation.height / 2); cairo_rel_line_to (cr, swipe_x, swipe_y); cairo_set_source_rgba (cr, 1, 0, 0, 0.5); cairo_stroke (cr); cairo_restore (cr); } if (gtk_gesture_is_recognized (rotate) || gtk_gesture_is_recognized (zoom)) { cairo_pattern_t *pat; cairo_matrix_t matrix; gdouble angle, scale; cairo_get_matrix (cr, &matrix); cairo_matrix_translate (&matrix, allocation.width / 2, allocation.height / 2); cairo_save (cr); angle = gtk_gesture_rotate_get_angle_delta (GTK_GESTURE_ROTATE (rotate)); cairo_matrix_rotate (&matrix, angle); scale = gtk_gesture_zoom_get_scale_delta (GTK_GESTURE_ZOOM (zoom)); cairo_matrix_scale (&matrix, scale, scale); cairo_set_matrix (cr, &matrix); cairo_rectangle (cr, -100, -100, 200, 200); pat = cairo_pattern_create_linear (-100, 0, 200, 0); cairo_pattern_add_color_stop_rgb (pat, 0, 0, 0, 1); cairo_pattern_add_color_stop_rgb (pat, 1, 1, 0, 0); cairo_set_source (cr, pat); cairo_fill (cr); cairo_restore (cr); cairo_pattern_destroy (pat); } if (long_pressed) { cairo_save (cr); cairo_arc (cr, allocation.width / 2, allocation.height / 2, 50, 0, 2 * G_PI); cairo_set_source_rgba (cr, 0, 1, 0, 0.5); cairo_stroke (cr); cairo_restore (cr); } return TRUE; } GtkWidget * do_gestures (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *drawing_area; GtkGesture *gesture; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size (GTK_WINDOW (window), 400, 400); gtk_window_set_title (GTK_WINDOW (window), "Gestures"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); drawing_area = gtk_drawing_area_new (); gtk_container_add (GTK_CONTAINER (window), drawing_area); gtk_widget_add_events (drawing_area, GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK | GDK_TOUCH_MASK); g_signal_connect (drawing_area, "draw", G_CALLBACK (drawing_area_draw), NULL); /* Swipe */ gesture = gtk_gesture_swipe_new (drawing_area); g_signal_connect (gesture, "swipe", G_CALLBACK (swipe_gesture_swept), drawing_area); gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture), GTK_PHASE_BUBBLE); g_object_weak_ref (G_OBJECT (drawing_area), (GWeakNotify) g_object_unref, gesture); /* 3fg swipe for touchpads */ gesture = g_object_new (GTK_TYPE_GESTURE_SWIPE, "widget", drawing_area, "n-points", 3, NULL); g_signal_connect (gesture, "begin", G_CALLBACK (touchpad_swipe_gesture_begin), drawing_area); g_signal_connect (gesture, "swipe", G_CALLBACK (swipe_gesture_swept), drawing_area); gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture), GTK_PHASE_BUBBLE); g_object_weak_ref (G_OBJECT (drawing_area), (GWeakNotify) g_object_unref, gesture); /* Long press */ gesture = gtk_gesture_long_press_new (drawing_area); g_signal_connect (gesture, "pressed", G_CALLBACK (long_press_gesture_pressed), drawing_area); g_signal_connect (gesture, "end", G_CALLBACK (long_press_gesture_end), drawing_area); gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture), GTK_PHASE_BUBBLE); g_object_weak_ref (G_OBJECT (drawing_area), (GWeakNotify) g_object_unref, gesture); /* Rotate */ rotate = gesture = gtk_gesture_rotate_new (drawing_area); g_signal_connect (gesture, "angle-changed", G_CALLBACK (rotation_angle_changed), drawing_area); gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture), GTK_PHASE_BUBBLE); g_object_weak_ref (G_OBJECT (drawing_area), (GWeakNotify) g_object_unref, gesture); /* Zoom */ zoom = gesture = gtk_gesture_zoom_new (drawing_area); g_signal_connect (gesture, "scale-changed", G_CALLBACK (zoom_scale_changed), drawing_area); gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture), GTK_PHASE_BUBBLE); g_object_weak_ref (G_OBJECT (drawing_area), (GWeakNotify) g_object_unref, gesture); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)scale.ui��������<?xml version="1.0" encoding="UTF-8"?> <interface> <!-- interface-requires gtk+ 3.6 --> <object class="GtkAdjustment" id="adjustment1"> <property name="upper">4</property> <property name="value">2</property> <property name="step-increment">0.1</property> <property name="page-increment">1</property> </object> <object class="GtkAdjustment" id="adjustment2"> <property name="upper">4</property> <property name="value">2</property> <property name="step-increment">0.1</property> <property name="page-increment">1</property> </object> <object class="GtkAdjustment" id="adjustment3"> <property name="upper">4</property> <property name="value">2</property> <property name="step-increment">0.1</property> <property name="page-increment">1</property> </object> <object class="GtkWindow" id="window1"> <property name="title" translatable="yes">Scales</property> <property name="border-width" translatable="yes">20</property> <child> <object class="GtkGrid" id="grid1"> <property name="visible">1</property> <property name="row-spacing">10</property> <property name="column-spacing">10</property> <child> <object class="GtkLabel"> <property name="visible">1</property> <property name="label">Plain</property> <property name="xalign">0</property> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">0</property> </packing> </child> <child> <object class="GtkScale"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="width-request">200</property> <property name="draw_value">0</property> <property name="adjustment">adjustment1</property> <property name="hexpand">1</property> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">0</property> </packing> </child> <child> <object class="GtkLabel"> <property name="visible">1</property> <property name="label">Marks</property> <property name="xalign">0</property> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">1</property> </packing> </child> <child> <object class="GtkScale"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="width-request">200</property> <property name="draw_value">0</property> <property name="adjustment">adjustment2</property> <property name="hexpand">1</property> <marks> <mark value="0" position="bottom"></mark> <mark value="1" position="bottom"></mark> <mark value="2" position="bottom"></mark> <mark value="3" position="bottom"></mark> <mark value="4" position="bottom"></mark> </marks> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">1</property> </packing> </child> <child> <object class="GtkLabel"> <property name="visible">1</property> <property name="label">Discrete</property> <property name="xalign">0</property> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">2</property> </packing> </child> <child> <object class="GtkScale"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="width-request">200</property> <property name="round-digits">0</property> <property name="draw_value">0</property> <property name="adjustment">adjustment3</property> <property name="hexpand">1</property> <marks> <mark value="0" position="bottom"></mark> <mark value="1" position="bottom"></mark> <mark value="2" position="bottom"></mark> <mark value="3" position="bottom"></mark> <mark value="4" position="bottom"></mark> </marks> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">2</property> </packing> </child> </object> </child> </object> </interface> ��(uuay)e_resize_cursor.png���� �������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��t��t�fx���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3�����IDATX��MHcg��{c2U�t���'"]����A�*.lB�#(v�ntiWBZZĝ��@t�.�qD�����IfD]���11���N7�u�q��y�r���w���{�sO�=������@ ����s�H}�Q��j4M3MDN�^�ӊ�����5�w����F���i$���KL�<���8[[[;���=�Á���" =����~������ �8�j����""N�S�����������h�T����v���� <�1Z0t��X�VJpxx���}`����MYYY����/q"�h4j�a_q�JY�i����$���Zyy��+++?�D�ݴOD����� �mll����2UUU?E"�[���HK�'BWJ]Z���@�4mtt����>��YJ�YYY?*�JEDK$���$>��ph��Ý{{{��"@KOO�ߺ�n�m��y������388��m�'� �^��� V�J������dgg �=����>��]ɀ."i�Q����!rss��%C-vL� ��EkkkR�+Eh�^CCC���~��ކ���+u�r�X\\T���w�3����f�߿���� ##�һw�\���eF"CD�\����/�1��!VϾ�Zzzz����'F�����v��������ޯ�E|E�px� �G�f��_G�p8����655e&#�N��g���;q};Ziii� �3/:::>NE�XY0���!����B�sss���fII�������n��.�n�[)��jkkg�^��o�eAA�'�pk������z�/c������{e )l6�o566���x���1�7�y( ����������D)%���a�g8)����/�������k@����t>�x<�q."�DΧ���~�ʀ��d�c5��b���!p��[/*��1�x�>�HU��ՠ.f�3.���Y��XS��b��@�~ظ��x\�c'�V�̘�3�A��Oe�#;lg-����IEND�B`���(uuay)overlay2.c����� ������/* Overlay/Decorative Overlay * * Another example of an overlay with some decorative * and some interactive controls. */ #include <gtk/gtk.h> static GtkTextTag *tag; static void margin_changed (GtkAdjustment *adjustment, GtkTextView *text) { gint value; value = (gint)gtk_adjustment_get_value (adjustment); gtk_text_view_set_left_margin (GTK_TEXT_VIEW (text), value); g_object_set (tag, "pixels-above-lines", value, NULL); } GtkWidget * do_overlay2 (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *overlay; GtkWidget *sw; GtkWidget *text; GtkWidget *image; GtkWidget *scale; GtkTextBuffer *buffer; GtkTextIter start, end; GtkAdjustment *adjustment; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size (GTK_WINDOW (window), 500, 510); gtk_window_set_title (GTK_WINDOW (window), "Decorative Overlay"); overlay = gtk_overlay_new (); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); text = gtk_text_view_new (); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text)); gtk_text_buffer_set_text (buffer, "Dear diary...", -1); tag = gtk_text_buffer_create_tag (buffer, "top-margin", "pixels-above-lines", 0, NULL); gtk_text_buffer_get_start_iter (buffer, &start); end = start; gtk_text_iter_forward_word_end (&end); gtk_text_buffer_apply_tag (buffer, tag, &start, &end); gtk_container_add (GTK_CONTAINER (window), overlay); gtk_container_add (GTK_CONTAINER (overlay), sw); gtk_container_add (GTK_CONTAINER (sw), text); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); image = gtk_image_new_from_resource ("/overlay2/decor1.png"); gtk_overlay_add_overlay (GTK_OVERLAY (overlay), image); gtk_overlay_set_overlay_pass_through (GTK_OVERLAY (overlay), image, TRUE); gtk_widget_set_halign (image, GTK_ALIGN_START); gtk_widget_set_valign (image, GTK_ALIGN_START); image = gtk_image_new_from_resource ("/overlay2/decor2.png"); gtk_overlay_add_overlay (GTK_OVERLAY (overlay), image); gtk_overlay_set_overlay_pass_through (GTK_OVERLAY (overlay), image, TRUE); gtk_widget_set_halign (image, GTK_ALIGN_END); gtk_widget_set_valign (image, GTK_ALIGN_END); adjustment = gtk_adjustment_new (0, 0, 100, 1, 1, 0); g_signal_connect (adjustment, "value-changed", G_CALLBACK (margin_changed), text); scale = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, adjustment); gtk_scale_set_draw_value (GTK_SCALE (scale), FALSE); gtk_widget_set_size_request (scale, 120, -1); gtk_widget_set_margin_start (scale, 20); gtk_widget_set_margin_end (scale, 20); gtk_widget_set_margin_bottom (scale, 20); gtk_overlay_add_overlay (GTK_OVERLAY (overlay), scale); gtk_widget_set_halign (scale, GTK_ALIGN_START); gtk_widget_set_valign (scale, GTK_ALIGN_END); gtk_widget_set_tooltip_text (scale, "Margin"); gtk_adjustment_set_value (adjustment, 100); gtk_widget_show_all (overlay); } if (!gtk_widget_get_visible (window)) gtk_widget_show (window); else gtk_widget_destroy (window); return window; } ��(uuay)revealer/���R���css_accordion/��O������shortcuts-gedit.ui�������������<?xml version="1.0" encoding="UTF-8"?> <interface> <!-- interface-requires gtk+ 3.17 --> <object class="GtkShortcutsWindow" id="shortcuts-gedit"> <property name="modal">1</property> <child> <object class="GtkShortcutsSection"> <property name="visible">1</property> <property name="section-name">shortcuts</property> <property name="max-height">12</property> <child> <object class="GtkShortcutsGroup"> <property name="visible">1</property> <property name="title" translatable="yes">Touchpad gestures</property> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="shortcut-type">gesture-two-finger-swipe-right</property> <property name="title" translatable="yes">Switch to the next document</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="shortcut-type">gesture-two-finger-swipe-left</property> <property name="title" translatable="yes">Switch to the previous document</property> </object> </child> </object> </child> <child> <object class="GtkShortcutsGroup"> <property name="visible">1</property> <property name="title" translatable="yes">Documents</property> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl>N</property> <property name="title" translatable="yes">Create new document</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl>O</property> <property name="title" translatable="yes">Open a document</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl>S</property> <property name="title" translatable="yes">Save the document</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl>W</property> <property name="title" translatable="yes">Close the document</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl><Alt>Page_Down</property> <property name="title" translatable="yes">Switch to the next document</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl><Alt>Page_Up</property> <property name="title" translatable="yes">Switch to the previous document</property> </object> </child> </object> </child> <child> <object class="GtkShortcutsGroup"> <property name="visible">1</property> <property name="title" translatable="yes">Find and Replace</property> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl>F</property> <property name="title" translatable="yes">Find</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl>G</property> <property name="title" translatable="yes">Find the next match</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl><Shift>G</property> <property name="title" translatable="yes">Find the previous match</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl>H</property> <property name="title" translatable="yes">Find and Replace</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl><Shift>K</property> <property name="title" translatable="yes">Clear highlight</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl>I</property> <property name="title" translatable="yes">Go to line</property> </object> </child> </object> </child> <child> <object class="GtkShortcutsGroup"> <property name="visible">1</property> <property name="title" translatable="yes">Tools</property> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><shift>F7</property> <property name="title" translatable="yes">Check spelling</property> </object> </child> </object> </child> <child> <object class="GtkShortcutsGroup"> <property name="visible">1</property> <property name="title" translatable="yes">Miscellaneous</property> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator">F11</property> <property name="title" translatable="yes">Fullscreen on / off</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl>P</property> <property name="title" translatable="yes">Print the document</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator">Insert</property> <property name="title" translatable="yes">Toggle insert / overwrite</property> </object> </child> </object> </child> </object> </child> </object> </interface> ��(uuay)decor2.png������`C�������PNG ��� IHDR��Z��G���JL����bKGD����̿��� pHYs����������tIME�9&�5x�� �IDATx��w�T�����93�X`�EĆ5boK��5����/�ML��b�1Q�`�%6Ԡ����("]@�²e����y��,Ev�E6��|>�;�;����u��]�pp���N��#���#���#��#���#���#��#���#���#��#���#���#��#���#���#��#���#���#���#��#��C9��H���a #b!`�:���+!w�8�ס7���V��Q��YZ��j[�:�2:K박4mXF������"�@@�YZ�Ώ�W�ZF���wz:ʶ a��k�S*�Y��*�i��t�,���C�9^%*��Y_���N&K#��dng{�rN�:t9�)�,�)ng������ �7�w�֡s�� ��5�a�r���a`���i: ] 1 ^e�B Fd�8f"�"B���C� 屐���>=��ID"����#v�[[�e��� �vn� �@���u�u�@;P�RV�H��,Y��GZ�N���&"V��c-/���&�����C ɘaG <��Z��4s�u�P{��wCy�esbf�/GZ������Z�g��m^�Y� GZ��J�R��(w҄!��h�#��VS��MZ�;ww&� ��:�D0@����ߨ�1GZ�N)�`m����1樹�i�H�Ё�5` c��|�_ɱa���=p��8�<��*�P�֓����1;��,n'S権Cn��"2�K�c�����h��H박���f&w�Ѭ#"���[I�A��l�d儎�s�u؊ąϰ�xtrT��#�C����9�&�!"�GZ��=�-�9��<˿��E�ƕ�8t��g������މ�#�Cg�� 9�r:f���WB�ЩI+`�1���Ė�N8tZW�#���9�"�`+v3.���s��bխ��H��,sU��#�CgE��;�}Y��3ni:]��@�I6B�p�4M6��s�u�Lт���#�5c!��*y��6���u8t�z���Q@����b��2��á��W���a�Q�Z���C�����H��A6ħ" &��� �!f_�5l�ZGZ�N�IQc����m��X�2�y�pڍ#�C)Z�5�D�5�e=*����@�R��(�q�u��wFx���u��+�^�8B��4��`�8Iэdr��dh����C�� ]�Y��1x�f����@�fO�JRM/!�S��1;�i��9t�����}�b"C����)�O_u��Ӵ��G'���p�b|r��*v�b5�]j�C�O�����,"T�+���[��C��q:�8h`6�*vf0�jN��i �+9�8M��9 `�BD5]�G�`����<�`�����-��y9t�<X��NL�U@�g�A�D1�Ʒ�dN�:t y��6 �Y��(��7�.��A��*:<�h�1q0�]�G0�,�f�U �i:��f��'�����DĄ�8�A���f~GZ��j�<����.@� I�V����i��#��6Eq��sl�WF;��)6�_ID��.z��9`���~ݕc&>L#])��%�X�;�� �)��=��bMk�ηC ���S�uZ�������U��zL\�?�O��1�s�u�h�(���4$B<��+����g8��L�G*:$z����X*�q�y��\û�O#�`Ks��u�xVٚ�{�jw���."� ���R����rp�`+�<�cs 7R�`F� :��(��DV�1�Q�s���W� ᓳ�6��ُ���H�U`Z8N1���,'!�+lt�� ���,� ��Xf�;8�:lE��>���L��$�d�е�t����Ѯ};}8�*2li�DGZ�������M{ q8c�;����Vr�2D���?������A�s��a� ��5Ë��؟#L�{���Dh����Y�,��-~nGZ���d��?��`�q���Ӵ[Id�z��Z<.����}q>����P�<�'�8�#�De��t�s;8t8�4eo��*Υvzb{c�b[�,�CAv{6��Vp{�y��+����؉�N8t$ ����Kt;Y.��u�}%GZ��������w�"p LG�P�i:��&%�a�n£�/��F ��u�t��)ν�3 �x&���GZ�N'JdZ�[���� 4s�u� 7�H]���y�Gp� q��8�:l��V̹����Ff���9�:l%�v"n<7�ub��P@$}� &�XZ��m:��L�s1����9B<�Hj���C'R���b8g�ǒ������#�C� m�}�&�0 isdI����9�:l{$*5���xt�<+Bbֱz��Ƿ�d���C����z�{3� t!���r�xڍ�8��k�Ew�;��G���Ce�~��#�T��B�POMTl������I��g �e"��PY||����<�p�N8t�<��yzÎ��yS�4�XCM`ݱ5�����u������-���e���e=�h�lk�q�u��6��u�Q�~ܡ+h����P2�1�U䁘�[���H�Ё��]���0��,�VЍ��c ӈ�~�)GZ����R�G��4��R�S4R�x�a60�>,b_���\����H�YI��h�#�t��{ٙ7KYH��f:<"�L�XF0��G�_�||`�yGZ���-�� ��9�$�S\Mϴ�<�H~�3��JGZ��ak?��$���q\�-�2�x��e�r�߳�ٗ����V�枵n��s�X��ޖ( V^�D���ድ@uv�w��dm�V��������d ����"z��e���@3�f7���������ۄ�u�.T��I-C�� *��#y�Y*�B�}���֡�P�m��=���t����e�ma0Y^�SC[{{9�:tb���@�0c;~|;O,![��z5/��ٶ��p�u蠀��%5��i��t��>���g�nL����s�u� �&�5��Pڜ�1欥M��R�Ki��G<GZ�m�e���i`�{�^^J��"�ǣ�u��6|ei�|rӻ��B�<(�����A!M�".�對h�XͲ����1a [�E�i��̻�{���&�v��1W̑֡��c"�퍒�$��MT�..z���x��Fɨ�p�?����U�^���H��a�݉Z`�iy`�FVSC�ܒ�1�m�1��\���*bYK �Ëd5�s�V��ٝ��)��r�B��1�i4ћ�$�.��aA����T*ӺI�LC�f``�hL;(�H��!H�����]<H�Z�}����s��-$����ڎ8f�<YF�"!#+��;ta�4jK�#�������C��x�e� N���$M��yV�##�H���6�o��A���OϢ��[�Zy"� zOl�K�qئ�1���̃4S����,���rt:߱=7��������x��R�%ᯈ��X���;���u!/�m�L��r]�x�Z�(�����I�����+�=p�&0VÎe ��l%C�����b��#��PZ�� ���;�5�Nj�����u��:�:t�ݺ�&�Xɝ$9 ɦn��Cp.�#�֑�a+��d�k&<�<%���z8��&v���s�`�1�*N|�0�R����t���]2GZ�mnk��48���w�TIǃ[�>��&��Wr�u� G,i��1М �x��g4��9�J�-��H��AH����\'R��:���l�ϩ���m���i:ƚc�)����"��*<���ܽˑ��c@� ��܅��8�= 6y�w�u�|���2��k.�+��t��[���Tr�L�i�|���D�`˞[��:lKk���� �æ��h����[�Ү��9�9^����X����?�d�I �,��������d��O�s;�C0DLa���Ci�1B|��l|��Oh���*��<�W�u!/�N���O����y�����G�su��oz�����W��.<��_F�>{�D�ɳ��^ɑ֡�Pa�ꛚHDĉ���Ly�@1��%�;t�vJX#�E��\E?3Ҝ��x�J��˧u��H�xާ;ɒ�b�4�~�p U�2$��u�u�$��h"!1�r�=�S�|}1�'X3:�%�#�ö@�u�5��71x|�ާ��&���$|B��k���SƑ֡ [^�̶O�6��,7Ŗ��oN?��0�֑�a�PŜ�ln�,��E;�(bv7"�dɥ&:lC�Ɣ��=^�����n&�b���LX�[�9�:�[cS`bb����Dl����� G�'&` ���������Lp��OS�)1&�ã�9�x�Ŋi��<�lZ�Zn "�@�G@�պ�1���'0���s�u���3�=C|�=���xdH�\���F^v��aۑ�X��3���<�=g}k_Mj���È�x��si�"<"��,=�!� v��m��>ų�G%1yk�#��6Ҵ���=�8�ާo�� ����y���m�h����P����f}`����+49�:l��ھ����1҄���GL"|�e�i����I�OSO��������#`)���u��Q��]�3d�!��� ���=`G��;�:|��Iv�>�ۄ�X�7I�.a6bk�$��f��#�ö>0��OQ�� m3��ޖ�+�O�V\Q젘��:�:|�n�e,"De�c�^ćZy�h�CF#<��rb�Y�>7�N�C�mm3�<z��vG�T�P��o^��<5�����9��M���,a;���ё֡��5�:��v��D�b�N� ��d9�,f �r��M_ӋZ��1�Zތ��#���BZ�"�1���M�1+t�g(�0�s!�>q?��' 7�TA��Y���4��Ǣh �) `H��})�=9�WYD=3���Q�s����\�b ��,N������$m,�͐�1�У��9�Y,�x��1U 672���Ȱ� ��q���1����Н��������x��7���5����L���'���b���Դ`���x�<���d9Q�8cx�7����0��4X�ʑ���Դ�@���C����+��fI�T/��@�7��G@\��s����bi�t��kC�2�'!9�����d�����hDD�o)~�6�������(O�O/`7���^��r4'������b��QTP@�WJ����r�֡��@�V��!�Qő��{���g��ejJ��S@SOi�<p���=�8XA�<G�?2��Y˿�@D��縈i*�u}z��ѕL��iZ�� �,yRA7�2g�/ى),�Pb*i�%�-���K���T�Tu;b�@0�� 9��$z�t������v4�t�m�nDtq���A&�th�����Nq���ޣ ٢F��͗�X�<2� ε��rϥ�Kulۻպ�C��A�@��Ç,�X����.���н,&���hSl�3�Fb�N��R>F��5;h&Ky���]�&j�Ĝq���7�+�Z�,Si*٩�ʪ��u��������^<D�T!jo��S�G�6�� �������Y(�r�H�U)�����/������c���RRk:K�"v���{��1� d؋A�ŻS�N�h�Kv�l�!�c����}��rG�:�:�� K7�@O[\IdSd�)��P�uL<z1>���*�H��N�d 0��<�*G��rB�lZB>S�1��ô��#��Dž�C x�œ���#�n_����J<�3TZ��v �R��֡Ñ�x�����d�ۨ�SjՑ�@Ҏ��su7b�r��g�v! �v�'"�L$֑֡����F��B|B��_��4M(�����'��s#���'��d��G�}m�v�2Ĉ]�"��[m/��]䍭fxCwЇˉ�ȓEDT�!�r����q�u�:(��.�G59�1�)/�y��P ��%�$v7� ;�i��)q=;PO��[� K�.�oN��G�Ѐ!��7 je�� @��e4S�Q��:�����⓱.Y�f�`r�;�q��j����VFBV�>!D��##��D Q��@; !O�iń��a��:��wG��0�ld��D��h�f�`� �p��/t�����ļ��|!�*=�"Y�͒���v������2�x�_خ�1>?�C@�~LW�d%� D�T���l�����Ӵ[=������,�e� �E�!$Kw�d7�ی��5=�** ��,�OHdcNӺ�c8"�M:�j�=4K!w�����W�G��h{��)�!O�0Uj'�S" 6'��uG�͈j����������1b���>�G�B����C+GGez�iZ���� b2_$IF��?�?Ga�c��`-�3���h�m����u��vzl7$���GZ�AR��s�mǐA4�S�r������ @ ����;i�Ѝ �����ȝo�u���q,��f��4��D�o�[��l�@/f�%b.�A�x3��YZ����ǚ�SM3/�#�Q��QC@@H%�*��"!��i����#�C;-*��̄bibw�>�i����_��>�Isƙ�m�Mq��!�XI����Ӵ[��l�l2�| ��*��|}�É��p�B"�X"�ص�"�C��E��>|�>o�yZ�P�;�w�n��|}A�B�$53U���zY�o5��]�!2�vP!����W!�fc��=�ڌ�MTYa�a������$`͜��u���Y\��nBV�2�a8�2�*z��<=ى�{�\U��<�,�;��fBL#B|���P�<}V+&��?U��ԉZ�m�x��GT���$v�@�����M�q;b��*Y^K����VFȗ�˴l���?o��+z\c�� ��Y �����3�6u�8�C;���į�$��p���F�T�N�%"<�������t� ���rD�T�G��4�E:��Y&�$��r�ɤ�d���k~�02Ĭ�9YB�d ���9"|*�ʦ�;M뎍V�eYUQ�(G��V�����<�����4�P�y�ê�2\������*j��v���Iô� .�X�V"����x���E9!�]����R�o��'#���H��V���/�q�uG��̷���Ɩ�ߨ5l&�be�<u�#*�� fj�q�P����l�b�(�w��mK�.ʂ��+$�M�Z��G<�ê��?P1�Tf���d1�4����5 �hA�❴�pуO, d�@����^>g��p�24>��bm� ��i��sו�$����(Û:���TP�mk�^2��ݸmgq>�q��Z�h��00Bhg��״.�:�6���UUB9�ԃ�[H���EK���2�M3% ����<pG[��'k�P�rB(c�*�_�j-�y���3��sT��`��y!�1 )�c+�Z9�T|:Һ���6��pa�\�v������|Z�ed�G�J�CZe,�1���Z�{��zVͶ=z�f>���M��o2����;������!�f�jXB|L�Ad �g?���T-}�/D���3���3��>�# C�g�9��I=�|��=t���ZD��jo��V�V�z5�X�����qB���~���{�h�U[�~�M�)e8y���ȃ�SY�i�g�bo��u�*���-��͊����t�2m�:I��|����������:b.����Gi����CF/�t��`&r�nJE��*/Z�p4=��>�����H��y��N���#�'���%�I�3LZxX��b�Gw<�d���Hf$�D���4%�5i�I����k��tn��%|;�:�����P�r��m?�>e��x�R���P7z�#;�rk �P��i�s$`*�op�u���#@ta �˨����8�j��+�x$�7mGO�V�YcSt�2�!b�r?�~��:d���FO TZ[�Q$a�e3 0��,��_#��ݻ� �F�v�B���x2@��,R��֡5�AXCCY�4��&곏N��~B��1�<�cT�tM�Jè��>���5\dc��x�r�u�<0���&^�#CCDS�.nG�L~2�&�X����Ģf[�� �IDAT;R)�z��nֺ����B���1��9�x��]�e�#���XEPqL�jڈ����A�v��gG��d0ě��������0W��:�O�yR`m��;�U�|��������F�<^��+K]���q4]�Ȱ�W��uh �8��V�-���̃�'F�0�qJ��B�x��@�0x����Z�$)Ѵ����I2^m����D_e*K��\�%��^����D���]y��cI��5��蜺5SA�t#Ϗ��b����ZByT�;S1�&��n��Zl#ĭ�f3h�iw}_/iI��ڈ<�4Uu��i��Q=� �����}ҧ��(]�G�:ۚl���_*+�v���D�VX��,�@�e%�����3���KO��C,c)kXH#B*��4� �$d��Yxv�+`3��#2a�� "C?���������%�p����<I��U��-b"(��� )�(��c;����>y<깟g��.7�$��3]�3@�md�s�6�F�dh���ι�2�^���۪����%y'.�/�s|�|Þ��+��q��rv���,���|Qk-�E�&��*1`o���U�~b�2ͥ.�b�<V�G��SE�>g{2�1s���:���W�ڈ���HOp/�C\�/L����g5�<ЏgՆ����`Ua����Gp�9�f�i9+Y��Foz�����=��oB26�� ����Ɂ�|�︁<����e ��Vږ�T���;?��\B^*)l�aq�r�f��i�Ԣ(f����;KQ� m�Q��T-O��v��M��D�k� ��Ck\�C�M�!����!c�x���:���B��,!!�������Y�+ ����K����h76f��,< b��sh�#Vl����F�`c�%:�Uf��>�Xze�s ��:N�d4xx[�����MA|�iZg'۬��s�ޭ���Ӵ�`kR�:]t#�����}�(�%v4��!�#O��*���4�'G�`��2�Q �C�[��( ��Ȑcts2��b��=h��Ɏ��-��){DiN�����gby��������F6��� �,��R�������`�[��Q@3�1@w�6,��jҊs��氌���uh�#O�}��W�1�U"�9�L�t[��w�d�0��m���)IkZh�L[[9tX@(I1v�#��ZT5�����~~5D��9!P��1A�s{�f*ӛ�+#��-�+�˿��U ��g�4��f*��X�z"�'`X�b��-^gKi���&��ϐ���\�1�M|C���Հ1WMřlg��1k'<lo��f��~K[�"�����[����鷰���뷸���K��!�#�doiq?��ze���Dl� SYvS�o'�}'yD%��UM�s��ȓ���JHg"�#x� >ԕ�ʼt��H��<�j�D�TЍ�����Ĭd#���/��I���&Yu�>� |"����۩H�2*xD�t%B�'�Ǎ"eʥ�Rg�([�Ii}�퉕�U7 ��� ������#"O�6xM��+��u��U,�-ͽ��(�P �Gd�sx�;�Z���&�Е�<�0�b�nW�0���`�ҍ~T��+542��ҟ�Dx��pv�%�k��d}��L�b"r�e��m����Җ���D��l��8o ?]p˥@��QJc �85!>���Z�ЭI�.� ���c"Vj3��2���C��.�1����N�1|{�}�sj7'<[̘!&���@ݜ��=���p�In����ʪ�Ѕ!�eO>EF��.VM{�S���@LjH�,F9 ,�w<ĕ�\��&�u��lz_�� V��Xٖ�+�'$����AY�<�R@�dm(��:�d�hd-y���҃��2]ӥ.g�i�76���@��<��S�������j'7L۱��b_F���k/M+�w�7��0�4�e+��T���;b���hz�J��xO��Ϙ�YΒ�Y{t5UJ$^>'��;YAX��x��#�g��Nn��ݹZO���,����թ�����6�̈́똫�����c����zȳ 1=y�U �^:K?����(�qjmk��,˵�t��R��֛��y��}]5BWj�²��־^��@���~"�E��M�����)�)k��i٤�j���O�}��/�y%-�g�R �3�MR��_׀.n�p�<ۂ���ҶxO�j_� �H���*-Q�m���j���Q��n��*m���mp�������hRz&��hw}F�i�v��ed�:x��Y���[�Y;9�Kt���ϟ��U/�@�e�.PP�~.`�� �^���Ek��8@��~ʾ�˕j��xU*+d�M��d�c���X�P�ő��T�7ҍף�G=i��T���ے㇊��x{gO�,^\����-��O�ȿu�����&#/��-��U=�[�꩞ꦊ�ȕ���I5�v(.{������t�ٿ����P��v�T�����@�:�_1COh�N�Pe�Y��]�m�i�@�V (mu������7io�<9��$�Q﨎��W�"�R}�AL�jw��{Q-�y\v�i��_S���q�j�=��הO�c�>C��H�/��T�2*����� ����o�y�2�T�2Bݨ"ebE��Ĥ�R�يC��MzBWio���̦2�Z���Nїt�&�Q�S/�-Mӻ��^�ݦ_���T�.�F'�Q�q5�g��E:� KX��P��;u�N�(��N���R�!S���O:]�Te�z�&j٤ƲO�/Kx�ҳ}�I�}�2����J�u3� Uj��+N�}���xۻv��D�[��11���(y��g��D3�j�=?Y�DQ:c��Î� -���!>*{��ָ�YG��� ��Wc�|�����4���s ��H�X�ݡ5JFFY���:X_�����ժڍ���R�l=��� U�ʳF���ʧ�h��U*5 �4}K�S�Z��t����OU�:^�u�{~��(XH ����!� �7T(�T~�D��lդ"'�a��wU����%yB��QD`���9�fg�E�z�Ą����v�i���VE�G�Z��U��Pf�Z3й � .�����W����{��~������iL����B+n�d�z^�Яt�����8�>�K�h��h�=9�;Y����3u����V=ky�����5�ـ���,��U���j�ѕ�>�PM��6�@U.�/4֪aO]4Aw���K�MպD#��ҳ*ؿojq����t�� y�4P�S2���r������K�:�A��橰wY�r����!Oר�Y.nS�}��%���� ����� ^�.���h��цƥ�H�2�$�#_�Q�2B��3���U�ŏ�o�_X@4s�����#_��*��~�Z�AzFq�y)���|�9�Egk�� �ju�.������7Pl-On\��ob����3��V���gm�Q}:}�*��'�غ&�l�����ٕ���Ɣ�ַ��O�K�bB�����_�(#���҅��BY���r���/_�zI�1�1߶��*�h��:���:]�+`�.UE��Oӊ B<aG�����X��W�6��dm_�^���G=�W��^�_�%�S7�j���5[���LJ9IȨR�B{�`eT)��|D勜�,m�'e �5I��`yVwU(��:F7�jl�0�6U��y� ͢��R ��}[�-Mv�C S�Z��ϩº+5:B�Ps*Y�P�PV�h���9�����21Xҭ�� SF�B�i�J7�;:O�d�j�t��aEDlC|�u��H�Z��lR�,�`���*�<nq-8Q��5�w�F8<���*�����G�����Li� �L�4N��1����vy_����ƩR�J�Z���m�����)�^:��%��NzS��ݷ5���<ݭs5��������u�~��*^@��s}-oM�mĵK��4�~�o��U�Wk��rB�S�T>�����H��z����8-���a�U�ʬo/��>�k�DD=�jD:��h�n��9��������Q�2B�hu�ȁ���'t�6*�BY�f��Yꖊ��L�TZk�SV�e���U>P�����*N���h�� �^:^���� !& 3��=}g�Ũm�`���Ei�c���ѺX�9]��B�Օ5�(y��zv5.s:�kQ��\�PǏ�G�j�uv�Ց���l{�T˯(�#�j�|�=t��rV@x�U��g��6]���b崋�P#1��pU�1�n:G器�7������_[��ѯ�rt�ӷ�O��H-��P�Qz��E]�����B��[���=��7؟���4Ʋy{ۮ�Qo�f��qc�����`k%�ש�E��oq_�x� ���a*��j��hń�N��ؽ��㨅�"��.��]��UjW]�������/�;NY=��<��~������ ]���)!�����ܞ�P並�У%�F��&_��8e��@�ۄ�/l�ɗ_q�fK,֗4�lgm7ݩ�˵�}? \�Nq��տK��PF]�/�UQꪭ�%�Z��Fc���u�^-*�c���k�M�n���H[���nV�%ڨFm�)]��v�p�����620XO���״�k����tGY��h���scr���u���H�T&��ҷ�V�.�zCYU�ֺ�j�NUm��A����-���ޒ��Ucm� ��zЖ�Ee�;@�J��ﵟ|e��T�6ԋ��n��ܬ=��BY �UZ����))n�����%εD�Qb�ٚ�YzI��Z}^��8Aq{���=Z�~�s�2Ak�v�:����1D�J�X��, �t�-:ņ��@���q}�� !����6�@4�r����4�.�qٜ�"Y�.�yVg_��:Iۧ���^�__�Z6�8�2��Ϩ����^����?+N��i����z���:KU�)+4L�ԲI�����-����U:Nߒ��|��7���������[D�K:]56r�D'[M��1N� \���6�p����Jq�����jT�\وR��� �E��-�O�{s�QV��vzO���ls�q��Z�u�����|��%�M]�㴝��]��N�/5E���Ђ4#b�PW�CQ�%1��i/i�uL�}�J����ꯣ�K=aC-�oS,�Xy�5A�Bt�$�{j�s���:J��~�avmV��-E�n��1 ����^�t���?�[�jӖ?L��1_�S���������� ��s��P7e�]��$_F;i���M9�%YF�R�t��Rc���\& c�>c��r�����#�@G,�}����W���6��e�� ��u�R�i�2VCVi��%�NOj�V�^G�̵ )p����l�)l������Su���!�ngV�Bu�n��:�p���R�BF{�XU��pU)k��i V����Q��V�G�c����ǵ�n�4����w�,�~����j�]��6�7��˯��:�FY�������? Z�����|D4�/]���t�VL8ʆ�����Ҭ�J�h�N�O��>Hש�����A]���Trd?z%hC[$�EP�}�p�bo���Tl��c�,���!-пy���;��PA ��P�қ^��'ݨ�����؛Kjr����F���f10�i�e�lS`���؋CًA&�����$w����/�b&��4���<n0�-��Sa_�9��'�G�h���΄x��o�$5|��MI��s�C~�QA/BV���h*��r�d0�y\��lZGQ�\Ɖ���� �2�?3�d[u��OQ�v!��.K9�L�D�x�L�Ct��^e8��a�Hz�W ����w\,JJ�^ґ4Qɭ�i ����%�Di�GH�,=�;�^�Ȯ|�^@>h��&�ko�V]��d��I����4PC5R{h_����:A��d��t��n�!��.�u�.՟��] ��� ����Y:�\�Z��#�=����ԎĹ�c�.����*u����v��jmOG�Eώ�;��,�� yO�t�&-mH=��h{N�<�!���K��4F���Oi�Z�у��<�SO�|�&#�*ݭ0�6 i<|�^ңZ:�|9J��Kg�!ed���q�i6n�����Ew)l�m,�`�pT���Q��9����e��]5@���ցH4Y�,kI%�QN��N���=z�z�� 1���^�$�ܥs4FF�:HG��22�*��Pۜ���U ��V�(=��� X�O�gE��c�Q�±,F��:O��<]�)��9Z:�.}ZU��Z��wl.l��H�|�M���'X?ePe�yb� � �� O�u��Q�nV9��f�����!�h��V��w��Rͬ��^�]�A����t��5Nc4B�k�i�k�Fj���X����F=�6��VZ��R�PW��C#�W�+RY��tᢲ���t��@�[���X��O��jL�c\��������������(����_i?{�'�rW��['5"f�����o]��J�rEʷ��-ց�ծPCjA?��v��B5�p�2[�,�����Z6)N�l��A�h�]���i`uv��@�4G�5W�Hj]zj��*����_i@�h�Q��S6������䛈� -F����K�SNhwݬERY�@K�2]��(cɴ�~�wR�/Nݲx����Wܧ����&���Q�[ 4���-���2�"d���W1G6_fQ���~Ю�h�ǫjO����Z9�A���������M���Z�b���Ug�^~yZd�����;W�܉��� ���j� =�/��Ms�� R1Q��k��U�L�������K�k��zC{!�p�F�)�F�t������Q^����u����B�Q�2ip����Kk[X�"u��:�f������n��f�!ѱ�UV �t�e�η Nc��ʽ���Ũ���%MX�IQ��ͽv�i�n�^_�^��ˮ�W��u�����y�h&���)&&���ّ�ٛ����lK�:iP��\��Y^�-��1��`�����z,�����FN|�����Y`ad ����0�|MԳ����lf��ݤiFO2��g���x�ٶ���=��b���!�@����!�X�'"�(൪>6��t/��!盦I_=�v"���A&O�}��wQ~6b�f�/���v<�S��#+�;W'p{'mp��ʙh�X"vRl\[��PE3���O�V��C��C�G_��cb ��|��N])�cGp2�LW{[{X�E7��G@�� �����2���~UI���i��]|�qP@5�s<;�*ݹrL�t��}Mf�p� #�D���;o�-���|�Cl�̓�&!��C���rg���M���5G�ҭR|���I���-2����T���B^u�Gט�- ��+ �Sj�?[�ɘ�Yꯌ*�z�(��O���}�%M֊ ��+��m�ƈ�w�����H�!�$�SFU��t��M �O?�x͐���k!O5z���i��:����I-���� ��5�yb7� ]O{� ��P�����J�x�Q�����%�`�ayC��u�Q���}�<�:v��g�ɦ�\3y�,��U@��`C����$3�[t�Q�͟ �Vq�LZ����Y>d�m|�����3����!�G�����2����vd���[�UU�k�s�q��H�J�1oi�,B��2����Р��ބ0+1"A(A_*+�@� K+�DG��&3�f���q�m���=�/GE�4㸾�r�Y�f����/��,�U�|�7��q֩1���#k8JP5��iRթ��$��ֳ�)�c=w)��V�����a`�C�<m�)b�&��]�>i]=�A�e��E��+ �U�@#Bn�%�#���gJ*�gA�hpf����N��NZ���9��4���xU� ��`����~NI�8�iz)�H�����M4r��T��9������;��{t"5lga�xJ6�)}��sx�e4){�.-��m�q��b5M�����(Xz��.엗i%�C�|��j����U\믨����g���3���e�v˓�E�ah�d���E19%�����]r�$c}Ɠd�l����؋+��y��-�,���S��0�wD�HK�����V��9��m�! �)���⍡�}]<�S�@����Y�A6�4A��:A,��'��9�(��Q�96��xt�ؒ&Y*��v9*}�E݅Wb����d���ez��o-/O˯zP��{�-I� �d�t�W,u�fY�#r�"�$Wu����]��T84�+���������A1��飍sx�� ��9j��t��h��?� ���h= h�g���IDAT��zjE�^�9��E< �G���%*���VVЩ��,s�G#Ȑ���s:�_���:�D�t��#��������_�r��f�R�K/9Nr�V�(c3���EEҞ�.Ic����g-� �0.Hx�c"���1����[|�ؔQ��+��!�E�i���*��gH; ��ˡD�<+d.BIir���@�:���y��^��d��eO��/��6�$MQ�깾�H��,�A��T�Ar�)�b�lb?��L��VpI0�Y� ��\��Ґ� ��Vi�$6 ��L!������i5�8 MM"�~���H'G8�q�8K?�4i�i`"ӹ�Y�W� ��D�'[ Mϫ{7~͏t�`�X�i�N��(U��xU��iG|p��������u����ǔK*�������]+�^���b�/ݡH0��]I�����������_�n9�!:�&G-)&3�{��R��o�71�����9�� ?�� $)3�ƭ*P��]{ܘK�_L�XAğ�H���U���LN�,��9iW{dDqj�2�����6��Ju�+����6$l:d7��F泊%jt�Րv����J6� 5��\S+CZ�+"(HGn<�6fC+CZ�!��U�w�q���:����C��E���{�DE'�!���5��$Qa�6T� 5�5��B��6���K�!���#,:�*�[�&H�����`�a�?��!���!���!��!���!���!��!���!��A5�av�J���b����IEND�B`���(uuay)glarea-gles.fs.glsl�������������precision mediump float; void main() { float lerpVal = gl_FragCoord.y / 500.0; gl_FragColor = mix(vec4(1.0, 0.85, 0.35, 1.0), vec4(0.2, 0.2, 0.2, 1.0), lerpVal); } ��(uuay)nesw_resize_cursor.png��������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��t��t�fx���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3�����IDATX��OLcUƿ�'��[%6TESi4X�$,(H}i̐v�H�].XUM:�ц������,� C�$h$lHM����6%mi)�}�^����0q×�ջ�}�{ι�\�V����52��t�?!��C)UQJ�Z/I��d2=�����\����亻����}�V��lll�RZu���$�D"'�~ 7�Y"��n���|>/�\.eGG(���־�.��M�%eM�:<�������X]]�@�p�����ʲL��ǫ���|_ @Uè\�1�9�N3�B8��Z� �e�Y���~ �_BU p���)���mmm]���t:�N�R�������'!A�3��ׅB�LMM��\�V7��rRE�ч�1&��&��+A�t:�e�P����%�������j�:��$I�"��d2$����_���x!�N!�2���-1ooog~��\^^���i__�����W{{{���avqqA���~�B˲,��Zb��j���!�$)���������x<N�F����0���r��e� �Pb�������I4͘�f���������1I$�F�������l%����lww����f���> ����X,�X,�c�^D%��F�a>���R������l���"���������Y���~�^9�F�ѿjjj���:���'v�}u{{{��B�.�����?�t��{{{������f\.c�����u�(��O_Z��okk��U(��9��``�`�����l~�nբi3��̩�*JE�8�{yss�Ӊ����={m3(�?%%��r]����ɤ�n���@�����xX<?���������hĪ��%^��G�A����600�&���ʝ�����(��'�I=���I�y>�����rZ�Q(a�+ �R�A9����@��Z �B }�8�NC�������3bE��w�[�?loW>��������IEND�B`���(uuay)cursors.c��������������/* Cursors * * Demonstrates a useful set of available cursors. */ #include <gtk/gtk.h> static void set_cursor (GtkWidget *button, gpointer data) { GtkWidget *toplevel; GdkCursor *cursor = data; GdkWindow *window; toplevel = gtk_widget_get_toplevel (button); window = gtk_widget_get_window (toplevel); gdk_window_set_cursor (window, cursor); } static GtkWidget * add_section (GtkWidget *box, const gchar *heading) { GtkWidget *label; GtkWidget *section; label = gtk_label_new (heading); gtk_label_set_xalign (GTK_LABEL (label), 0.0); gtk_widget_set_margin_top (label, 10); gtk_widget_set_margin_bottom (label, 10); gtk_box_pack_start (GTK_BOX (box), label, FALSE, TRUE, 0); section = gtk_flow_box_new (); gtk_widget_set_halign (section, GTK_ALIGN_START); gtk_flow_box_set_selection_mode (GTK_FLOW_BOX (section), GTK_SELECTION_NONE); gtk_flow_box_set_min_children_per_line (GTK_FLOW_BOX (section), 2); gtk_flow_box_set_max_children_per_line (GTK_FLOW_BOX (section), 20); gtk_box_pack_start (GTK_BOX (box), section, FALSE, TRUE, 0); return section; } static void add_button (GtkWidget *section, const gchar *css_name) { GtkWidget *image, *button; GdkDisplay *display; GdkCursor *cursor; display = gtk_widget_get_display (section); cursor = gdk_cursor_new_from_name (display, css_name); if (cursor == NULL) image = gtk_image_new_from_icon_name ("image-missing", GTK_ICON_SIZE_MENU); else { gchar *path; path = g_strdup_printf ("/cursors/%s_cursor.png", css_name); g_strdelimit (path, "-", '_'); image = gtk_image_new_from_resource (path); g_free (path); } gtk_widget_set_size_request (image, 32, 32); button = gtk_button_new (); gtk_container_add (GTK_CONTAINER (button), image); gtk_style_context_add_class (gtk_widget_get_style_context (button), "image-button"); g_signal_connect (button, "clicked", G_CALLBACK (set_cursor), cursor); gtk_widget_set_tooltip_text (button, css_name); gtk_container_add (GTK_CONTAINER (section), button); } GtkWidget * do_cursors (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *sw; GtkWidget *box; GtkWidget *section; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Cursors"); gtk_window_set_default_size (GTK_WINDOW (window), 500, 500); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (window), sw); box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); g_object_set (box, "margin-start", 20, "margin-end", 20, "margin-bottom", 10, NULL); gtk_container_add (GTK_CONTAINER (sw), box); section = add_section (box, "General"); add_button (section, "default"); add_button (section, "none"); section = add_section (box, "Link & Status"); add_button (section, "context-menu"); add_button (section, "help"); add_button (section, "pointer"); add_button (section, "progress"); add_button (section, "wait"); section = add_section (box, "Selection"); add_button (section, "cell"); add_button (section, "crosshair"); add_button (section, "text"); add_button (section, "vertical-text"); section = add_section (box, "Drag & Drop"); add_button (section, "alias"); add_button (section, "copy"); add_button (section, "move"); add_button (section, "no-drop"); add_button (section, "not-allowed"); add_button (section, "grab"); add_button (section, "grabbing"); section = add_section (box, "Resize & Scrolling"); add_button (section, "all-scroll"); add_button (section, "col-resize"); add_button (section, "row-resize"); add_button (section, "n-resize"); add_button (section, "e-resize"); add_button (section, "s-resize"); add_button (section, "w-resize"); add_button (section, "ne-resize"); add_button (section, "nw-resize"); add_button (section, "se-resize"); add_button (section, "sw-resize"); add_button (section, "ew-resize"); add_button (section, "ns-resize"); add_button (section, "nesw-resize"); add_button (section, "nwse-resize"); section = add_section (box, "Zoom"); add_button (section, "zoom-in"); add_button (section, "zoom-out"); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)textview/������pixbufs.c����������/* Pixbufs * * A GdkPixbuf represents an image, normally in RGB or RGBA format. * Pixbufs are normally used to load files from disk and perform * image scaling. * * This demo is not all that educational, but looks cool. It was written * by Extreme Pixbuf Hacker Federico Mena Quintero. It also shows * off how to use GtkDrawingArea to do a simple animation. * * Look at the Image demo for additional pixbuf usage examples. * */ #include <stdlib.h> #include <gtk/gtk.h> #include <math.h> #define BACKGROUND_NAME "/pixbufs/background.jpg" static const char *image_names[] = { "/pixbufs/apple-red.png", "/pixbufs/gnome-applets.png", "/pixbufs/gnome-calendar.png", "/pixbufs/gnome-foot.png", "/pixbufs/gnome-gmush.png", "/pixbufs/gnome-gimp.png", "/pixbufs/gnome-gsame.png", "/pixbufs/gnu-keys.png" }; #define N_IMAGES G_N_ELEMENTS (image_names) /* demo window */ static GtkWidget *window = NULL; /* Current frame */ static GdkPixbuf *frame; /* Background image */ static GdkPixbuf *background; static gint back_width, back_height; /* Images */ static GdkPixbuf *images[N_IMAGES]; /* Widgets */ static GtkWidget *da; /* Loads the images for the demo and returns whether the operation succeeded */ static gboolean load_pixbufs (GError **error) { gint i; if (background) return TRUE; /* already loaded earlier */ background = gdk_pixbuf_new_from_resource (BACKGROUND_NAME, error); if (!background) return FALSE; /* Note that "error" was filled with a GError */ back_width = gdk_pixbuf_get_width (background); back_height = gdk_pixbuf_get_height (background); for (i = 0; i < N_IMAGES; i++) { images[i] = gdk_pixbuf_new_from_resource (image_names[i], error); if (!images[i]) return FALSE; /* Note that "error" was filled with a GError */ } return TRUE; } /* Expose callback for the drawing area */ static gint draw_cb (GtkWidget *widget, cairo_t *cr, gpointer data) { gdk_cairo_set_source_pixbuf (cr, frame, 0, 0); cairo_paint (cr); return TRUE; } #define CYCLE_TIME 3000000 /* 3 seconds */ static gint64 start_time; /* Handler to regenerate the frame */ static gboolean on_tick (GtkWidget *widget, GdkFrameClock *frame_clock, gpointer data) { gint64 current_time; double f; int i; double xmid, ymid; double radius; gdk_pixbuf_copy_area (background, 0, 0, back_width, back_height, frame, 0, 0); if (start_time == 0) start_time = gdk_frame_clock_get_frame_time (frame_clock); current_time = gdk_frame_clock_get_frame_time (frame_clock); f = ((current_time - start_time) % CYCLE_TIME) / (double)CYCLE_TIME; xmid = back_width / 2.0; ymid = back_height / 2.0; radius = MIN (xmid, ymid) / 2.0; for (i = 0; i < N_IMAGES; i++) { double ang; int xpos, ypos; int iw, ih; double r; GdkRectangle r1, r2, dest; double k; ang = 2.0 * G_PI * (double) i / N_IMAGES - f * 2.0 * G_PI; iw = gdk_pixbuf_get_width (images[i]); ih = gdk_pixbuf_get_height (images[i]); r = radius + (radius / 3.0) * sin (f * 2.0 * G_PI); xpos = floor (xmid + r * cos (ang) - iw / 2.0 + 0.5); ypos = floor (ymid + r * sin (ang) - ih / 2.0 + 0.5); k = (i & 1) ? sin (f * 2.0 * G_PI) : cos (f * 2.0 * G_PI); k = 2.0 * k * k; k = MAX (0.25, k); r1.x = xpos; r1.y = ypos; r1.width = iw * k; r1.height = ih * k; r2.x = 0; r2.y = 0; r2.width = back_width; r2.height = back_height; if (gdk_rectangle_intersect (&r1, &r2, &dest)) gdk_pixbuf_composite (images[i], frame, dest.x, dest.y, dest.width, dest.height, xpos, ypos, k, k, GDK_INTERP_NEAREST, ((i & 1) ? MAX (127, fabs (255 * sin (f * 2.0 * G_PI))) : MAX (127, fabs (255 * cos (f * 2.0 * G_PI))))); } gtk_widget_queue_draw (da); return G_SOURCE_CONTINUE; } GtkWidget * do_pixbufs (GtkWidget *do_widget) { if (!window) { GError *error; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Pixbufs"); gtk_window_set_resizable (GTK_WINDOW (window), FALSE); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); error = NULL; if (!load_pixbufs (&error)) { GtkWidget *dialog; dialog = gtk_message_dialog_new (GTK_WINDOW (window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "Failed to load an image: %s", error->message); g_error_free (error); g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); gtk_widget_show (dialog); } else { gtk_widget_set_size_request (window, back_width, back_height); frame = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, back_width, back_height); da = gtk_drawing_area_new (); g_signal_connect (da, "draw", G_CALLBACK (draw_cb), NULL); gtk_container_add (GTK_CONTAINER (window), da); gtk_widget_add_tick_callback (da, on_tick, NULL, NULL); } } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else { gtk_widget_destroy (window); g_object_unref (frame); } return window; } ��(uuay)gtk.css��������������/* You can edit the text in this window to change the * appearance of this Window. * Be careful, if you screw it up, nothing might be visible * anymore. :) */ /* This CSS resets all properties to their defaults values * and overrides all user settings and the theme in use */ @import url("resource://css_pixbufs/reset.css"); @import url("resource://css_pixbufs/cssview.css"); @keyframes move-the-image { 0% { background-position: 50.00% 75.00%, 67.68% 67.68%, 75.00% 50.00%, 67.68% 32.32%, 50.00% 25.00%, 32.32% 32.32%, 25.00% 50.00%, 32.32% 67.68%, 0% 0%; } 3.125% { background-position: 55.19% 76.11%, 72.14% 64.79%, 76.11% 44.81%, 64.79% 27.86%, 44.81% 23.89%, 27.86% 35.21%, 23.89% 55.19%, 35.21% 72.14%, 0% 0%; } 6.25% { background-position: 60.79% 76.04%, 76.04% 60.79%, 76.04% 39.21%, 60.79% 23.96%, 39.21% 23.96%, 23.96% 39.21%, 23.96% 60.79%, 39.21% 76.04%, 0% 0%; } 9.375% { background-position: 66.46% 74.64%, 79.06% 55.78%, 74.64% 33.54%, 55.78% 20.94%, 33.54% 25.36%, 20.94% 44.22%, 25.36% 66.46%, 44.22% 79.06%, 0% 0%; } 12.5% { background-position: 71.84% 71.84%, 80.89% 50.00%, 71.84% 28.16%, 50.00% 19.11%, 28.16% 28.16%, 19.11% 50.00%, 28.16% 71.84%, 50.00% 80.89%, 0% 0%; } 15.625% { background-position: 76.55% 67.74%, 81.32% 43.77%, 67.74% 23.45%, 43.77% 18.68%, 23.45% 32.26%, 18.68% 56.23%, 32.26% 76.55%, 56.23% 81.32%, 0% 0%; } 18.75% { background-position: 80.21% 62.51%, 80.21% 37.49%, 62.51% 19.79%, 37.49% 19.79%, 19.79% 37.49%, 19.79% 62.51%, 37.49% 80.21%, 62.51% 80.21%, 0% 0%; } 21.875% { background-position: 82.54% 56.47%, 77.58% 31.57%, 56.47% 17.46%, 31.57% 22.42%, 17.46% 43.53%, 22.42% 68.43%, 43.53% 82.54%, 68.43% 77.58%, 0% 0%; } 25% { background-position: 83.33% 50.00%, 73.57% 26.43%, 50.00% 16.67%, 26.43% 26.43%, 16.67% 50.00%, 26.43% 73.57%, 50.00% 83.33%, 73.57% 73.57%, 0% 0%; } 28.125% { background-position: 82.54% 43.53%, 68.43% 22.42%, 43.53% 17.46%, 22.42% 31.57%, 17.46% 56.47%, 31.57% 77.58%, 56.47% 82.54%, 77.58% 68.43%, 0% 0%; } 31.25% { background-position: 80.21% 37.49%, 62.51% 19.79%, 37.49% 19.79%, 19.79% 37.49%, 19.79% 62.51%, 37.49% 80.21%, 62.51% 80.21%, 80.21% 62.51%, 0% 0%; } 34.375% { background-position: 76.55% 32.26%, 56.23% 18.68%, 32.26% 23.45%, 18.68% 43.77%, 23.45% 67.74%, 43.77% 81.32%, 67.74% 76.55%, 81.32% 56.23%, 0% 0%; } 37.5% { background-position: 71.84% 28.16%, 50.00% 19.11%, 28.16% 28.16%, 19.11% 50.00%, 28.16% 71.84%, 50.00% 80.89%, 71.84% 71.84%, 80.89% 50.00%, 0% 0%; } 40.625% { background-position: 66.46% 25.36%, 44.22% 20.94%, 25.36% 33.54%, 20.94% 55.78%, 33.54% 74.64%, 55.78% 79.06%, 74.64% 66.46%, 79.06% 44.22%, 0% 0%; } 43.75% { background-position: 60.79% 23.96%, 39.21% 23.96%, 23.96% 39.21%, 23.96% 60.79%, 39.21% 76.04%, 60.79% 76.04%, 76.04% 60.79%, 76.04% 39.21%, 0% 0%; } 46.875% { background-position: 55.19% 23.89%, 35.21% 27.86%, 23.89% 44.81%, 27.86% 64.79%, 44.81% 76.11%, 64.79% 72.14%, 76.11% 55.19%, 72.14% 35.21%, 0% 0%; } 50% { background-position: 50.00% 25.00%, 32.32% 32.32%, 25.00% 50.00%, 32.32% 67.68%, 50.00% 75.00%, 67.68% 67.68%, 75.00% 50.00%, 67.68% 32.32%, 0% 0%; } 53.125% { background-position: 45.44% 27.07%, 30.57% 37.01%, 27.07% 54.56%, 37.01% 69.43%, 54.56% 72.93%, 69.43% 62.99%, 72.93% 45.44%, 62.99% 30.57%, 0% 0%; } 56.25% { background-position: 41.65% 29.85%, 29.85% 41.65%, 29.85% 58.35%, 41.65% 70.15%, 58.35% 70.15%, 70.15% 58.35%, 70.15% 41.65%, 58.35% 29.85%, 0% 0%; } 59.375% { background-position: 38.68% 33.06%, 30.02% 46.03%, 33.06% 61.32%, 46.03% 69.98%, 61.32% 66.94%, 69.98% 53.97%, 66.94% 38.68%, 53.97% 30.02%, 0% 0%; } 62.5% { background-position: 36.49% 36.49%, 30.89% 50.00%, 36.49% 63.51%, 50.00% 69.11%, 63.51% 63.51%, 69.11% 50.00%, 63.51% 36.49%, 50.00% 30.89%, 0% 0%; } 65.625% { background-position: 34.97% 39.96%, 32.28% 53.53%, 39.96% 65.03%, 53.53% 67.72%, 65.03% 60.04%, 67.72% 46.47%, 60.04% 34.97%, 46.47% 32.28%, 0% 0%; } 68.75% { background-position: 34.02% 43.38%, 34.02% 56.62%, 43.38% 65.98%, 56.62% 65.98%, 65.98% 56.62%, 65.98% 43.38%, 56.62% 34.02%, 43.38% 34.02%, 0% 0%; } 71.875% { background-position: 33.50% 46.72%, 36.01% 59.35%, 46.72% 66.50%, 59.35% 63.99%, 66.50% 53.28%, 63.99% 40.65%, 53.28% 33.50%, 40.65% 36.01%, 0% 0%; } 75% { background-position: 33.33% 50.00%, 38.21% 61.79%, 50.00% 66.67%, 61.79% 61.79%, 66.67% 50.00%, 61.79% 38.21%, 50.00% 33.33%, 38.21% 38.21%, 0% 0%; } 78.125% { background-position: 33.50% 53.28%, 40.65% 63.99%, 53.28% 66.50%, 63.99% 59.35%, 66.50% 46.72%, 59.35% 36.01%, 46.72% 33.50%, 36.01% 40.65%, 0% 0%; } 81.25% { background-position: 34.02% 56.62%, 43.38% 65.98%, 56.62% 65.98%, 65.98% 56.62%, 65.98% 43.38%, 56.62% 34.02%, 43.38% 34.02%, 34.02% 43.38%, 0% 0%; } 84.375% { background-position: 34.97% 60.04%, 46.47% 67.72%, 60.04% 65.03%, 67.72% 53.53%, 65.03% 39.96%, 53.53% 32.28%, 39.96% 34.97%, 32.28% 46.47%, 0% 0%; } 87.5% { background-position: 36.49% 63.51%, 50.00% 69.11%, 63.51% 63.51%, 69.11% 50.00%, 63.51% 36.49%, 50.00% 30.89%, 36.49% 36.49%, 30.89% 50.00%, 0% 0%; } 90.625% { background-position: 38.68% 66.94%, 53.97% 69.98%, 66.94% 61.32%, 69.98% 46.03%, 61.32% 33.06%, 46.03% 30.02%, 33.06% 38.68%, 30.02% 53.97%, 0% 0%; } 93.75% { background-position: 41.65% 70.15%, 58.35% 70.15%, 70.15% 58.35%, 70.15% 41.65%, 58.35% 29.85%, 41.65% 29.85%, 29.85% 41.65%, 29.85% 58.35%, 0% 0%; } 96.875% { background-position: 45.44% 72.93%, 62.99% 69.43%, 72.93% 54.56%, 69.43% 37.01%, 54.56% 27.07%, 37.01% 30.57%, 27.07% 45.44%, 30.57% 62.99%, 0% 0%; } 100% { background-position: 50.00% 75.00%, 67.68% 67.68%, 75.00% 50.00%, 67.68% 32.32%, 50.00% 25.00%, 32.32% 32.32%, 25.00% 50.00%, 32.32% 67.68%, 0% 0%; } } @keyframes size-the-image { 0% { background-size: 96px, 12px, 96px, 12px, 96px, 12px, 96px, 12px, auto } 100% { background-size: 12px, 96px, 12px, 96px, 12px, 96px, 12px, 96px, auto } } window { background-image: url("resource://css_pixbufs/apple-red.png"), url("resource://css_pixbufs/gnome-applets.png"), url("resource://css_pixbufs/gnome-calendar.png"), url("resource://css_pixbufs/gnome-foot.png"), url("resource://css_pixbufs/gnome-gmush.png"), url("resource://css_pixbufs/gnome-gimp.png"), url("resource://css_pixbufs/gnome-gsame.png"), url("resource://css_pixbufs/gnu-keys.png"), url("resource://css_pixbufs/background.jpg"); background-position: 50.00% 75.00%, 67.68% 67.68%, 75.00% 50.00%, 67.68% 32.32%, 50.00% 25.00%, 32.32% 32.32%, 25.00% 50.00%, 32.32% 67.68%, 0% 0%; background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, repeat; animation: move-the-image infinite linear 3s, size-the-image infinite alternate ease-in-out 0.75s; } /* Make the text editor has a nice style */ .view, scrollbar, separator { color: black; background-color: rgba(255,255,255,0.5); } .view:selected { background-color: rgba(127,127,255,0.5); } ��(uuay)alphatest.png�����g�������PNG ��� IHDR��|�����B�}>���gAMA����|�Q���� cHRM��o?��r����$������m_���j��<���W��m���g,IDATx�b���?�(�`�����i�0 F�(��>� �F�Q0 F�(!� �F�Q0 F�(!� �F�Q0 F�(!� �F�Q0 F�(!� �F�Q0 F�(!� �F�Q0 9]:= ��h���`���3�����Z� �G[�`��Q02�@����G�(�`����-�G�(�`����-�G�(�`����-�G�(�`����-�G�(�`����-�G�(�`����-�G�(�`����-�G�(�`����-�G�(�`����-�G�(�`����-�G�(�`����-�G�(�`����-�G�(�`����-�G�(�`����-�G�(�`����-�G�(�`����-�G�(�`����-�G�(�`����-�G�(�`����-�G�(�`����-�G�(�����R�@,�Q0 F~��8�.���h��Q0 F�����Q0 F�����Q0 F�����Q0 F�����Q0 F�����Q0 F�����Q0 F�����Q0 F�����Q0 F�����Q0 F�����Q0 F�����Q0 F�����Q0 F�����Q0 F�����Q0 F�����Q0 F�����Q0 F�����Q0 F�����Q0 F�����Q0 F�����Q0 F�����Q0 F�����Q0 F�����Q0 F�����Q0 F�����Q0 F�����Q0 F�����Q0 F� ��v�(C D�,��R����@Z��``d�"������������ڭ�` ��b���?�,SLWR�dh�$��7��|4C�H���4�� U��Pv��fdd���3 �gm0��$���riU�R=7 ��(Y���^`����8���FXr�����pIg��t�((� ����O�bm(��F��5@� ��q�E7B+:`�eD(��ʠ�N����<$��u�G�"��=X!�܋@\��?�`���|k��n�� �����c�$Fp����@�'FF����� \S��xIg�*Z�c�R�@��{�� ȿH�hr��� ��uj�45����ca��c����1#������i��U�Q4}�E;D-�T2���?�,H�����͋�U^�$�&����,#,��� ���t�a|H���w�T����gF�( ��|X!���0F.���W"�����ˀ�@���c�)�����!L��6�aA�FF�<P�/������!�<4Ӄ�F� ��y�ѷ�Ĩ+^��� �9����?�G�\02��+�R����i�Q0 H��4>J˙{��I�e`��*��z����� .���op�f���� ��N{ ��e\��0��Vy02BZx���h���y���/ƚ:$-�8��*���������t��?���� S<a���![�&��^��(�@9��k(�u���0�9� ��u)��#*F�{h��nhR9@+Ѐ�_���?D�1 ,����5����i�0���N�!<X���A�m�-{D������w���F�( ��@ �`�����[�װ���~|�|4��/��o��gD-����� �p/LX�j��a>#\���?:�3AP�\u`�<A�����!�5^V�D��i�<n�0@�=���3����!c��Mi��Q0 ����*l-+F(�ǀ���q�b1�/T�/�:�d3�-˄-����u�!�n� }�B�q�p����_�U^��ia��y�`0�@Da�*�!+�Q�g��4!.�� �A�&F����JF�PE!Ȩ!$a��̓�` �h�Z���[`�*�u�����.��#&۠�6������i�C&h���=#h2�����a�Q@�?T���7#dx4�����{c�!%=dѳ���0 �p ����_���?�t��`@@�ѻ��\�2 ��-|X��䌃ܒ��&��z��ApË��?�{�5��P;@9��{����9�`0����j�8�����?h�y�H�ψ�f��O!�v�;1�C��#mǃ��9����l�%�����(����I[�V9�V�u`��3�1�LBc��-r��y�8,x�4�eW�Ly T�����[�Dž�� ��4�nX\�V�0����0�l��U��π%�Sx�a������Ĉ���ψXv���������(����e�� gވ�l�8��=؆z`4�]� +��L�j����Y������]���G�����V�����#<2dX��F�e�D��3�� �=��x|)&�pt�<���XI02|�7��ף`�h����[���M<f���5n�eC��h�6���Bp+�����7�ّ�����o��@�7K���a ��B?�l��m�����qV�(`eo�f��������Z�CDT�`� y��u��w�~���G�( ��@���V@� dB�����e��<#t�=dw$n�a-$c3��e~��lX��i;P�T��I�x�d�o�W���q�Iz�>��&j�024�M���j-�у�]����'�`���U`a��&���D�@]࣏����`��zlC<�G9@�I�G������,����g@�xkE��m��ϝ�����9'$�W`��V���Z��9�l�[���A������4ň�����H�3sIgh�}< Fy� �rH� �,[I0� ���NJa�pX����X��|��?F�%x�����rg���\����KeaC-�aWp���I[t��'z%P_ ��4�&�!|H��� d�-��E]ߎ�Q@����x��Q�$�u��H3`z`���-˄�aj�1���@E��+1���W��|�мu@f�t=>�Ȓm"�v��`a���[�t�z�5#R,CS�ϸd��@z�+���0@��Y����[K�¿P�Q0 h �h���#��N������Xv�B�}v����QK�A��10��i.�J�=G�-��-|:��n�h+a����$p�Cw�"n����G�Ŷ�,��;�<uL���� �bH��Ƞ��;���,�8>��؊ ��{�>�WVO��v3�V|�V��ON����˙� ,�� ��>.[=�6������#�7 F��4PC:�-{�I��3t`��p��?Rw|���Z����c�t�C[����H�4�,��n�'�,��Z7��x��ҎNdufѕ@�Jh?���M���'7�!��$��Q�]���R�Ң@�,�7��sj7踂l ����ѥ��!��L1��`�+`�L m�r�ژ�3�hn!d�b���5�q���N��iO�!����=���,�9���8��-��'@����;��>Ⱦ]�����ٟ������X{����f��t<�&�]�hA9��]�ƭ��<� ��^��(������p��� 93���1q@MP�y ���N�ry�nX���̤ Y]e�y���jD�"4��#v8�4�`sK�.���#��@�� |X�|���=�0���g�"�ҁ��������.���M74T@��Lj�Í� �"K��P��nX9 �Wd��L�#t�<&�$ԁy�d�El�Y�v_Ԍ��!��Cr;��VO���pW02,� ���K��U@75�ő�)f��A��갫$���[�eO�)ӌ��q�o�tg��|F�Y�He#Rf�l����Q�gD��3tUB!R<�@�X�]��0w .�d�Z+��i t�%�aK�*#}H��Q����L�zU��?H�s�YL�%��5B�##r�L���!@Fd7�� T�X�o��N�����xt2]A X�0v ]Ѝ����r�����K|�2��J^r� �zv�hl�4��<2@W�댈$=�$0�����.�9L`Y��� ����N��p�������1@/Je�u,��ldY��*\v|Q�7�=��{P� ��z0���(������Ԟ ��t�;l��?tf��Et������d+Z`aT��4��<@�:m��s2�*D�!Hص 7@F8�#�Al�+�!U2�x ��!�U �Ԇ������< ����R�CV�TbP �^ ���π-����SoB�3t���P��*P�qJ�� �<P�q��� t��<C���� kÇ2$�Π�����3 ��^��(�@}�Y`��=f��ǷN����2��6�Oʝ��WM���B7���~��ba���j�=^@.'l�e̙���b��E���vq���e��C�e|�ѡ��'�r�'����qg���#����)��g��@w4�~�΅�e@lN��� rF<��`đ��N|��[��s��a!�d�@�����u�������mHz��Ns"!1���v��t�o��v^`�}���_�f/�~d���K��ƿ����#�< @���F����{��E�o�������6K�ŧ�4��/Ā������2�~��f0�zL��A���`K����`��|6o��_E� #���� �yW��@횎��tԤ������"��BEA��(yI��#�Hy8���6�;$�P�R%����뱣�g���w�1�R̻��5�� �@B�B(�p~�=��=Q�V�qq�x�s��*�42"�E �����ӂ����?lɁ���S}=�n_���u�g��S$$��,�ǮU���ۧ��ȶ.�o��\���1_�_���x���7����A#�%_�^�O�������*V��v@a�j�uS�a� �'}��e�G�M��0Y� I�%��j���*S�����\�}�L�9�Ȩ� ���_7Wӻ��xx��R�z�;�� ����b�S�l�'������S=iOj�^�Z�a¿���w�(�@ީ� ����[ hk#�ࣴ,�,�^�B���Y���#��U��P���I��7a���L�o�>���6`���RBFB6��Vy;l�?�~C���4Y�9v����*J1Q.Q��!��ɦ�;v2XX������AѥgN�+Y� �:��,C��[J�[�u/���~~q��!��QRP2�I��j�vo�MgҁD9 N'�yg�d�I0-z7��lB�,�z|!}i��8i��|�� ['D!s��f�}n{��S�A���7��q0�R-�l ��i��!=Ǚ�z"u�b� e52,F�s�E݃����p?;��bv+������$|o��'6�<ȳ��ׄ���+�i ��v�/��YA0�wT�Ѝ � �$`de@]���*H�;+Ɖ�Kr��JDj���ι���/�tXe������{�����X;(;�o��>���N4U�4����p�;�Z��(̀m[#҆3�/m��b���wSD|<n^���0������8B��-E�����D�ܝ��jq���,/_���i�[�XkB�\�K\!;n��SD��.a�z��}���&qG\����&���@��"p��u��{�D��&�b��s�F���Xf�d?8%��Ī�|/���.ˀ��g�F���"<TWi�1*,5�`�I����n�������)���P��U�1�m�)�/�@�#�\��\6�F�V�>n���S� Ԥ�`���f�2,c���?���.�z�$'�K�'~�+��n�a�J?�(�HI2�/����I���W`���tձ���r FD9��$����5i@QPW�x��?c8d��?R ^f����`VΩ]���.��n��?�:r�!l ��8�����'P�֩٠Bc�o����!����4aSx��\ئgFjdf6�Zӟp�`�@ ��H�ό�yZ&��0�����Tk����fϻ��E-̜��Z��|�'t�"���-e�RP����4QM;p{aY"����` ����@�S�G��RP��CBÚ)�ᣨЋi`���-/ 3�����Y��X��>*Iz�n����=�0��#p$F3,H�����V&�� �(,&�X=�$�q˯`` [D�� y����_.��sXI[O�l��d����?��]ʓe{4o�~_[G܈ ��.���ݔ�)�杓.%��%�hC�lD=��ӂ�ƫ֫����_m ���(�u���dd~�N7�{s��Q�3�->s� �m�7S� XV�Q�+��`���Xʎ}S��WD��I!�P"1I��` �h�l��#�]��O���F��A��X���à,ǘL\�� �@�0U��ևn}�m��4�#����Ĵ�~BVmId��~�.6`n?�d���e� @� ���,���l�$v��XX�G`D��,����RQ��@����4u�g�ύ�?w����1���ŭ���=פ-!*�G�r�]��O̽Q��.XN}�1*�� D���=� ��L�d�j�P�+���c�Hs�C���������H��r;� {ܯ���U�r5(Vtv$[���&��;�䟝�<�2��%����u�M;�Y�*1|ɲ|� �]"I���S����f}���5Pp������0��nTdN����PA�:w��G"3����Ij�i�K*��Nx���H o"���=�TX�gH��:|��= ��q�ah�3p�`gg�\���p�Ǫ&y��i+$$��jI�dz�j���I�o{{6l}t4������1�I�/����Z�[/ې)-,���F}~m�5�� K)8�� 1��9P@{e���YKw��$I0��E @"+T��]��q<]o���V��=�dze��C�L�p67��T�IJʎ�2��xgbӟ�� G߅����}�!3��5�t��g���nk��o���0���L�}oRę1,q���J�'��^�mh')!� $"�%;)د������,s�$�9(N��5��Ԥ��.bCuY�e�m��b�쵴`ox���%�ygo�0Ca�#� 4l�� =;P2� �0+q+zO ��wG���s�X�'�����?}I�� E��R�#���!�*�K^|A��U��Y6��$��գ[�ٜI�B��i����/�$��٣{���͵�(�ѥB�h*&��i�ӴN��ݲo��~S���Ƙ���7 _Q&`��v.o��]��S}���kf���HS�C-@����;J*W0��C�6p%�A2������p�-��@�C��:J��ՠ+y���|�ڮ�O&jq��@��^ѼV|M�;}�/J���s`2J�lO�ЦA����2��m�@�� ���t��H�,����0=s����9�g;�' �h��D}'�;_,�O����)�x�_��J�)`�m�琿��g�Z��Q�S}��=I�S��;x����*!1�k@'-��I�`�|(���F���h��2N,�& �3X-W��t���p�;'}��e�����'�<�)�[T�Ө���架9������]��j���a���U E�2��Ĭ4hW�U�B�-.$sϬ�3�9!��}���x��'�v���@�;i����ȴ�(O4��J$Z��{{eK+G��y< ��q�a(lo���� +�`c� ��[!S����Щ?R������N���{��qv��?�r�߃��݂_�QZ����BՁ�f�m"��u6�x�-��{��z{�g��J�FU�L<~q�"d��%��)�m���FP�g�-:�d�>��f�2F���oy�'T;U�osEn@_/|e?Ø�٠m<>2���1V$Pܳ�)T�i��]�vӱ�c���ۤ�� �q�F�w ��2��$��W���ʝ�h�9�{4$�)�:�p�V�Y�|���3�1����u�����nWȻ�#b��ǫk�j%��� l��w�<�,fFo���ax< ����}F��7_�^�����熧 'ڂ04�<����_�?����*�ȍpC8,�Z�´K�М�-�W�)|F��eB%<C�UD�����x�W��.��$���?����u��\�2Ō�}K�@�l�YwE7�ڕy��A�=��U'�����'<�3�)(�'���M�����E7��G����L�djj����&/��"0�Qt��P�|�����;#Q��� ���k�%�yWp�@I5�|ہ����+���� w!��/�|�.w�ؐ_�W�|�F'1�,�R��d2��/�4&�H)��,$LDf�^(�r�H��� U ǣ��H��]:�:��_�hܙ,B��si}X��'QO���ɬ��3܄F�����j�/ Ȳ�n�;�SXE����ޓ��<��W�Ff`�N1cN:��r�o(��J����"������"A��h���� ���9�C���E�>wf��EV���m!A�չ3Q��4zhK���v<��ڍ�ah4+0ð@�T4,A��i����#�����K i��q�Pd�Yz�/:�r��|X�&Rz�3^�/Dډ�䃇��A*�z� X�Z�h��h(N�ê���p�9��'�6=�����R��Xa�& d�r���ѣ*���Ct���{��=���}2���;��{B�`2�����U�āWR I{m)���lG���K�R���\��E�7lu��lw��̱*� �@���Q&���B҉�uԕ�xS1w���C[2�=kT���D�TSap�Zi>����Y�d�ҧ�]{#o�]�������W����a��&.F�CtD=�[ZI&8a�1��!1!�>},����Q�� �K��N?. �u{iDF�+A��;=���lˣ{�4���_C�^P1S�kdx�/�<�9����L�.�I�0=eyy����N���������)���[3� ���k ��'�P�Y���_��e�m#|P\�Ң�~�����VD������P0���iI�p��+�:�C��,�Z{/4T�s�1�av��)f�P�I�@�ap#���R0�N>��*E1��]#�e�:<� � n�a`�b�L�X�� ���0J����D�W�u�&9�/v~�?�s��2�*�H}��6��=/ �%�ɦ"��3�Ԩ�G�f BuD����Lk;. s�����|'ج �����0���p�B"l`��Z+)xe��Ӣ��i~}v���ވ�z)�@2�,���02q�;0kg�;��Z ���f�G3'SQ���TL�{e�&vI��в�L�Ec�r8^���a?�G�6zX��T�&�BI��S�g=������0� B��0%&�L��9�c{ @�!A҄���`�`��ÿU@������#3��;2,�����f�N ��ӋW:�vs��R�Hbldi�H���V��4�{(��@Xa�\�j�Yd}jG�<���{���%=>eM�g땓����m�]E2�9�.�ck�G�a���aX�Nfũ�f)9�r�S]�1�+ZA����,t�����G�&# k��(�L f�v�l��+���L�)��\�PG���a �6��=Q�T���d����p�� $��6L����vy�WP>�~����?�w7�0��o�a��/F�F���V�ٗ6*U�<Q����ϗ;����m�q�gab*�}0���a�>N��2��@g�*NNLw� _������H�9TA��Ke�xa�4%�a}�ߘrH�)�$ID"�ؽ��ZD_����7��=7��u��c��I�>�T��E"���+G�,���7�I�G�+{��$�o"���;������?�ӛ�"1��Ϡ�\1��^)S��$�>N�Դ�G^b��� F+��7��]!k�6(Y2.1��>�o�G�r�ea�5$�H>�����R��*��i�e[b�v����;znW4�CN�@Jy�E�o����+ �-2&Mi�l�ǁ��MOW�:}[��{��QQ����OL�0N��DXB %h<����K4�úz�M�z��,F���V�.�"�!L� A��>+��J���@�Y��&8tyno��@ $l>�����b5d8�>���}Ԋ��'2N@�uO����#�q��9ب����j���U�S6�S)���:�O�F�@���� y� � r�aX���&_�E#LI�L� ��4��֬M���~��#�k�������܉<�b"� �,��H��� ��)���OS�Mc��eaYC�DktL�mu���p ��[D�):��*7�'��B'�%i�B�E�<�������^E�%� g)�jJ;�9�ֻ�Fd;E�h�}�4zT���%1+f�C�ES�w�G�o,�;gFL=/钱�<�W/��c]&��ۧ�|j��Z���^E�( ��m^���[�`S��3��Ȅ��= �a��hق(�����驨����X����m�G��pb���g�F�u<�o�Azs���R�-Օ�;<��ÊZy��~Q҉���ƙ&\-m�qIܑR �xm�ׁA���h���e����� 8rN�����t�=���w]-}���� �&�|�����}<[n�����W���7fu�W�RW���Ŗ��.[}(R�iS|�����<�D]�=�\}�ةB.U��� �G�pR��P�$�q�H�H�`�����\������:�4T7��G���` �_�ڷפ�4)����:i��")�"J����.�yW��0����җ�/����,tr�zr�3M �0�_��G[C��t�N���|Q�;�X�`8�J�/"�4ř����I3(��z<���e�^[&r��STvz g#̱Ñ���"����ۥ'�����A�6���s�x�$��w�� �.!X���ɒ�� y�2F��TW �h E}�"VI=�?�@w�h���3ٽh������̳gE��?3���q��़����>�*�z(�����6�F��4�.*+�& !����"ѣ�1�9� @�� �d3��� ������g�Ծ��D��F�T��&״��>�_!�������Qq����� �{�F,�`�_ �O��L���_�ϥ��_��n;tfU�ՠ �!��KFJ����˧�jl��C�H�2�w&��~y��J�!��.�W����J�F��J�9�YL�cs�W�rfjӗ6g�����L�X��4Z�)�c�����ĻCn9�`��@�E�xb�Dx��s �t �ht���gZZF�蟀���8�����J��a��]RJ�I )�.�I&P�I�"#f�#�a�>�W�ڵ���\l���f ��y��e���|>��QUYd"U�]8|����a}��</�����f����p?*���'�����z��������x���)�7�����>k+�y�V(���rr�K��z��ɒ=2Ç�1��u½j��Tn���:�᬴s����R'�p*�T�/K�YT����g�B�ߔ�"x� Mn�*��$�T�O��� p=��9k�@�� �@��l,�l���?� �J �/QK��G[�Um���N��/�\5�XvU�|��������+[��>r\@�] $�R��/�c�]N���j �Q�E�p`�fYA�'����j��a<�6+�Ʈ�o�c��ƭ��� U�����, K( &h�:#��(wU��%"�>�*�r��K�y����lI�!�����i��ؖ�������\���_s4��L�N�x��ɍ�ά�h[&�3��:�I���a*�0�����[����� ��|�Ҩ�ABD�O+���g�{v�;Q��l9 �IJ�S�͆`�����u�hJՆ�b��8���:�}���YW���do�ul�A�rd�Wb��5�wW��V_pVW XdґR?�Lm�)��CZ�ď����yg$�tux���)OA��r:�dV^�� g(��XRҰ-R'T4��ц�\i�ǟ�X�x�%6�������y!�di���ϰ1�8G����sV3����?oȻ��a(/�:�@b ����ŗ1`������(��}��ֲ�sb����=0�o��ZE{|V�y0�3�X9��j_)�s�y~�vi�B��e���s�G)�oe� ��=�s�s���A#TI !s���2n��n��9��Iy�^]Zd��=]�z$��}3�+2��ۈ]"��Ɠ+����k@����`*�:%�[{�N���#�{8�)���[�r�ҳ��G�*�ߙv���E�54�*=�̆��[�[N*<E0ȥ4!�C�Rc�wlٝ^��/����];�0�ň�s�^����#'�=D'N�1���q�V� !2�M�Dn�_��_f�k� �� �T���þ��p��4�c��0��6�R(X�J�����7�4��l���r��C���L627s ��� �V�&n�ͮ=��ѳF�3 �P8Á�����> ����W?k���4o0��SV�� -��12�JE#j��������Xg,T��º�<3GH�ӏ�.�3W�T�����zatM.[Ł���0�lYK0xž�$�;�]��H.@�k�̇��]� �0t`>��������$�@Gk����?�/��Ik�g��� �g���>ˈ~����]Ep�o�������W�bp�d��A��u����i,�=/M�lzJ�S �t��EA�d="�"2�19�ak��*!�`D�:lf,>T�1�G�F��c��6�� :� 7�0�����#+Z�D8����d-�hMO?x��2��!���f�Y����{B�տ���Lg�Z��P|�z |U�u�#��D�٣�R��Ґ*�m�W�'��Jr��\����<�7����]��0� �Q(� 蘀�)�-��2%C�c�%���t.��DZ-)/����A;�6�l����r��рg�5�'�'�]^�Q$�D �gcnj��}*oxH;�ū<,���K&�k�g}���7c��d�1�{�~,���_�eO(������دN��;-�E�Z$c��YŞa�G�|��ÀmI�&dJ���1dR�j�!�.��r�&�$�|/s�|sz�R.��C=�����0Ke6���PhƠ���'��!w�_�5�8�����S$':�E1s��t���}��a����B��;���c V`�h)b�Kq��]:p�"q�Ȏ��[����Yvj�ݏYf��̳$=�����k��X)�Mެ�H�,�4��u[~%sr�Ј��U{�W�˦�����퐺���0I�+$,�+z�y�{#%w��{|�����`��[3Ɛi���%�+��nx"2�i:h�M���@�VJ���u����G�X`%i��/��3�H�4�P��!���a�� �>5��Z��S��r�����{4�t�A1�}5I�i,_K�"����;O���A4��>Pw�8�0�L����G���>�03�&�����2&��NQ �DBU!M�����r�G��r�}�����1eYa��\�w�vq�d�6̞��9��O���Y�W{D�����5��J/�q��f���R��K��߬nRo'W])8�*���Y��*�8N��.(�q9on�]ʳ6 kW�dԥP�5U�<��QƧO1�nX*Q3��82|<�7p��8��\��T5m�_!4��*@(A!��\G� d���#1��n�8��%&���0�����71�c;�aaV� �5���%{�����0 �rď����>�>�]M� �z�$t�?R&�obDO|�(���y�#v�R X�׃�Z�@&��6��Z��0�p�sH��,�g��f�u@�|g@�/���T�C��#Z����(�/80z���N�!�ۜ�4��La����W���.�$?�ZI��O�\��g�u�ЂO@w���M��[� ��1����`�q s��n(�<���[�V*��s��a)��;T?�LئFD�s/#�-ȇ�aڅ����Ȇ5���O�Ep�#���Q?\�@���a���� t� T�@K��A��ܱ=��D.�q ����?�-?}����5�c���4+�i�A�(����]�i@�a�H?lv͊�4�t� �Xn��C��;$�,�p@�7K�Ul����j{���;w�pv�4iR�h;���q� �/���I'��3��k��z� -D�@�@&ʷ���G5�(Bjyh����Μ�Nʢ�Ҝa�@��tr~� Y�h�E�Jn6�$#EU�J�?8J��H�(��^��}�?5k��+8��u�Я�Βk%��� Z��"����]��0sF`��-x� c��p&�X��#m�'��G>I�Dq����Dnq����33����+�9��XtA����� f-to��.�c�����w=7r�4-j����9�k�Nz�+��H���G��C�I���x��$=Hr��qE���o��xI=�E�ԊKZ��u Ji�F(���~��Hi���(j_�r:�S�EZ ��V�Ʊ��w|���B:z�@���:�J[G*�I^C�>!�{�<D�����d^,1�koȻv#�aj��$��1�p� �0Kd&`J*#��'ɉ��Rq�I�8�J������5�C+�k�L˂���9��w>.���{Ӓ�Or��F����r�����nj���1�p�P��sޜ��\��OB����w�qS�K^�Q��B���>�s�,L���8�h�Ff+Tg�w':��/��r�a��������{�M���$� ���,�`��UI��������5!P.�)��Z������*�o��1ȝ��'�5Q��`�ݐ�4>V\?ŭ6o mnA2k�Ο����]1�04/aeGB0�6�������x;?`gbd�&�>�@-T0!*U��(Nj_�� ��KG�M�����R��s���$M~s�2���C�1�.�Eُ˘}(�M=^��zuc���K�vG�ڛ�V��>v���|����9M�.O� ��x�׳��_m��7��*˂�H��:-,�d�vk��pB��Q>Y&�7�M���34"���54.�J���0K�O�,�\���j��1� u�Zj�����4�z�<����PU�1�b��>�{�eJ�{5��ρ A-8��W� ��mb�o:X�"53P1��� ��% �Is��|9� � � �(��~�~�ŀ߽�y$���L�ej/�-�|(���?&vY%�gp��� >�+N�q��<����w�����$d�2e}r&����� ���WY�TaAT;x��d�z-�6�G��FaT1�~l�v�3i�haS���eP�X͇$����Њ��-�֨ C�H̞�R�TzeA�9�@�G�4Pf۳��e��:���"`b�^CH:���W�*N�B��9�j��l��d�c�z\��H�IE�dw�=���5��@C��ǿܒpE�P�ElU��r-`������%���H�>�n��e����>v����(�[��@]&�e����-�;G4�k��$�_�zk�mH� :, +�r=%`�o�ͨݳJ����O��;�� ��z���>�Oۦ�!�u����`�02����/�w�]e�:D0Z�GI;������/�`�o*� 7��[�x�XEi���b2�s��+t���>y���9�L����ÏZ@Tț��������g�v�2�0�Z��ѳ�۫�ؿ� @��vv|X���5��c�@�@C��G/ı���+�\��� �!K5�L������a����3ȁ��$��:t�jQ��j}��O�9�c�~��������G6�$�P�����Sa����"�~�(��SrN���f���G��-�89�h�P��ˀ���vяv/�@��� [�\��3��S��&HK��؆*B��@:ڗQ0���E��"�^����S��q�t���EZ��Ґ����n@Z���+D�zA|h������� �UY=뫴�4o���`�����,��G3�E�������[� zh����G�EY�9b[��4T�8������Ȁ�m�E$#j�2��C��0>#�@�%`+��Ax�1���@k$`%����#��8��i+��J�{�]��r����� v�G��<���_�^;stQ#��p�-�;�0w1� �9�?�v��B����e�E�gqM�cj����F����t-m���s!�5�-`�1B�Vd�vV@A��{$��FX�9����*@P���8�0y�ąe���� C9�!��® ��6��L����:�=�{������!�\`�C��a��g�̓@̇,2�'�@o�����G�f�V��a���q;2,��*X:��5�����p�"����xd����>��G.��G.��8t ,��G�Bpae�o u�0�Xh� ��H1*�a��~�6��/F ��QpC��eB���I��pH]?���7ю�T}�;Ia״B,��z-�a������%����٥�Ѝj~���IV3A+����j"�N�����ć,�e�2$��)j���� [x�������'�j���˫�E;�n�U��r��Z%�7&�o�� ���"��ZX�c3@���0���RF� �J"D� -]`u4,@�2AMb��i��4E������j/�t���4�/�s Vb���rˇ���P_0���B��fX�m����l������\���#���M4y#_,���ht������ #J^���aqD+f'�-� w4����s��� �?�1��z�آ���� ڮ���"�C�����`�>��m3���=�KP }HA>` �����aZ��9���Kۧ��"�Ō�1{x�ǀ�.h���99�3B�%�jg�͋��H^�+�:�a,�n�vA`a�@�q ���&3���Dh��fD\ 1k�����V��pwAkD���pO��Y�P�z*,�)&<�����9%DhC�Z��C�{��#�e�4\ |\l�?ZK��d�gN��}���+z��s��B@k����0�g�r�}��BjT!�bPF��{�5}"�]��Z����Y��7O!N�6�`-K���i���~Ϭ��HF�����Ê'$�3�g��=��ps�������?lh �O��瑋~�b)�3B�����!�ﰞ��a����/�)���*�-Q�cహ(֤���!�f����!�Hσ Vb/�!�2B���8�l��k,c� �ab�BK������p �%��M��?�κ�Sn��#�C� @�59�a��qĀ�=b@� ��1_⒃��� #x���J�����;���@�AGS�8�ց���_��.5~��Y������������{!�<n���B[����D�i�=���@�>lP�Z־���cF�+�����h�y��X�>�ubdޑc��d��Y�����6�F*a7�������11X��x*e�k@eO��>x'�J�;��g@����LO��ܔa�7��E<,�`�e�WǐP�t$����ڏ���5+ ͺ@[9� ��������r��́��!�o��E=@�����{����F�@��uo�(�>0�*�&F�x&�X��%������SKZ)/�G�(�(j;�L��ȣ��d��s!����M7b3����Pm"r���� �/e�M�@�A��#���9-E��N#��Pl�KpfY'h7,S��`�`a� ,Z� KN�]h?Z@C���]5ݲ�3���L6c3�!1�^����L�B�2Ƚc�4,:r[��4�ᏂQ0 1(l;j ,�A�sC�����{���݈��q�d]=HZ���c!��H{B GS��a�Q�����? �+�����Q@5�,���e�%#|3b�t�)І5��H;pQ�F�<��N�o�D*��;#|�ƙ����sM#��h�? F�(�&0O�C�o�]�t�dV�B�G�(�Y��|]S�G)#���#�9�|������o)��@��|� �F�Q0 F����Ub@:�������?�P;���#$d1G��"vm(d��2t��X�Ra�O�`�� �F'mG�(T�G�y g�@7�W�B7s�l/��@����̪�{�W]�� �u���l����?|��2R��}>t�@����`���F�f������e�Ȝ�����p��A�l���&`�E�CT#(k푶�@�%jzy���-�G�(T�3y��O8����9���P�c�����&`�4b��:����v"��GY����H���G������Q@�1n����?�i�*;=�{<Əy�b�B)��R�����������C ��h�? F�(�x�q��%����[ba�x������v�� z�?`��@En�c�i��ZK���,#���*�Q0 FU��j�_��tf�H�Ma������0@o�_�����ފ>��ƀ|C���*�������W�����~:Š�4Z���Q0 ��3>e@�)ro�����Ϣ^.��A�їOJB�b2@6o1����Q�?|�=��j�)��[�t�//�����Q@5�l����r|#��D��yX�Z�����y�8����p3u�1��ݶ��w3�v�2"] ,�rk��=��� �@��(��j`B��s`������&,F��l�,�rqpkr����Rc��8��Ԁ�X�w/@6U���7W� ��H�8끅��Q��4Z���Q0 � �����\���!f���a������As�ga�w�e��@�� ��� �g�W*ТTi���_5Z�c��=��Q@uP�vLX��q^��(Ȏ,���hg���@��r�w0s*���� 1��l�����+������E��w�0�����Q@P�~�:g�����B�VV�R��5��_�r���M�7^�u�eʘ1�gP�/�D\���)��o��6��X�]=8@����`������l��Y����Ћt|�Ն/�+�_��)�:�,�y`�둚���Kߡ����-�G�(�`�������`���h���`���h���`���h���`���h���`���h���`���h���`���h���`���pwm�� ��&u��H���b�10 �"�7'�����~�g��x��|9�u��~�>}���~$��R�ۥ���]�'�c<���N�7�O��0�T��5M�Î߱q�k��$����m� ��=o;m �=3Od�!�� �,�5cN\��,ǹP���c.��,�.�Ͻv����. ��f��*��� R�Q�9� �S��Iu�(p!�J���Rƫ��~��G9`l�x�_�����jg��ә�m~li����w>k��x�����y�Yk��Z�z�6�2�6 C��Y�����#�d?��^fL�e��8\��F��`Ẇ��[����y�_��d���A ��}����7�o�/ػ��A����a��%�x�e��l��i���?��ɱ#;\y4��>��Ye�©�Po�l����y%(c�E3���'�!����O��p�n�ǁ6*VWK�S�r\���������8�d�buܫ�=����9�=�~'���� �v��`���N��i�Hą��*�+çï��6�mv¨��r^25�ı38�vu墜N��94��;,��j�4"�d0����i�֭�����᷊�C'})F��Q?�Cj�[�Gε铖r�,S��� ������WBڡr��� U4e|�i����F�}s�n�7�MH_�&����#��#Us}V��+����_��W��u�5�� ݼ��������0ֽ��}�G�n������kCਓ�]����UKgFku�yn��$��O���\%#u�D��\��'�I�%�J�p�X'���w9��7�u�oswk��xݚ��[������%| {G։�DU�juk8��#�9V������;�9�@u�G3�r����Y:�1��П[s���Pd���D���NK(�ڡNR�֩0��&��E�U�C�)�U�]]�����5�nm�OZ��W�Z��ީ�h��)�bHY[���JL�L(�[���v��!�q��������3@6�P!F��DWO�./�4��W8!ہM_<�K;Ĥ\�[!��/|-yr܀-챥%R������p����F��q���i{���ܚ� � C���{��桂�^��ۢW���Q旂(90q$'��m��O��dE��ػ�Ĥ:{�պӽ:�NXaw�b��I��oZ��?�!��X����M"�������e �}�����0T�i'��$MtĿ�y/ �]n�`���"���T���ݦDt����'��B}�p����#�������H���#���B�_�o�6e�T4�>@�E��9�\q��:������e @��������Owjc;t�Sk�J��=|&��Շ����a�����T�\�$��Dy�<_��ܞ��&2\�cR�[O>x�ԫoZ�]r�u���q� �q��0�IYb�b�yEJ�����o�1�� ���_�Jӷu�$f�v����$3I���)a�}��7�E� u �**s"�D>7@�����G��;hO��|G��$����:qkG�֝��ӽ*�Hߵ��O�ؽ��Q�����`��q��A����N&�iK�\d�BD)�W� ���3aHn�Iɘ�c%���!"���)=��� \]�+��36ub�.AL�% �C�+�}�vߋ�jb�K$ ���p��X�ձ��Y=���3�B���ծ�����A�+�+�-���t��k� ��?�8�ӹN�)�+'=?��$(�a3?J�n�Z^H�����ئ��$��Sc!�KhrQR�\_'��_|�ӌ��������#-][�r�`���_?:<���ҡ݊� 37���� ��������Ps�hu���0�ܝ�V}(~ ӹuW2`��=q�j���m�4�� �6%����<NrZq; g4\c��g�AO�{$�����1@!C���]H[�.��`� Z[x�������S�*v��v�P�7�ݓ���0)'_!������X������:L�2"�$�M"avm��0lDx��T%��Tm�uu� 7�����1��@��ם�Y!:�1+�l{��CI\ɔ�DT%_����[jtĚ�K �%��⩈4截�{��@"��볳��n��f;&R�� R]���������>��: 1�{҃��@=��01-4bZ�2/)�Wr3L/:�PK�T@Nw�А���B�)��&��U�^y�j\`s�� WEG�ߐLR[������\~��M�z�ÜP^*60"[� ���rI����O]�A}F4��"��$�K�7)$�t�����5(2�;�M���b;AU씲��]C&��>�py��Է��u�q���q]1��Su6v�Ne��N����`� ���1 � ��k'A�%�.: �Vl���/�L2�f�6 ���Iw���j�m��obH t�����=QLc/]d ��6�U)�Kj���̣[�U��VӉl�u4���g���_�:_��lB�jK�r�������Z#l�RR� ����t���R]my����א*��sr�L?E"�?}��Kl�s��E*&uqC���4b�Li CC�Nܓ�w��o�{�Sd�r_��i�����H��,�_�9��a���tO��8�-=�-�j0A'�|��nٴ�o���Q=+Soe���J�i���g�g��� �{�kM��x^�=�����^4�So���t6�n�3.�Ԩ�.� ����5X|��K���`����u��7C�2F�@�1Ǘ��$} cK#o褙���L��Q�Qa;����A܈��m�'�1Q�4h2s����$���3��[�8�c�������f�vf�M���|[�6���#�9������ڵix���lm�?��_:TL��S �2�d��.\*b�s�X��Rt�~�i5/�<�-�Mj�� ���i�5��8�$���Ѷ�|���ؚ�G�Qj��')!�����b��=�d�(�`�� ���? F�(���� �F�Q0 F�(!� �F�Q0 F�(!� �F�Q0 F�(!� �F�Q0 F�(!� �F�Q0 F�(!� �F�Q0 F�(!� �F�Q0 F�(!� ��V�0�����,�$i���a���X �_���.����.b��>���i�k1��r����NE��o�穴F'o����G�~�Vg���Ox�^W���duuu2�]>��>����٪3-�y���ib<�6�g�-�wg�@A��j�B��&6�0�MP�s|���ה�R�W��>�'��;S@��A����|ZSz�N��)�@u�ECu�i � .�W͎ �.T�t�).#�Q��Q�[���(.�*j��μ�������8B���wB��p�Ÿ��b&~i[��� ������-�I�s�mL����y ���}�EВe#@7w�[S��x���|r�}ۿ������,-�*C;��sh|h�nkM���͗Vȧ�i9��d���|� �Q>q�gq��q� Az�[��4���� �e�5�'�Fn,F����,��D�j���BS #�3��� �S3N��S[b�ɷ#,Nw�C}�y��GS����?8�nb�;��q��� ��'q�F>�9c�b������g�K��V�Z�������KM���At1`�w�TSk�.Gz�T{�*/$|QI��F�i;Q_�W�f�twv���unb��"bۄB�ͼ�՞�^KJ���O�r�e�����t�@�t�K��b5�עt��;t�]>\E�;A�p1<��vs��qd��$�8Gu��V��ҳD���t�U� *_`k�<%T :ڸ� Y +.� ~����n�@�q��Ͱ3|����+F�A��u�� ��5�0�����d`�q��f��"��B�.�x�QN�H�$T��$�c[��M����2���>���pKη��&3�@^�Rwՙ�2�n���u ��q��Az�[��{E�A���|��y������A)I�)�$O �L��{�������S��q�O�e�I��v!��v�g���D9t�����I��N [�91"4�Ǧ�hd�;[�[.)�� ���[C̯�6� *T���j@]��<����mZx6[ȩᦙ�������5�@�U��� 0�p(�\ 8]�ۻ����Ē�,�r�k����wk� �/��a����\��aH\�mЉie^�5���s���DA��4��\ϜK�4�#�M�S�KTOÉ����Ki={���b���)�4���s�����-�mv}r�6ަ�Ԙ<��/t @~��� �����:A�v��(}��o`lcu�HDl����~��B�Pw�ݞxn��s��;'�c<�P�ܚ�ۊ�*'�)���g����رp&.���c��1�a�U2n�{��_��{+H��A��u�`�:�t�KV���^~��-" ~ǿ��8��Q� Ji�Ʉ�ۧ v6n^HJ#��߹��)���+�p6�vM*�is'���ٯMP��G�jI�E�S�i�uY�|��ӗ8�o�8�� ���۩Re=�d��H����r����R���, -�d�5�G�u�y*R��U#SELgw$S�у1EU.�� {�s#�������jR�}t���S��"!d�� ��]���(�]�W���������� ��$�`�j#h�t���WN��yRdm��ph��������6�M�"M���By�%U��Yb��ZԶ��)��-�#sŤ�)!�ԈP]�՚�JqO �^S`��%�j�z�"&S R��).��Zk�* tsI-���@�$���BojœRx������1��+\qF(��j(��#�!�"D��U�J7�����|I(��J��!�ǁ��F� zo�B�alB5=�V5.>63�m�ҏ���|]ktw[�j���R�l.u��!'��ˌ�h\�0@��.��EGL/ gx�81�l>� �X?c�S!QC ��<d9��T���yD���1w�a����Q��0�ҡ�2�r~`��_:O$@PCx����z �d� U���=G�j�Dn��5nݳ6�6CG�rhr�w��#��ܢS�N��sq�!"ݐ��F��-5�����=Zï������0���v�����&rS�����G�?��[�Nǚ�tN�F�dHq+�3&�o��4%*���0��q��o#)�5���T���yp��ݯ�ˤ$u�O a!Io�6�D㻙������ z�x�N'{F�(�`���4Чe��Q0 F�(������Q0 F�����Q0 F�����Q0 F�����Q0 F�����Q0 F�����Q0 F�����Q0 F�����Q0 F�����Q0 F�����Q0 F�����Q0 F� z�V����N�5�@?)�f"R��ia��P�M��.�O����ˀ�,|\lr��i%�9z釥Ef`6��jZF����(�`��@��(�`��@��(�`��@��(�`��@��(�`��@��(�`��@��(�`��@��(�`��@��(�`��@��(�`��@��(�`��@��(�`��@��(�`��@��(�`��@�:��N���Q0 F�(��h��? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#������ �`��Q0 ���h��? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#��h�? F�(#���D��p]�����IEND�B`���(uuay)stack/�����css_basics.css������%������/* You can edit the text in this window to change the * appearance of this Window. * Be careful, if you screw it up, nothing might be visible * anymore. :) */ /* This CSS resets all properties to their defaults values * and overrides all user settings and the theme in use */ @import url("resource://css_basics/reset.css"); /* Set a very futuristic style by default */ * { color: green; font-family: Monospace; border: 1px solid; } /* Make sure selections are visible */ selection { background-color: darkGreen; color: black; } ��(uuay)css_pixbufs/���J���������������a�������<���=������� ���{���*���clipboard.c�3)������/* Clipboard * * GtkClipboard is used for clipboard handling. This demo shows how to * copy and paste text to and from the clipboard. * * It also shows how to transfer images via the clipboard or via * drag-and-drop, and how to make clipboard contents persist after * the application exits. Clipboard persistence requires a clipboard * manager to run. */ #include <glib/gi18n.h> #include <gtk/gtk.h> #include <string.h> void copy_button_clicked (GtkWidget *button, gpointer user_data) { GtkWidget *entry; GtkClipboard *clipboard; entry = GTK_WIDGET (user_data); /* Get the clipboard object */ clipboard = gtk_widget_get_clipboard (entry, GDK_SELECTION_CLIPBOARD); /* Set clipboard text */ gtk_clipboard_set_text (clipboard, gtk_entry_get_text (GTK_ENTRY (entry)), -1); } void paste_received (GtkClipboard *clipboard, const gchar *text, gpointer user_data) { GtkWidget *entry; entry = GTK_WIDGET (user_data); /* Set the entry text */ if(text) gtk_entry_set_text (GTK_ENTRY (entry), text); } void paste_button_clicked (GtkWidget *button, gpointer user_data) { GtkWidget *entry; GtkClipboard *clipboard; entry = GTK_WIDGET (user_data); /* Get the clipboard object */ clipboard = gtk_widget_get_clipboard (entry, GDK_SELECTION_CLIPBOARD); /* Request the contents of the clipboard, contents_received will be called when we do get the contents. */ gtk_clipboard_request_text (clipboard, paste_received, entry); } static GdkPixbuf * get_image_pixbuf (GtkImage *image) { const gchar *icon_name; GtkIconSize size; GtkIconTheme *icon_theme; int width; switch (gtk_image_get_storage_type (image)) { case GTK_IMAGE_PIXBUF: return g_object_ref (gtk_image_get_pixbuf (image)); case GTK_IMAGE_ICON_NAME: gtk_image_get_icon_name (image, &icon_name, &size); icon_theme = gtk_icon_theme_get_for_screen (gtk_widget_get_screen (GTK_WIDGET (image))); gtk_icon_size_lookup (size, &width, NULL); return gtk_icon_theme_load_icon (icon_theme, icon_name, width, GTK_ICON_LOOKUP_GENERIC_FALLBACK, NULL); default: g_warning ("Image storage type %d not handled", gtk_image_get_storage_type (image)); return NULL; } } static void drag_begin (GtkWidget *widget, GdkDragContext *context, gpointer data) { GdkPixbuf *pixbuf; pixbuf = get_image_pixbuf (GTK_IMAGE (data)); gtk_drag_set_icon_pixbuf (context, pixbuf, -2, -2); g_object_unref (pixbuf); } void drag_data_get (GtkWidget *widget, GdkDragContext *context, GtkSelectionData *selection_data, guint info, guint time, gpointer data) { GdkPixbuf *pixbuf; pixbuf = get_image_pixbuf (GTK_IMAGE (data)); gtk_selection_data_set_pixbuf (selection_data, pixbuf); g_object_unref (pixbuf); } static void drag_data_received (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *selection_data, guint info, guint32 time, gpointer data) { GdkPixbuf *pixbuf; if (gtk_selection_data_get_length (selection_data) > 0) { pixbuf = gtk_selection_data_get_pixbuf (selection_data); gtk_image_set_from_pixbuf (GTK_IMAGE (data), pixbuf); g_object_unref (pixbuf); } } static void copy_image (GtkMenuItem *item, gpointer data) { GtkClipboard *clipboard; GdkPixbuf *pixbuf; clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD); pixbuf = get_image_pixbuf (GTK_IMAGE (data)); gtk_clipboard_set_image (clipboard, pixbuf); g_object_unref (pixbuf); } static void paste_image (GtkMenuItem *item, gpointer data) { GtkClipboard *clipboard; GdkPixbuf *pixbuf; clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD); pixbuf = gtk_clipboard_wait_for_image (clipboard); if (pixbuf) { gtk_image_set_from_pixbuf (GTK_IMAGE (data), pixbuf); g_object_unref (pixbuf); } } static gboolean button_press (GtkWidget *widget, GdkEventButton *button, gpointer data) { GtkWidget *menu; GtkWidget *item; if (button->button != GDK_BUTTON_SECONDARY) return FALSE; menu = gtk_menu_new (); item = gtk_menu_item_new_with_mnemonic (_("_Copy")); g_signal_connect (item, "activate", G_CALLBACK (copy_image), data); gtk_widget_show (item); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); item = gtk_menu_item_new_with_mnemonic (_("_Paste")); g_signal_connect (item, "activate", G_CALLBACK (paste_image), data); gtk_widget_show (item); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); gtk_menu_popup_at_pointer (GTK_MENU (menu), (GdkEvent *) button); return TRUE; } GtkWidget * do_clipboard (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *vbox, *hbox; GtkWidget *label; GtkWidget *entry, *button; GtkWidget *ebox, *image; GtkClipboard *clipboard; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Clipboard"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox), 8); gtk_container_add (GTK_CONTAINER (window), vbox); label = gtk_label_new ("\"Copy\" will copy the text\nin the entry to the clipboard"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4); gtk_container_set_border_width (GTK_CONTAINER (hbox), 8); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); /* Create the first entry */ entry = gtk_entry_new (); gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0); /* Create the button */ button = gtk_button_new_with_mnemonic (_("_Copy")); gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0); g_signal_connect (button, "clicked", G_CALLBACK (copy_button_clicked), entry); label = gtk_label_new ("\"Paste\" will paste the text from the clipboard to the entry"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4); gtk_container_set_border_width (GTK_CONTAINER (hbox), 8); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); /* Create the second entry */ entry = gtk_entry_new (); gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0); /* Create the button */ button = gtk_button_new_with_mnemonic (_("_Paste")); gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0); g_signal_connect (button, "clicked", G_CALLBACK (paste_button_clicked), entry); label = gtk_label_new ("Images can be transferred via the clipboard, too"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4); gtk_container_set_border_width (GTK_CONTAINER (hbox), 8); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); /* Create the first image */ image = gtk_image_new_from_icon_name ("dialog-warning", GTK_ICON_SIZE_BUTTON); ebox = gtk_event_box_new (); gtk_container_add (GTK_CONTAINER (ebox), image); gtk_container_add (GTK_CONTAINER (hbox), ebox); /* make ebox a drag source */ gtk_drag_source_set (ebox, GDK_BUTTON1_MASK, NULL, 0, GDK_ACTION_COPY); gtk_drag_source_add_image_targets (ebox); g_signal_connect (ebox, "drag-begin", G_CALLBACK (drag_begin), image); g_signal_connect (ebox, "drag-data-get", G_CALLBACK (drag_data_get), image); /* accept drops on ebox */ gtk_drag_dest_set (ebox, GTK_DEST_DEFAULT_ALL, NULL, 0, GDK_ACTION_COPY); gtk_drag_dest_add_image_targets (ebox); g_signal_connect (ebox, "drag-data-received", G_CALLBACK (drag_data_received), image); /* context menu on ebox */ g_signal_connect (ebox, "button-press-event", G_CALLBACK (button_press), image); /* Create the second image */ image = gtk_image_new_from_icon_name ("process-stop", GTK_ICON_SIZE_BUTTON); ebox = gtk_event_box_new (); gtk_container_add (GTK_CONTAINER (ebox), image); gtk_container_add (GTK_CONTAINER (hbox), ebox); /* make ebox a drag source */ gtk_drag_source_set (ebox, GDK_BUTTON1_MASK, NULL, 0, GDK_ACTION_COPY); gtk_drag_source_add_image_targets (ebox); g_signal_connect (ebox, "drag-begin", G_CALLBACK (drag_begin), image); g_signal_connect (ebox, "drag-data-get", G_CALLBACK (drag_data_get), image); /* accept drops on ebox */ gtk_drag_dest_set (ebox, GTK_DEST_DEFAULT_ALL, NULL, 0, GDK_ACTION_COPY); gtk_drag_dest_add_image_targets (ebox); g_signal_connect (ebox, "drag-data-received", G_CALLBACK (drag_data_received), image); /* context menu on ebox */ g_signal_connect (ebox, "button-press-event", G_CALLBACK (button_press), image); /* tell the clipboard manager to make the data persistent */ clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD); gtk_clipboard_set_can_store (clipboard, NULL, 0); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)glarea.c�����N+������/* OpenGL Area * * GtkGLArea is a widget that allows custom drawing using OpenGL calls. */ #include <math.h> #include <gtk/gtk.h> #include <epoxy/gl.h> static GtkWidget *demo_window = NULL; /* the GtkGLArea widget */ static GtkWidget *gl_area = NULL; enum { X_AXIS, Y_AXIS, Z_AXIS, N_AXIS }; /* Rotation angles on each axis */ static float rotation_angles[N_AXIS] = { 0.0 }; /* The object we are drawing */ static const GLfloat vertex_data[] = { 0.f, 0.5f, 0.f, 1.f, 0.5f, -0.366f, 0.f, 1.f, -0.5f, -0.366f, 0.f, 1.f, }; /* Initialize the GL buffers */ static void init_buffers (GLuint *vao_out, GLuint *buffer_out) { GLuint vao, buffer; /* We only use one VAO, so we always keep it bound */ glGenVertexArrays (1, &vao); glBindVertexArray (vao); /* This is the buffer that holds the vertices */ glGenBuffers (1, &buffer); glBindBuffer (GL_ARRAY_BUFFER, buffer); glBufferData (GL_ARRAY_BUFFER, sizeof (vertex_data), vertex_data, GL_STATIC_DRAW); glBindBuffer (GL_ARRAY_BUFFER, 0); if (vao_out != NULL) *vao_out = vao; if (buffer_out != NULL) *buffer_out = buffer; } /* Create and compile a shader */ static GLuint create_shader (int type, const char *src) { GLuint shader; int status; shader = glCreateShader (type); glShaderSource (shader, 1, &src, NULL); glCompileShader (shader); glGetShaderiv (shader, GL_COMPILE_STATUS, &status); if (status == GL_FALSE) { int log_len; char *buffer; glGetShaderiv (shader, GL_INFO_LOG_LENGTH, &log_len); buffer = g_malloc (log_len + 1); glGetShaderInfoLog (shader, log_len, NULL, buffer); g_warning ("Compile failure in %s shader:\n%s", type == GL_VERTEX_SHADER ? "vertex" : "fragment", buffer); g_free (buffer); glDeleteShader (shader); return 0; } return shader; } /* Initialize the shaders and link them into a program */ static void init_shaders (const char *vertex_path, const char *fragment_path, GLuint *program_out, GLuint *mvp_out) { GLuint vertex, fragment; GLuint program = 0; GLuint mvp = 0; int status; GBytes *source; source = g_resources_lookup_data (vertex_path, 0, NULL); vertex = create_shader (GL_VERTEX_SHADER, g_bytes_get_data (source, NULL)); g_bytes_unref (source); if (vertex == 0) { *program_out = 0; return; } source = g_resources_lookup_data (fragment_path, 0, NULL); fragment = create_shader (GL_FRAGMENT_SHADER, g_bytes_get_data (source, NULL)); g_bytes_unref (source); if (fragment == 0) { glDeleteShader (vertex); *program_out = 0; return; } program = glCreateProgram (); glAttachShader (program, vertex); glAttachShader (program, fragment); glLinkProgram (program); glGetProgramiv (program, GL_LINK_STATUS, &status); if (status == GL_FALSE) { int log_len; char *buffer; glGetProgramiv (program, GL_INFO_LOG_LENGTH, &log_len); buffer = g_malloc (log_len + 1); glGetProgramInfoLog (program, log_len, NULL, buffer); g_warning ("Linking failure:\n%s", buffer); g_free (buffer); glDeleteProgram (program); program = 0; goto out; } /* Get the location of the "mvp" uniform */ mvp = glGetUniformLocation (program, "mvp"); glDetachShader (program, vertex); glDetachShader (program, fragment); out: glDeleteShader (vertex); glDeleteShader (fragment); if (program_out != NULL) *program_out = program; if (mvp_out != NULL) *mvp_out = mvp; } static void compute_mvp (float *res, float phi, float theta, float psi) { float x = phi * (G_PI / 180.f); float y = theta * (G_PI / 180.f); float z = psi * (G_PI / 180.f); float c1 = cosf (x), s1 = sinf (x); float c2 = cosf (y), s2 = sinf (y); float c3 = cosf (z), s3 = sinf (z); float c3c2 = c3 * c2; float s3c1 = s3 * c1; float c3s2s1 = c3 * s2 * s1; float s3s1 = s3 * s1; float c3s2c1 = c3 * s2 * c1; float s3c2 = s3 * c2; float c3c1 = c3 * c1; float s3s2s1 = s3 * s2 * s1; float c3s1 = c3 * s1; float s3s2c1 = s3 * s2 * c1; float c2s1 = c2 * s1; float c2c1 = c2 * c1; /* initialize to the identity matrix */ res[0] = 1.f; res[4] = 0.f; res[8] = 0.f; res[12] = 0.f; res[1] = 0.f; res[5] = 1.f; res[9] = 0.f; res[13] = 0.f; res[2] = 0.f; res[6] = 0.f; res[10] = 1.f; res[14] = 0.f; res[3] = 0.f; res[7] = 0.f; res[11] = 0.f; res[15] = 1.f; /* apply all three rotations using the three matrices: * * ⎡ c3 s3 0 ⎤ ⎡ c2 0 -s2 ⎤ ⎡ 1 0 0 ⎤ * ⎢ -s3 c3 0 ⎥ ⎢ 0 1 0 ⎥ ⎢ 0 c1 s1 ⎥ * ⎣ 0 0 1 ⎦ ⎣ s2 0 c2 ⎦ ⎣ 0 -s1 c1 ⎦ */ res[0] = c3c2; res[4] = s3c1 + c3s2s1; res[8] = s3s1 - c3s2c1; res[12] = 0.f; res[1] = -s3c2; res[5] = c3c1 - s3s2s1; res[9] = c3s1 + s3s2c1; res[13] = 0.f; res[2] = s2; res[6] = -c2s1; res[10] = c2c1; res[14] = 0.f; res[3] = 0.f; res[7] = 0.f; res[11] = 0.f; res[15] = 1.f; } static GLuint position_buffer; static GLuint program; static GLuint mvp_location; /* We need to set up our state when we realize the GtkGLArea widget */ static void realize (GtkWidget *widget) { const char *vertex_path, *fragment_path; GdkGLContext *context; gtk_gl_area_make_current (GTK_GL_AREA (widget)); if (gtk_gl_area_get_error (GTK_GL_AREA (widget)) != NULL) return; context = gtk_gl_area_get_context (GTK_GL_AREA (widget)); if (gdk_gl_context_get_use_es (context)) { vertex_path = "/glarea/glarea-gles.vs.glsl"; fragment_path = "/glarea/glarea-gles.fs.glsl"; } else { vertex_path = "/glarea/glarea-gl.vs.glsl"; fragment_path = "/glarea/glarea-gl.fs.glsl"; } init_buffers (&position_buffer, NULL); init_shaders (vertex_path, fragment_path, &program, &mvp_location); } /* We should tear down the state when unrealizing */ static void unrealize (GtkWidget *widget) { gtk_gl_area_make_current (GTK_GL_AREA (widget)); if (gtk_gl_area_get_error (GTK_GL_AREA (widget)) != NULL) return; glDeleteBuffers (1, &position_buffer); glDeleteProgram (program); } static void draw_triangle (void) { float mvp[16]; /* Compute the model view projection matrix using the * rotation angles specified through the GtkRange widgets */ compute_mvp (mvp, rotation_angles[X_AXIS], rotation_angles[Y_AXIS], rotation_angles[Z_AXIS]); /* Use our shaders */ glUseProgram (program); /* Update the "mvp" matrix we use in the shader */ glUniformMatrix4fv (mvp_location, 1, GL_FALSE, &mvp[0]); /* Use the vertices in our buffer */ glBindBuffer (GL_ARRAY_BUFFER, position_buffer); glEnableVertexAttribArray (0); glVertexAttribPointer (0, 4, GL_FLOAT, GL_FALSE, 0, 0); /* Draw the three vertices as a triangle */ glDrawArrays (GL_TRIANGLES, 0, 3); /* We finished using the buffers and program */ glDisableVertexAttribArray (0); glBindBuffer (GL_ARRAY_BUFFER, 0); glUseProgram (0); } static gboolean render (GtkGLArea *area, GdkGLContext *context) { if (gtk_gl_area_get_error (area) != NULL) return FALSE; /* Clear the viewport */ glClearColor (0.5, 0.5, 0.5, 1.0); glClear (GL_COLOR_BUFFER_BIT); /* Draw our object */ draw_triangle (); /* Flush the contents of the pipeline */ glFlush (); return TRUE; } static void on_axis_value_change (GtkAdjustment *adjustment, gpointer data) { int axis = GPOINTER_TO_INT (data); g_assert (axis >= 0 && axis < N_AXIS); /* Update the rotation angle */ rotation_angles[axis] = gtk_adjustment_get_value (adjustment); /* Update the contents of the GL drawing area */ gtk_widget_queue_draw (gl_area); } static GtkWidget * create_axis_slider (int axis) { GtkWidget *box, *label, *slider; GtkAdjustment *adj; const char *text; box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); switch (axis) { case X_AXIS: text = "X axis"; break; case Y_AXIS: text = "Y axis"; break; case Z_AXIS: text = "Z axis"; break; default: g_assert_not_reached (); } label = gtk_label_new (text); gtk_container_add (GTK_CONTAINER (box), label); gtk_widget_show (label); adj = gtk_adjustment_new (0.0, 0.0, 360.0, 1.0, 12.0, 0.0); g_signal_connect (adj, "value-changed", G_CALLBACK (on_axis_value_change), GINT_TO_POINTER (axis)); slider = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, adj); gtk_container_add (GTK_CONTAINER (box), slider); gtk_widget_set_hexpand (slider, TRUE); gtk_widget_show (slider); gtk_widget_show (box); return box; } static void close_window (GtkWidget *widget) { /* Reset the state */ demo_window = NULL; gl_area = NULL; rotation_angles[X_AXIS] = 0.0; rotation_angles[Y_AXIS] = 0.0; rotation_angles[Z_AXIS] = 0.0; } GtkWidget * create_glarea_window (GtkWidget *do_widget) { GtkWidget *window, *box, *button, *controls; int i; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "OpenGL Area"); gtk_window_set_default_size (GTK_WINDOW (window), 400, 600); gtk_container_set_border_width (GTK_CONTAINER (window), 12); g_signal_connect (window, "destroy", G_CALLBACK (close_window), NULL); box = gtk_box_new (GTK_ORIENTATION_VERTICAL, FALSE); gtk_box_set_spacing (GTK_BOX (box), 6); gtk_container_add (GTK_CONTAINER (window), box); gl_area = gtk_gl_area_new (); gtk_widget_set_hexpand (gl_area, TRUE); gtk_widget_set_vexpand (gl_area, TRUE); gtk_container_add (GTK_CONTAINER (box), gl_area); /* We need to initialize and free GL resources, so we use * the realize and unrealize signals on the widget */ g_signal_connect (gl_area, "realize", G_CALLBACK (realize), NULL); g_signal_connect (gl_area, "unrealize", G_CALLBACK (unrealize), NULL); /* The main "draw" call for GtkGLArea */ g_signal_connect (gl_area, "render", G_CALLBACK (render), NULL); controls = gtk_box_new (GTK_ORIENTATION_VERTICAL, FALSE); gtk_container_add (GTK_CONTAINER (box), controls); gtk_widget_set_hexpand (controls, TRUE); for (i = 0; i < N_AXIS; i++) gtk_container_add (GTK_CONTAINER (controls), create_axis_slider (i)); button = gtk_button_new_with_label ("Quit"); gtk_widget_set_hexpand (button, TRUE); gtk_container_add (GTK_CONTAINER (box), button); g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_widget_destroy), window); return window; } GtkWidget* do_glarea (GtkWidget *do_widget) { if (demo_window == NULL) demo_window = create_glarea_window (do_widget); if (!gtk_widget_get_visible (demo_window)) gtk_widget_show_all (demo_window); else gtk_widget_destroy (demo_window); return demo_window; } ��(uuay)filtermodel.c�����W������/* Tree View/Filter Model * * This example demonstrates how GtkTreeModelFilter can be used not * just to show a subset of the rows, but also to compute columns * that are not actually present in the underlying model. */ #include <gtk/gtk.h> #include <stdlib.h> enum { WIDTH_COLUMN, HEIGHT_COLUMN, AREA_COLUMN, SQUARE_COLUMN }; static void format_number (GtkTreeViewColumn *col, GtkCellRenderer *cell, GtkTreeModel *model, GtkTreeIter *iter, gpointer data) { gint num; gchar *text; gtk_tree_model_get (model, iter, GPOINTER_TO_INT (data), &num, -1); text = g_strdup_printf ("%d", num); g_object_set (cell, "text", text, NULL); g_free (text); } static void filter_modify_func (GtkTreeModel *model, GtkTreeIter *iter, GValue *value, gint column, gpointer data) { GtkTreeModelFilter *filter_model = GTK_TREE_MODEL_FILTER (model); gint width, height; GtkTreeModel *child_model; GtkTreeIter child_iter; child_model = gtk_tree_model_filter_get_model (filter_model); gtk_tree_model_filter_convert_iter_to_child_iter (filter_model, &child_iter, iter); gtk_tree_model_get (child_model, &child_iter, WIDTH_COLUMN, &width, HEIGHT_COLUMN, &height, -1); switch (column) { case WIDTH_COLUMN: g_value_set_int (value, width); break; case HEIGHT_COLUMN: g_value_set_int (value, height); break; case AREA_COLUMN: g_value_set_int (value, width * height); break; case SQUARE_COLUMN: g_value_set_boolean (value, width == height); break; default: g_assert_not_reached (); } } static gboolean visible_func (GtkTreeModel *model, GtkTreeIter *iter, gpointer data) { gint width; gtk_tree_model_get (model, iter, WIDTH_COLUMN, &width, -1); return width < 10; } static void cell_edited (GtkCellRendererSpin *cell, const char *path_string, const char *new_text, GtkListStore *store) { int val; GtkTreePath *path; GtkTreeIter iter; int column; path = gtk_tree_path_new_from_string (path_string); gtk_tree_model_get_iter (GTK_TREE_MODEL (store), &iter, path); gtk_tree_path_free (path); column = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (cell), "column")); val = atoi (new_text); gtk_list_store_set (store, &iter, column, val, -1); } GtkWidget * do_filtermodel (GtkWidget *do_widget) { static GtkWidget *window; GtkWidget *tree; GtkListStore *store; GtkTreeModel *model; GtkTreeViewColumn *column; GtkCellRenderer *cell; GType types[4]; if (!window) { GtkBuilder *builder; builder = gtk_builder_new_from_resource ("/filtermodel/filtermodel.ui"); gtk_builder_connect_signals (builder, NULL); window = GTK_WIDGET (gtk_builder_get_object (builder, "window1")); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); store = (GtkListStore*)gtk_builder_get_object (builder, "liststore1"); column = (GtkTreeViewColumn*)gtk_builder_get_object (builder, "treeviewcolumn1"); cell = (GtkCellRenderer*)gtk_builder_get_object (builder, "cellrenderertext1"); gtk_tree_view_column_set_cell_data_func (column, cell, format_number, GINT_TO_POINTER (WIDTH_COLUMN), NULL); g_object_set_data (G_OBJECT (cell), "column", GINT_TO_POINTER (WIDTH_COLUMN)); g_signal_connect (cell, "edited", G_CALLBACK (cell_edited), store); column = (GtkTreeViewColumn*)gtk_builder_get_object (builder, "treeviewcolumn2"); cell = (GtkCellRenderer*)gtk_builder_get_object (builder, "cellrenderertext2"); gtk_tree_view_column_set_cell_data_func (column, cell, format_number, GINT_TO_POINTER (HEIGHT_COLUMN), NULL); g_object_set_data (G_OBJECT (cell), "column", GINT_TO_POINTER (HEIGHT_COLUMN)); g_signal_connect (cell, "edited", G_CALLBACK (cell_edited), store); column = (GtkTreeViewColumn*)gtk_builder_get_object (builder, "treeviewcolumn3"); cell = (GtkCellRenderer*)gtk_builder_get_object (builder, "cellrenderertext3"); gtk_tree_view_column_set_cell_data_func (column, cell, format_number, GINT_TO_POINTER (WIDTH_COLUMN), NULL); column = (GtkTreeViewColumn*)gtk_builder_get_object (builder, "treeviewcolumn4"); cell = (GtkCellRenderer*)gtk_builder_get_object (builder, "cellrenderertext4"); gtk_tree_view_column_set_cell_data_func (column, cell, format_number, GINT_TO_POINTER (HEIGHT_COLUMN), NULL); column = (GtkTreeViewColumn*)gtk_builder_get_object (builder, "treeviewcolumn5"); cell = (GtkCellRenderer*)gtk_builder_get_object (builder, "cellrenderertext5"); gtk_tree_view_column_set_cell_data_func (column, cell, format_number, GINT_TO_POINTER (AREA_COLUMN), NULL); column = (GtkTreeViewColumn*)gtk_builder_get_object (builder, "treeviewcolumn6"); cell = (GtkCellRenderer*)gtk_builder_get_object (builder, "cellrendererpixbuf1"); gtk_tree_view_column_add_attribute (column, cell, "visible", SQUARE_COLUMN); tree = (GtkWidget*)gtk_builder_get_object (builder, "treeview2"); types[WIDTH_COLUMN] = G_TYPE_INT; types[HEIGHT_COLUMN] = G_TYPE_INT; types[AREA_COLUMN] = G_TYPE_INT; types[SQUARE_COLUMN] = G_TYPE_BOOLEAN; model = gtk_tree_model_filter_new (GTK_TREE_MODEL (store), NULL); gtk_tree_model_filter_set_modify_func (GTK_TREE_MODEL_FILTER (model), G_N_ELEMENTS (types), types, filter_modify_func, NULL, NULL); gtk_tree_view_set_model (GTK_TREE_VIEW (tree), model); column = (GtkTreeViewColumn*)gtk_builder_get_object (builder, "treeviewcolumn7"); cell = (GtkCellRenderer*)gtk_builder_get_object (builder, "cellrenderertext6"); gtk_tree_view_column_set_cell_data_func (column, cell, format_number, GINT_TO_POINTER (WIDTH_COLUMN), NULL); column = (GtkTreeViewColumn*)gtk_builder_get_object (builder, "treeviewcolumn8"); cell = (GtkCellRenderer*)gtk_builder_get_object (builder, "cellrenderertext7"); gtk_tree_view_column_set_cell_data_func (column, cell, format_number, GINT_TO_POINTER (HEIGHT_COLUMN), NULL); tree = (GtkWidget*)gtk_builder_get_object (builder, "treeview3"); model = gtk_tree_model_filter_new (GTK_TREE_MODEL (store), NULL); gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (model), visible_func, NULL, NULL); gtk_tree_view_set_model (GTK_TREE_VIEW (tree), model); g_object_unref (builder); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)infobar.c�������/* Info Bars * * Info bar widgets are used to report important messages to the user. */ #include <glib/gi18n.h> #include <gtk/gtk.h> static void on_bar_response (GtkInfoBar *info_bar, gint response_id, gpointer user_data) { GtkWidget *dialog; GtkWidget *window; if (response_id == GTK_RESPONSE_CLOSE) { gtk_widget_hide (GTK_WIDGET (info_bar)); return; } window = gtk_widget_get_toplevel (GTK_WIDGET (info_bar)); dialog = gtk_message_dialog_new (GTK_WINDOW (window), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "You clicked a button on an info bar"); gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), "Your response has id %d", response_id); g_signal_connect_swapped (dialog, "response", G_CALLBACK (gtk_widget_destroy), dialog); gtk_widget_show_all (dialog); } GtkWidget * do_infobar (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *frame; GtkWidget *bar; GtkWidget *vbox; GtkWidget *vbox2; GtkWidget *label; GtkWidget *actions; GtkWidget *button; if (!window) { actions = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Info Bars"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 8); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), vbox); bar = gtk_info_bar_new (); gtk_box_pack_start (GTK_BOX (vbox), bar, FALSE, FALSE, 0); gtk_info_bar_set_message_type (GTK_INFO_BAR (bar), GTK_MESSAGE_INFO); label = gtk_label_new ("This is an info bar with message type GTK_MESSAGE_INFO"); gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); gtk_label_set_xalign (GTK_LABEL (label), 0); gtk_box_pack_start (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label, FALSE, FALSE, 0); button = gtk_toggle_button_new_with_label ("Message"); g_object_bind_property (button, "active", bar, "visible", G_BINDING_BIDIRECTIONAL); gtk_container_add (GTK_CONTAINER (actions), button); bar = gtk_info_bar_new (); gtk_box_pack_start (GTK_BOX (vbox), bar, FALSE, FALSE, 0); gtk_info_bar_set_message_type (GTK_INFO_BAR (bar), GTK_MESSAGE_WARNING); label = gtk_label_new ("This is an info bar with message type GTK_MESSAGE_WARNING"); gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); gtk_label_set_xalign (GTK_LABEL (label), 0); gtk_box_pack_start (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label, FALSE, FALSE, 0); button = gtk_toggle_button_new_with_label ("Warning"); g_object_bind_property (button, "active", bar, "visible", G_BINDING_BIDIRECTIONAL); gtk_container_add (GTK_CONTAINER (actions), button); bar = gtk_info_bar_new_with_buttons (_("_OK"), GTK_RESPONSE_OK, NULL); gtk_info_bar_set_show_close_button (GTK_INFO_BAR (bar), TRUE); g_signal_connect (bar, "response", G_CALLBACK (on_bar_response), window); gtk_box_pack_start (GTK_BOX (vbox), bar, FALSE, FALSE, 0); gtk_info_bar_set_message_type (GTK_INFO_BAR (bar), GTK_MESSAGE_QUESTION); label = gtk_label_new ("This is an info bar with message type GTK_MESSAGE_QUESTION"); gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); gtk_label_set_xalign (GTK_LABEL (label), 0); gtk_box_pack_start (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label, FALSE, FALSE, 0); button = gtk_toggle_button_new_with_label ("Question"); g_object_bind_property (button, "active", bar, "visible", G_BINDING_BIDIRECTIONAL); gtk_container_add (GTK_CONTAINER (actions), button); bar = gtk_info_bar_new (); gtk_box_pack_start (GTK_BOX (vbox), bar, FALSE, FALSE, 0); gtk_info_bar_set_message_type (GTK_INFO_BAR (bar), GTK_MESSAGE_ERROR); label = gtk_label_new ("This is an info bar with message type GTK_MESSAGE_ERROR"); gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); gtk_label_set_xalign (GTK_LABEL (label), 0); gtk_box_pack_start (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label, FALSE, FALSE, 0); button = gtk_toggle_button_new_with_label ("Error"); g_object_bind_property (button, "active", bar, "visible", G_BINDING_BIDIRECTIONAL); gtk_container_add (GTK_CONTAINER (actions), button); bar = gtk_info_bar_new (); gtk_box_pack_start (GTK_BOX (vbox), bar, FALSE, FALSE, 0); gtk_info_bar_set_message_type (GTK_INFO_BAR (bar), GTK_MESSAGE_OTHER); label = gtk_label_new ("This is an info bar with message type GTK_MESSAGE_OTHER"); gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); gtk_label_set_xalign (GTK_LABEL (label), 0); gtk_box_pack_start (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label, FALSE, FALSE, 0); button = gtk_toggle_button_new_with_label ("Other"); g_object_bind_property (button, "active", bar, "visible", G_BINDING_BIDIRECTIONAL); gtk_container_add (GTK_CONTAINER (actions), button); frame = gtk_frame_new ("Info bars"); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 8); vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8); gtk_container_set_border_width (GTK_CONTAINER (vbox2), 8); gtk_container_add (GTK_CONTAINER (frame), vbox2); /* Standard message dialog */ label = gtk_label_new ("An example of different info bars"); gtk_box_pack_start (GTK_BOX (vbox2), label, FALSE, FALSE, 0); gtk_widget_show_all (actions); gtk_box_pack_start (GTK_BOX (vbox2), actions, FALSE, FALSE, 0); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)gnome-gsame.png������������PNG ��� IHDR���0���0���W�����gAMA���1�_��^IDATx��Y�dWy��[{U����3ӳ�3�a0��+f1F� !�HI�<D��Dx�"E��D(&Q$�DP� ��2�Ǟ��===�յ�};��[֝�x����p���{�����K���__��K�?�)�q�����t����mg�F�k�7�N�7��qzy���>����7x�,��g��~S���w�o��ߟk�0���3��֫6�Y��,�b�MWr�?�[�?�;�j���1S�|�������z���oY�|쳷S;s%���>sj�\3�Җ�\+A� �������{?��+%�y��2�� P/=S� .>��٘cƘ2�j;�_���'VF��;�k�wN;��������nj�Y��o9���-���dG-����ӿ��w?�ӟ=��B()�����9� 4�&0L����.~��$%KL(K���~�|�_��ѹ�|����h#B�4�xۍK�x`�F�i�猆���F��?��Ikm��!��qc�Q%�7 B��Y`����x�)�uJRc���|�'g�8���w����:�{S@���6�s:�.�&��R�0 ���=y�;����zRJ��ß���[t_����}&�[i؋.�Y�����o<���/^��*���[@�{�w���\� ?�j���]`�*�s��L�1��6GU0!u����['�<_�k?v�=���gڟTJ=$�����{�냷}yzj�(����@$i�I�����ew������g�v7��#O?wn}� �/$3QHm���d�*�����ȹ��M0Q�a�I�J�DpS[1�(�����=�<�γ�3�n$&���q!�����/�~�m�o�[(���J|�SG���i�j +-��������������?�̉B��Jv1V%Sr��*���A�5q*��8�7d*#ֆ�̒:5���%����y�l�V�F�(��J��|�÷��1���X�.�Q�Mp4�`�hL`�<�h����~膉je�o���3�� �EAtTH(�UF�t�=�Tj i-֤�<��NG�h�K���?��ѳ�}jD�G���Z��v9s7.��R��"h���©+���i��h��:N���!�T�+j�h;Md�q��[?�3/��ȯ0���~ёj�c�a�y�#�N�$`&�4�?��� �"��INfcn��'2k@VD�Ǒ(���ԩ7� 2!T�jHc��j$�0ƒ�-읟�\���-7.��al� ]�Bi>K��U!Ejg;����*�s�f�����[)y�@����E� ��^����G�٠�L�^�B6v@��$��9J@���YJ���@�c��p@h�s�;�}��j�P� `����8V\�I��b+~�fժR9����֘���0r#�?ch��������E�b�5US�б2wd�ЙB�D���E�F�(�ՠ-�4ƶ��u�� �r���a�"nR���͜>��Y1U� @�2���q�{�78�a�sC^,y�r�\ģ'\�kW�!�WbJC�v��F�d�IJ�j�D�S��2�B ���#l�������\���S�8��I�M���J��V��@]e���߳�8��3����<M�Y�v%$O?;���L��R���Vgfwŷq�J�+�VE���e� �zN��a��eB�1:rɓ�t�I<�C��&�n��F�/���c/�\.<PZ�0<g{.t�ۗ���:}՜;*^��[�g`-�H�Z����h̤vcos�a�EW 1�J��2��P�7i��4:Ш�iC�1 �$I���A��IE��Ѝ"�_�FF댽ӫ������Lݜj�g/��>lu2mu���6����Z�YÿvW�녙��t�h6jLL�X��{wN�gy��=;��w��d�#lm'Y��,��}T�[����6Ns�D:b�j����^�t���G���)��ǟ�{��Mo�����{��.[�F�x�t+��(M� �AE�l��ZE���T�'�12�nF���/"Ql�Ҝ02�J+%A���m� �D)C�~l�"�oK�m! ��dn[yǹO�y�ԣ�%!�)�RjV)5��jK)kRJ�8�L]"� ��i昭�n�il �M3"����݄�"OZV��c6F.[����#7������U�P�xSD�q��[kSkmb���st!D�@<ߪ����v���:;f�4�����Z�G(9�����Α)� /Í#�$'�e�Z��bk��Ax>.v^@^��ֶ��Mkm�Z+�1Ba�1�B�I�T��n�+��$��:�vg��jT�3p�$�(c�'�h����3Mr�&&4� HP��iz�6�%�t ��N��;�j�Zk��T�!��X�����p�55�afv����V�hC�E�4��Mb�"��Ռ�7N�:!������hk3�\� J���r���$PF;*� ��6|k��1�L5!D0?9uY>���@�1�nR��I�i�Ē�:��6�/ʉ� Ɉ2�ֶhQ8����r�\���g�*h^��1b!D`����E`�3U� @=v�������V�0M�� "�����I��$���2���.f[� `uu{�����W[Bk�g�^ ,�������hk�B$���Z;�֎��$W���|��?Ԭ���7�pGj����<N$�$�tC&����{�.�T�V����^8q���_�:i�[��5��i�X�!L���Z���Yq���Џ��r|va��j�v��Ś~jqS�\l�9���ٻ�f� V��pym�Ջ��by�ι�����< �R���H��&�(s���+�;��� /�2���a�M����0`k��}�s�ݿ�(�X]��p4B ���6�st��7Ԛթ�/\�P�F���B$�L�Xܹ�|�ѣ_>z��}��������أ���O<��,��mF�Wu�̥�O�]{l���#3��-�R=И�^Z����I��+�~`�6t���kur��>��d�Z�֒8Ɋ3T�̬\3*_;w.6�����?:p`��f�9��z�Dg�n�Į�Kk�)Ԇ���fB�XJ�� Z�z�t���x�{nw�5�g1I��T+dy&�,#I�0�|�$�[7 �n�[��H^�ѷ�����Ώ�N�8���%�>Zq�����^�sw��~)�� !z��v��b(�p��d:H����(�4I�yF�RE I�Z�Q��=�.T�Zp�Z�%^+�x�:!I�f)I���>��3�\���G����h)cT�Z)��cG��Q�����z@�զ����2rG��K�k�kHuN��IAp��n�˅^��R7a@�ݡ��.Q�u�����Խ���]�;vu��Z��!T��}j�Q����N�RT+U�f��X��C�� �0&'B?LK�Rns��u�^\yJ y����v�~����1q�FC�bðpq1�!B@K)m!)��W.|��;}?�QS������ �4���,J�V��~� o��k�w�N���33�^��zb8��)q����]Y�x2�a�%�b �� !�TV�TR�qr)e����g���i���9#o$�4Ea�,Q��<ׄQ�\|����+eƽ®z@�����$��GI��������L��������/c�&J�~T�N���\^�Vm�R1��h!e�/4��O�Q�]�$�q]_x^D�h���1'�{&���of�@�&����`%���4�j�����.�����)!D��F����� �4�n�)�4�ι���Jڻ�0n�^@�eB'q��a��_|�9?�R��5�-��oL ����J��kgѣ��������4�`aaA���}�l6f���x�Ӿ�V����n���_L��L�y�^�8�+���)�,"������}�M�R�����]g�U/�m�C�C��Ҁ���/�� \K�y��lA�[�����_��/M����-u�ǽ�v���%�J�y#��҄D�v @�tpP�����K�Qq?6�6�*y��� �|�t�K�RRU�Ve���n������~�bՊ5.e�mm�qA��I}y`=�N�����m+�_ϾNi�Jg�3ޤ����W� ��������e)q+�|���%Ķ�;��^s���1��a�����IEND�B`���(uuay)theming.ui��������0������<?xml version="1.0" encoding="UTF-8"?> <interface> <object class="GtkGrid" id="grid"> <property name="row-spacing">10</property> <property name="orientation">vertical</property> <child> <object class="GtkToolbar"> <property name="visible">1</property> <property name="hexpand">1</property> <property name="show-arrow">0</property> <style> <class name="primary-toolbar"/> </style> <child> <object class="GtkToggleToolButton"> <property name="use_action_appearance">0</property> <property name="visible">1</property> <property name="use_action_appearance">0</property> <property name="label" translatable="yes">Normal</property> <property name="use_underline">1</property> <property name="is_important">1</property> <property name="icon_name">edit-find</property> </object> <packing> <property name="homogeneous">1</property> </packing> </child> <child> <object class="GtkToggleToolButton"> <property name="use_action_appearance">0</property> <property name="visible">1</property> <property name="use_action_appearance">0</property> <property name="label" translatable="yes">Active</property> <property name="use_underline">1</property> <property name="is_important">1</property> <property name="icon_name">edit-find</property> <property name="active">1</property> </object> <packing> <property name="homogeneous">1</property> </packing> </child> <child> <object class="GtkToggleToolButton"> <property name="use_action_appearance">0</property> <property name="visible">1</property> <property name="sensitive">0</property> <property name="label" translatable="yes">Insensitive</property> <property name="use_underline">1</property> <property name="is_important">1</property> <property name="icon_name">edit-find</property> </object> <packing> <property name="homogeneous">1</property> </packing> </child> <child> <object class="GtkToggleToolButton"> <property name="use_action_appearance">0</property> <property name="visible">1</property> <property name="label" translatable="yes">Raised</property> <property name="use_underline">1</property> <property name="is_important">1</property> <property name="icon_name">edit-find-symbolic</property> <style> <class name="raised"/> </style> </object> <packing> <property name="homogeneous">1</property> </packing> </child> <child> <object class="GtkToggleToolButton"> <property name="use_action_appearance">0</property> <property name="visible">1</property> <property name="label" translatable="yes">Raised Active</property> <property name="use_underline">1</property> <property name="is_important">1</property> <property name="icon_name">edit-find-symbolic</property> <property name="active">1</property> <style> <class name="raised"/> </style> </object> <packing> <property name="homogeneous">1</property> </packing> </child> <child> <object class="GtkToggleToolButton"> <property name="use_action_appearance">0</property> <property name="visible">1</property> <property name="sensitive">0</property> <property name="label" translatable="yes">Insensitive Active</property> <property name="use_underline">1</property> <property name="icon_name">edit-find</property> <property name="is_important">1</property> <property name="active">1</property> </object> <packing> <property name="homogeneous">1</property> </packing> </child> <child> <object class="GtkToolItem"> <property name="use_action_appearance">0</property> <property name="visible">1</property> <child> <object class="GtkEntry" id="entry1"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="invisible_char">•</property> <property name="placeholder-text" translatable="yes">Search...</property> <property name="secondary-icon-name">edit-find-symbolic</property> </object> </child> </object> </child> <child> <object class="GtkToolItem"> <property name="use_action_appearance">0</property> <property name="visible">1</property> <child> <object class="GtkSwitch" id="switch1"> <property name="visible">1</property> <property name="can_focus">1</property> </object> </child> </object> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <property name="valign">center</property> <property name="halign">center</property> <style> <class name="linked"/> </style> <child> <object class="GtkButton"> <property name="label" translatable="yes">Hi, I am a button</property> <property name="use_action_appearance">0</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="receives_default">1</property> <property name="use_action_appearance">0</property> </object> </child> <child> <object class="GtkButton"> <property name="label" translatable="yes">And I'm another button</property> <property name="use_action_appearance">0</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="receives_default">1</property> <property name="use_action_appearance">0</property> </object> <packing> <property name="position">1</property> </packing> </child> <child> <object class="GtkButton"> <property name="label" translatable="yes">This is a button party!</property> <property name="use_action_appearance">0</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="receives_default">1</property> <property name="use_action_appearance">0</property> </object> <packing> <property name="position">2</property> </packing> </child> </object> </child> <child> <object class="GtkToolbar"> <property name="visible">1</property> <property name="hexpand">1</property> <property name="icon_size">1</property> <property name="toolbar-style">icons</property> <style> <class name="inline-toolbar"/> </style> <child> <object class="GtkToggleToolButton"> <property name="use_action_appearance">0</property> <property name="visible">1</property> <property name="use_action_appearance">0</property> <property name="label" translatable="yes">Normal</property> <property name="use_underline">1</property> <property name="icon_name">list-add-symbolic</property> </object> <packing> <property name="homogeneous">1</property> </packing> </child> <child> <object class="GtkToggleToolButton"> <property name="use_action_appearance">0</property> <property name="visible">1</property> <property name="use_action_appearance">0</property> <property name="label" translatable="yes">Normal</property> <property name="use_underline">1</property> <property name="icon_name">list-add-symbolic</property> </object> <packing> <property name="homogeneous">1</property> </packing> </child> <child> <object class="GtkToggleToolButton"> <property name="use_action_appearance">0</property> <property name="visible">1</property> <property name="use_action_appearance">0</property> <property name="label" translatable="yes">Active</property> <property name="use_underline">1</property> <property name="icon_name">list-remove-symbolic</property> <property name="active">1</property> </object> <packing> <property name="homogeneous">1</property> </packing> </child> <child> <object class="GtkToggleToolButton"> <property name="use_action_appearance">0</property> <property name="visible">1</property> <property name="use_action_appearance">0</property> <property name="label" translatable="yes">Active</property> <property name="use_underline">1</property> <property name="icon_name">list-remove-symbolic</property> <property name="active">1</property> </object> <packing> <property name="homogeneous">1</property> </packing> </child> <child> <object class="GtkToggleToolButton"> <property name="use_action_appearance">0</property> <property name="visible">1</property> <property name="sensitive">0</property> <property name="use_action_appearance">0</property> <property name="label" translatable="yes">Insensitive</property> <property name="use_underline">1</property> <property name="icon_name">edit-find-symbolic</property> </object> <packing> <property name="homogeneous">1</property> </packing> </child> <child> <object class="GtkToggleToolButton"> <property name="use_action_appearance">0</property> <property name="visible">1</property> <property name="sensitive">0</property> <property name="use_action_appearance">0</property> <property name="label" translatable="yes">Insensitive Active</property> <property name="use_underline">1</property> <property name="icon_name">go-up-symbolic</property> <property name="active">1</property> </object> <packing> <property name="homogeneous">1</property> </packing> </child> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <property name="spacing">10</property> <property name="orientation">horizontal</property> <child> <object class="GtkButton"> <property name="visible">1</property> <property name="label">Plain</property> <property name="halign">end</property> </object> <packing> <property name="expand">1</property> </packing> </child> <child> <object class="GtkButton"> <property name="visible">1</property> <property name="label">Destructive</property> <style> <class name="destructive-action"/> </style> </object> </child> <child> <object class="GtkButton"> <property name="visible">1</property> <property name="label">Suggested</property> <style> <class name="suggested-action"/> </style> </object> </child> </object> </child> </object> </interface> ��(uuay)gnu-keys.png�����������PNG ��� IHDR���0���0���W�����gAMA�����a���IDATx��kt]e��゙[rr�-M�&i�4Io�Ŧ�������C;D�gPQ��T�����Tg�ule����P�^Ҧ��-msk��~9I�m�}y�|��)��̗��:��~�y��y��}�.q�K\����2��C^��F�d"弋�K��t᪵�U�rL+�ͷR�u����-�Y<e�o0�o��v��`/pp��]�����d��ŗ\5�|d��%���������ϙ�n�H�#Y�m��k��F��������}߯z���C��>VV^�z��U+W� ���(=ݽ�o� `�L-(`Fy9&N����aYV�왳�v��mۏ���:�/L�/z�e��f�������B01o2�jy��_���8��P��ϱ�u�p� H)B0��qm_���[���� ȿV�;�@V(\{��^��fr(6���IG{��������x�3��c�K�ս��( ��*H$�|��)�T�4h�?�]Ȃ����e��n�e�������Y9�kj�x�4J��b���d+W^y%��լ���hB�� ����������L ��[�|a�������Il2F~~�����+���&O�G��@Uө�����|�A<����_��� 8n�S�O���n$�I1��U�fV^~�<`wn~�� �t�4'8���͞-�Z���XYy���ށ�T������������{߽ۿ��_��q����ǎR\RȬ�J� I�l�[�8y�%e��^�UQ�5�M�c��_���EVvϕx�K"�����y��n��/﮻�������iK�,�55�4�k���>+cY��=�\mOw�0� ��x�m��O~���/��P��Be``�}��r��!�ʊ)-����3�b��l�я�[��i%�h�F*�$�Lc�u�T��c��P���⒊;>u{���)j0��%yyB���` �p㉸�퇿]WWWw�B�ǁQ`���r�Jn���'���7j�B4E�4L��o߫4�k����p$���/��w�]�������M�P5�b$�q����|�t�b�嗱��k�Ҳr=�elt�_=�"Ge������G7t��M�0M�������'��������߽������;~�����rt]G"��I�A�4¡0����hhl���zF�F��3:��$ccc$IF�c�8z��9�z�G �B�B&�M�رc<��.����馛)/+�W|��|f9�pEQP��<��.�����ӿx��b&��8�Ҋ�����o�R�����inm&77J��j�-_Ƽy�9s�4gΝ"���JY8R"}�����q�ʦa�&�j`A4M���lذ�k�\��k ���ԾZ��olDUUt]�����_�}�}RL7^L@�G>��2EUPu������������.+�ZJ�Bz{z���of$6JEE%�� �;�.�'���˪��g�H�C� �"Y�z�@0H__/C�A�=ơC�عs'K�,a�c�ض͑#u��}�ct�L%O�xɼ��@QQQov(�����G�&]]]�]P�e�1����H��SPX�+��0Lښ�hhlॗv�Hũ���c�H�.���iii�q,��*QU������Ξ�ս�����Gb��Y�A��x|;w�$;7�p(��*���斪�y��������ϝx��d���0� �x�������_b�f��/���H_��y�_�|��'�<������9��Bcǎ�8y�����3˙;g�P�s �&���pl��}��G3���RK� �v�5�V���>3�tZ͆O~��7^/f�(�����=����>.\���w��Ià�����a&M��/}TM#;+���#���?EQQ��*̟;�˗�z�ΎN�o�d*Iii�2~n����}���.**g�d�����h���+HOjo.��a���� 7\�rY���"��������&6>���55<��.<ץ���-?��p��7QZV�i���o=B��:��=�=�X��u�,���K��p��UܱAR{`?���w���E 'OP6�ן�"#�QtM!12C���ʛK��c�o}����wc�)��� �R0u ���#<���p�����'�YZ�]�t�������|{E����g�+xt�&�8��c;6��ф@�5B�0�L��nN�:������Ar,M"1F*�&�J��.�x �H���L�2e��[o��JY��� �����:�P,������n��0������_�-[H��L)��i�D�?Q���3����z(BA�8��`j�ES�R0���!z{�H��I#`�ɤQ�FBz(�B$����̚e5wϚ5+0!w�#�l��s�a��0�� �[�}�P8�P�m�h ;���֭?&�eJ�D�x"��������JUU�;~����;n<E =�m�H$�kc��kC'm��4��kc���V��lX���3�����������a�ض���� }�Ν���y�xZ�J��[�9Tw��������̀��ioo������A �_���[eS3�=_���m!T<W�**���"�]�����@vvvQeu�-+V�ЅH)I�� �� ���]$R Z�[i8���6��3 �#���e\�b��*�A���$���$�I,��4L`p��tM14�t=��� ��n�tCÕ.RJEA7 2V=`�H�1<8x �H��t�M����V��g� ��|��u\ҙ4�D|�4y��c����4���V2�P��*2V�v��rܬ�v��n��aߧ���D�F�Q�q���(�B:����]�Fc�k���m�� g;l�^?6oLē� M8�7k�,EH�/|�AH�븨Bœ�kc�-�Q]өYZC$������>�%�'�4 U�?��>D"Y�y�����_���?���?��,k�f:���ōm[��+��k&����������pm���TTT,�]=[(������x3���SE�_�8R����88���I����*��"@����+�_�F��������W\��=�������|v4��������,\W M�� ��-�郵ug��s�rm��7d m��ݽ횪�B<��r-�/�<!��p�7�]�t�\|O�j v�����>�P@(hB;u� �5?=�x'u���yj�S_���kO�Y��pݡ:+>��6�M����>�����۾d��;O5�;��{}#�6//o�<�x�m��Mӌ��)||����?�UUU���kg�ho#�8ؙ�e�N�q�3�Z�\/� g_~K�� ��Tϩ����ryA�T[Qe�������ύ�&�e,�7\d�����>��Y��''UTTT�3�L'��l�����K}�A���C�R�J%A ����k�B�����g[���ԌT�����4��h���z��o>Jh�B���kV�����jUSÙL��� DUU��;�?v����T�aYv��ȡc=gN7=��=�'��y�iT]��m-m���V3�K����h���q�����Cow��L&0���N��C��D���z���.L��\��Τ���/�y���۽����e˗�r�sM��5���.b��$ ��Dc�x}�k+V.�Ng{��cC#4�y/x'�Q�V��]���ʫ��YZZꍌ Y{��Q~��WR����na�������s����w����kwD"��&��w?�K\����{���;�$�誂����IEND�B`���(uuay)stack.ui����������<?xml version="1.0" encoding="UTF-8"?> <interface> <!-- interface-requires gtk+ 3.6 --> <object class="GtkWindow" id="window1"> <property name="title" translatable="yes">Stack</property> <child> <object class="GtkGrid"> <property name="visible">1</property> <child> <object class="GtkStackSwitcher"> <property name="visible">1</property> <property name="stack">stack</property> <property name="halign">center</property> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">0</property> </packing> </child> <child> <object class="GtkStack" id="stack"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="transition-type">crossfade</property> <child> <object class="GtkImage"> <property name="visible">1</property> <property name="margin-top">20</property> <property name="margin-bottom">20</property> <property name="icon-name">gtk3-demo</property> </object> <packing> <property name="name">page1</property> <property name="title" translatable="yes">Page 1</property> </packing> </child> <child> <object class="GtkCheckButton"> <property name="label" translatable="yes">Page 2</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="draw_indicator">1</property> <property name="halign">center</property> <property name="valign">center</property> </object> <packing> <property name="name">page2</property> <property name="title" translatable="yes">Page 2</property> </packing> </child> <child> <object class="GtkSpinner"> <property name="visible">1</property> <property name="halign">center</property> <property name="valign">center</property> <property name="active">1</property> </object> <packing> <property name="name">page3</property> <property name="icon-name">face-laugh-symbolic</property> </packing> </child> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">1</property> </packing> </child> </object> </child> </object> </interface> ��(uuay)drawingarea.c����r!������/* Drawing Area * * GtkDrawingArea is a blank area where you can draw custom displays * of various kinds. * * This demo has two drawing areas. The checkerboard area shows * how you can just draw something; all you have to do is write * a signal handler for expose_event, as shown here. * * The "scribble" area is a bit more advanced, and shows how to handle * events such as button presses and mouse motion. Click the mouse * and drag in the scribble area to draw squiggles. Resize the window * to clear the area. */ #include <gtk/gtk.h> static GtkWidget *window = NULL; /* Pixmap for scribble area, to store current scribbles */ static cairo_surface_t *surface = NULL; /* Create a new surface of the appropriate size to store our scribbles */ static gboolean scribble_configure_event (GtkWidget *widget, GdkEventConfigure *event, gpointer data) { GtkAllocation allocation; cairo_t *cr; if (surface) cairo_surface_destroy (surface); gtk_widget_get_allocation (widget, &allocation); surface = gdk_window_create_similar_surface (gtk_widget_get_window (widget), CAIRO_CONTENT_COLOR, allocation.width, allocation.height); /* Initialize the surface to white */ cr = cairo_create (surface); cairo_set_source_rgb (cr, 1, 1, 1); cairo_paint (cr); cairo_destroy (cr); /* We've handled the configure event, no need for further processing. */ return TRUE; } /* Redraw the screen from the surface */ static gboolean scribble_draw (GtkWidget *widget, cairo_t *cr, gpointer data) { cairo_set_source_surface (cr, surface, 0, 0); cairo_paint (cr); return FALSE; } /* Draw a rectangle on the screen */ static void draw_brush (GtkWidget *widget, gdouble x, gdouble y) { GdkRectangle update_rect; cairo_t *cr; update_rect.x = x - 3; update_rect.y = y - 3; update_rect.width = 6; update_rect.height = 6; /* Paint to the surface, where we store our state */ cr = cairo_create (surface); gdk_cairo_rectangle (cr, &update_rect); cairo_fill (cr); cairo_destroy (cr); /* Now invalidate the affected region of the drawing area. */ gdk_window_invalidate_rect (gtk_widget_get_window (widget), &update_rect, FALSE); } static gboolean scribble_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer data) { if (surface == NULL) return FALSE; /* paranoia check, in case we haven't gotten a configure event */ if (event->button == GDK_BUTTON_PRIMARY) draw_brush (widget, event->x, event->y); /* We've handled the event, stop processing */ return TRUE; } static gboolean scribble_motion_notify_event (GtkWidget *widget, GdkEventMotion *event, gpointer data) { int x, y; GdkModifierType state; if (surface == NULL) return FALSE; /* paranoia check, in case we haven't gotten a configure event */ /* This call is very important; it requests the next motion event. * If you don't call gdk_window_get_pointer() you'll only get * a single motion event. The reason is that we specified * GDK_POINTER_MOTION_HINT_MASK to gtk_widget_set_events(). * If we hadn't specified that, we could just use event->x, event->y * as the pointer location. But we'd also get deluged in events. * By requesting the next event as we handle the current one, * we avoid getting a huge number of events faster than we * can cope. */ gdk_window_get_device_position (event->window, event->device, &x, &y, &state); if (state & GDK_BUTTON1_MASK) draw_brush (widget, x, y); /* We've handled it, stop processing */ return TRUE; } static gboolean checkerboard_draw (GtkWidget *da, cairo_t *cr, gpointer data) { gint i, j, xcount, ycount, width, height; #define CHECK_SIZE 10 #define SPACING 2 /* At the start of a draw handler, a clip region has been set on * the Cairo context, and the contents have been cleared to the * widget's background color. The docs for * gdk_window_begin_paint_region() give more details on how this * works. */ xcount = 0; width = gtk_widget_get_allocated_width (da); height = gtk_widget_get_allocated_height (da); i = SPACING; while (i < width) { j = SPACING; ycount = xcount % 2; /* start with even/odd depending on row */ while (j < height) { if (ycount % 2) cairo_set_source_rgb (cr, 0.45777, 0, 0.45777); else cairo_set_source_rgb (cr, 1, 1, 1); /* If we're outside the clip, this will do nothing. */ cairo_rectangle (cr, i, j, CHECK_SIZE, CHECK_SIZE); cairo_fill (cr); j += CHECK_SIZE + SPACING; ++ycount; } i += CHECK_SIZE + SPACING; ++xcount; } /* return TRUE because we've handled this event, so no * further processing is required. */ return TRUE; } static void close_window (void) { window = NULL; if (surface) cairo_surface_destroy (surface); surface = NULL; } GtkWidget * do_drawingarea (GtkWidget *do_widget) { GtkWidget *frame; GtkWidget *vbox; GtkWidget *da; GtkWidget *label; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Drawing Area"); g_signal_connect (window, "destroy", G_CALLBACK (close_window), NULL); gtk_container_set_border_width (GTK_CONTAINER (window), 8); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8); gtk_container_set_border_width (GTK_CONTAINER (vbox), 8); gtk_container_add (GTK_CONTAINER (window), vbox); /* * Create the checkerboard area */ label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), "<u>Checkerboard pattern</u>"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0); da = gtk_drawing_area_new (); /* set a minimum size */ gtk_widget_set_size_request (da, 100, 100); gtk_container_add (GTK_CONTAINER (frame), da); g_signal_connect (da, "draw", G_CALLBACK (checkerboard_draw), NULL); /* * Create the scribble area */ label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), "<u>Scribble area</u>"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0); da = gtk_drawing_area_new (); /* set a minimum size */ gtk_widget_set_size_request (da, 100, 100); gtk_container_add (GTK_CONTAINER (frame), da); /* Signals used to handle backing surface */ g_signal_connect (da, "draw", G_CALLBACK (scribble_draw), NULL); g_signal_connect (da,"configure-event", G_CALLBACK (scribble_configure_event), NULL); /* Event signals */ g_signal_connect (da, "motion-notify-event", G_CALLBACK (scribble_motion_notify_event), NULL); g_signal_connect (da, "button-press-event", G_CALLBACK (scribble_button_press_event), NULL); /* Ask to receive events the drawing area doesn't normally * subscribe to */ gtk_widget_set_events (da, gtk_widget_get_events (da) | GDK_LEAVE_NOTIFY_MASK | GDK_BUTTON_PRESS_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)popover/��K���links.c�r������/* Links * * GtkLabel can show hyperlinks. The default action is to call * gtk_show_uri_on_window() on their URI, but it is possible to override * this with a custom handler. */ #include <gtk/gtk.h> static void response_cb (GtkWidget *dialog, gint response_id, gpointer data) { gtk_widget_destroy (dialog); } static gboolean activate_link (GtkWidget *label, const gchar *uri, gpointer data) { if (g_strcmp0 (uri, "keynav") == 0) { GtkWidget *dialog; GtkWidget *parent; parent = gtk_widget_get_toplevel (label); dialog = gtk_message_dialog_new_with_markup (GTK_WINDOW (parent), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "The term <i>keynav</i> is a shorthand for " "keyboard navigation and refers to the process of using " "a program (exclusively) via keyboard input."); gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); gtk_window_present (GTK_WINDOW (dialog)); g_signal_connect (dialog, "response", G_CALLBACK (response_cb), NULL); return TRUE; } return FALSE; } GtkWidget * do_links (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *label; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Links"); gtk_container_set_border_width (GTK_CONTAINER (window), 12); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); label = gtk_label_new ("Some <a href=\"http://en.wikipedia.org/wiki/Text\"" "title=\"plain text\">text</a> may be marked up\n" "as hyperlinks, which can be clicked\n" "or activated via <a href=\"keynav\">keynav</a>\n" "and they work fine with other markup, like when\n" "searching on <a href=\"http://www.google.com/\">" "<span color=\"#0266C8\">G</span><span color=\"#F90101\">o</span>" "<span color=\"#F2B50F\">o</span><span color=\"#0266C8\">g</span>" "<span color=\"#00933B\">l</span><span color=\"#F90101\">e</span>" "</a>."); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); g_signal_connect (label, "activate-link", G_CALLBACK (activate_link), NULL); gtk_container_add (GTK_CONTAINER (window), label); gtk_widget_show (label); } if (!gtk_widget_get_visible (window)) gtk_widget_show (window); else gtk_widget_destroy (window); return window; } ��(uuay)gnome-foot.pngd�������PNG ��� IHDR���/���0�����#����gAMA���1�_��IDATx��Ykl�y=wfvvf��ܗ��)Q���Ūl#H��qd�mT i�4N A����(�n�� ���]� l���<��8v�*�#%RDY$MJ���>�������?2T ��,�T\�0�����s��_��e�/�ׇ��o�>Н:qj�����^ڷo߉��m�X��p�d�WM�jo�1W�[�?kll,�c�СT*5�:6�M��$eW2�o�b� �x����3���}�3�������}��xg���PU��jI�3&�c�����+���wM&� rտ%v�{v�������$+���Q)��:ښN��Ƙ��U���O�d�Α/�R�7ODzHKR"�x���Db����!�zK��AH�iY�0 ���R����edLU��(f�y�Q�������ݵr�]] Cj6ѪU!���J-���a���>����奂��J��z��|q ��琈E�0�y���m{���A=�J�|��7xx#��l��uS�6�}Wz6���#gޘ%r[%-�M�����i|�Zov,e�|�Y���Q�p�"�z��}��_���wԪ���_��h��U��v�yc�����Ѧ��Y�|�)�B&_���; �q�ի��t�Mb�\^�����cϏ����& �G��}F+���8n�u;��hdhp6�Zb�e�w7�%5���� 33�j�`*��-�����n��x�w���-�8p���h$Rwmcg.�#���\�ٚm�d몂g ��Kdj�,�J(�*�}���k_z����~�'�H����^sk��#��-���dz�7vq5_�VON�K�����F8�%5�*���'��Qc����]X�i����������o�<���GG����V��4P���y����z[���l}�єNj����ƽ$�O��?���)�#���"� �::B�ͪ��?����O���K��iT��A�DZ�*�p�z�0�m[��6�V 1YQ��O|�m��KO��_�g��^�Ԇ|�6<J�{������[���AWU��� Z[����-�吞_��� R\��|�B,����/%����+&S)��?�5Ji���a~d��k�?�����#��-ȭ:YL�C�^%�z�RO$`�����42���e����� ��<33=�ͭ[��}���؍��?��?�-eu=O��#����+�m�����+��-,Ǒ�p��]Ӑ��H_w ��'�5���9��ᇾwCW*�m��#��ר���ْ<448��5<<|<��l�� +�U�`�D�QpG]��D2�J��ŕ<$Y��2��6�a�x�pu'�����-��X��c��?��pw,��r��Ź4��6 �<�,�0���n+�V*���y��z�x�o�G|���g�N��<{�+��j�J.,���ha�@�T"���&��14�,An��4�X�d���u��/��1y~�yq�� �m37)�ة��'bQ�0��i�� ��D�D�����\�B� ��*5��1�9;A��Urj�mJ y�< ����i7 <�k��o�L�`@7��D!([�N���4(��-��C[1s�<��5;y��c��0�Q�G��ɻ���|�������� Gz뵪�NET�y�������g����3P@��=���?���u�)K-� �����=u$ �ڨM �������u]3��� b��R�s��(t9�JJ��:�/�2�����g��i�жG����i�ımP��R���o����y����� ?I@znAn�U�Rt��N��N(R�6 ԛ�ONm��`~���u_߇w�z��q��Tn5`��A��`���� ?e��A�6<��Z���q�e!��(���ԗ��[����bz&�*R]��Y[�ö-Z.�"[(a>��iٟ�ĥ�ûo岹���#vD�P0Ƕ�`Y��oo���<�W��'o��-_n��L��A��YA�P�i�����͘���K˯�F M%���M,ˢ�+���"�����~y�^=��3,�ў�A�O�V��u�V�_\�w�>�zVY�T�?���/�l�$����,D�!��M%c��-��������V0����̟�����lV+T�%drL�\���0�y?m�lВ����'�FG�L%�4�D2IEM� ���M�F>��O�y3������׳ݽ�}�X|wo_o���,�l��bi������uS��/#[(=948�Ǡ`zz{a[aY��GPIg,����#� ����Hu�^-Cm�����]X�_���;��+�{���>��V�WU �m��X0,ϣ4�C<�ЪW���`Y��"��Fni�|��e̤Pk������$>\�|�r=�N�"���6 C�JY�ǒb!Ƕ�Z�@MC#�\�V˫�V)c��=vj�n�����̻� �[�5� ���VI�a[x����A��qD�1�� �XYZ����d2����gr�[���AW�fD/Wk3���G��iZ�e�yx�'��e��BD1D8�%kkeL��%�OO��<�����^-����F�ޜ$ 1-;єdh�F$�EmS'�eQ]Ӊm0M�,g2x���8v�,�~7��|��/�jf��0ֽ%��ю�^�0l8$��-I���(J=j;.���X��aZ���bMo���;M�C| �-Q�8��<�< ��<e��^N}���g8�E�D��~��|F=�q}??�vn���h���A��7"�t��W|/?� ����C����߯��*�� �樕�F����IEND�B`���(uuay)offscreen_window.c��CK������/* Offscreen Windows/Rotated Button * * Offscreen windows can be used to transform parts of a widget * hierarchy. Note that the rotated button is fully functional. */ #include <math.h> #include <gtk/gtk.h> #define GTK_TYPE_ROTATED_BIN (gtk_rotated_bin_get_type ()) #define GTK_ROTATED_BIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_ROTATED_BIN, GtkRotatedBin)) #define GTK_ROTATED_BIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_ROTATED_BIN, GtkRotatedBinClass)) #define GTK_IS_ROTATED_BIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_ROTATED_BIN)) #define GTK_IS_ROTATED_BIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_ROTATED_BIN)) #define GTK_ROTATED_BIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_ROTATED_BIN, GtkRotatedBinClass)) typedef struct _GtkRotatedBin GtkRotatedBin; typedef struct _GtkRotatedBinClass GtkRotatedBinClass; struct _GtkRotatedBin { GtkContainer container; GtkWidget *child; GdkWindow *offscreen_window; gdouble angle; }; struct _GtkRotatedBinClass { GtkContainerClass parent_class; }; GType gtk_rotated_bin_get_type (void) G_GNUC_CONST; GtkWidget* gtk_rotated_bin_new (void); void gtk_rotated_bin_set_angle (GtkRotatedBin *bin, gdouble angle); /*** implementation ***/ static void gtk_rotated_bin_realize (GtkWidget *widget); static void gtk_rotated_bin_unrealize (GtkWidget *widget); static void gtk_rotated_bin_get_preferred_width (GtkWidget *widget, gint *minimum, gint *natural); static void gtk_rotated_bin_get_preferred_height (GtkWidget *widget, gint *minimum, gint *natural); static void gtk_rotated_bin_size_allocate (GtkWidget *widget, GtkAllocation *allocation); static gboolean gtk_rotated_bin_damage (GtkWidget *widget, GdkEventExpose *event); static gboolean gtk_rotated_bin_draw (GtkWidget *widget, cairo_t *cr); static void gtk_rotated_bin_add (GtkContainer *container, GtkWidget *child); static void gtk_rotated_bin_remove (GtkContainer *container, GtkWidget *widget); static void gtk_rotated_bin_forall (GtkContainer *container, gboolean include_internals, GtkCallback callback, gpointer callback_data); static GType gtk_rotated_bin_child_type (GtkContainer *container); G_DEFINE_TYPE (GtkRotatedBin, gtk_rotated_bin, GTK_TYPE_CONTAINER); static void to_child (GtkRotatedBin *bin, double widget_x, double widget_y, double *x_out, double *y_out) { GtkAllocation child_area; double x, y, xr, yr; double c, s; double w, h; s = sin (bin->angle); c = cos (bin->angle); gtk_widget_get_allocation (bin->child, &child_area); w = c * child_area.width + s * child_area.height; h = s * child_area.width + c * child_area.height; x = widget_x; y = widget_y; x -= (w - child_area.width) / 2; y -= (h - child_area.height) / 2; x -= child_area.width / 2; y -= child_area.height / 2; xr = x * c + y * s; yr = y * c - x * s; x = xr; y = yr; x += child_area.width / 2; y += child_area.height / 2; *x_out = x; *y_out = y; } static void to_parent (GtkRotatedBin *bin, double offscreen_x, double offscreen_y, double *x_out, double *y_out) { GtkAllocation child_area; double x, y, xr, yr; double c, s; double w, h; s = sin (bin->angle); c = cos (bin->angle); gtk_widget_get_allocation (bin->child, &child_area); w = c * child_area.width + s * child_area.height; h = s * child_area.width + c * child_area.height; x = offscreen_x; y = offscreen_y; x -= child_area.width / 2; y -= child_area.height / 2; xr = x * c - y * s; yr = x * s + y * c; x = xr; y = yr; x += child_area.width / 2; y += child_area.height / 2; x -= (w - child_area.width) / 2; y -= (h - child_area.height) / 2; *x_out = x; *y_out = y; } static void gtk_rotated_bin_class_init (GtkRotatedBinClass *klass) { GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass); widget_class->realize = gtk_rotated_bin_realize; widget_class->unrealize = gtk_rotated_bin_unrealize; widget_class->get_preferred_width = gtk_rotated_bin_get_preferred_width; widget_class->get_preferred_height = gtk_rotated_bin_get_preferred_height; widget_class->size_allocate = gtk_rotated_bin_size_allocate; widget_class->draw = gtk_rotated_bin_draw; g_signal_override_class_closure (g_signal_lookup ("damage-event", GTK_TYPE_WIDGET), GTK_TYPE_ROTATED_BIN, g_cclosure_new (G_CALLBACK (gtk_rotated_bin_damage), NULL, NULL)); container_class->add = gtk_rotated_bin_add; container_class->remove = gtk_rotated_bin_remove; container_class->forall = gtk_rotated_bin_forall; container_class->child_type = gtk_rotated_bin_child_type; } static void gtk_rotated_bin_init (GtkRotatedBin *bin) { gtk_widget_set_has_window (GTK_WIDGET (bin), TRUE); } GtkWidget * gtk_rotated_bin_new (void) { return g_object_new (GTK_TYPE_ROTATED_BIN, NULL); } static GdkWindow * pick_offscreen_child (GdkWindow *offscreen_window, double widget_x, double widget_y, GtkRotatedBin *bin) { GtkAllocation child_area; double x, y; if (bin->child && gtk_widget_get_visible (bin->child)) { to_child (bin, widget_x, widget_y, &x, &y); gtk_widget_get_allocation (bin->child, &child_area); if (x >= 0 && x < child_area.width && y >= 0 && y < child_area.height) return bin->offscreen_window; } return NULL; } static void offscreen_window_to_parent (GdkWindow *offscreen_window, double offscreen_x, double offscreen_y, double *parent_x, double *parent_y, GtkRotatedBin *bin) { to_parent (bin, offscreen_x, offscreen_y, parent_x, parent_y); } static void offscreen_window_from_parent (GdkWindow *window, double parent_x, double parent_y, double *offscreen_x, double *offscreen_y, GtkRotatedBin *bin) { to_child (bin, parent_x, parent_y, offscreen_x, offscreen_y); } static void gtk_rotated_bin_realize (GtkWidget *widget) { GtkRotatedBin *bin = GTK_ROTATED_BIN (widget); GtkAllocation allocation; GdkWindow *window; GdkWindowAttr attributes; gint attributes_mask; guint border_width; GtkRequisition child_requisition; gtk_widget_set_realized (widget, TRUE); gtk_widget_get_allocation (widget, &allocation); border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); attributes.x = allocation.x + border_width; attributes.y = allocation.y + border_width; attributes.width = allocation.width - 2 * border_width; attributes.height = allocation.height - 2 * border_width; attributes.window_type = GDK_WINDOW_CHILD; attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_SCROLL_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK; attributes.visual = gtk_widget_get_visual (widget); attributes.wclass = GDK_INPUT_OUTPUT; attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL; window = gdk_window_new (gtk_widget_get_parent_window (widget), &attributes, attributes_mask); gtk_widget_set_window (widget, window); gdk_window_set_user_data (window, widget); g_signal_connect (window, "pick-embedded-child", G_CALLBACK (pick_offscreen_child), bin); attributes.window_type = GDK_WINDOW_OFFSCREEN; child_requisition.width = child_requisition.height = 0; if (bin->child && gtk_widget_get_visible (bin->child)) { GtkAllocation child_allocation; gtk_widget_get_allocation (bin->child, &child_allocation); attributes.width = child_allocation.width; attributes.height = child_allocation.height; } bin->offscreen_window = gdk_window_new (gdk_screen_get_root_window (gtk_widget_get_screen (widget)), &attributes, attributes_mask); gdk_window_set_user_data (bin->offscreen_window, widget); if (bin->child) gtk_widget_set_parent_window (bin->child, bin->offscreen_window); gdk_offscreen_window_set_embedder (bin->offscreen_window, window); g_signal_connect (bin->offscreen_window, "to-embedder", G_CALLBACK (offscreen_window_to_parent), bin); g_signal_connect (bin->offscreen_window, "from-embedder", G_CALLBACK (offscreen_window_from_parent), bin); gdk_window_show (bin->offscreen_window); } static void gtk_rotated_bin_unrealize (GtkWidget *widget) { GtkRotatedBin *bin = GTK_ROTATED_BIN (widget); gdk_window_set_user_data (bin->offscreen_window, NULL); gdk_window_destroy (bin->offscreen_window); bin->offscreen_window = NULL; GTK_WIDGET_CLASS (gtk_rotated_bin_parent_class)->unrealize (widget); } static GType gtk_rotated_bin_child_type (GtkContainer *container) { GtkRotatedBin *bin = GTK_ROTATED_BIN (container); if (bin->child) return G_TYPE_NONE; return GTK_TYPE_WIDGET; } static void gtk_rotated_bin_add (GtkContainer *container, GtkWidget *widget) { GtkRotatedBin *bin = GTK_ROTATED_BIN (container); if (!bin->child) { gtk_widget_set_parent_window (widget, bin->offscreen_window); gtk_widget_set_parent (widget, GTK_WIDGET (bin)); bin->child = widget; } else g_warning ("GtkRotatedBin cannot have more than one child"); } static void gtk_rotated_bin_remove (GtkContainer *container, GtkWidget *widget) { GtkRotatedBin *bin = GTK_ROTATED_BIN (container); gboolean was_visible; was_visible = gtk_widget_get_visible (widget); if (bin->child == widget) { gtk_widget_unparent (widget); bin->child = NULL; if (was_visible && gtk_widget_get_visible (GTK_WIDGET (container))) gtk_widget_queue_resize (GTK_WIDGET (container)); } } static void gtk_rotated_bin_forall (GtkContainer *container, gboolean include_internals, GtkCallback callback, gpointer callback_data) { GtkRotatedBin *bin = GTK_ROTATED_BIN (container); g_return_if_fail (callback != NULL); if (bin->child) (*callback) (bin->child, callback_data); } void gtk_rotated_bin_set_angle (GtkRotatedBin *bin, gdouble angle) { g_return_if_fail (GTK_IS_ROTATED_BIN (bin)); bin->angle = angle; gtk_widget_queue_resize (GTK_WIDGET (bin)); gdk_window_geometry_changed (bin->offscreen_window); } static void gtk_rotated_bin_size_request (GtkWidget *widget, GtkRequisition *requisition) { GtkRotatedBin *bin = GTK_ROTATED_BIN (widget); GtkRequisition child_requisition; double s, c; double w, h; guint border_width; child_requisition.width = 0; child_requisition.height = 0; if (bin->child && gtk_widget_get_visible (bin->child)) gtk_widget_get_preferred_size ( (bin->child), &child_requisition, NULL); s = sin (bin->angle); c = cos (bin->angle); w = c * child_requisition.width + s * child_requisition.height; h = s * child_requisition.width + c * child_requisition.height; border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); requisition->width = border_width * 2 + w; requisition->height = border_width * 2 + h; } static void gtk_rotated_bin_get_preferred_width (GtkWidget *widget, gint *minimum, gint *natural) { GtkRequisition requisition; gtk_rotated_bin_size_request (widget, &requisition); *minimum = *natural = requisition.width; } static void gtk_rotated_bin_get_preferred_height (GtkWidget *widget, gint *minimum, gint *natural) { GtkRequisition requisition; gtk_rotated_bin_size_request (widget, &requisition); *minimum = *natural = requisition.height; } static void gtk_rotated_bin_size_allocate (GtkWidget *widget, GtkAllocation *allocation) { GtkRotatedBin *bin = GTK_ROTATED_BIN (widget); guint border_width; gint w, h; gdouble s, c; gtk_widget_set_allocation (widget, allocation); border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); w = allocation->width - border_width * 2; h = allocation->height - border_width * 2; if (gtk_widget_get_realized (widget)) gdk_window_move_resize (gtk_widget_get_window (widget), allocation->x + border_width, allocation->y + border_width, w, h); if (bin->child && gtk_widget_get_visible (bin->child)) { GtkRequisition child_requisition; GtkAllocation child_allocation; s = sin (bin->angle); c = cos (bin->angle); gtk_widget_get_preferred_size (bin->child, &child_requisition, NULL); child_allocation.x = 0; child_allocation.y = 0; child_allocation.height = child_requisition.height; if (c == 0.0) child_allocation.width = h / s; else if (s == 0.0) child_allocation.width = w / c; else child_allocation.width = MIN ((w - s * child_allocation.height) / c, (h - c * child_allocation.height) / s); if (gtk_widget_get_realized (widget)) gdk_window_move_resize (bin->offscreen_window, child_allocation.x, child_allocation.y, child_allocation.width, child_allocation.height); child_allocation.x = child_allocation.y = 0; gtk_widget_size_allocate (bin->child, &child_allocation); } } static gboolean gtk_rotated_bin_damage (GtkWidget *widget, GdkEventExpose *event) { gdk_window_invalidate_rect (gtk_widget_get_window (widget), NULL, FALSE); return TRUE; } static gboolean gtk_rotated_bin_draw (GtkWidget *widget, cairo_t *cr) { GtkRotatedBin *bin = GTK_ROTATED_BIN (widget); GdkWindow *window; gdouble s, c; gdouble w, h; window = gtk_widget_get_window (widget); if (gtk_cairo_should_draw_window (cr, window)) { cairo_surface_t *surface; GtkAllocation child_area; if (bin->child && gtk_widget_get_visible (bin->child)) { surface = gdk_offscreen_window_get_surface (bin->offscreen_window); gtk_widget_get_allocation (bin->child, &child_area); /* transform */ s = sin (bin->angle); c = cos (bin->angle); w = c * child_area.width + s * child_area.height; h = s * child_area.width + c * child_area.height; cairo_translate (cr, (w - child_area.width) / 2, (h - child_area.height) / 2); cairo_translate (cr, child_area.width / 2, child_area.height / 2); cairo_rotate (cr, bin->angle); cairo_translate (cr, -child_area.width / 2, -child_area.height / 2); /* clip */ cairo_rectangle (cr, 0, 0, gdk_window_get_width (bin->offscreen_window), gdk_window_get_height (bin->offscreen_window)); cairo_clip (cr); /* paint */ cairo_set_source_surface (cr, surface, 0, 0); cairo_paint (cr); } } if (gtk_cairo_should_draw_window (cr, bin->offscreen_window)) { gtk_render_background (gtk_widget_get_style_context (widget), cr, 0, 0, gdk_window_get_width (bin->offscreen_window), gdk_window_get_height (bin->offscreen_window)); if (bin->child) gtk_container_propagate_draw (GTK_CONTAINER (widget), bin->child, cr); } return FALSE; } /*** ***/ static void scale_changed (GtkRange *range, GtkRotatedBin *bin) { gtk_rotated_bin_set_angle (bin, gtk_range_get_value (range)); } GtkWidget * do_offscreen_window (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *bin, *vbox, *scale, *button; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Rotated Button"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 10); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); scale = gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL, 0, G_PI/2, 0.01); gtk_scale_set_draw_value (GTK_SCALE (scale), FALSE); button = gtk_button_new_with_label ("A Button"); bin = gtk_rotated_bin_new (); g_signal_connect (scale, "value-changed", G_CALLBACK (scale_changed), bin); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_box_pack_start (GTK_BOX (vbox), scale, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox), bin, TRUE, TRUE, 0); gtk_container_add (GTK_CONTAINER (bin), button); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)zoom_out_cursor.png��z�������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��t��t�fx���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3����WIDATX��WmLT�~�30Cq��e���T�T�J��Ĵ�1 ��b5��U5�UP[k�`p�FRw�1E�TMHc��Z��>�C�g��ޙs����[\�7铜��s����<��y��9���u:�f"�q8�E����A�V��% �IMM����f��$I��F��*���+�������,X,�q�FJJJ#��_cUz����%2���2��өX�V��� a����c����S"���(���7-%EQ>��*�j�S&��t����k�Z:u�q�y0����Qz��Y�kdYf�7oV�@���t��M���[F1������f^RRB� ��oٲ�Ea>���D0,�SYY���b�����c�wtt8._���ӧOz�̙?]�z�o]]]/8��n����<ծ���8�4::�sN$Z[[����.�N ���W{����U�r|;ֲ:t�@����U�V��/^�@ 0ZWW�`6������狤���2��������ݙ�����H Ŝ �D������t:��f&���PFF�|>688��ط�B���\555*���>222�z�����L� @�֭[����7]�q?6��<ϫ���£G�>$"Z�f ���lb�QKK��|c6�&������s�h�"@EEEDD���P4� ���8611�DQ$�t��Q ��e˖����YZ ����2C(�9r���$I����ӧO��h�8�?����]�r�����3�'��?�D���ťK������ȳg��`�W�hDQ�`xxX0�\�������&ь��� �����d��dbqCCC�F���4e��@�`0��^�W�h4��� ��fhllL�� ����� ����v��m0���Fb�M! ���x�/_�v:�N���,���������6[Ze�����/_�T������Ժ���DD�v�Z""�e�`�I�@Q���#*77����?��F$�(��h,��|r�䊢H����p8|�} Ȳ����%Q��@ �?~)�o%"�`y�������I�D�hÆ �9�Dtx����_�n��N��ݻw�� ����iӦM��ì��R �'Nq"�%M{�H"�_?v�j��~b�����W��4y@�`��Ö��y�^f�XT'����p8�dY�!�J"ʚ4���*eY� ��l��]~~>����`� m��@ g��z{{�^�x��F��lɒ%t�ƍH(�1�ƘBD �" ����w��ɓ'�������>�wA\�y�� ~?888�r�؊+�q���B���T^^N���T\\<m�&���c�����G���a�)''�����U(��Ν��Κ�����f�Qss3OJJ�B����ͤ@ZD��Nw�f�}�v�C~��577� *,,$��L���TPP@�v���ׯ�@ ��^o�����ܹ�I1f�?p,==���ٳ���v��(j=�,ˑ�������/���.n߾�)����'$���ێo�.���T1����[�x��b�DQ��ׯ�'O��ʲ��0@�Z�+���?~���TZZ*(�AP[[��F���>4����h&9D��#�,DCɀ�& ����F�Ğ)�VZ������߿_ڶm��( DQ����t�OL&�qDo���t��0X`1�<�91u����1K��j�^����۷os�^O�v�#>��dř�L.D%�nү�ſ}�������x���gCCC�������������^��L��[����Rnݺ5�9WZ[[�v��}�����@����� �=���X{J�^h�%���I N"�BD%���!zXC��6�WS�Qf����IEND�B`���(uuay)nw_resize_cursor.png�� �������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��B��B"�>���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3�����IDATX��H[W�?/I�ƆVݨ�)ڕV,M�YamW[�ZԚj�1WVi�Z����l�F-���e(4��:�Z+6P*���s���b4�X��&yw�Xg�Va�c_����w>�{�=�,)Ƴȱ^R�1$Y�?B��� �B�5C!�ljj�|���a �@9���;Y��}�t:7z<���}��G�Z<8 T^`�p$��4M�N��X]]ͣG�� ��������@�G����DN�z��u�-I��D`3�'"�Q����ʷ�h����k��c�zzzf��41+!!��g�222����$I��ǒ�ힺz����D��������lll�5�r�P������z�K�Ͷ����#!������h����b�|����^@���gffn0�Y�����W@FFLLL��9s������Z5�$IB!��~�ܹs������ե���O?~���� ��>*�+��"�$�&���*���rQQ���r���~ ��EiU���III��p(۶m�+**j���~܀��D`9%''���!���V������_�_�!��H�hC�D�����f���Fz{{����X��������bi��ݙN�Ӛ��8� ��;��`�����{����ɩS�$�ټ�ɓ'_)���� ���inn<x�@�������ӧOK�v�*z���w@*�1�kh�Z�v�8t�RQQ�:777�p8���t��v;����ٳ������b���$QWW��j����6�������dzy��}%)) ���.^���b�����2�U3�ܽ{�-!�����HKKBq� �������ɠ�f�`P���l>N��TTT|*��lKKKH��.�~�ҥKBQ�p8�ooO�hmm�%���(W�\i�� ��p�3kjj�����W�������(�����f�{�)f�O�<�I�e���X��v�����PHٿ����ݫB(���?�=/�I���d߹s皢(JUU�غu�y<��#G����oQ��"��͛��ܹ�|fffK(�ttt<�}�v�����j�����P+� 0��#��@F{{�Wǎ����!�Laa���r �?�ω�W��yz(ʀR�pYY�`p�x0.J ������k��˻|FmJ�z�|��Ԕ�І�^� ao_��^Ha��`���������=��\�X/Yh#�f�a��%�G��ɨ�S�z�X�N�w�F�'��ON,�%������2 ��R����IEND�B`���(uuay)css_multiplebgs/����������������������theming_style_classes.c�p������/* Theming/Style Classes * * GTK+ uses CSS for theming. Style classes can be associated * with widgets to inform the theme about intended rendering. * * This demo shows some common examples where theming features * of GTK+ are used for certain effects: primary toolbars, * inline toolbars and linked buttons. */ #include <gtk/gtk.h> static GtkWidget *window = NULL; GtkWidget * do_theming_style_classes (GtkWidget *do_widget) { GtkWidget *grid; GtkBuilder *builder; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Style Classes"); gtk_window_set_resizable (GTK_WINDOW (window), FALSE); gtk_container_set_border_width (GTK_CONTAINER (window), 12); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); builder = gtk_builder_new_from_resource ("/theming_style_classes/theming.ui"); grid = (GtkWidget *)gtk_builder_get_object (builder, "grid"); gtk_widget_show_all (grid); gtk_container_add (GTK_CONTAINER (window), grid); g_object_unref (builder); } if (!gtk_widget_get_visible (window)) gtk_widget_show (window); else gtk_widget_destroy (window); return window; } ��(uuay)colorsel.c������������/* Color Chooser * * A GtkColorChooser lets the user choose a color. There are several * implementations of the GtkColorChooser interface in GTK+. The * GtkColorChooserDialog is a prebuilt dialog containing a * GtkColorChooserWidget. */ #include <gtk/gtk.h> static GtkWidget *window = NULL; static GtkWidget *da; static GdkRGBA color; static GtkWidget *frame; /* draw callback for the drawing area */ static gboolean draw_callback (GtkWidget *widget, cairo_t *cr, gpointer data) { gdk_cairo_set_source_rgba (cr, &color); cairo_paint (cr); return TRUE; } static void response_cb (GtkDialog *dialog, gint response_id, gpointer user_data) { if (response_id == GTK_RESPONSE_OK) gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (dialog), &color); gtk_widget_destroy (GTK_WIDGET (dialog)); } static void change_color_callback (GtkWidget *button, gpointer data) { GtkWidget *dialog; dialog = gtk_color_chooser_dialog_new ("Changing color", GTK_WINDOW (window)); gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (dialog), &color); g_signal_connect (dialog, "response", G_CALLBACK (response_cb), NULL); gtk_widget_show_all (dialog); } GtkWidget * do_colorsel (GtkWidget *do_widget) { GtkWidget *vbox; GtkWidget *button; if (!window) { color.red = 0; color.blue = 1; color.green = 0; color.alpha = 1; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Color Chooser"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 8); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8); gtk_container_set_border_width (GTK_CONTAINER (vbox), 8); gtk_container_add (GTK_CONTAINER (window), vbox); /* * Create the color swatch area */ frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0); da = gtk_drawing_area_new (); g_signal_connect (da, "draw", G_CALLBACK (draw_callback), NULL); /* set a minimum size */ gtk_widget_set_size_request (da, 200, 200); gtk_container_add (GTK_CONTAINER (frame), da); button = gtk_button_new_with_mnemonic ("_Change the above color"); gtk_widget_set_halign (button, GTK_ALIGN_END); gtk_widget_set_valign (button, GTK_ALIGN_CENTER); gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); g_signal_connect (button, "clicked", G_CALLBACK (change_color_callback), NULL); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)brick2.png������)�������PNG ��� IHDR���������������sBIT|d���� pHYs��>��>�"����tEXtSoftware�www.inkscape.org��<�� �IDATx���y��S����k��� Z�)�(I�d[![��,��h�E���[�d���k��R�V��Wv�0�6�<�����g���ky�?������0���|>�y��s�s^�$�z�����&��e��ߏ��~}��$ifa;�K�<��.3{;�1`cࣄ�]Ɠ�Y���nK�sιyB�Af�%�M`� ���^����s�"��{��m|X��� l&�Ɋ�q�9��'�`f�?���P�> ��t�9WҘ�pC3�1fv(��M�����ܧsι�F����"� _��0o�G���,iV�-�ؠ�;< �ݟ�;�\��ʄnf{�Fx���֒�<�L6�~�x]}c?I'4�sι፺)w3;�7�EFN���7�٦��1����ӎd�j�8�٨I�f6��N~�W��y���l�������."ߍF]j:��s# �����v�h�-��i"z33[ ������b�p�97�Q�Ё������;A;o`f�WP��[��v��sn}���l� ��*a[5�M{���k:��s#���̑��-�a�����ҝM��snd}�m-��{�fg�s�؛nfk��c����֒.h:�s������9�������ۜ�no:��s#����uE�.�������S�;$=�t�9�Fַ ��V�&T��<1������b���M��s.��M���Uy:��}��RR�W�3��9�\>�?�5�yy}��s���^L�t��٥�5�y��%��*WHz�� �s���HB��^�X�+����D�HI�#��� ʔ�k��IH�Nl:��s��>�nf��6�H8����ba�P�j3[0����LI�"��%Y$չA�%M�s.�Z��\����kW���%��*��~~nf�k$��*7�sιbjK�fv4�K��F���U%������EQ�+$]�t�9犩%���V����������uU%��#�m{B>:wι�TyB7���O#��س�uU�)~U���l`�ı�v��[��9�\qu��w%�T����"���P�,y��I�H�Az�؍sιAԑ�SL3O���d�exH�=%�]+i$�}V�sM�s��J��-B��AW+��*z��9�{�~��+��9�\yU��SPY���[���l`�ı�� �妃p�9��>¶�&�{��3�;���EiA��A�D8����q�9������n.Y=��G� �ɒ��랒nm:�s�N�$lk`���\���##�]4Y�'錦�p�9�F� �-��{{���O�~�.���m#�?��͝s��T�����=+�fI7��u�$E\?[�R�������q�9�N� �&�b�&Ŏ��������S��@R[�q�9�H� =[=��*���ׄ��e%ifdmH��Iz��@�sΥWG��k�cH�h��%/�E�0�N���Jp�9�>�g/x���^H��C4���*`SI�7ԿsιԑЯ"]2�Q�"I�;R���ޒ�\��A��G�� �l���w�9�džM�f6���cf�2�B+�H�q[�:�~/��wr��XI���k�%no$[I�Y?��s�G����fv5�a��=�T3;���)�Ϗ"b0��mp�3r=�+��D�3�$������TjF�9�\�yCB7����7�����q��x�k�f6�H'�n ~�zW�^p$�&G��v��+�Q�6���,���i��ip�]����9�z� ���Ӌ�wn���z�^�ݑ�Y�e�,�s�wdz4�1`E��U��M��}���zE�? �$隊�w�9�b& 3KA9��tI���Qx+�1�W�OK^� f�(�`��M_�qx�sι70��M�%s�]�,w=�l�|G����J^����N����M<�;���f�B�#��̊zx���rwh����Y�:�i-3;�7���O��%U�\�9�\$3��wQ� ��5� ���S�n��U����y���8��"����..�Z���j/3C��ٵ�/������s1���|��%��̦����!g��&�=ˀˀ�#��/�t���f6/���w�x����� ��bf������ۀS�3%=]u\�9��2��q�k�l�y#?�z���^����������ڜH�����X`��8�lI������f��������9��k�l5�#�{ 78�j��G���C�]�E�s.��{:���Xۓ�n��� 5Xv#��t� �����c�%ĺ/:@v��Vf�U������$��(��ݬ\���sιn�'��[%=`f��Ͳ�!L�����-X�BIGF��<|�T��Νsι��!���uW;r���c��J E���F�u�&��KH�nEۜsι���h�O�b�;pYv�z�O��N�$�$�/[�sν���r�Y+�#,�>�� ci��9�sú���|w�aeOU�f,�D�����s�u�4��N <O?��<�1ٖ�+�4�e��3�lN3����6�;�sU9�Phfa������bGM������S�lO�`��;�_!�+{��^��Ƴ�i���)��p0�-E��:�s$�+��2���v����M��ٝ��&1R�"V 3{���� �\�">���k�a��/pY�n�4%��Q����(�<<<��s�]_1�������7�s��4�Ae���G*��heB7�e �{������Isu{[��*��W�lp:pq�3�G3[��[�0c�h�뼃\2++��,� pG��.O�ffs�k�o��3o��z���]����wn�q���$T��d��m��������\|("�m%�W3��PAg�Ä�^0� p����)�z�� I|SF�u_�[5/%�@�>U����{s��JI�H�gfv.�A����&���>ll�%�I7V_"�o�핒�(�>��A�e)���� �(��)���Q������T�AI+7Ġ$���$yW�����"Lu�B��~1��Ж�߀5��z6�=\8�pcS���I��-��"�P��}��^V��3���I�t5�����g ������ ���� b�3A'��o���?u����zô��� IQ�S�`3[��v3�K7"�y�6��}� fv|6�з�l3;�p���0�)��>3����Y��f���i%3��̾�ؑ��D��6�d���\�,����yT����%h*��ו���Ȓ.~X�-�nO���l 3;���W�f�u�]�1��o�af[���^cf���>�)���5ii�8�A3;<�B��8��l�yT�~��J�7߫2�s���5��"�M���]��'h�z��Zv!Qq�������Ƙ��f6�p�i~�{�[���츦I�̖&���S�B�6Y��9~�V�������6�K�I�T��l�mf�W�O�7�1�mi�z�M�^����mU��+��ݗ���<`�*�����ך"����@8�����9Wm/3ۺ�~efs�m�t,��3�*(�>�g� 6IԜ'� �uK�wuc_����D�1�E�쇄ڵ���;���m�te��f���oT��շ��f�֚�����L"lEk�ف��l��YN����-���n���`�'���[ҩ��_���$�6E@f6���G�H8Nս�j^ؓD�-�B�_��B����4��j#T�����m:�a��jf{U�v���F�)����^��D����'e���f�M'yef��kG�+�{͜��5��N���~N��l���-<uZ��ܾod�&k5K���vN�n�k����� ��z� �$� i³����$��p�zif����I��[~v�X�bD����I8/�W�/if�~��>�@�U9��H�NH��#+K�`��2k�Y�"Yk�K$l�z�JM�IzQ���>c̶-}�P�kǘ�F�/�}�6��z��#����N���{~v��V��t%�~�����m��^J�G��W�g� ��d`f��`�z�nd��i��氚f��D(�g�>�A-EM!�q�e���5�Y٪��I7����^@8�h��eJ��g�S�h5�s����A���;������5�n��و� �ef��K��+�u��K%�=B��ǭGXܹ.��0��NR�]U���}FR��bݾC8�)��� �@��A��g�@�v䤚�?�̮��`DU$� �lnI/�6����b��@ qW�Zz6sa�Oˤ����d�l�' ��IX,��"��g�g��d?�+�!�1w�%MM�w���]'鞦)��V����Ӂ$ ;Ӓ��989;+�l�)m1�#=���"��E��wa���Z5�$a�� �\_q�*n���zv��T_�h�i�~�/��8�+���M��� Ez� �C(��(aTqml��M( ���ç�/�;f��'�P�����3�Lclff�I����Um�ڊ4 ��r�Mn]�C���~Q�3t3{�bO��Mh:�nf�������q#UIS$Fxn�9����t� q�Y�*�iO��u��eIOFֱ�����$U���<;윂�J�J��T���죄g�+T��(����{��x�7$���aIzI�ɒ�����Ϫ�������!���@$�"�\ĞE�[������� 1����O� �4�g5�/ ]YA�f�Z|��7ASI�~�v����l���s��O&aq�l��ք)��$,�+���;�Y�鍞�RYB϶��ߒV�'���lj�v-a;��h��^3[���0�WS?�t'pjd3{� �^UyV:�g&7HK7O� �$�g������uhj5�P�����3��5���m>i�ӑ��^�MI"y��vI��~3+� oQ�}�����r�1՞C� �!�z�'�2�?�x�8���d�����!�b�{��ò2�m���뿝"��H�?��f����X�]vڼ������9�$iB��\D�ԛ��Im��M���3���b�G�g��|M�����h�IM�N����j��9[��0��(��G�g��c�MkF�u"�?K�KI"�_��?k:�.��%�bx7���� }��%?D�c�� ����ml��=����KlB�e�(��Nf�K�At�}�rq�(��mc�4���� yՑ��}Z���N���$�gS�G�h��� pc�A�j�nj��tk�xF��,f�;����c@���bf�p�h^e�c�_tڽ��^���j��mҞ��F����_�7�E/�T���gg7RM�I���s|s��Ef"�&�_|��y�T��*_�<���xBo@tB϶s�nUr�\$�m����\ݒ$��eu�{M`fK1��u#����$=<���+��� ً?'��-3:�T�h������p����y�|�A"���hM����3�J��*(�p��z��M�wZ��{ˌP_��/3���x-�- �������W �ؕ)=��}3K�N@��ڪCT"6�])������4�&f������τ�����ހ��lIM��?�����1 }|�7�ټ�+w�h����\����Jze���Nx,V�d��h*��E܁:�Z[�q0����ln�Ȅ����H{�iY��ޖ�rV��wD\?8��Ұ� ��"B1��J�Of� ��y�p����GJ\0!�D8W\�}"Ŧ�\��m��7m�Ч�vnf�na������m$�lf;m�]X� ���d���Ч%�����N��H����X��-�?��e��/�~6�P|��l��1eo\ 1 }�dQ��< l(���8b�ܟI����/?:����%t�Iw����G4�C3����1 �UI/&�$����kf��M��C����[������n������Pn��xB�U�)��^{ޕ�.���F=P�<f��l�(z����+4a+[�u�c��1ɵ��U�o�^v�cwB/�f��!�l3��.��}٤�+�kV��6���ZӁM%��t 9�|���������.�D��3Bo"����'���O����P���<?�\�]6��^���M�>�^���*<R2��s�OE��4؉b{��푕b�C�l@���)�����z���X/��M��̊�S�`�cO�=�pB7�E g3��<�+��) f����A�u�a���<+�R���\ɢ���<�#t(>��j�=��G)~�}a�{B�eF�'�`tոXCRl�ʺ=qm�=���p´kY� G�V]�)f�B�����g<UB�D���ZJ�n��oO�=�LB/z�����ȼW��|�{B�މ���ڄs���!�1MY1 ]��г��J�=�����?l�i��.��� ����yB�e���G�"� l�I�G�I�/a�\���l��%&��� T�)�&bz�:�S�s��!�):��a3X���o..������ �f��㲓��VQ,���Ӓ��[����d� ��&�wfv2�g�&����NڪB����))�_YuN���b9g6�t�`�C�N]+z�2����T����?j�U�>_[ ~�������Kb�Jf6��U��`��%�_�p�Wb��-��ɬ �E\[{B��O3��bqoIH�E���\6H����{��$�֙8K�I5��*E︊�"tC{�p��&}��!n�}`�T����1�' ?7emI�jayĎ�WLE=������C�i�M�le�?�Z�P���9z(:B_��(F�ۀ�$�۴PL1gM�|MN�ͫs��+�O�j��;�����T�M���kK��"��5@��xO��A\L(m��|��%b���#�j%��^�� =�^�h�*pp��MS��#�_8��Œ�-�~3[�J���N0��(�r�2��kf�S�\�:gf�"��9�S��:£�"kM>R��Y�E�����{@�)�!��u��[��>M��'n�u�T����i߁1�a����#����LQ�� �U�oz���M�����z�=�hB�YI�k:�Ĥ�j>�vٖ�#�X��VOO��4ؙ0�j�����a�_bjh̢�:�^�H��|��|�^�K��$���~Q�F�]�D��$]�tbn���!�d[n7�h���,�TUB�D���#m����<���(� I[H�](�kb�'�^7�C�O���L܌A�'�#��ш�YA�2�r^�� ��!<K��=��9�{<���O��8 X���>��~F>�(���=Wݑ�CqR�2 �;��w�Y����'��<��&��s�`�j�=�������M�m[��֑�w�U�ZE��@� q���W#�A��^MǑ�C���I� �*y1�����T���T�|�rk��P�ՠhB﷽ӱ^V��m�_y���OS2H:8��8��#�_��6KɛBH,e]%�_9�WiB�t0��xQ��c�![�Z��O�פhB�7�<��k��%.�W��n�:[�پ)�%��m2�Iw���H3�'E<�l`��f~��}e�h��L=J�h�Ca�[�Z�PB�Vk7���� �����]���!v�p�'�|��ן$�٤��+���̖"I3:���t�z��'�"�}a\˕9�/f�K��x������N#��7������=I�5ƹ�S�mlgf_� $�,�����֑��Lܹ �����O�-W&�����Ӏ�J�H��5L�e��~���c��23�����4l?�9��+� I�ˤy���[vu���@x.���8^���q� =���T��n�e߳�<��\�����G�n���CM�c�>M���7�4�c���~/�:��>� �֑$3�p�k��:��H��~�N�k��y2�J�� ����2��OC��`��\�T��NE�ۡ7�^5l��K�7k�I�^�����k*�[ѯ������ �/���&�����E�́�e;��yNο�.�u�8�:��z�+��~��瓁]�%�1]}� �L���X�>(�w�#�k�d���x��������3D����������秊M��*<B�4�̮��r� ���$�wAҹfv �G�f X#{}��^"|�?M�-���ʂ�.7���/7� ����%jo^��>���%���}F>�=%M-��%(��n��e}��g��O��%��G��sE��}T+��=�i���]��+��� JIDATʶz2O������G8s5`y`Fi2�p0pK+�v'�Imv��z�K�K���5e��S U���]�L����ƙYU�+����&S�uӁ��-U;�e�k�pL�'�&����?@�j�<B� -����jO�ٌ�K%��Qz J%t�CG�i��)���VBrÐ�W�KM�1�(�Ihl/���Sn$ؔ���%����-k�Q�\Wv�-��[�Z�vo��#t�~���"��و�UD��iX��H�i�Y ��p^����2���+J^_kBϔ���dyBo���~ ����s�DI?n:��Bҩ�V� �2��M(�\��Fy;��&���`���;5����[t�Z'O�-Vf:��7����S���$��<i������V���� #�N����I�f�].l:��z����if�#��z�����폟N��h�i�f�b���Qǽ����-|@ҝ}z=����}���EX��X27�E����k|��efw����b՞'�3[�0�B���y�K�bOk�����P�� �/`3� |����T%��ݜ���G�ٍ�$`��Ō��G���Jҵ�=iB�́�~Ww�l`f�!�p:�E�^ݼ��h}e`B����l���VO���{��O4�`&��d����-�"��MV�|��|�daz1S�P�9z�"EO�-��.9�тmp��#����3�� {��$<O�#a��1�]�YI�H:X�0r|����l(i]IU��Y��k�>��t��u��k��\`EIg[*������%/�M藑-�⏸���b)�/)�}�����Yf�)ak���wV����ٚ�Q I�e#�� �q���|P�z������d�RV�+M�o�\�SaW��W�� I$n?&YE%tIӀ?�|���r�P��Y���E��F�@F��f�]���T��Tw�#13%sss�z�PS�)����}�0-�y��=5��4��e��Jw��K���k��s�t������� `�X^7���-�5�������ńu&)���Qn*��D�e�ޓ�})5>L�i���W�消>�rW�Ʋb�q��c�A�:m���Ғ��]�ff�3�ͪ�k��d�}�̖$8�4�����[���"|�gVT?4��_��%�m�������e'�u��J5?>��F`���h�$�����9IK�,I)����ث�����h�C���Ӊ�G�٘lM�s.�r��o�[���_�����|����1ꊶd��<��"�̝{�d =�gz`��+t<a��h�pG��iw�s�L�����&�Fe���Y��~��GI�\��9�\IUTkڟ� ��Y�Ӏ1���s���� ]�`���F���橡����^�p��9�RI=eI�%�fpJ�ʬV��m2���Hv�97 Uy@���� �/�+fV��^u��O�;��(VYB���oU�08��>�,�����97�Uz������죠��l� �ߠ¶�3��C�s���:�$�2�I6s��Y�z�ىK��n7�c|��sn�'�,�|����68��RWt�4�<C�B8)�9��(V�}�y�� ���`��/�h�̖"��ք#%=�P��9�Z��� �������3;<;-.�O��ST�� ��s�ejK���N�����nf����\fv�i��r��$���s.��:5;��������@��-�Ks����RC�;�k���������|n#j������Lv�f�?���.���w�9�"�$t�3� l�H���,I;5�sι�h,�d���6k,���O`uIӛ�9�\{Ժ(�[�G}�y�z�l���9�\�F:�����QM����tG�A8�k�F�ܻ���Ѵ�F��Δ�s�A8�k�V%t�3�p0gӱ��-�z>��sn(� K�_`#��ci���x2w�97��%t�I"l���Xv=���g��9�\��2�Hz�0R?x��p��'`cIӚ�9�\����`��C�"4K6KM�&Jz��@�s���֎�;I�L��?��Xjp ��'s�sE�DB�4EҶ���F<<����L���+�9� �)�nf6'�5� )��n`GI�5�sι�ԓ }��-��pZ�: �����9�\���>��>B�o�t,<|F҅M�s���EB`f�_������~,�馃q�9��*�0�w}���p<OH�GI��t0�9��K_&�f�(�-��.͌�_�~ �H�S ��sn�����>NH����f*�]�#� �r�9�FOB�dfK���^��F6�0���'Iz6�=�s.�Q�л��`EBr_ XX��ׁ�tࡎ��ٯ�7H�Y{��9����~R�U7-`����IEND�B`���(uuay)background.jpg��V�����������JFIF��H�H�����Created with The GIMP���C� $.' ",#(7),01444'9=82<.342���C 2!!22222222222222222222222222222222222222222222222222�����"��������������������8��!1AQ"a2q�#B�R�3��r���b��C��������������������������������1�����?���T[C �GzF��h ʎ�^��<M�i��p�IЯ;�椑!w�{رP�I���[�l���G�"!t�I<�T$�ߚY>�h��|�l��F�T�{��(�v�4�TQ��|Q �¡KH��yl�m�Uw$���"G�4��d�vEL� C1���H����2;�ށ�Y $�=���3Y�4��p����V�M��'�UD�kYR#���B@X�㘧�X"A�8�$�rB���� K���иd��֩�1`N���p˛�MTDL��~)��oϊ%�%�FQ"�-�ó��<���P �\���(��@E/�z��g[}�ST���������-��Ɍ���p��D�*���$��E��V�$~�7U �`�{�U-yZ�Tꍻ��k� :ԃD!7@`5�{~(1`v��ֲ0���ݤ}�N�[��ͰP�b"7"���1��� ��rf�V���$O���o~�P�e�5'�H��q����Tf��ڠ������XE�g���U27�?��)�7��f�W�]ۉ?���mos9���� �hb$��C��YQ����G���-3�]��:�sRH��;ս�X�f$�}�Y�ڶB[P���r$�G� N���,�T4hx>i���FE�R*@=�sb;k�|�*(�O>(���P���$S� ��a<�t�6��*��D�S �ߚT��@;"��\�!���S@E���@�G����d�Ս�q��`s�@@�ݫJ&��ƪ�~���)��E! ,X��S��, ̉Su�!`�TɅ%�B{R�\2FDkT��'DQ�l�e��&� �&E�w?��T������(�L��a�ق�ME!G*@u&c�e�mT,H�恀~(E��9#Q@ f�l��=��! �Ȭ��-�#(�2�!I�@�� �V0� ����n` 9��ɍ� ��Ѣ��[��{K�H���B��O�K���[�p+���[`WE�-��Y- H�[�ުb���DI;&�Q��EQ�(�t钺��9��q�ɨ�C*�W�s�Ҫ"�c7�,D������@���@r�Lh �@] L�Q�X���dP��,<�����P ��B&� Z ��P& �<���c�1#S��?S�$�Tlf4c�'ЅTnH�rŦ8�)�D �sF%x"Gs����q����� �c���5�*���0#t��r?�b�3*���J����k� �n��'��{B��%��*�}�FG��6"���H����,@-�8��F�<R�ym V0�3۰�C\�D[���2P��5�{��Q饦��{��4����#�"j��9�w.-�g��r<�ʹt�z����KmB�0���H���A�l=v�N.Y��,�%�c�\�w�==�Vf� ��Hr�Q2f8�[v�Bā̞h�$YS�"5��n��1��Sܼ�Q܊�o"��2��*��4m��!c Ь������l�<������� �y��� ��!\�D����n%�W�0Ŷt^�rٸ�Ւ�ԉ%���&*,�D��jE�UH��GN�+�>��N<��2�UpX�<M*� 3y��L�[m���ld,Tƀ��d���i�/q��E !�����L�QK���@� R`�i���E�Q�b`�y��?��&<P�5=�*C�=�L �UF�cF<�}UA��ȂX���U����qS����w�z.$̝D� ;� ��T� d|v�Y�XA'�asAX�y4��L��ֹ~���!�|S�P�Y��TdA����>�K�&��v^*�����=�F��se�{���]��t߭�e�-胯�We���q�M�@��~�t�{�����u-��ҳ��qm����A��j�X��&O�5�@W ڝy����p*ʾ;�hrI =�C!���9��g(ǚ���3X:4���6P�c���h46�P�1:��H�d{ ED�n���H������:�X�E�; P�n-�� ��O����Zx���B�2Ց1��#����>H�����1Hӏ���(3b]�0�H��:T�ɽԶ(L��#ɥ���Z��ù��a�{im-ZKP�m?��.u�c��ʁ��RK��T-[�n�pX3 �k�-�9\x��C�Sn�D�S��ڣNr�Q��(�~(`K ���UuQv��)�aseT�I�2)e��+��a�{$�W>;U ���ߎi�+�P��꣰t�=� :{p8��UL���Z*k�$M�y� N�_q����&�^MF��y:N�嶽������Ř0P���tUBu�H=��Y�w�z�̈%��)�P�z�p<A�gyw��L��@��(w�S@0���ځd�aL����`��-2jwZ�����@� q�OyBYg/�Q��?¬�]/�P��x�����t�ҵ͖-�#�Iw���~���Է���]���Oh=�97�k���m�\\}�,j*wGQԶ�[D?J��W5ŷlJ��]��ck��>X�!\\'jt9�W�\�*��i��$����'�� W���Ohl/K{@�`��d~h`�@2�y�)��K,-���UB����} ��)�� c梳�gd��b�DH�)B�����@M>G�Yh ��-剃<���^�e{�Zg�Mm�-�HU��'�Pfh �P����#��9��g��; �'G�H����؊��e]���V�.�_���%Dk����T��o��b��vh:��`� ��c�Ms\`Ph99�� ~ᕰ@=����A[%�Ǹ:�*)��>�cE��lF܍�����H2�'�4�l��<�:+^%m9ƷL�t�U@����QI����J)����� ���r?��=���{.� ��?[�����p��9�-�7��Mmn:�b�]�.ۻ�Y�!�wU�� �˃�<������]��z�Fڤ�*�2'B���2cn����Rދ9b7��ⅲ}���H��=�sx�s�@m*-�W[;��1 ���~���p��� *�Ή�h���X�悳�75,�4�$��x5F���������Pg11��4��1ދLS����.��:����> Pˤvu9"t4Od��|ċi������,�H��"��=��1K��2R{ο�Xu�2�O��Ğ>k)!8�w�TPdyb`�5�����^���S[r�q�gg����4�[CkԎ2���v�ڨ�+dL�� FKb*�=�v*�YXD ��I~��@�A��}R����V��٠��m�Ȃ�b���5�q�U@}����5��V���cځl�lK��x�����@U��@-�r7'�g$h?5 ˘���S���\z����x�x���s�3���U��hQDe&vf�1(H�C��l6Si�@8�("��o[�캤�Kx�Un��[Sy�`椷�K=5���%�pv�h�n�Udh�B �Ts�Z�+'.40L�c���wGq�j����ȝ �,�nط�[����>ª���b�uA��ඡ@�&;P"���1P@��*�"I<����,CL~��G����uIn��k���F���-����S)wü ��zf�ڵ�Zv ?W����0�X�b��}؏h�I�KV���Г�6>�dO��l�@#��Ku�h�?{�HDH #���E@*�K 11A��s� �����Y�� v,���V��m��P� �����f�l(��]�*�?o�\[}:� P�;�-�����KK�A�?�;��eF�Iր�Im�RAPǽrݫC�I~������5p�Y�e��K�}�g�@ v � �ӕB�$�w��!| ��e�� r1���S����1v�3�(* �#�=���b'KS�Ir�N���K�y��T�n�ތ�fU"u:��~(��[�H�/��RI2I3�17)�ڏ��b�Oo��`L��{�(�i3�tkJ�+�;�!Ҵ��q���*!yـL�B�+��c�ڟ#&�c*&Р����GQ@�B����'��Q�a�0�=�I6t&�d� �䊨,�nط�[����>ª���b�uA��ඡ@�&;TR*�I����$���)}2�1d��y��~���T��>6�:�Tkx0���`��2�|;� ~��n�ͫ]5�`��p>jL�n����&*)�݈��D�T�o�� 0+0#c�D��H6̴9��P̶���aT�@D� �9� �T�x��[�;b��N���e���Jb�`v�lU2�~Oj�n��b�q��۲�3�1F�5ŷӮ��ð�^�� �j�����A��s�z�FThĝh ���E${� -ڴ?���`�q?�Q� ��6^��'��{�b ���9T,��NZ�qoj����X��ֹ��`�m����< v!m�+�;�z�m�w$���UX��Ș�R[{� i���.9�Z:��n��a��p�+���q���#K�G���d�x�^=EИT�\����q������z{N����xa��ڼ�u�ze6Ŷ�q֦��� �rO��*�q���le5��\���(UQ��u��|Q���K\r} �A�(8������3,��g[�;��G�ޑW��ӑ�8��=�=��:�M$����GP��)v�(�@s�����W�S�G��$�=�C1�ԁ$��fi_��U�M��m���V��D��Ӻgp-�dDk��5�' A��(=����Tq�Y���$ַm����3�����U��fv�"�q�S���*`��B�ݏ?����Oy�ZP=�c�&���g3��h�� �LE�Ŏ�,��s��1�kY� �N�(6*<�� 7�X sO���>ɓ�'�A-�� �EIv o�+ D�L�bk�7S 3�LA�QL�W�itτ����!>aI��ڃ*�����=�T5�[�?��K����(�[��f{�P�)9���?j���ֹ��`�m����< v!m�+�;�z�m�w$���U�)����%�������[`�5������ȗ b�z_{���4��x���N�����] ��O��m�z����hy�W����W����]g�Sl[i'jj*^� �w$���)�|��G�k�0�Pc\P��͜}Q��U�h0']η��=�\@T�� G�42����;��A�2Ɍ�u���HKaTx�q�M9�P���܃ڭc���J <l�QTu�m)�D=��Y�˥p�?�y�bI3�t3�]HOqA�-�f��P��.��x�i dO�;�w��DF��#\�r�ޢ�����ޡԨ{J�81�{��'���k*CNF ��ξ�c�ܚ��A$�F��5��U��F����p�X�7�H�����f���\6�v�Kq>)��A ��m>����P f� �{�(��^�>��PH�>)L��<����9ղX�A�Y��E_V��I�T�T̘��biQQ=��z���|,��2P��*�P\dR[����y$N��⢂(Y$�q�v��E-?6�n\�8���}^��w�o�m�c���Ѵ��{y1<��M;���_��K�L�5�P�q��`���5_�?���[=Kt�t2���D ��E�H/��H�UIpI9�h,�s�h���O$ Fd��储���iB��Kez��C�)l/��'~)S�|��^a��?��_Af�n���^'�.���Qq�%�\T����2n�{�8�Wu���2B�|Wu�t"��S�w��1I�T�DF��b�'��S�ڠc1.f��x&w1@'���O`)�Ƃ�#��$d���ij�Oon襋E����٥�F;$�I��1_vY�<�E8d��Go�#31>ո�u��=�O4����ޡԨ{J�81�{��'���k*CNF ��ξ�c�ܚ��A$�F��5��U��F����p�X�7�H�����f���\6�v�Kq>)��A ��m>����P f� �{�(��^�>��PH�>)L��<����9ղX�A�Y��E_V��I�T�T̘��biQQ=��z���|,��2P��*�P\dR[����y$N��⢂(Y$�q�v��E-?6�n\�8���}^��w�o�m�c���Ѵ��{y1<��M;���_��K�L�5�P�q��`���5_�?���[=Kt�t2���D ��E�H/��H�UP�����w-��P!�QC��ʢ���f3T���@ʎ�!W��wH#d+]c�@|�\� !Gj[��S��A����'#�D�~�P/�(� �ɥ�����H�;�P�A�F�`Z vyjp�l�|ВN�)I�v�6�cm:Z`B��&Zy���t/���?w拐Yic�&cUq?���<��)mۋ��6�����1Qd%N4gL)��c�h�u g�P�:~���2xd�F�A{�Qw�|W�$����5�g���E3��� � �^�#�F�&Y��ZG�V�'�]�4:� *��n�Ւ��7s&�����-��+��{Vo]{���"c���z��tjFڿU��>�\���Et�on��s�E���Z�����*?�UG���lb��R��.w :��W%���D&�1Q{�z����MH��w�w�n8^Z��� l��)�$����5������� �Z|S�?��4�!-+���V��( \�ĉ�1Y%�w�i�-��A���LU]�ax��X�-���+�r}6UO�j�� ���R�Vi��a*�J�ݲ�OrP%� Yై�5@팪b;H@2\" ��e�(PH�zWp"ډ1��t8;�,�++\�c5O�4���t�6B��:4�U�rv����(qU<�-� �r>;Q�M�'������<�_I�Ϩ�������l���g����(��� $��ncof6ӥ���*�e����B��^��~h���P:f5Qq����S�����ݸ�.3l ��QBT�sFt f9�WP�y�E�k���:�'�&Omt��z��y�L��X�z��S>�N������;�iRe��U�q/En�~�ہ�@����үQ����Y-qL3q�2k�/�\��Aw�f���q�&8�9�3,H���R��g�,4�UWP\��P@B2b`���KF_o��im�P�/к���#g�A�USX�<�Es9'lR3��) ?{xȀ��mƧE�6#�7XZ.���V���@���`'#�jn���j�i��:&���,�/��@~�шP�-�d�O4�����4�h#z�}��A�R�c� ��VP�$��@ĒG�i�� �X���M��0VGe���G����g�+�u b��00��y�Д��kpu'c�Eܐ�n� �=��v�́�dm�'�M�̖2<�\!-���_NB+� ��&����/e��'`+�&5��f"�� *T���[i��;�=�C�HT�s�7qbX[>�ˀ<�8fŲI�&g�j��Gڎ0YV ����U���P{��2a�汶2y ��5T[]?��L�L��3��$����r����; j95P��P�X2�������Z��3q��'�PҰ�i��R/�{�{@Ы@H���9�l*� �@��T��fX� ��!e)��ɢ2ϘX�i������@���*d��1YP��0,�����>�f_�u��$#F��`����y���rN>ؤg%�R~��)�U 2ۍN�PlG n��2,]���V!���)R�.NG~� �G:��ɊtLk�Y�_$����*��[v��$�h a�=�i��F�.��������� @'����02IcX��$�ӥ�@��?j�5�`���AN��y�����W���Ǹ`a��-�)�����N�⋹!�f{M�#�x�۞Oڛ�,dy��B[9?4���WrA�#�T#�����[��<�I,���ֲ�&�k]��@����o��56b`l�zir�AT��" Wm ��)eT�{ ��]����P. D��� �ߵ�Y`ix� ���kB�h�H�H����a�H��BC.91<�)�"<Oz'lZ �b�3>M*�n@�)��Ҥ���:I�����vs�)��P'F�b�Φ�˾���D�.8�Խ���hD��T)���O�HKA����Ɲ���L|Q���=��*i�0�vMf���[������4����" ��Eb�qT,��,x��b!�x�[a�<�D2'�(#��%�3��eZݫa�S'D�̙�4f���}ǹ?��%����u�q��ٝS\Ȑ���4���)��j���S����J�B���$�~ kL=b#@�H��9";�$�m��7���w+�"������کa�����<��{UC2~iY��.O������/�m�ݐ�~�+���� y��p�QqN�)�ٶ��U���0SW����%܄ɀ�'�QXH���zGf|m'���4RK62B�5��E{�I���aU�[k�����وe��=�� P���%]��@j(��ESxI삋�v�J�@�|��+L6�~� 1e���6( � � " owh<恇�I#� ����@���,@�=蝰Yh'�����4��e���*�J����$�j+_s����Tt{�@���:��.��Q����R�nn��>�P��;%?�!-RO��v�'�1�G0�����Y���/i�5��nF�g��#G�_ �@'��zk�����2V���6��;��_�@�a�,kĚ/̷Qw�7�&��Z� FFPA������b�-��j�4@��<S���EL�tl�uA��L��si�&y�g{,΅Tf[h3����y�AC}P8�<Q��vǝV��V��@�E)ar�d}���5�D���1��%�tLm����S��UEz���Ţ��g0&�l�6P�@��`�ѡ۟���(���S2H��/��z�܋�a�S����k-i�r�8 TV�Bځɚ{��zc�{���,6�M��H��E���x��P\.H�E:��|�0@�27KP'�2v�������{ճ|�g�h#��ˉh3$j�&�L9��&���I �����L���zP�� n����Nl�@@4w�6ǓH����L� �� �3U�s#=��su-�vl��X��P�"��#���f0�H�;���zt鬄����y5a�@g=��L���6q�[s�OڧZཆ��ݴ���!Chy�z^��29HPݣ�2�#���E��t�Ț!qg_�2d��3��I��Ћ�����c7``�-�鮇��Ҩ�Xv��ۯ��@\DB%~M]�P��h�2�EE�����.k�X�UA3s?5���1�4�I�@��L��=2�=ѳ��#m3�ͦ�慜-�/:Q�m����~�� �@���G�q�uZwQZ{����ˍ��'�4��W�{ԗ���1����N��U�_�{�z{�O�����p�=C��?Sq�{F�n|�@��Gl]L�#�T�ӭ�7r.��N�*+�����f��t)Q[-j&i�M�I�+�����4[�"�1�_)�tApH�#���`���L�-@���RE��S6;�L������YmHb9"(���y�ʶ�v5����b�vɣ�k:���oK������^��(\�S�Z�5R�+z1�e�H$�(_[�m��p���ԫ���QU˄%�c@td]��2ם�����W+Y��qU{�ޙPl,k�6M` $���q��P`Is�"��r�k�o������}@��z�'�dZ�|f~j�ii.u���M�L��5酏L ��^x�>b;��^�f��1V�jj�l�^^� ~��s��E�GӴ�0���R�:��q�:�W�����L¬��2 �X7�fA�jı8�v���b��n����ԅ�!�5�3��ж���"�<�RT�� �Umo6c��ڵ��7o�V`��|��d�f"�džM�J9 �Ub9��=�-r֡�)�`)0&55��<5���@]�D�=�kp��l?� -rZ��D��RPpuUM�#��`�l���s���k� m��7�ʆk����V@5��HΪ1�<����$P"��LGv�(�Iv��,�<�� 2+9l�ڊ>�p�����@WC)"�Kh�����w�U��Ik,��1���s��e[P; ��K��K��;d�� 5�U��7��L[NA��^�.L)��G��i����2�$p/����A����U�E�(���ñ�:2.���k���v�R����f������L�6��&��I�X8���0$�ʑWE�۷�Qvy[i����Q�Ӳ-[>3?5Q4��:�v�&�&A|���Ǧ�O��<d1��u/T3Fl�N55qԶF//s?Q���ǣ��{�yo�uC�t+��sCrw��aVB���@\����� �۵bX� `;T�]1pp7AF�?�jB���k��]�[UvȀxM+IbA��.��zk�I$��N�U�*�w1$�ދ���P�x�*�бh[���ʨ����=M����P$���t�SӶn�8���7Yԋ�u���Q�5����xS��.9��ʬ�I933��m�{n�U���<�X!k�-�N�SJ"����Z۳�è� U@E�ٰĘ���d~ X2vkd��Xk����Ee8.���h<�4-�Sq����M�|,�����m��UL�� �S%˶��s$�W����$��I��N����Qb<��g)�� ��'0inam@v��z �,�I8�8���vZE��;�A��-�"g敭��T(�����x2���, �������9�i�پ5���me"ک�&(�$�ܑ@E�,�1 2�)%�v����P͍�$���P�����}@�Wd����|G�X<)<��O��@eT�l�T%����f�pҫ�H+���U�N���#_z|����K���HhC⢕Ifo�G�����m�b�� V�ă�][2����H�&&����U��bI���ԡ���UG�bзeU-�P#3��z��e�-��Ic�V鮧�l�rq��n����~E��k�ob���\sm �Y��rff� �d ��>�5�y"�B�0[ĝ���Egk�P�����a�1�+{��� �d���s ��i�����p]�GT�y�>h[L��i���(�~�Y'�Tq���588*��4H>�K�mq@�I��3?PI���i�8�Qd���y�D�S"*+��N"`���ڀ$����YĒq$qYR촋k�w����n�x �NLDOsA*\��'��)�Bv��QJ��}(�h�B/;$�@ؖh��l@�$�a@@UB�<��h�T@����@��P(>A����k-솝���"�c�(�arF����B���{&�rV�:�QHR�n�(�2�N���5�飻!Mh@�q�A����D�1}o�` ��������4$R��]N���d�n>*_��=���'��@J;�gm7�53i�k�Ǔ�������iDYL�fO}TS�n�B!N���к��!bL�;U�wp�K�i�P�����h��j`c��hT�A �r��A�>�&Ic�j��}GC�@�#���7sN�� s���^�bm��#gt��1��O4����T�aʏ$UC�V䝘�nР�(9:�8��Q�.���oL�s�����!�Ar#u�%d���V��wOg�7�����ٮ{6���L�Y�()�.ZN����4��&����>*a��� ��梪���O4 +��@Y?��]��#H��b�&!'��F��n�x �NLDOsA*\��'��)�Bv��QJ��}(�h�B/;$�@ؖh��l@�$�a@@UB�<��h�T@����@��P(>A����k-솝���"�c�(�arF����B���{&�rV�:�QHR�n�(�2�N���5�飻!Mh@�q�A����D�1}o�` ��������4$R��]N���d�n>*_��=���'��@J;�gm7�53i�k�Ǔ�������iDYL�fO}TS�n�B!N���к��!bL�;U�wp�K�i�P��PKr@�����:��p��f}ܓM���)�w�A;�m��-�#tm#(w{xp o\��ޟ����fw'@�*�S6��[�����ޙ����Y\���E(�U��TJ�2�D�i�����46��{UF����V �ʼn��f�*:I��HM�1�gGu�5l"���FB����0�Ŷ8�&�Gb�PJj&fh��vb��p5�!*���1���\���C�R}G$�t<R���8���Rw�Pvcb���"���i����T�j���%�cT�@1�H-bCxm�+q��9��f����2|�g�b���RhX p�Yⰸ.g���T0�0N�L�s�$A��C؈05��-�ğ���x���Qu�E��f�{�Yn3�f�](��Р�ӧ�_���K6�Ð"MTYz+�Ǧ�K�h�LA���w���d��"�ɮ�q��h�{�v�Qn�Am��|���ڢ���O1��hf-�0�?�V���mq���T�ڸV�t�\��T��Nɉ���<w�l���p)+�@%T rE_��$ 8����̡WlVg��4ت���4���*"�7F�2�w��@�a&�˭-��@�MP)�vgrt�3`H ���H]l��߯�i�e���TR�aUQ���5A�3/�O&�8�HȃCm!@��T`���`��X�>fi�� �d��4��c�ftwQMsV�)9�d*��N�c [c�M2l4v ��4��ff�H`�'f)��\R���n���0=�y4='�rI'C�+��c�jq�'z��'f6'��>")[�;���i[eN�� "-�y1bF����T�T�3DA&h��}��CB(�aR5�������k�V�`���~�$�$p?4PY�̃����f��P�T��!��Ʃ`"�>hYsm4I��Od�I�X���?zP$ � �(�ղ@��?�+*�Ǚ��Q2�i~�4V�.C\=�D*#@1�X��;k"�2mРF̬�@S}���SNŷ1�ʠP�"a@�;�a������.���M�*���b��?�ZկF�%}��d����ɬ�TO �������H*���, !�j�����'S��L��>���#ǓAm��E��QZi�K*�O>�!mL �D�l(���S�:קҪ����ɮ�v�Mr?���y�u�����O�&�uC�7�a��A�z�t�-x�������dž�����2-��4M����%3yk��V��}�DZ��If �9KjGj�q�p��8�xJ)�L��Auv�"~��yn(����#{��e*P�*O�� �4~�X��k�� �Z������`����+h�jS�B?P`8� �,�fA�����Ld(A�fc��rcT�H�4,��� $�觲O$��I����(��f�cj� �L��Ic��j(��b4�H�����!�݀�� Ѭ[L��5�I6�hP#fVw�)����S��bۈ��YeP(|���@��LD�\|z��Y�QJ�&��P�D±f�ڭjףh����Hvv�q��o�'��QmD�9�a#q�+*;��z��4Ŧp��9'B�椑!w�{رP�I���[�l���G�"!t�I<�T$�ߚY>�h��|�l��F�T�{��(�v�4�TQ��|Q �¡KH��yl�m�Uw$���"G�4��d�vEL� C1���H����2;�ށ�Y $�=���3Y�4��p����V�M��'�UD�kYR#���B@X�㘧�X"A�8�$�rB���� K���иd��֩�1`N���p˛�MTDL��~)��oϊ%�%�FQ"�-�ó��<���P �\���(��@E/�z��g[}�ST���������-��Ɍ���p��D�*���$��E��V�$~�7U �`�{�U-yZ�Tꍻ��k� :ԃD!7@`5�{~(1`v��ֲ0���ݤ}�N�[��ͰP�b"7"���1��� ��rf�V���$O���o~�P�e�5'�H��q����Tf��ڠ������XE�g���U27�?��)�7��f�W�]ۉ?���mos9���� �hb$��C��YQ����G���-3�]��:�sRH��;ս�X�f$�}�Y�ڶB[P���r$�G� N���,�T4hx>i���FE�R*@=�sb;k�|�*(�O>(���P���$S� ��a<�t�6��*��D�S �ߚT��@;"��\�!���S@E���@�G����d�Ս�q��`s�@@�ݫJ&��ƪ�~���)��E! ,X��S��, ̉Su�!`�TɅ%�B{R�\2FDkT��'DQ�l�e��&� �&E�w?��T������(�L��a�ق�ME!G*@u&c�e�mT,H�恀~(E��9#Q@ f�l��=��! �Ȭ��-�#(�2�!I�@�� �V0� ����n` 9��ɍ� ��Ѣ��[��{K�H���B��O�K���[�p+���[`WE�-��Y- H�[�ުb���DI;&�Q��EQ�(�t钺��9��q�ɨ�C*�W�s�Ҫ"�c7�,D������@���@r�Lh �@] L�Q�X���dP��,<�����P ��B&� Z ��P& �<���c�1#S��?S�$�Tlf4c�'ЅTnH�rŦ8�)�D �sF%x"Gs����q����� �c���5�*���0#t��r?�b�3*���J����k� �n��'��{B��%��*�}�FG��6"���H����,@-�8��F�<R�ym V0�3۰�C\�D[���2P��5�{��Q饦��{��4����#�"j��9�w.-�g��r<�ʹt�z����KmB�0���H���A�l=v�N.Y��,�%�c�\�w�==�Vf� ��Hr�Q2f8�[v�Bā̞h�$YS�"5��n��1��Sܼ�Q܊�o"��2��*��4m��!c Ь������l�<������� �y��� ��!\�D����n%�W�0Ŷt^�rٸ�Ւ�ԉ%���&*,�D��jE�UH��GN�+�>��N<��2�UpX�<M*� 3y��L�[m���ld,Tƀ��d���i�/q��E !�����L�QK���@� R`�i���E�Q�b`�y��?��&<P�5=�*C�=�L �UF�cF<�}UA��ȂX���U����qS����w�z.$̝D� ;� ��T� d|v�Y�XA'�asAX�y4��L��ֹ~���!�|S�P�Y��TdA����>�K�&��v^*�����=�F��se�{���]��t߭�e�-胯�We���q�M�@��~�t�{�����u-��ҳ��qm����A��j�X��&O�5�@W ڝy����p*ʾ;�hrI =�C!���9��g(ǚ���3X:4���6P�c���h46�P�1:��H�d{ ED�n���H������:�X�E�; P�n-�� ��O����Zx���B�2Ց1��#����>H�����1Hӏ���(3b]�0�H��:T�ɽԶ(L��#ɥ���Z��ù��a�{im-ZKP�m?��.u�c��ʁ��RK��T-[�n�pX3 �k�-�9\x��C�Sn�D�S��ڣNr�Q��(�~(`K ���UuQv��)�aseT�I�2)e��+��a�{$�W>;U ���ߎi�+�P��꣰t�=� :{p8��UL���Z*k�$M�y� N�_q����&�^MF��y:N�嶽������Ř0P���tUBu�H=��Y�w�z�̈%��)�P�z�p<A�gyw��L��@��(w�S@0���ځd�aL����`��-2jwZ�����@� q�OyBYg/�Q��?¬�]/�P��x�����t�ҵ͖-�#�Iw���~���Է���]���Oh=�97�k���m�\\}�,j*wGQԶ�[D?J��W5ŷlJ��]��ck��>X�!\\'jt9�W�\�*��i��$����'�� W���Ohl/K{@�`��d~h`�@2�y�)��K,-���UB����} ��)�� c梳�gd��b�DH�)B�����@M>G�Yh ��-剃<���^�e{�Zg�Mm�-�HU��'�Pfh �P����#��9��g��; �'G�H����؊��e]���V�.�_���%Dk����T��o��b��vh:��`� ��c�Ms\`Ph99�� ~ᕰ@=����A[%�Ǹ:�*)��>�cE��lF܍�����H2�'�4�l��<�:+^%m9ƷL�t�U@����QI����J)����� ���r?��=���{.� ��?[�����p��9�-�7��Mmn:�b�]�.ۻ�Y�!�wU�� �˃�<������]��z�Fڤ�*�2'B���2cn����Rދ9b7��ⅲ}���H��=�sx�s�@m*-�W[;��1 ���~���p��� *�Ή�h���X�悳�75,�4�$��x5F���������Pg11��4��1ދLS����.��:����> Pˤvu9"t4Od��|ċi������,�H��"��=��1K��2R{ο�Xu�2�O��Ğ>k)!8�w�TPdyb`�5�����^���S[r�q�gg����4�[CkԎ2���v�ڨ�+dL�� FKb*�=�v*�YXD ��I~��@�A��}R����V��٠��m�Ȃ�b���5�q�U@}����5��V���cځl�lK��x�����@U��@-�r7'�g$h?5 ˘���S���\z����x�x���s�3���U��hQDe&vf�1(H�C��l6Si�@8�("��o[�캤�Kx�Un��[Sy�`椷�K=5���%�pv�h�n�Udh�B �Ts�Z�+'.40L�c���wGq�j����ȝ �,�nط�[����>ª���b�uA��ඡ@�&;P"���1P@��*�"I<����,CL~��G����uIn��k���F���-����S)wü ��zf�ڵ�Zv ?W����0�X�b��}؏h�I�KV���Г�6>�dO��l�@#��Ku�h�?{�HDH #���E@*�K 11A��s� �����Y�� v,���V��m��P� �����f�l(��]�*�?o�\[}:� P�;�-�����KK�A�?�;��eF�Iր�Im�RAPǽrݫC�I~������5p�Y�e��K�}�g�@ v � �ӕB�$�w��!| ��e�� r1���S����1v�3�(* �#�=���b'KS�Ir�N���K�y��T�n�ތ�fU"u:��~(��[�H�/��RI2I3�17)�ڏ��b�Oo��`L��{�(�i3�tkJ�+�;�!Ҵ��q���*!yـL�B�+��c�ڟ#&�c*&Р����GQ@�B����'��Q�a�0�=�I6t&�d� �䊨,�nط�[����>ª���b�uA��ඡ@�&;TR*�I����$���)}2�1d��y��~���T��>6�:�Tkx0���`��2�|;� ~��n�ͫ]5�`��p>jL�n����&*)�݈��D�T�o�� 0+0#c�D��H6̴9��P̶���aT�@D� �9� �T�x��[�;b��N���e���Jb�`v�lU2�~Oj�n��b�q��۲�3�1F�5ŷӮ��ð�^�� �j�����A��s�z�FThĝh ���E${� -ڴ?���`�q?�Q� ��6^��'��{�b ���9T,��NZ�qoj����X��ֹ��`�m����< v!m�+�;�z�m�w$���UX��Ș�R[{� i���.9�Z:��n��a��p�+���q���#K�G���d�x�^=EИT�\����q������z{N����xa��ڼ�u�ze6Ŷ�q֦��� �rO��*�q���le5��\���(UQ��u��|Q���K\r} �A�(8������3,��g[�;��G�ޑW��ӑ�8��=�=��:�M$����GP��)v�(�@s�����W�S�G��$�=�C1�ԁ$��fi_��U�M��m���V��D��Ӻgp-�dDk��5�' A��(=����Tq�Y���$ַm����3�����U��fv�"�q�S���*`��B�ݏ?����Oy�ZP=�c�&���g3��h�� �LE�Ŏ�,��s��1�kY� �N�(6*<�� 7�X sO���>ɓ�'�A-�� �EIv o�+ D�L�bk�7S 3�LA�QL�W�itτ����!>aI��ڃ*�����=�T5�[�?��K����(�[��f{�P�)9���?j���ֹ��`�m����< v!m�+�;�z�m�w$���U�)����%�������[`�5������ȗ b�z_{���4��x���N�����] ��O��m�z����hy�W����W����]g�Sl[i'jj*^� �w$���)�|��G�k�0�Pc\P��͜}Q��U�h0']η��=�\@T�� G�42����;��A�2Ɍ�u���HKaTx�q�M9�P���܃ڭc���J <l�QTu�m)�D=��Y�˥p�?�y�bI3�t3�]HOqA�-�f��P��.��x�i dO�;�w��DF��#\�r�ޢ�����ޡԨ{J�81�{��'���k*CNF ��ξ�c�ܚ��A$�F��5��U��F����p�X�7�H�����f���\6�v�Kq>)��A ��m>����P f� �{�(��^�>��PH�>)L��<����9ղX�A�Y��E_V��I�T�T̘��biQQ=��z���|,��2P��*�P\dR[����y$N��⢂(Y$�q�v��E-?6�n\�8���}^��w�o�m�c���Ѵ��{y1<��M;���_��K�L�5�P�q��`���5_�?���[=Kt�t2���D ��E�H/��H�UIpI9�h,�s�h���O$ Fd��储���iB��Kez��C�)l/��'~)S�|��^a��?��_Af�n���^'�.���Qq�%�\T����2n�{�8�Wu���2B�|Wu�t"��S�w��1I�T�DF��b�'��S�ڠc1.f��x&w1@'���O`)�Ƃ�#��$d���ij�Oon襋E����٥�F;$�I��1_vY�<�E8d��Go�#31>ո�u��=�O4����ޡԨ{J�81�{��'���k*CNF ��ξ�c�ܚ��A$�F��5��U��F����p�X�7�H�����f���\6�v�Kq>)��A ��m>����P f� �{�(��^�>��PH�>)L��<����9ղX�A�Y��E_V��I�T�T̘��biQQ=��z���|,��2P��*�P\dR[����y$N��⢂(Y$�q�v��E-?6�n\�8���}^��w�o�m�c���Ѵ��{y1<��M;���_��K�L�5�P�q��`���5_�?���[=Kt�t2���D ��E�H/��H�UP�����w-��P!�QC��ʢ���f3T���@ʎ�!W��wH#d+]c�@|�\� !Gj[��S��A����'#�D�~�P/�(� �ɥ�����H�;�P�A�F�`Z vyjp�l�|ВN�)I�v�6�cm:Z`B��&Zy���t/���?w拐Yic�&cUq?���<��)mۋ��6�����1Qd%N4gL)��c�h�u g�P�:~���2xd�F�A{�Qw�|W�$����5�g���E3��� � �^�#�F�&Y��ZG�V�'�]�4:� *��n�Ւ��7s&�����-��+��{Vo]{���"c���z��tjFڿU��>�\���Et�on��s�E���Z�����*?�UG���lb��R��.w :��W%���D&�1Q{�z����MH��w�w�n8^Z��� l��)�$����5������� �Z|S�?��4�!-+���V��( \�ĉ�1Y%�w�i�-��A���LU]�ax��X�-���+�r}6UO�j�� ���R�Vi��a*�J�ݲ�OrP%� Yై�5@팪b;H@2\" ��e�(PH�zWp"ډ1��t8;�,�++\�c5O�4���t�6B��:4�U�rv����(qU<�-� �r>;Q�M�'������<�_I�Ϩ�������l���g����(��� $��ncof6ӥ���*�e����B��^��~h���P:f5Qq����S�����ݸ�.3l ��QBT�sFt f9�WP�y�E�k���:�'�&Omt��z��y�L��X�z��S>�N������;�iRe��U�q/En�~�ہ�@����үQ����Y-qL3q�2k�/�\��Aw�f���q�&8�9�3,H���R��g�,4�UWP\��P@B2b`���KF_o��im�P�/к���#g�A�USX�<�Es9'lR3��) ?{xȀ��mƧE�6#�7XZ.���V���@���`'#�jn���j�i��:&���,�/��@~�шP�-�d�O4�����4�h#z�}��A�R�c� ��VP�$��@ĒG�i�� �X���M��0VGe���G����g�+�u b��00��y�Д��kpu'c�Eܐ�n� �=��v�́�dm�'�M�̖2<�\!-���_NB+� ��&����/e��'`+�&5��f"�� *T���[i��;�=�C�HT�s�7qbX[>�ˀ<�8fŲI�&g�j��Gڎ0YV ����U���P{��2a�汶2y ��5T[]?��L�L��3��$����r����; j95P��P�X2�������Z��3q��'�PҰ�i��R/�{�{@Ы@H���9�l*� �@��T��fX� ��!e)��ɢ2ϘX�i������@���*d��1YP��0,�����>�f_�u��$#F��`����y���rN>ؤg%�R~��)�U 2ۍN�PlG n��2,]���V!���)R�.NG~� �G:��ɊtLk�Y�_$����*��[v��$�h a�=�i��F�.��������� @'����02IcX��$�ӥ�@��?j�5�`���AN��y�����W���Ǹ`a��-�)�����N�⋹!�f{M�#�x�۞Oڛ�,dy��B[9?4���WrA�#�T����(uuay)css_multiplebgs.css���������/* You can edit the text in this window to change the * appearance of this Window. * Be careful, if you screw it up, nothing might be visible * anymore. :) */ /* This CSS resets all properties to their defaults values * and overrides all user settings and the theme in use */ @import url("resource://css_multiplebgs/reset.css"); @import url("resource://css_multiplebgs/cssview.css"); #canvas { transition-property: background-color, background-image; transition-duration: 0.5s; background-color: #4870bc; } /* The gradients below are adapted versions of Lea Verou's CSS3 patterns, * licensed under the MIT license: * Copyright (c) 2011 Lea Verou, http://lea.verou.me/ * * See https://github.com/LeaVerou/CSS3-Patterns-Gallery */ /********** * Bricks * **********/ /* @define-color brick_hi #d42; @define-color brick_lo #b42; @define-color brick_hi_backdrop #888; @define-color brick_lo_backdrop #999; #canvas { background-color: #999; background-image: linear-gradient(205deg, @brick_lo, @brick_lo 23px, transparent 23px), linear-gradient(25deg, @brick_hi, @brick_hi 23px, transparent 23px), linear-gradient(205deg, @brick_lo, @brick_lo 23px, transparent 23px), linear-gradient(25deg, @brick_hi, @brick_hi 23px, transparent 23px); background-size: 58px 58px; background-position: 0px 6px, 4px 31px, 29px 35px, 34px 2px; } #canvas:backdrop { background-color: #444; background-image: linear-gradient(205deg, @brick_lo_backdrop, @brick_lo_backdrop 23px, transparent 23px), linear-gradient(25deg, @brick_hi_backdrop, @brick_hi_backdrop 23px, transparent 23px), linear-gradient(205deg, @brick_lo_backdrop, @brick_lo_backdrop 23px, transparent 23px), linear-gradient(25deg, @brick_hi_backdrop, @brick_hi_backdrop 23px, transparent 23px); background-size: 58px 58px; background-position: 0px 6px, 4px 31px, 29px 35px, 34px 2px; } */ /* #bricks-button { background-color: #eef; background-image: -gtk-scaled(url('resource:///css_multiplebgs/brick.png'),url('resource:///css_multiplebgs/brick2.png')); background-repeat: no-repeat; background-position: center; } */ /********** * Tartan * **********/ /* @define-color tartan_bg #662e2c; @define-color tartan_bg_backdrop #333; #canvas { background-color: @tartan_bg; background-image: repeating-linear-gradient(transparent, transparent 50px, rgba(0,0,0,.4) 50px, rgba(0,0,0,.4) 53px, transparent 53px, transparent 63px, rgba(0,0,0,.4) 63px, rgba(0,0,0,.4) 66px, transparent 66px, transparent 116px, rgba(0,0,0,.5) 116px, rgba(0,0,0,.5) 166px, rgba(255,255,255,.2) 166px, rgba(255,255,255,.2) 169px, rgba(0,0,0,.5) 169px, rgba(0,0,0,.5) 179px, rgba(255,255,255,.2) 179px, rgba(255,255,255,.2) 182px, rgba(0,0,0,.5) 182px, rgba(0,0,0,.5) 232px, transparent 232px), repeating-linear-gradient(90deg, transparent, transparent 50px, rgba(0,0,0,.4) 50px, rgba(0,0,0,.4) 53px, transparent 53px, transparent 63px, rgba(0,0,0,.4) 63px, rgba(0,0,0,.4) 66px, transparent 66px, transparent 116px, rgba(0,0,0,.5) 116px, rgba(0,0,0,.5) 166px, rgba(255,255,255,.2) 166px, rgba(255,255,255,.2) 169px, rgba(0,0,0,.5) 169px, rgba(0,0,0,.5) 179px, rgba(255,255,255,.2) 179px, rgba(255,255,255,.2) 182px, rgba(0,0,0,.5) 182px, rgba(0,0,0,.5) 232px, transparent 232px), repeating-linear-gradient(-55deg, transparent, transparent 1px, rgba(0,0,0,.2) 1px, rgba(0,0,0,.2) 4px, transparent 4px, transparent 19px, rgba(0,0,0,.2) 19px, rgba(0,0,0,.2) 24px, transparent 24px, transparent 51px, rgba(0,0,0,.2) 51px, rgba(0,0,0,.2) 54px, transparent 54px, transparent 74px); } #canvas:backdrop { background-color: @tartan_bg_backdrop; } */ /*********** * Stripes * ***********/ /* @define-color base_bg #4870bc; @define-color backdrop_bg #555; #canvas { background-color: @base_bg; background-image: linear-gradient(to left, transparent, rgba(255,255,255,.07) 50%, transparent 50%), linear-gradient(to left, transparent, rgba(255,255,255,.13) 50%, transparent 50%), linear-gradient(to left, transparent, transparent 50%, rgba(255,255,255,.17) 50%), linear-gradient(to left, transparent, transparent 50%, rgba(255,255,255,.19) 50%); background-size: 29px, 59px, 73px, 109px; } #canvas:backdrop { background-color: @backdrop_bg; } */ /*************** * Lined Paper * ***************/ /* #canvas { background-color: #fff; background-image: linear-gradient(90deg, transparent 79px, alpha(#f98195, 0.40) 79px, #f98195 80px, alpha(#f98195, 0.40) 81px, transparent 81px), linear-gradient(alpha(#77c5cf, 0.60), alpha(#77c5cf, 0.60) 1px, transparent 1px); background-size: 100% 36px; } #canvas:backdrop { background-color: #f1f2f4; background-image: linear-gradient(90deg, transparent 79px, alpha(#999, 0.40) 79px, #999 80px, alpha(#999, 0.40) 81px, transparent 81px), linear-gradient(alpha(#bbb, 0.60), alpha(#bbb, 0.60) 1px, transparent 1px); } */ ��(uuay)apple-red.png� �������PNG ��� IHDR���0���0���W�����gAMA�����a�� �IDATx��[�]Wy�k���9s��8� N��)J�ڄ���ڨ��B�>p��E��� ���W�K� �R@����@��@Bq��S+��8v�3�s��k}�>�3�1��^�|�֞9����������e{�^���tv�y���_��Tz߇�}�����r���c�ks����M�?p�<�p+��E�>���*ܾ�֏������� W]�v��fg���vw����>y�v!�����'+�_���d�L��o�m]a��D�֭���G����7��L����#ͯ�굿����>tb���ލW-,.����{�>��E�,�&�+֬�h��/���ڳ{^�>߄���z���;��������?����/ ;p�o}�U�.�t���KGŇ�f���6�)o�]�����E�Z��9�1|�}~������W--7C���4��� ;��%���씍o�zۍ!�� g|a���NgnMo�����,�V�K�U!��@0�G�|��n��ڱk5p�J�o��g&;W�5B8tpa�o���;[6:���O�\ �2�R wͮ�r|���Ο�=����Z����EB��|[��aղ���,�ꭿ��w~����x�����V�m�B)�F�h������c�ݷ�����������}�\I�����n}G�Sef�c"��v�Ԫg��/-�3�j"��`��wo�gpr��>���A�����qo��w��;7�����O ̄� &�A�X��A۰ض��8p�S��9p��M����Nwnm��Ⴣja~�n,�v�?s��{v}��7���ُO����P��v4!t��������T�UM�O��h[(��0�:��4�uȢ(����;��'�yn�9����?S��c�b���ጙ�!|'���/������͛7���+��Wu_ի�N�H)����D��^'�j�FĪBĐ,h.�%49� ���0o��fH_ ��C������S�v&/ʁn�z����hɖ��tJ�?ܽ���^�q���6]��^��~�ӣ�&��5���)��G����1��!@��2� �ĺ�ۖz�f� �r��\饊6���?7��=����_�ޓw����ַ��/����;��w'W��7���y���'���^��������j�c ��w�z��CDqbO1�H��!���af��曖c��P2�6,d�h�R�Ѐ���ص�0�h�O~�ί�{r�/����VOM���Vl���^}��5�#��ey_\�3���*1�D7��*J�x�*4+D�ƨ��$���"�,�X���^��SxAJ�pǏv�pǏ�8��G�ݍY�m��e��M��zr\�ǎ1�?L�����N�Ɉq�� X4LI�z��!u$Dw���!P�!�X(3J���⺫~����w>�����*�;o��;�� f��LթѦO{� ��A�?�Mt�z��U�:���z47"��qsH���NDS����@�8ɜn5A7���5e��<�3����a���t�H��`�����_ v:,�~��J�;I����`�U"�*� �af�#�Pp�w�D0�U��S����"V�ka��`�9�z���T��5��^�W/�8���Ogn��l�?������P2⠥��Qs���8���;��A�� T��"�J9%�3��^]�vݫ )����%�@�_��j�B�xɘ9w'��f�T�(�0����-/lp�a��A�Ai�#�aE�N�0NK�m7]���E�;���tz�`@~�$Zɘ`x���D��^1CQ��ƱoN���@�pu,��@�z�%��j�S����6����:ઔ�E�k������)�e� �"����`��h� �"���T����FP�v,GbrJ>5���Z�S T�P'4Q�u���G�l��b*-�+1�8�ʨ>L Uǣ",*��V1�,E��,� �*���U;Ή@�&D��"�Ǐљ�&}a5\)�"J�F0U��3 s�h Б�B�+�isa�����+ ������J)-M�:&��Xɸ� "����y4â�d-���Tr���D@����#�Ȱ(�q��@�����S�<��ܶw�ŧ����UL��ЛYE�*J.�D �B�#�%Cdb�`#�j��0#�qZUT)�h������}7kCPK����V���f�ZaoI��@�PB iA�� ֩�#����F�� Q���>JdŽP�1I��P�"XTlX�E"i����a<�F�oy��F �ж}���g$���HF��AQW\��%SPpCU �����bQ�2��-�PXj %D O�X�pm���a<����[��{��K/E꺦r�B�[9FE���2��g���T(>"�Z@<�hsaЎ�gy�hC��L_)���LMt�����t��zb�|�[{�v��0Fԕ*A"E"'U(�G3.��E��lPSZsD%;١�B�1�rch��&3Ԅ%$��D�9F�b��wƓ9��<�g���쵸^a�Pu���X�d�� &dW�Y5C�I�K!k�_�R2m$*�F �,B���iI)�1=z��O~�2��D^�g%�p�k.���6�3�0-����Q� ��BGQr0�Â��-�*c�ZA�*mCiZ�����v�;�`�d��H=� ����������K�1�Tޕ�i�MG ���d7� MiQ-��i���("����݀̒9Z�"�&�̠��1({�[��]�����+����+�+l�H�ѽ��/���n�oR����m�6R bN�����[Z)�֕A�%��< " 13��2�ptPر�ЉQ2\1��yFG�ϭN�]r��tw<����#��oZ��7S7�v�Q"RȪ����B.�ք֜R m�L��V�F6��Ѵ�hFUY�����?y�0��gt`|8�B�7.<e��@`x�B����� 3SL�M�d��Ҩ�V#KA4#�1%zi ���F�)�Z*���{������� ��ӈ��@8�%땏=}x�NJuS]D�lIiAQBFH�l�*8��U��(�({��y`�S��lgtϰx����x)^ \l�\;=ӛz�����i'��y�����f�&�梵�?�e�[ӫ��Ќ�<��Q�_t���{������2���Zf�W0Z..^\��p��n�p`��s��E�����.F�|�Q��c��G�NXt��r!c"k�d�Yyo�V��^���jW1ʥ�(VV�����1Z"���>6��3���{;ydbv��Xs�<�2N8��0�qY?�fza\�!���9��z�T�r�;������O�9����7��c�2~�ie��8]����щblE˜ �|�����\���������IEND�B`���(uuay)fishbowl.ui����� ������<?xml version="1.0" encoding="UTF-8"?> <interface> <!-- interface-requires gtk+ 3.6 --> <object class="GtkWindow" id="window"> <property name="title" translatable="yes">Fishbowl</property> <child type="titlebar"> <object class="GtkHeaderBar" id=""> <property name="visible">True</property> <property name="show-close-button">True</property> <child> <object class="GtkLabel" id="info_label"> <property name="visible">True</property> <property name="label">icons - 0 fps</property> </object> <packing> <property name="pack_type">end</property> </packing> </child> <child> <object class="GtkLabel"> <property name="visible">True</property> <property name="label" bind-source="bowl" bind-property="count">0</property> </object> <packing> <property name="pack_type">end</property> </packing> </child> <child> <object class="GtkToggleButton" id="changes_allow"> <property name="active">False</property> <property name="visible" bind-source="changes_allow" bind-property="active" bind-flags="invert-boolean">True</property> <property name="relief">none</property> <child> <object class="GtkImage"> <property name="icon-name">changes-allow</property> <property name="visible">True</property> </object> </child> </object> <packing> <property name="pack_type">end</property> </packing> </child> <child> <object class="GtkToggleButton" id="changes_prevent"> <property name="active" bind-source="changes_allow" bind-property="active" bind-flags="bidirectional|invert-boolean">True</property> <property name="visible" bind-source="changes_prevent" bind-property="active" bind-flags="invert-boolean">False</property> <property name="relief">none</property> <child> <object class="GtkImage"> <property name="icon-name">changes-prevent</property> <property name="visible">True</property> </object> </child> </object> <packing> <property name="pack_type">end</property> </packing> </child> </object> </child> <child> <object class="GtkFishbowl" id="bowl"> <property name="visible">True</property> <property name="animating">True</property> </object> </child> </object> </interface> ��(uuay)scale/���o���builder/����css_basics/�~���!���foreigndrawing.c�������/* Foreign drawing * * Many applications can't use GTK+ widgets, for a variety of reasons, * but still want their user interface to appear integrated with the * rest of the desktop, and follow GTK+ themes. This demo shows how to * use GtkStyleContext and the gtk_render_ APIs to achieve this. * * Note that this is a very simple, non-interactive example. */ #include <gtk/gtk.h> #include <string.h> static void append_element (GtkWidgetPath *path, const char *selector) { static const struct { const char *name; GtkStateFlags state_flag; } pseudo_classes[] = { { "active", GTK_STATE_FLAG_ACTIVE }, { "hover", GTK_STATE_FLAG_PRELIGHT }, { "selected", GTK_STATE_FLAG_SELECTED }, { "disabled", GTK_STATE_FLAG_INSENSITIVE }, { "indeterminate", GTK_STATE_FLAG_INCONSISTENT }, { "focus", GTK_STATE_FLAG_FOCUSED }, { "backdrop", GTK_STATE_FLAG_BACKDROP }, { "dir(ltr)", GTK_STATE_FLAG_DIR_LTR }, { "dir(rtl)", GTK_STATE_FLAG_DIR_RTL }, { "link", GTK_STATE_FLAG_LINK }, { "visited", GTK_STATE_FLAG_VISITED }, { "checked", GTK_STATE_FLAG_CHECKED }, { "drop(active)", GTK_STATE_FLAG_DROP_ACTIVE } }; const char *next; char *name; char type; guint i; next = strpbrk (selector, "#.:"); if (next == NULL) next = selector + strlen (selector); name = g_strndup (selector, next - selector); if (g_ascii_isupper (selector[0])) { GType gtype; gtype = g_type_from_name (name); if (gtype == G_TYPE_INVALID) { g_critical ("Unknown type name `%s'", name); g_free (name); return; } gtk_widget_path_append_type (path, gtype); } else { /* Omit type, we're using name */ gtk_widget_path_append_type (path, G_TYPE_NONE); gtk_widget_path_iter_set_object_name (path, -1, name); } g_free (name); while (*next != '\0') { type = *next; selector = next + 1; next = strpbrk (selector, "#.:"); if (next == NULL) next = selector + strlen (selector); name = g_strndup (selector, next - selector); switch (type) { case '#': gtk_widget_path_iter_set_name (path, -1, name); break; case '.': gtk_widget_path_iter_add_class (path, -1, name); break; case ':': for (i = 0; i < G_N_ELEMENTS (pseudo_classes); i++) { if (g_str_equal (pseudo_classes[i].name, name)) { gtk_widget_path_iter_set_state (path, -1, gtk_widget_path_iter_get_state (path, -1) | pseudo_classes[i].state_flag); break; } } if (i == G_N_ELEMENTS (pseudo_classes)) g_critical ("Unknown pseudo-class :%s", name); break; default: g_assert_not_reached (); break; } g_free (name); } } static GtkStyleContext * create_context_for_path (GtkWidgetPath *path, GtkStyleContext *parent) { GtkStyleContext *context; context = gtk_style_context_new (); gtk_style_context_set_path (context, path); gtk_style_context_set_parent (context, parent); /* Unfortunately, we have to explicitly set the state again here * for it to take effect */ gtk_style_context_set_state (context, gtk_widget_path_iter_get_state (path, -1)); gtk_widget_path_unref (path); return context; } static GtkStyleContext * get_style (GtkStyleContext *parent, const char *selector) { GtkWidgetPath *path; if (parent) path = gtk_widget_path_copy (gtk_style_context_get_path (parent)); else path = gtk_widget_path_new (); append_element (path, selector); return create_context_for_path (path, parent); } static GtkStyleContext * get_style_with_siblings (GtkStyleContext *parent, const char *selector, const char **siblings, gint position) { GtkWidgetPath *path, *siblings_path; guint i; if (parent) path = gtk_widget_path_copy (gtk_style_context_get_path (parent)); else path = gtk_widget_path_new (); siblings_path = gtk_widget_path_new (); for (i = 0; siblings[i]; i++) append_element (siblings_path, siblings[i]); gtk_widget_path_append_with_siblings (path, siblings_path, position); gtk_widget_path_unref (siblings_path); return create_context_for_path (path, parent); } static void draw_style_common (GtkStyleContext *context, cairo_t *cr, gint x, gint y, gint width, gint height, gint *contents_x, gint *contents_y, gint *contents_width, gint *contents_height) { GtkBorder margin, border, padding; int min_width, min_height; gtk_style_context_get_margin (context, gtk_style_context_get_state (context), &margin); gtk_style_context_get_border (context, gtk_style_context_get_state (context), &border); gtk_style_context_get_padding (context, gtk_style_context_get_state (context), &padding); gtk_style_context_get (context, gtk_style_context_get_state (context), "min-width", &min_width, "min-height", &min_height, NULL); x += margin.left; y += margin.top; width -= margin.left + margin.right; height -= margin.top + margin.bottom; width = MAX (width, min_width); height = MAX (height, min_height); gtk_render_background (context, cr, x, y, width, height); gtk_render_frame (context, cr, x, y, width, height); if (contents_x) *contents_x = x + border.left + padding.left; if (contents_y) *contents_y = y + border.top + padding.top; if (contents_width) *contents_width = width - border.left - border.right - padding.left - padding.right; if (contents_height) *contents_height = height - border.top - border.bottom - padding.top - padding.bottom; } static void query_size (GtkStyleContext *context, gint *width, gint *height) { GtkBorder margin, border, padding; int min_width, min_height; gtk_style_context_get_margin (context, gtk_style_context_get_state (context), &margin); gtk_style_context_get_border (context, gtk_style_context_get_state (context), &border); gtk_style_context_get_padding (context, gtk_style_context_get_state (context), &padding); gtk_style_context_get (context, gtk_style_context_get_state (context), "min-width", &min_width, "min-height", &min_height, NULL); min_width += margin.left + margin.right + border.left + border.right + padding.left + padding.right; min_height += margin.top + margin.bottom + border.top + border.bottom + padding.top + padding.bottom; if (width) *width = MAX (*width, min_width); if (height) *height = MAX (*height, min_height); } static void draw_menu (GtkWidget *widget, cairo_t *cr, gint x, gint y, gint width, gint *height) { GtkStyleContext *menu_context; GtkStyleContext *menuitem_context; GtkStyleContext *hovermenuitem_context; GtkStyleContext *hoveredarrowmenuitem_context; GtkStyleContext *arrowmenuitem_context; GtkStyleContext *checkmenuitem_context; GtkStyleContext *disabledarrowmenuitem_context; GtkStyleContext *disabledcheckmenuitem_context; GtkStyleContext *radiomenuitem_context; GtkStyleContext *disablemenuitem_context; GtkStyleContext *disabledradiomenuitem_context; GtkStyleContext *separatormenuitem_context; gint menuitem1_height, menuitem2_height, menuitem3_height, menuitem4_height, menuitem5_height; gint contents_x, contents_y, contents_width, contents_height; gint menu_x, menu_y, menu_width, menu_height; gint arrow_width, arrow_height, arrow_size; gint toggle_x, toggle_y, toggle_width, toggle_height; /* This information is taken from the GtkMenu docs, see "CSS nodes" */ menu_context = get_style (gtk_widget_get_style_context(widget), "menu"); hovermenuitem_context = get_style (menu_context, "menuitem:hover"); hoveredarrowmenuitem_context = get_style (hovermenuitem_context, "arrow.right:dir(ltr)"); menuitem_context = get_style (menu_context, "menuitem"); arrowmenuitem_context = get_style (menuitem_context, "arrow:dir(rtl)"); disablemenuitem_context = get_style (menu_context, "menuitem:disabled"); disabledarrowmenuitem_context = get_style (disablemenuitem_context, "arrow:dir(rtl)"); checkmenuitem_context = get_style (menuitem_context, "check:checked"); disabledcheckmenuitem_context = get_style (disablemenuitem_context, "check"); separatormenuitem_context = get_style (menu_context, "separator:disabled"); radiomenuitem_context = get_style (menuitem_context, "radio:checked"); disabledradiomenuitem_context = get_style (disablemenuitem_context, "radio"); *height = 0; query_size (menu_context, NULL, height); menuitem1_height = 0; query_size (hovermenuitem_context, NULL, &menuitem1_height); query_size (hoveredarrowmenuitem_context, NULL, &menuitem1_height); *height += menuitem1_height; menuitem2_height = 0; query_size (menu_context, NULL, &menuitem5_height); query_size (menuitem_context, NULL, &menuitem2_height); query_size (arrowmenuitem_context, NULL, &menuitem2_height); query_size (disabledarrowmenuitem_context, NULL, &menuitem2_height); *height += menuitem2_height; menuitem3_height = 0; query_size (menu_context, NULL, &menuitem5_height); query_size (menuitem_context, NULL, &menuitem3_height); query_size (checkmenuitem_context, NULL, &menuitem3_height); query_size (disabledcheckmenuitem_context, NULL, &menuitem3_height); *height += menuitem3_height; menuitem4_height = 0; query_size (menu_context, NULL, &menuitem5_height); query_size (separatormenuitem_context, NULL, &menuitem4_height); *height += menuitem4_height; menuitem5_height = 0; query_size (menu_context, NULL, &menuitem5_height); query_size (menuitem_context, NULL, &menuitem5_height); query_size (radiomenuitem_context, NULL, &menuitem5_height); query_size (disabledradiomenuitem_context, NULL, &menuitem5_height); *height += menuitem5_height; draw_style_common (menu_context, cr, x, y, width, *height, &menu_x, &menu_y, &menu_width, &menu_height); /* Hovered with right arrow */ gtk_style_context_get (hoveredarrowmenuitem_context, gtk_style_context_get_state (hoveredarrowmenuitem_context), "min-width", &arrow_width, "min-height", &arrow_height, NULL); arrow_size = MIN (arrow_width, arrow_height); draw_style_common (hovermenuitem_context, cr, menu_x, menu_y, menu_width, menuitem1_height, &contents_x, &contents_y, &contents_width, &contents_height); gtk_render_arrow (hoveredarrowmenuitem_context, cr, G_PI / 2, contents_x + contents_width - arrow_size, contents_y + (contents_height - arrow_size) / 2, arrow_size); /* Left arrow sensitive, and right arrow insensitive */ draw_style_common (menuitem_context, cr, menu_x, menu_y + menuitem1_height, menu_width, menuitem2_height, &contents_x, &contents_y, &contents_width, &contents_height); gtk_style_context_get (arrowmenuitem_context, gtk_style_context_get_state (arrowmenuitem_context), "min-width", &arrow_width, "min-height", &arrow_height, NULL); arrow_size = MIN (arrow_width, arrow_height); gtk_render_arrow (arrowmenuitem_context, cr, G_PI / 2, contents_x, contents_y + (contents_height - arrow_size) / 2, arrow_size); gtk_style_context_get (disabledarrowmenuitem_context, gtk_style_context_get_state (disabledarrowmenuitem_context), "min-width", &arrow_width, "min-height", &arrow_height, NULL); arrow_size = MIN (arrow_width, arrow_height); gtk_render_arrow (disabledarrowmenuitem_context, cr, G_PI / 2, contents_x + contents_width - arrow_size, contents_y + (contents_height - arrow_size) / 2, arrow_size); /* Left check enabled, sensitive, and right check unchecked, insensitive */ draw_style_common (menuitem_context, cr, menu_x, menu_y + menuitem1_height + menuitem2_height, menu_width, menuitem3_height, &contents_x, &contents_y, &contents_width, &contents_height); gtk_style_context_get (checkmenuitem_context, gtk_style_context_get_state (checkmenuitem_context), "min-width", &toggle_width, "min-height", &toggle_height, NULL); draw_style_common (checkmenuitem_context, cr, contents_x, contents_y, toggle_width, toggle_height, &toggle_x, &toggle_y, &toggle_width, &toggle_height); gtk_render_check (checkmenuitem_context, cr, toggle_x, toggle_y, toggle_width, toggle_height); gtk_style_context_get (disabledcheckmenuitem_context, gtk_style_context_get_state (disabledcheckmenuitem_context), "min-width", &toggle_width, "min-height", &toggle_height, NULL); draw_style_common (disabledcheckmenuitem_context, cr, contents_x + contents_width - toggle_width, contents_y, toggle_width, toggle_height, &toggle_x, &toggle_y, &toggle_width, &toggle_height); gtk_render_check (disabledcheckmenuitem_context, cr, toggle_x, toggle_y, toggle_width, toggle_height); /* Separator */ draw_style_common (separatormenuitem_context, cr, menu_x, menu_y + menuitem1_height + menuitem2_height + menuitem3_height, menu_width, menuitem4_height, NULL, NULL, NULL, NULL); /* Left check enabled, sensitive, and right check unchecked, insensitive */ draw_style_common (menuitem_context, cr, menu_x, menu_y + menuitem1_height + menuitem2_height + menuitem3_height + menuitem4_height, menu_width, menuitem5_height, &contents_x, &contents_y, &contents_width, &contents_height); gtk_style_context_get (radiomenuitem_context, gtk_style_context_get_state (radiomenuitem_context), "min-width", &toggle_width, "min-height", &toggle_height, NULL); draw_style_common (radiomenuitem_context, cr, contents_x, contents_y, toggle_width, toggle_height, &toggle_x, &toggle_y, &toggle_width, &toggle_height); gtk_render_check (radiomenuitem_context, cr, toggle_x, toggle_y, toggle_width, toggle_height); gtk_style_context_get (disabledradiomenuitem_context, gtk_style_context_get_state (disabledradiomenuitem_context), "min-width", &toggle_width, "min-height", &toggle_height, NULL); draw_style_common (disabledradiomenuitem_context, cr, contents_x + contents_width - toggle_width, contents_y, toggle_width, toggle_height, &toggle_x, &toggle_y, &toggle_width, &toggle_height); gtk_render_check (disabledradiomenuitem_context, cr, toggle_x, toggle_y, toggle_width, toggle_height); g_object_unref (menu_context); g_object_unref (menuitem_context); g_object_unref (hovermenuitem_context); g_object_unref (hoveredarrowmenuitem_context); g_object_unref (arrowmenuitem_context); g_object_unref (checkmenuitem_context); g_object_unref (disabledarrowmenuitem_context); g_object_unref (disabledcheckmenuitem_context); g_object_unref (radiomenuitem_context); g_object_unref (disablemenuitem_context); g_object_unref (disabledradiomenuitem_context); g_object_unref (separatormenuitem_context); } static void draw_menubar (GtkWidget *widget, cairo_t *cr, gint x, gint y, gint width, gint *height) { GtkStyleContext *frame_context; GtkStyleContext *border_context; GtkStyleContext *menubar_context; GtkStyleContext *hovered_menuitem_context; GtkStyleContext *menuitem_context; gint contents_x, contents_y, contents_width, contents_height; gint item_width; /* Menubar background is the same color as our base background, so use a frame */ frame_context = get_style (NULL, "frame"); border_context = get_style (frame_context, "border"); /* This information is taken from the GtkMenuBar docs, see "CSS nodes" */ menubar_context = get_style (NULL, "menubar"); hovered_menuitem_context = get_style (menubar_context, "menuitem:hover"); menuitem_context = get_style (menubar_context, "menuitem"); *height = 0; query_size (frame_context, NULL, height); query_size (border_context, NULL, height); query_size (menubar_context, NULL, height); query_size (hovered_menuitem_context, NULL, height); query_size (menuitem_context, NULL, height); draw_style_common (frame_context, cr, x, y, width, *height, NULL, NULL, NULL, NULL); draw_style_common (border_context, cr, x, y, width, *height, &contents_x, &contents_y, &contents_width, &contents_height); draw_style_common (menubar_context, cr, contents_x, contents_y, contents_width, contents_height, NULL, NULL, NULL, NULL); item_width = contents_width / 3; draw_style_common (hovered_menuitem_context, cr, contents_x, contents_y, item_width, contents_height, NULL, NULL, NULL, NULL); draw_style_common (menuitem_context, cr, contents_x + item_width * 2, contents_y, item_width, contents_height, NULL, NULL, NULL, NULL); g_object_unref (menuitem_context); g_object_unref (hovered_menuitem_context); g_object_unref (menubar_context); g_object_unref (border_context); g_object_unref (frame_context); } static void draw_notebook (GtkWidget *widget, cairo_t *cr, gint x, gint y, gint width, gint height) { GtkStyleContext *notebook_context; GtkStyleContext *header_context; GtkStyleContext *tabs_context; GtkStyleContext *tab1_context, *tab2_context; GtkStyleContext *stack_context; gint header_height; gint contents_x, contents_y, contents_width, contents_height; /* This information is taken from the GtkNotebook docs, see "CSS nodes" */ notebook_context = get_style (NULL, "notebook.frame"); header_context = get_style (notebook_context, "header.top"); tabs_context = get_style (header_context, "tabs"); tab1_context = get_style (tabs_context, "tab:checked"); tab2_context = get_style (tabs_context, "tab:hover"); stack_context = get_style (notebook_context, "stack"); header_height = 0; query_size (notebook_context, NULL, &header_height); query_size (header_context, NULL, &header_height); query_size (tabs_context, NULL, &header_height); query_size (tab1_context, NULL, &header_height); query_size (tab2_context, NULL, &header_height); draw_style_common (notebook_context, cr, x, y, width, height, NULL, NULL, NULL, NULL); draw_style_common (header_context, cr, x, y, width, header_height, NULL, NULL, NULL, NULL); draw_style_common (tabs_context, cr, x, y, width, header_height, NULL, NULL, NULL, NULL); draw_style_common (tab1_context, cr, x, y, width / 2, header_height, &contents_x, &contents_y, &contents_width, &contents_height); draw_style_common (tab2_context, cr, x + width / 2, y, width / 2, header_height, NULL, NULL, NULL, NULL); draw_style_common (stack_context, cr, x, y + header_height, width,height - header_height, NULL, NULL, NULL, NULL); g_object_unref (stack_context); g_object_unref (tabs_context); g_object_unref (tab1_context); g_object_unref (tab2_context); g_object_unref (header_context); g_object_unref (notebook_context); } static void draw_horizontal_scrollbar (GtkWidget *widget, cairo_t *cr, gint x, gint y, gint width, gint position, GtkStateFlags state, gint *height) { GtkStyleContext *scrollbar_context; GtkStyleContext *contents_context; GtkStyleContext *trough_context; GtkStyleContext *slider_context; gint slider_width; /* This information is taken from the GtkScrollbar docs, see "CSS nodes" */ scrollbar_context = get_style (NULL, "scrollbar.horizontal.bottom"); contents_context = get_style (scrollbar_context, "contents"); trough_context = get_style (contents_context, "trough"); slider_context = get_style (trough_context, "slider"); gtk_style_context_set_state (scrollbar_context, state); gtk_style_context_set_state (contents_context, state); gtk_style_context_set_state (trough_context, state); gtk_style_context_set_state (slider_context, state); *height = 0; query_size (scrollbar_context, NULL, height); query_size (contents_context, NULL, height); query_size (trough_context, NULL, height); query_size (slider_context, NULL, height); gtk_style_context_get (slider_context, gtk_style_context_get_state (slider_context), "min-width", &slider_width, NULL); draw_style_common (scrollbar_context, cr, x, y, width, *height, NULL, NULL, NULL, NULL); draw_style_common (contents_context, cr, x, y, width, *height, NULL, NULL, NULL, NULL); draw_style_common (trough_context, cr, x, y, width, *height, NULL, NULL, NULL, NULL); draw_style_common (slider_context, cr, x + position, y, slider_width, *height, NULL, NULL, NULL, NULL); g_object_unref (slider_context); g_object_unref (trough_context); g_object_unref (contents_context); g_object_unref (scrollbar_context); } static void draw_text (GtkWidget *widget, cairo_t *cr, gint x, gint y, gint width, gint height, const gchar *text, GtkStateFlags state) { GtkStyleContext *label_context; GtkStyleContext *selection_context; GtkStyleContext *context; PangoLayout *layout; /* This information is taken from the GtkLabel docs, see "CSS nodes" */ label_context = get_style (NULL, "label.view"); selection_context = get_style (label_context, "selection"); gtk_style_context_set_state (label_context, state); if (state & GTK_STATE_FLAG_SELECTED) context = selection_context; else context = label_context; layout = gtk_widget_create_pango_layout (widget, text); gtk_render_background (context, cr, x, y, width, height); gtk_render_frame (context, cr, x, y, width, height); gtk_render_layout (context, cr, x, y, layout); g_object_unref (layout); g_object_unref (selection_context); g_object_unref (label_context); } static void draw_check (GtkWidget *widget, cairo_t *cr, gint x, gint y, GtkStateFlags state, gint *width, gint *height) { GtkStyleContext *button_context; GtkStyleContext *check_context; gint contents_x, contents_y, contents_width, contents_height; /* This information is taken from the GtkCheckButton docs, see "CSS nodes" */ button_context = get_style (NULL, "checkbutton"); check_context = get_style (button_context, "check"); gtk_style_context_set_state (check_context, state); *width = *height = 0; query_size (button_context, width, height); query_size (check_context, width, height); draw_style_common (button_context, cr, x, y, *width, *height, NULL, NULL, NULL, NULL); draw_style_common (check_context, cr, x, y, *width, *height, &contents_x, &contents_y, &contents_width, &contents_height); gtk_render_check (check_context, cr, contents_x, contents_y, contents_width, contents_height); g_object_unref (check_context); g_object_unref (button_context); } static void draw_radio (GtkWidget *widget, cairo_t *cr, gint x, gint y, GtkStateFlags state, gint *width, gint *height) { GtkStyleContext *button_context; GtkStyleContext *check_context; gint contents_x, contents_y, contents_width, contents_height; /* This information is taken from the GtkRadioButton docs, see "CSS nodes" */ button_context = get_style (NULL, "radiobutton"); check_context = get_style (button_context, "radio"); gtk_style_context_set_state (check_context, state); *width = *height = 0; query_size (button_context, width, height); query_size (check_context, width, height); draw_style_common (button_context, cr, x, y, *width, *height, NULL, NULL, NULL, NULL); draw_style_common (check_context, cr, x, y, *width, *height, &contents_x, &contents_y, &contents_width, &contents_height); gtk_render_check (check_context, cr, contents_x, contents_y, contents_width, contents_height); g_object_unref (check_context); g_object_unref (button_context); } static void draw_progress (GtkWidget *widget, cairo_t *cr, gint x, gint y, gint width, gint position, gint *height) { GtkStyleContext *bar_context; GtkStyleContext *trough_context; GtkStyleContext *progress_context; /* This information is taken from the GtkProgressBar docs, see "CSS nodes" */ bar_context = get_style (NULL, "progressbar.horizontal"); trough_context = get_style (bar_context, "trough"); progress_context = get_style (trough_context, "progress.left"); *height = 0; query_size (bar_context, NULL, height); query_size (trough_context, NULL, height); query_size (progress_context, NULL, height); draw_style_common (bar_context, cr, x, y, width, *height, NULL, NULL, NULL, NULL); draw_style_common (trough_context, cr, x, y, width, *height, NULL, NULL, NULL, NULL); draw_style_common (progress_context, cr, x, y, position, *height, NULL, NULL, NULL, NULL); g_object_unref (progress_context); g_object_unref (trough_context); g_object_unref (bar_context); } static void draw_scale (GtkWidget *widget, cairo_t *cr, gint x, gint y, gint width, gint position, gint *height) { GtkStyleContext *scale_context; GtkStyleContext *contents_context; GtkStyleContext *trough_context; GtkStyleContext *slider_context; GtkStyleContext *highlight_context; gint contents_x, contents_y, contents_width, contents_height; gint trough_height, slider_height; scale_context = get_style (NULL, "scale.horizontal"); contents_context = get_style (scale_context, "contents"); trough_context = get_style (contents_context, "trough"); slider_context = get_style (trough_context, "slider"); highlight_context = get_style (trough_context, "highlight.top"); *height = 0; query_size (scale_context, NULL, height); query_size (contents_context, NULL, height); query_size (trough_context, NULL, height); query_size (slider_context, NULL, height); query_size (highlight_context, NULL, height); draw_style_common (scale_context, cr, x, y, width, *height, &contents_x, &contents_y, &contents_width, &contents_height); draw_style_common (contents_context, cr, contents_x, contents_y, contents_width, contents_height, &contents_x, &contents_y, &contents_width, &contents_height); /* Scale trough defines its size querying slider and highlight */ trough_height = 0; query_size (trough_context, NULL, &trough_height); slider_height = 0; query_size (slider_context, NULL, &slider_height); query_size (highlight_context, NULL, &slider_height); trough_height += slider_height; draw_style_common (trough_context, cr, contents_x, contents_y, contents_width, trough_height, &contents_x, &contents_y, &contents_width, &contents_height); draw_style_common (highlight_context, cr, contents_x, contents_y, contents_width / 2, contents_height, NULL, NULL, NULL, NULL); draw_style_common (slider_context, cr, contents_x + position, contents_y, contents_height, contents_height, NULL, NULL, NULL, NULL); g_object_unref (scale_context); g_object_unref (contents_context); g_object_unref (trough_context); g_object_unref (slider_context); g_object_unref (highlight_context); } static void draw_combobox (GtkWidget *widget, cairo_t *cr, gint x, gint y, gint width, gboolean has_entry, gint *height) { GtkStyleContext *combo_context; GtkStyleContext *box_context; GtkStyleContext *button_context; GtkStyleContext *button_box_context; GtkStyleContext *entry_context; GtkStyleContext *arrow_context; gint contents_x, contents_y, contents_width, contents_height; gint button_width; gint arrow_width, arrow_height, arrow_size; /* This information is taken from the GtkComboBox docs, see "CSS nodes" */ combo_context = get_style (NULL, "combobox:focus"); box_context = get_style (combo_context, "box.horizontal.linked"); if (has_entry) { const char *siblings[3] = { "entry.combo:focus", "button.combo" , NULL }; entry_context = get_style_with_siblings (box_context, "entry.combo:focus", siblings, 0); button_context = get_style_with_siblings (box_context, "button.combo", siblings, 1); } else { const char *siblings[2] = { "button.combo" , NULL }; button_context = get_style_with_siblings (box_context, "button.combo", siblings, 0); } button_box_context = get_style (button_context, "box.horizontal"); arrow_context = get_style (button_box_context, "arrow"); *height = 0; query_size (combo_context, NULL, height); query_size (box_context, NULL, height); if (has_entry) query_size (entry_context, NULL, height); query_size (button_context, NULL, height); query_size (button_box_context, NULL, height); query_size (arrow_context, NULL, height); gtk_style_context_get (arrow_context, gtk_style_context_get_state (arrow_context), "min-width", &arrow_width, "min-height", &arrow_height, NULL); arrow_size = MIN (arrow_width, arrow_height); draw_style_common (combo_context, cr, x, y, width, *height, NULL, NULL, NULL, NULL); draw_style_common (box_context, cr, x, y, width, *height, NULL, NULL, NULL, NULL); if (has_entry) { button_width = *height; draw_style_common (entry_context, cr, x, y, width - button_width, *height, NULL, NULL, NULL, NULL); draw_style_common (button_context, cr, x + width - button_width, y, button_width, *height, &contents_x, &contents_y, &contents_width, &contents_height); } else { button_width = width; draw_style_common (button_context, cr, x, y, width, *height, &contents_x, &contents_y, &contents_width, &contents_height); } draw_style_common (button_box_context, cr, contents_x, contents_y, contents_width, contents_height, NULL, NULL, NULL, NULL); draw_style_common (arrow_context, cr, contents_x, contents_y, contents_width, contents_height, NULL, NULL, NULL, NULL); gtk_render_arrow (arrow_context, cr, G_PI / 2, contents_x + contents_width - arrow_size, contents_y + (contents_height - arrow_size) / 2, arrow_size); g_object_unref (arrow_context); if (has_entry) g_object_unref (entry_context); g_object_unref (button_context); g_object_unref (combo_context); } static void draw_spinbutton (GtkWidget *widget, cairo_t *cr, gint x, gint y, gint width, gint *height) { GtkStyleContext *spin_context; GtkStyleContext *entry_context; GtkStyleContext *up_context; GtkStyleContext *down_context; GtkIconTheme *icon_theme; GtkIconInfo *icon_info; GdkPixbuf *pixbuf; gint icon_width, icon_height, icon_size; gint button_width; gint contents_x, contents_y, contents_width, contents_height; /* This information is taken from the GtkSpinButton docs, see "CSS nodes" */ spin_context = get_style (NULL, "spinbutton.horizontal:focus"); entry_context = get_style (spin_context, "entry:focus"); up_context = get_style (spin_context, "button.up:focus:active"); down_context = get_style (spin_context, "button.down:focus"); *height = 0; query_size (spin_context, NULL, height); query_size (entry_context, NULL, height); query_size (up_context, NULL, height); query_size (down_context, NULL, height); button_width = *height; draw_style_common (spin_context, cr, x, y, width, *height, NULL, NULL, NULL, NULL); draw_style_common (entry_context, cr, x, y, width, *height, NULL, NULL, NULL, NULL); icon_theme = gtk_icon_theme_get_for_screen (gtk_widget_get_screen (widget)); gtk_style_context_get (up_context, gtk_style_context_get_state (up_context), "min-width", &icon_width, "min-height", &icon_height, NULL); icon_size = MIN (icon_width, icon_height); icon_info = gtk_icon_theme_lookup_icon (icon_theme, "list-add-symbolic", icon_size, 0); pixbuf = gtk_icon_info_load_symbolic_for_context (icon_info, up_context, NULL, NULL); g_object_unref (icon_info); draw_style_common (up_context, cr, x + width - button_width, y, button_width, *height, &contents_x, &contents_y, &contents_width, &contents_height); gtk_render_icon (up_context, cr, pixbuf, contents_x, contents_y + (contents_height - icon_size) / 2); g_object_unref (pixbuf); gtk_style_context_get (down_context, gtk_style_context_get_state (down_context), "min-width", &icon_width, "min-height", &icon_height, NULL); icon_size = MIN (icon_width, icon_height); icon_info = gtk_icon_theme_lookup_icon (icon_theme, "list-remove-symbolic", icon_size, 0); pixbuf = gtk_icon_info_load_symbolic_for_context (icon_info, down_context, NULL, NULL); g_object_unref (icon_info); draw_style_common (down_context, cr, x + width - 2 * button_width, y, button_width, *height, &contents_x, &contents_y, &contents_width, &contents_height); gtk_render_icon (down_context, cr, pixbuf, contents_x, contents_y + (contents_height - icon_size) / 2); g_object_unref (pixbuf); g_object_unref (down_context); g_object_unref (up_context); g_object_unref (entry_context); g_object_unref (spin_context); } static gboolean draw_cb (GtkWidget *widget, cairo_t *cr) { gint panewidth, width, height; gint x, y; width = gtk_widget_get_allocated_width (widget); panewidth = width / 2; height = gtk_widget_get_allocated_height (widget); cairo_rectangle (cr, 0, 0, width, height); cairo_set_source_rgb (cr, 0.9, 0.9, 0.9); cairo_fill (cr); x = y = 10; draw_horizontal_scrollbar (widget, cr, x, y, panewidth - 20, 30, GTK_STATE_FLAG_NORMAL, &height); y += height + 8; draw_horizontal_scrollbar (widget, cr, x, y, panewidth - 20, 40, GTK_STATE_FLAG_PRELIGHT, &height); y += height + 8; draw_horizontal_scrollbar (widget, cr, x, y, panewidth - 20, 50, GTK_STATE_FLAG_ACTIVE|GTK_STATE_FLAG_PRELIGHT, &height); y += height + 8; draw_text (widget, cr, x, y, panewidth - 20, 20, "Not selected", GTK_STATE_FLAG_NORMAL); y += 20 + 10; draw_text (widget, cr, x, y, panewidth - 20, 20, "Selected", GTK_STATE_FLAG_SELECTED); x = 10; y += 20 + 10; draw_check (widget, cr, x, y, GTK_STATE_FLAG_NORMAL, &width, &height); x += width + 10; draw_check (widget, cr, x, y, GTK_STATE_FLAG_CHECKED, &width, &height); x += width + 10; draw_radio (widget, cr, x, y, GTK_STATE_FLAG_NORMAL, &width, &height); x += width + 10; draw_radio (widget, cr, x, y, GTK_STATE_FLAG_CHECKED, &width, &height); x = 10; y += height + 10; draw_progress (widget, cr, x, y, panewidth - 20, 50, &height); y += height + 10; draw_scale (widget, cr, x, y, panewidth - 20, 75, &height); y += height + 20; draw_notebook (widget, cr, x, y, panewidth - 20, 160); /* Second column */ x += panewidth; y = 10; draw_menu (widget, cr, x, y, panewidth - 20, &height); y += height + 10; draw_menubar (widget, cr, x, y, panewidth - 20, &height); y += height + 20; draw_spinbutton (widget, cr, x, y, panewidth - 20, &height); y += height + 30; draw_combobox (widget, cr, x, y, panewidth - 20, FALSE, &height); y += height + 10; draw_combobox (widget, cr, 10 + panewidth, y, panewidth - 20, TRUE, &height); return FALSE; } GtkWidget * do_foreigndrawing (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *box; GtkWidget *da; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "Foreign drawing"); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 10); gtk_container_add (GTK_CONTAINER (window), box); da = gtk_drawing_area_new (); gtk_widget_set_size_request (da, 400, 400); gtk_widget_set_hexpand (da, TRUE); gtk_widget_set_vexpand (da, TRUE); gtk_widget_set_app_paintable (da, TRUE); gtk_container_add (GTK_CONTAINER (box), da); g_signal_connect (da, "draw", G_CALLBACK (draw_cb), NULL); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)shortcuts-boxes.ui�������x������<?xml version="1.0" encoding="UTF-8"?> <interface> <!-- interface-requires gtk+ 3.17 --> <object class="GtkShortcutsWindow" id="shortcuts-boxes"> <property name="modal">1</property> <child> <object class="GtkShortcutsSection"> <property name="visible">1</property> <property name="section-name">shortcuts</property> <property name="max-height">12</property> <!-- Overview shortcuts --> <child> <object class="GtkShortcutsGroup"> <property name="visible">1</property> <property name="title" translatable="yes">Overview</property> <property name="view">overview</property> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator">F1</property> <property name="title" translatable="yes">Help</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><Ctrl>n</property> <property name="title" translatable="yes">Create a new box</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><Ctrl>f</property> <property name="title" translatable="yes">Search</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><Ctrl>k</property> <property name="title" translatable="yes">Keyboard shortcuts</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><Ctrl>q</property> <property name="title" translatable="yes">Close Window/Quit Boxes</property> </object> </child> </object> </child> <!-- Wizard and Properties shortcuts --> <child> <object class="GtkShortcutsGroup"> <property name="visible">1</property> <property name="title" translatable="yes">Box Creation and Properties</property> <property name="view">wizard</property> <!-- LTR --> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="direction">ltr</property> <property name="accelerator"><Alt>Right</property> <property name="title" translatable="yes">Switch to the next page</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="direction">ltr</property> <property name="accelerator"><Alt>Left</property> <property name="title" translatable="yes">Switch to the previous page</property> </object> </child> <!-- RTL --> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="direction">rtl</property> <property name="accelerator"><Alt>Left</property> <property name="title" translatable="yes">Switch to the next page</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="direction">rtl</property> <property name="accelerator"><Alt>Right</property> <property name="title" translatable="yes">Switch to the previous page</property> </object> </child> </object> </child> <!-- Display shortcuts --> <child> <object class="GtkShortcutsGroup"> <property name="visible">1</property> <property name="title" translatable="yes">Box Display</property> <property name="view">display</property> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator">Control_L+Alt_L</property> <property name="title" translatable="yes">Grab/Ungrab keyboard</property> </object> </child> <!-- LTR --> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="direction">ltr</property> <property name="accelerator"><Alt>Left</property> <property name="title" translatable="yes">Back to overview</property> </object> </child> <!-- RTL --> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="direction">rtl</property> <property name="accelerator"><Alt>Right</property> <property name="title" translatable="yes">Back to overview</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><Ctrl>q</property> <property name="title" translatable="yes">Close window/Quit Boxes</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator">F11</property> <property name="title" translatable="yes">Fullscreen/Restore from fullscreen</property> </object> </child> </object> </child> </object> </child> </object> </interface> ��(uuay)popover.c��������������/* Popovers * * A bubble-like window containing contextual information or options. * GtkPopovers can be attached to any widget, and will be displayed * within the same window, but on top of all its content. */ #include <gtk/gtk.h> static void toggle_changed_cb (GtkToggleButton *button, GtkWidget *popover) { gtk_widget_set_visible (popover, gtk_toggle_button_get_active (button)); } static GtkWidget * create_popover (GtkWidget *parent, GtkWidget *child, GtkPositionType pos) { GtkWidget *popover; popover = gtk_popover_new (parent); gtk_popover_set_position (GTK_POPOVER (popover), pos); gtk_container_add (GTK_CONTAINER (popover), child); gtk_container_set_border_width (GTK_CONTAINER (popover), 6); gtk_widget_show (child); return popover; } static GtkWidget * create_complex_popover (GtkWidget *parent, GtkPositionType pos) { GtkWidget *popover, *window, *content; GtkBuilder *builder; builder = gtk_builder_new (); gtk_builder_add_from_resource (builder, "/popover/popover.ui", NULL); window = GTK_WIDGET (gtk_builder_get_object (builder, "window")); content = gtk_bin_get_child (GTK_BIN (window)); g_object_ref (content); gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (content)), content); gtk_widget_destroy (window); g_object_unref (builder); popover = create_popover (parent, content, GTK_POS_BOTTOM); g_object_unref (content); return popover; } static void entry_size_allocate_cb (GtkEntry *entry, GtkAllocation *allocation, gpointer user_data) { GtkEntryIconPosition popover_pos; GtkPopover *popover = user_data; cairo_rectangle_int_t rect; if (gtk_widget_is_visible (GTK_WIDGET (popover))) { popover_pos = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (entry), "popover-icon-pos")); gtk_entry_get_icon_area (entry, popover_pos, &rect); gtk_popover_set_pointing_to (GTK_POPOVER (popover), &rect); } } static void entry_icon_press_cb (GtkEntry *entry, GtkEntryIconPosition icon_pos, GdkEvent *event, gpointer user_data) { GtkWidget *popover = user_data; cairo_rectangle_int_t rect; gtk_entry_get_icon_area (entry, icon_pos, &rect); gtk_popover_set_pointing_to (GTK_POPOVER (popover), &rect); gtk_widget_show (popover); g_object_set_data (G_OBJECT (entry), "popover-icon-pos", GUINT_TO_POINTER (icon_pos)); } static void day_selected_cb (GtkCalendar *calendar, gpointer user_data) { cairo_rectangle_int_t rect; GtkAllocation allocation; GtkWidget *popover; GdkEvent *event; event = gtk_get_current_event (); if (event->type != GDK_BUTTON_PRESS) return; gdk_window_coords_to_parent (event->button.window, event->button.x, event->button.y, &event->button.x, &event->button.y); gtk_widget_get_allocation (GTK_WIDGET (calendar), &allocation); rect.x = event->button.x - allocation.x; rect.y = event->button.y - allocation.y; rect.width = rect.height = 1; popover = create_popover (GTK_WIDGET (calendar), gtk_entry_new (), GTK_POS_BOTTOM); gtk_popover_set_pointing_to (GTK_POPOVER (popover), &rect); gtk_widget_show (popover); gdk_event_free (event); } GtkWidget * do_popover (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *popover, *box, *widget; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 24); gtk_container_set_border_width (GTK_CONTAINER (box), 24); gtk_container_add (GTK_CONTAINER (window), box); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); widget = gtk_toggle_button_new_with_label ("Button"); popover = create_popover (widget, gtk_label_new ("This popover does not grab input"), GTK_POS_TOP); gtk_popover_set_modal (GTK_POPOVER (popover), FALSE); g_signal_connect (widget, "toggled", G_CALLBACK (toggle_changed_cb), popover); gtk_container_add (GTK_CONTAINER (box), widget); widget = gtk_entry_new (); popover = create_complex_popover (widget, GTK_POS_TOP); gtk_entry_set_icon_from_icon_name (GTK_ENTRY (widget), GTK_ENTRY_ICON_PRIMARY, "edit-find"); gtk_entry_set_icon_from_icon_name (GTK_ENTRY (widget), GTK_ENTRY_ICON_SECONDARY, "edit-clear"); g_signal_connect (widget, "icon-press", G_CALLBACK (entry_icon_press_cb), popover); g_signal_connect (widget, "size-allocate", G_CALLBACK (entry_size_allocate_cb), popover); gtk_container_add (GTK_CONTAINER (box), widget); widget = gtk_calendar_new (); g_signal_connect (widget, "day-selected", G_CALLBACK (day_selected_cb), NULL); gtk_container_add (GTK_CONTAINER (box), widget); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)overlay.c������� ������/* Overlay/Interactive Overlay * * Shows widgets in static positions over a main widget. * * The overlayed widgets can be interactive controls such * as the entry in this example, or just decorative, like * the big blue label. */ #include <gtk/gtk.h> static void do_number (GtkButton *button, GtkEntry *entry) { gtk_entry_set_text (entry, gtk_button_get_label (button)); } GtkWidget * do_overlay (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *overlay; GtkWidget *grid; GtkWidget *button; GtkWidget *vbox; GtkWidget *label; GtkWidget *entry; int i, j; char *text; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size (GTK_WINDOW (window), 500, 510); gtk_window_set_title (GTK_WINDOW (window), "Interactive Overlay"); overlay = gtk_overlay_new (); grid = gtk_grid_new (); gtk_container_add (GTK_CONTAINER (overlay), grid); entry = gtk_entry_new (); for (j = 0; j < 5; j++) { for (i = 0; i < 5; i++) { text = g_strdup_printf ("%d", 5*j + i); button = gtk_button_new_with_label (text); g_free (text); gtk_widget_set_hexpand (button, TRUE); gtk_widget_set_vexpand (button, TRUE); g_signal_connect (button, "clicked", G_CALLBACK (do_number), entry); gtk_grid_attach (GTK_GRID (grid), button, i, j, 1, 1); } } vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10); gtk_overlay_add_overlay (GTK_OVERLAY (overlay), vbox); gtk_overlay_set_overlay_pass_through (GTK_OVERLAY (overlay), vbox, TRUE); gtk_widget_set_halign (vbox, GTK_ALIGN_CENTER); gtk_widget_set_valign (vbox, GTK_ALIGN_CENTER); label = gtk_label_new ("<span foreground='blue' weight='ultrabold' font='40'>Numbers</span>"); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 8); gtk_entry_set_placeholder_text (GTK_ENTRY (entry), "Your Lucky Number"); gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, FALSE, 8); gtk_container_add (GTK_CONTAINER (window), overlay); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_widget_show_all (overlay); } if (!gtk_widget_get_visible (window)) gtk_widget_show (window); else gtk_widget_destroy (window); return window; } ��(uuay)cmy.jpg�������������JFIF�,,�����\File source: http://commons.wikimedia.org/wiki/File:CMYK_separation_%E2%80%93_no_black.jpg���C� %# , #&')*)-0-(0%()(���C (((((((((((((((((((((((((((((((((((((((((((((((((((���X��������������������F��!1A"Qaq�2��#B�����R3br��$CS��%D�Tc���������������������C���!1AQa�q����"���2�#BRbr�����3Cs��$�������?��8���b��<R�B1D���#�'ǵ���Q(�b�D%��(D#J!Nh�B1D��%�P�F(D#"�%�1D��j%(K������c� B1NQ b����!�$�Bǵ9J"�B1BP��W�x��(N�F(D#��B!hD#"��D'���b���� %��Bx�DrKo%��[��dn����:�i ߫�H���}��}�]V� �#��Q6��p6�:�q�F������ߌ��i:X��A� "��Q���U�Z��o�Y��~��4+��Ա�XڄB1�B!�R���(��Q i�)BZh�B Ӕ�"�J!-4JP�)�P�����SJ�UJ�L �b�!��P�O"�%8F�%�(�B1D�"(�B1D����B���B!5U�A���"��Xw����q�ډ��$ R0N@`���zRY-��{�]#�@���G=���5cS9��^�����A��������¥Y��l����F�0��*N�Qh2�k�J���b��@f��`�'m;s���=z�E��T������ۈ�������V�̄b�BX��#'� %��P�1B��!,SD#ВEh�BEi�P��r�-X��]� �1�{ �Q�B!03�I���)Q�rG����ck����~8��.�O�<b�ÖW�ش�&��r����B�1�4*ZxǸr��{�U��X�z�j��� �5^�͒&��H�r�0EhHY�H0Tq�4��F(D#J� b�D,}^��-0�rB�=���⮡O�~]�Ln#�ԍM���w�+;���]B#�F������ڵ`p0K�&�{�9q]�zſI���Ї�"'�[Q�3�N9�����5#c���A��a�mqq�n���&.�$w�Q��,���BDqrT!�rXNÌlk�Y�Ak �ѹ�ׅ�\,#0��Y�י �i��vF��Y\�Ob��b2�hNW`lr9�nk�Q��1:�;�W��R��Li���^~�/yo9� C�x�km7Hu��a����ʮ�9D&�Y�PI;�;Ҙ@��P����f��߱!p��*�p��*u)��g7�l���ҥچ�����C�i���d��h�j�D6(O�<���pqU���,���#j�T�q:�X1�E]*�A��(K"ǵ9J�F(J��LQ�#�V2K�Xc�܊$s�߂ �-�z� ʫ�]Yt�!I�fibY����d��6�ReJ���aU��PÐדp�V�UR��n.���Ry�da��n�=�njMc�%�ފ����!�7;n{�v� ��x� �\� �#�Z�$�2�tcա`���Ht��#%�.UYW%r8�pF}��g�02��DZ�&B�$I�4�.�L��w���P�u�a�i���� XỸ���v98�'�WR��?+�A���X�U��e���&t:q�}������tf:�\��UP���8�=�g�SeJ�#�]I�Z�Z�,8�N��X�����]�����W��.zq�����&!�r�9�yv�c�Y[HSc��:v�p�G����V� do����i�GV���� �T�5"8YvS�Ө���gڊ/���,wR�N��i24N���lX!��������E��� .dXԝ#=ϵM��P�D�kV�E��X�����K�L���q��``�um��VЭ�� �&3�Tc��&ú��H^�ϧ^�ʉ>|d%�r�#��5��YgE����:�����^�}����B2�<ڵ��ןM��]� 6��=B�������8��l��"9n�n�Ӯ�K+8����H�-�@)�=1�l5�a����� ���u��5�j.�0Τ�Ӥ�dp������:m�6U����z$���?\V�Zv���u�@�x"����|�z��2����ХIa��H�y�ֱ����n���ӯ�����h:|V� %�IlwGR�9?�����=R�\�U���n�Yz�]g� ��,,C :�����Vb*�<,U8Jm�f u����n����Z��7(@!��!�0@�;dV�;��g���y,x�SP��n�8��r�[��V�����ja��,� C+�9#�v'r{qY�T�6��{^�U�@6���;�|�'�tK[�"��^YB|qj5�9`���[�{/����R}���%:�Ci�����ۊ��t�.�n���ц�� ���a��~"�*։�ƹ���$yL`�� 0�����c}'0IY��P��'SB��T���y3�5,@��T����J���&�@��ީeux�8�l�s�XdB� �#Vb��jШ������VJ�5��Hh;�Do}H�@<����<���i�}H��1�0�A�nk�>g��V�<�����9)��BI�<������=S���7��ƚP�H]�S��s��t�UY�M��\/�a�����@�h���Y\ۯ�h�]��<!����/���r}T��Z�&ϐy\xo����5(p�!��i<�#�Vm��w(a<�J��p���Tc�zQP|�`�����*G�Uj���q�w�v[�#�����M%�dI�Ȋ�Xc������+!ͤa��^���5�ۙ��"���^]h���='�^������q �5a����4�;�A��ez-�Karh���%q���q0m��.�.:oR���-�?i3��0�vN;����춶�q�;s�["�A����b{�� �sQӞ���5���ܺA+��>@��Rq���S�*R��5���ǭ�XsC��͐ �6�����]7�kn��H�%]���� �rN[>P��Ϋ[3�Qh���T(vt�@�7�F�3`�;��r"��H��yS4B=c)���V���#;�k���,{���M̢�4��"DN��Ip~�w�X",�^W��+�4��cϰ�����p����� ���/�r�XN�I!��D;�gW�z���*�@q��4\d�HX�dn*�J� c�%�����#-́}I���1�4*�W�A���u��z��� :A������u��~�_U�#�8���4u/�:5�[�M$�;���`Ն5`��y���Mw�|�F���5갔�8s���s�OZ�w~���{kh�GMW�D��8A6�K �q�#ֱ���{���A�2�|G���LS������+sdf�Ν<EE#grq���ʙj�K�MZ���m}��R�x:M���BZ��0� .p oL���N�uw��a���(�}<&�k~g�nt��t��:�P����ֱ��y.���8����c����>�q. ��0��놵�&Z$��m&�w][�.朥�O�F�|6s���'mM����Vza����pZ�����yxq:J���S�.�8�� �ia�M��^処j�Q��Q���ǟS�E o��{.9nyJ��`��:�G2k���&m3[�,1��@>��m]sT?�U���F�+�7i����5���;�E�R塚�.[i"�8B%r���]N������VvQ � ��O#�}t[j�K�81s&�Ǥ� �yΡ���<�|;K���Ƹ8(\�As[��[T������ȭ�v��0�n�Z$��G�.��bpn!��)dY�PF ���휒��apŮ�b�GZ+>#�i��*��u�<"|��������2�H]�L<��X9��;s���ҫڴM������\E��K���f�Zz�u>���:�Vh峎�=Le�P�T��MD�l0�Eg�a���e�9�y 9-�s���r���eu:�^[���V������K�0xl6��;c�TP��ͷ��lĿ L��C��[�� �֗��0E�.:��`>fs�U#p3�N}6�}6�\X+��s�P�#_��o���y�.��n�ӡ&�V�u�\j$��3����7����%���� 9�_Ô�d�#u�:�N���ح�!&%�PU�yFڀ��o]U��*�2:����v��2H: ,-1�U���%���٤2���Hؑ�4�;��>��n3:B�.��R��<��$������e�5L;� ���<�"� &{�@>@-;��n�=�'�e�#�IY�L�ٖ���q�2;W�f%���Kb���WQ��L�I�;�Xw+���H��}�J��J�`c8����T?�g�:�*�a�/���7I&� w^y��A�[Y"%���+�ZY��O��$� F&�{�-��ө[08��A��mHN�m1e���}��61u �ͭ� �����{�=�T�g IƝ�uQ��;��ٸ�E6յF��:������r�U���w}��V�[Y^YU;��� ���J�Y��[]�t#�ׂŅ�Y�v� �M���n���8�$���A ֦%R���H�c��jՈ{�Z�?E��Re0�P���",�s6�^�����q\D���eՁ��c��C��s� f���>�eߢkvC�< ��7�tz%�i��B��o��+RB�9�1�Q^���r�α��u� X�g��@i7����6���`��l:��2�3pţb7�2�f�����w ���7�!�����낶��RIY��eL�*����pA�*,��2$)��$^\W�@�<�A�s#�3��{��o����a���Xk0I�$k�{�Ez8h>�Q���*jb6�H>����Q.[�0�����e�z�U^�����1��t�@3�����j�t��q��цic�'�_e�z�������J���>1��u�1��V�^W^�!����C���IzTvť��(��A���R�HmB�X1��?���I">�����z�^�+YƖɩ�t/�݁�q��s�J��(dwh&�z/G�gkO�y(�[��imH������Xt���],�c m^31�doC�6ڹ�5�# ��lz���Z4�W�.��3y��c���������q���j�C�I�O^7T`�N����-�W�M�S����`0���\�1�ߌsUQ��J"����QĻ3�x��s���K�Qsp$�`A�c_9'v wV��9Ͻ_�2�DNaR�50䇺]��x���:���1u8,�|�9�JG��w�O�����ܐ�`��1ß^�Gu�&2���-�Ue���c����K ���F��$����%pz�A��k~��"k�iĚ�����Px$���w�(���P�"�����`jR"����nI���&4�y�/�m�����������)� {��� � ���M}<�ۿ˯�!����i�wo��c���t��կo��Jc�L,�VI�jbA2��JTi�$ &m��]:5�5��� �"nm~�. l�O�K=Ď�� @G��q� ���[���ր>3ך�b~�..[����r�Ie%�L�D� Ҳ:����8�+h�*Aø.9¿\�mq0=&7f��[XU���ʼnh�]���>��ҲT�ט ��Р�M/� |,u��7�m5��(i���5�b��߃�c[i� h:n�،C�U��oz�w����������0�@$����s��+�+��"u���\#�53e�f�DŽ ���}��8�����͜��2�خ'��$ۚ��@/3�x����[.��Vn���G2Jr�.v9;�܃�F t�Ԧh���s��}CqL�B�w����'�G��O�V����������07��ǂv�3F7Q��ݼgîi�7A�;'�g�;���v](:żHD�9,J���.pXd���b6��ø�?�}���X��S��h�]g]����3���C;;~��!���Ic�RH�žZ�漿�)�ڄ�'�&y�W���1Z�ː�B48�Ff� J�+����; ��E��]�|����������d�@����N7������oӮ.��PJ��1Ǐ���F��b�UϪֆo�ttTp짇{�Ti0�>\��rKq=�"(����g�J�``l|���$⬧P5���s��qTV����c@�@gAm&46G]�kԭz�M�s�-șTQ�z �>��۽z��A���L��M�2�\%�;���=�n��)s%�'O�xߦ�rY�i�J[�0��ȩc{V��5����eWU�R���n`�x�B�oc�t��[L -�I���I�u�`s�8�U:��%�N�����R����ڀ嘽��'A Ɔo���"�cw��1�I�u �)�B8�5Lf���yx�-� F���9�2;���ůH���ד�x�{s�G"���B����=��>��@�r4�|W@T���q��"�����9�Rn��OBL�,�g��u��g88�s�M�[����(�o/ �C�J������o⺝8���#cR6�H#��Y��p#��G3H<}WF�Ѯ:E�mpd230��?�{�c�T9�jM��R�I͋Ϛ��X�������M�17�A�?��7��D�����伖3��S,H=�n�毑�t�@t&�3��w98�v��ѦAns���Z�Q ��Y��dѮ���b�FuH�|�@ƝD�z�DS�3&���_��Q�y�Z$�e����xX�e��[Y]`)�m;��Ҩ���;[y~V�.ͦ���f$mᯒ�5�I��]��!*�e{��"�Y#Ʈ�:�sf7�7;������.� F��v��t���+N� ���M��"�C��+�%@-�m���� �K�M�G��[�j�� tׁ���mo����mv���s����%ԩ���eu2�|V�U`�#���j��Osu7N��H�b^�� �9���v0�F����=�}W����Q����4��C����N�nu�t�°U���ض#n1��x��M��_��O溳��~��{�}����Ւ^��Q+;�&G]88u&���#��\3�F����n��J������l�/}��gA>>����B{�������t�]���<���{r�)��9���ll�eŐ����;FF�H+��o�� x*�����J��ha���]�Ɯ�ͯ:�t1euҞp��. ���x��ݫ�N���eX�w��y<N4�C*��"�^.6���\����%����6�m�G��kSp٦˝S�U���3����e��2��R$�ʀ�P��N��9���5e<3CH!U_�Os���Ki?_?u]�ԺP�1W\��l ���gm�*T��z�&ǜ�Kଋ�u[~�:�[�ko�I]H%� ���ޢ�M?�IۯmP�&�/�e-��&u���M��:-��I6���I�s+�S&��*eA�ld�cۅ]��/�����{5J�l�� l������r̟��#)$��s���nfmF��n'��q[�I���1�=ݻ��[P��#�I� u�l{�� �l{C��uF=͆�?^?~K�~��;Y��I#����ˤ`q�;A�5���ap,�6��c�Tm"ڠ�9��w��]kW�#���[R0����g�o�I'NG��=-�m�Y�n�dӐN��w������{I����������<f;�X��a�Rו',�\�� �H?���j�M�����NJx�VW��3�/�]� �r\X�L��]��}���N^k#�T�&6�>>�.� ���+�D��N�T���A-��[�pC+)�4��՜cb9�F�`� ���)b�y�3{�r�"�fW?���� ���C4�N0�>r?���mwg������w�?��ܾ�I`2c��b9q^��IcwՍ�OXp%����#|c_��Ϙ�_���s�6�:y*N�PH���r��V���j4 9��{��*��m����H�D�d$(*�#s��}�I�vI�d�D>�1P6t��:[�s��� ���D'H�vK�D�#fs��;� X�4���p,��<�6�N����?x�>5��o+��0 �*,1��H��*���Ct���V����H�h<g��C��a� $�)+�>a�����=�j��$9���h�Zm��fd�aiHc� K��o���U�4f�&��'n���<r5�Q� �,s�w�p�f+��A��^G�'V����<�b�"�����WJ��L��L�����Ef�Wp�G]ẬR[{(P��n[�>��»4\?{̕���"��t'�/9u�d�$��\q[�.C�0�.�J�U��K,�:��U]8^~���2C�F�룃���đ6�>��=��n�u;�$� )`�!�e���Ļ�3�q+�{j5�@�vW��Q��Ny$�@7;�Qm�.{K���{y`��]:�>���p���N��sbA�w5]ҩ-|�DFv�+��.���_�%��<)(;�y7��#��W�����+���0�p�g�o7��n7�Wמ��´�"k���WM I�Q��#'8;������/e��M���T1��X�P��p'�-A�t���q�,��X˗`�FAm�'�m�EJ�.���;p�����6�Yz[�K4�D�&��ԂG��V��ۮ��R���Z�~�p̖�<DB���A o�!�� ͵F��ew~��̑躷h̋���dc�xV�2��ǘ�����1�y)��s��(�${��l��%�c��������#�� ����S'P� �g8vL*�w�+p�C3;U����t�8Ň��=,�̑xe��dgP��#c�=�(m~�Jup&��"grDw��s�A�u��M�%�4����o��#��Y��4�ܗE� 0)���߁{\ߊ�Z�^?FP \d3~�̑� @� j`br�`Vg����mkl�<V�n�p�l�nIoa$���,��hn��PAo$�J�]LQ۹� v ���j�xFRa�2��$u�TU��J�@�5���h�WӢ��~�ՅK�"��u���ٱ�ן4�זTOuܽ{k1��JN�8_��^� �b+v��� ]H�<m�v���#A�9��F%�Q�O����[�-n���.t %��b@# ��nj�EX��;3H��~UMGS�̯-������5q����}Z%�,�����֮Ɩ����U?��k�i���Ƌ�\�y-؉nc��\k�`��N�G��a��l��^�e��6��d]8��G����c��1�1�:Y�<gʿ��xv�R#�U�ǽ�1��"ׁ�>�J������C��i��9�4���銃0������}l{5d�N�� ^Ot,F����s�J��`\�����zb���^ͦ>ܾ�'��W{3O<��p��z������ �*r1��{�����L�1�ju~%Y�u'��|�q�i��_錓�㝶8>�{�,���\3iׯ�ߨ:83��b�����D��]K�x�������j-E��SIc}q� ���o7#8��b�X��^Җ�t>K��>3D��*������-؞��J���m�<wm�lA��#�|߲O+��WR����v<|E�E��=N���iW6�DaZt`H�Y��8#��T�W%��.�z�g3+�4|�������m�f���E��v��[��}F��'��.^'N��S1��^��毽�kisOih�9,�3���©� ������C^�y��|v�Zj1�:hI=�@:���}�������vc�U!W����~Q��s�Y�;���>��n�=G����������?=�i�FFwh��q�]�R�ך�r��2� �����"W��a8�x��#b�7v���)�����v,��_�����U:��{v�d�DR����+�C�FZt���.k��k�cn�O ��~ �m,���>f<���k��ٚb6���]�U�Z)�L�L��=�V�:��"���21������c�xbsޱ��*��xnu����v���}������$�Vm��t�b�Xܠ��X��6FF�z���(�q�<-u���1b�e6�A���̉�^�u���1�t�>��`�D<�w-�8a�Hd�����c�"qo��#ܟi�!�d� �g����F��zg�~�Lwu�@��cHh�w&M��H�v��ש���ҭh���<��j۞6��#�ddy�Au)|zZ{ZC�G���G����h�9w�6���*{�}��|5�V��f���j�8Z�+�͐�܋�-���\��GncY��A`=F���8|5�ڕ��|B�������w�=s���P%*�e�+s0���1��4����d������LP�4 ���MܽL����pe'�21 �x����?�ұVú�[i�L{0�i�6;�z�ܼp�ˠ�`����M�W�]��q'{"Cs[����Z>�r��[I$�]20�?�k�)# �q�*������Vv�Z�L˩ ��7׆��.E�Զn%��Hf�I�#�m�S鶥�$.m��S$Fb��GR�&I&yNu�N���v�8�v��Z�N2q�]�S8�G�]��Z��IP�?#����������k��n���de{�]%����Ol3��=� ��2�������\ú��{��G�Ǎ�*"�f��l$��^����!x���j�l�>7�o��>;�2��%`ߵS��v=�3�kA�"6�7Z������y,�s�Z�)�A2敉@�U�gl�y�Ӏ7�R]: $���2�HiB�})$��uP�b�V����1�1�s����x2˨�x#+����f�WF�K�bk�V�eP'�.��@q�}�gqphpi�6��u1M�s�C������+Z�,�o0�j�iI�I��V|��+Sc���k�#N7����.���+�� *0˶p�<��b�Ҧ줝J��,Z���Gx��)X��u�=�\M!_����ޕJa�8K �uf������6��]B !����Y�������1��I�Ͱ�X14����f��R�nN >�b��L�����I�j� ӘWOu-��-̍#�������6�Xܭ��]�]����%�uU$�PMJ�IU���]kGӚ� T^u`���f�<ELк�D���ƾ��6X��.WJ�1��p=w�������6�$�L' �7��z�F�&< L�� �*9��XnT;�BX�eƅ��7��2r��@'$�v���g��1LJw��}������s7���2T�>=}�DT3V�'<�TöU����I��jr�.�3E���i��Ts�T�NYZ��wPB��2�����8��㕧U��*��^�a��W �3i%u,����?�70f�vPmSٚ-Б�%>�V卹i-\��:if��lg#�Q��;�j��L��J�: �_ �Q��_8��w�vq��=jOp��J���m�~�eX�8 ��EĬ�`�)�.#�#�0��[9��Ԛ��a3 �⪵���q����u�#g�0ʒ}����@(c�8/l��BH�K�.�����Ja�6\s�:�(�D��12��9����C@#uF��q���H���n����E4 P� v��aNȤ��H?�Β6+��vR�M���c�MF��8�T��F��=��8��ֺ\�[��h`��-‣c�,r���w�#ި{C�a3+m'��[Y�7�q���ޥk�G%�R���uZ7��=�ۚ��GC�C�F��M���:G#x��\K�f���� ��و�q�[i�8\��M'F�wq�T����ST�PЁB� q�I�h�l*�r�$�携� 2��F=N�IiH1� #4!<��(H�(RSWN[Fs��_�D ��"l��� lXk��e� ��&�U} ��8|������J�+�/�@$o��xo_z�IJ��}���ʲ2�E��6��x�����_$��B1 �;����'#=�9��N�{w��լ)�,`8Bnx�Z.}ե��Jd��e-���>��U����Z�̴����+n�a��/#�L4����v���QcGi ��uuW�F.N�P����B�@�j_(9??�lfYɢ�v�>�2aWa,J�����S�1�8>����50k*��u�V����0��}�~��CG$�Q�ʁ��G���� ����J#J���j'�80I���}S �*��Պ�`��z� �1��f�"B���FL�����=����e#M���۴Q���W+����<8�C�9��'E[�m��vn?Jb�1u^3��ڥ)k`�Y���I�`�T��R��Zj0�%��0h�*t���qUL:�{qUXd�o����h��-��M���F;U.��楪�O�7&&������0��kc�( �/����p1�~*�U��5��Z�7�n}2㩷=Guךr04�v��J�k�@(��4"R�M4 �IMq����c4�/���kgq&%@<�B��?����j�^Yl ��e�q���=��nQ�ǔ�l�Wf i �lW�h�,��@�����bU���*�`�\���%\08;�zmpp���n���W�z��N^ʝ� �i9��lyi���X�@Q���4�Ss���V�0ّ�.����8�����r�qx��pɟL�3w�ޱ�2��9G�au_J�q!��N��Q��n�%��{HEë414�%�u����E���g�ǿc��d�0f ������4��)� ��ۀ;�V���Ȩ{G~8u �T���Sg����OV��8��H��d`ns��n�;(�#N7��F�F 2��L��-�:���ګx��M�O%���Ư#�^Ip�K ��v ����QU���r[p�Z 1$��^{��s`q$7.#7_��nƯ����Sy��l�c(dI⌕#�,;�j��-ȕ� /�p7����.O����g�b���j�]ٜo��T�EMgB����ԁ�!O�!�䐘!_q��R�e,�ܔ�p�H�a��}?:D� �A�͵��`m~#29��a�j$�h�c�<�u�x����⺍�%|�3�'�����C�a]J�+4��yO^j��� ����ЇF���`G|��U֣���W�1F�S�;.���{B�<o4�H#pX�P���+@phV��qvS{�,�O�v;���>ќRj��J��6���-��ً`�}9��옕g���hS��w�H��XgƑ��zqI��I)�U�4 V�ޞ�7]��U�.X��c̱������S�+|�����[�+K5v����yӟ<ڷ�<\�?F�N�U��͕a�������J#�,?q�dT� �1��LϤ�� 0�6�ڠ�՞H3�)�&��߂�y�� �7M�i�0#�(?���}�M2�UY����e2�J� x��)R�����]�E8.�v����G�T��cʘ'q��9۹��h{dx.�*��S)�ca���g7�si�!!J���;��Q�����2^j���~]�c��k,�wb���n����:�w>�'}��S��]g��틜lM���ς�` 1�b3�������A��$�[~*�dW��b� �ʼ�ԒG�J�+f�P!WYA v>���B��en��m�I4�GҬ�(��5MI�i���=}Tn��i�n|r$acƿ~v�Sc\���5�ʏ}Lכ[_��[0r�39ߚ�|��I�P�}�՜m��7QkK�_ �pq�h�xAi Ͳ�I�5$��� ��Ih����*-���x|��@�(�+YO�!�������8�l!dtI� ��er��z2x�&����+�ah7�a�X�G����$��ռ?F�B�"I;s�}v�ڐ`�����1�wR�����ŗ!��<��㟧�ZZ ��Z.?�p���ܠ2*SQ���x>���Ci�6EJ�K���N���o̍�$C.���2�;s��O���C��E����,�H!Ԭ�@�9 o۟]����T��E�ח�ԡ�K���?ڰ�!Ɛ��`{�)9���ۚ�)���1~ZG>������騅��� ���� #���9�T��>ڮ�*4���&<d���}�^$���&fF^U�a�����6jd�>ʜfJ����i��j���U���K���0�l��p���OQ�٧��y�v�G���s���H�������j���ʒ\�1OQ�'��KTV]���=1��j�P�@rՉ/��_L��`B���\��F*��sĴE����!k���F3Rh;�Ű w�0���pN�ƪ\gHC��y D�0�$ �J��>�D�����ꖰ6�b�*M�1Ȅ�Nr7>���f����<�]�9a tlA�{ƣ˘0�}�D�r�0\e��*���Wp�����S�4�K��=�nv�E����K�u�?���f�Fc�rY3�Tm�N��lUD̕�9-�@<��z^l��T ��Q��ʹ' o��_Fb�V<Tf��;�~�<���0��Q(VE�M1nH'Ң�eT���V�Dcʹ$���M��J�.����(u����JY �)`I-�����7R/-��II cV�5' �c����Fxd����M%r���SI� !�^.�7�9�ng��8��8>���7F�$���i!U��F3I8��ê��n��[�c�w���>*��~��q[pؿӴ�����ܵI��g�k`�����5X��qZ�7� ���蜘m��NT�;g; ��Ĩ�ԛ���lEl��eS��O���T_S`<�?���C�1����5/�3B��ړ"���K��D��1��4�pQ�]X�QN�6�(��Q����=�1UA�}��G��m<�{�,�«���6 ����ԯM�q��/q���O�B|Up;N-�Z��<BHװJnsՔX�����?�;�I*W�x����ClO\������n#�6�[^a���;����#�}� ���p��n!��SB~���g�J�;�K��cX�I�Һ�"���Ey�@}@0t<�(�p̌�r�NF��i��f5*���� ��߾A��fЪmϥI �nv��Ƅ&�<�}�AF��\��4�L�eҋ� "�����Vn1�v��3L�f6[��h-~j��`��!{G�U$1Sێ�#��� ��lvb%�|?+LJ�(tl�a��r���5Y ���`s�ă��y�ئV�,�HDq+0�#K6r@�ڔ��]<�[L���;���4�˒q�����X��Ä�yB�Hrud`|��4T%%K ��z9��:���f� �q�����8H ˘d�@��ʌ���a�;�X��-V�c��ڛw}&h䘔�B�V�1��6�̨Ts\�h��2�0PK)#v$� R�� ª�꤁�Rq�*�71�l���"D�$(���F��4 �ĩ���'�O��F�/�<�m�ވ�P�����FhM��BkOM�[���S�F^C�2A��WU卑����51R��\��%�3��X��r�8��ƀ��^����w�D=�K��I�ᓚn���d6ͦ@���e7\ڝ,��s��^��wx�R?��<����ƀ(,VBN�$v��Vc<p��خڻ%K��J��g "�A�R*�RZZ���?���p���O��B�O~��W�MP�Fvܚ%J0����$w�T ��1B K4�)����إt��E ���b�)��� h�WAp�T�r*.`v�t�:��Z���Fo����������ߊ��p��C1y"�$e�,l�qbT;䏝��rmT;p�rLw�&y7M`��ǵW���4��\Ov���AI���F?�<B��J`�=��0C������A�N7�$`�'B#j3�l��@����J?� ~�v��p���{%�D���w��"�Д�JѬ� �*��!y��.���)�%0��誾���w�1�*�w*�*S�>I�XZ/,r��9��8�.Ŏl�VK�s�}�9>���U����J.�H⪎��L����䅩���E���'�O�6�l��>�����������|}�I�-�;qP8�CW+G��.х]�ޣ�i�Xa.�d,���9<�N2��2U��e{��sj�~�u-M��3���|m�����[��±2r�G*��PYDo '2�����DH>�@�7Ӕ����6?go��.�*�p�ΣD{��f�Ƿ�e���Q��a�ti�6�*Niu�ņ�fк�k(��B�ec��Ic��VV$�eШ2��|���\Ȧ�-�����T�k'�;���<yrXQ���9�3�-���n �e���UXƦ=��Tgnm����v � 8=�����U�`�k�۞?u�����Ջ#Ǎ��6��3�w5^V�����W�qq��B8�����j��q�������� ���`ng�t9�]�@$i������>*�@:k�Qs��d:`9AŖ���(� U���ӌSl��,Z}z�&�`�,���eFDD$��o���!D��p暊@�g�BjE�����P{��`���t9�!Gojh�쥝�5fl��VCQ�O�� Z')��*ki|���JKcb ����TMJf��c�m� ����Gݧ�F��O~��)�������_����8������z䁁��2�=2�R���;P���U�����Et].���h�����]�+ف����JԽ7�Nu61�5*3�r�lUgE��k�R�ߙ+\} ��0S�y���x��)�ho�(���u̟er���h�@w,�@Ϯ=�@�:ʴaY0D�ఋ��9�O�&��I�V��`OrԶ��I�Ȥ���Yy�^�]�� "�@2H˔����%���T�F�����M'qj�vǗ��R\G펹�݊`?�c���W6�v���{@��@]�]�����!G$��_M�� �p��|J�Q������g��7�N��Y�c�Ae� �ʪ<�n2�UƃX@����g��vO�>=�o�2̟���p�\F�u�����.u7�s�v=�T�]�-��h�D�ߚ�Ч����{�fh�kv-6J�$�n3����b�mhf��z��O�Y�uMA�ok��~v^�m�P!��E����i�+�����*�I�3�3�'��> ��@���G�A�Ļ_} (H�O��h���ǷΓ�0����� ��;��(��l�h݇��L���I�ߟ�ut�t���,�`�)�{eF;��(�g�3�Tb����m����� �=v����)Ĉ�+��lW�B����'�u*.{D����x�K���R��gS����A�p��I�[gxd�e�:�kP;s�rv>ղ�!���<:!s1_�KI�o|�:�EΓ��r�t�P�$ʹ�p ��e�s�h�����V'|=��<i��Є�ӥ�������I�Fs��q��#V����c�?)s��m�U�:]��IXjΡ�*��T���~�}>ɷO�,�����R��&pT,K���W-�O�v��1���zT�Z��o�aZ38�? )a�Xp�����/zf�a�$�&� �_�)[�(��gH ����}ps��ڣo�]�\;�B$�{I���:=��67M�v�G�_�A��N��|�R�F�A��2��u<�(��d��=J��K�>� �a��r�'1�'4I���[�����i��Ga����<�M5)�dv��.��m��Y}�Ƈ3�Sm�o��j�m3�YƩ��M�8�m+(��& ݾ�p9���s��[���ҳdā�{�۠��7ặ8ؐ����P����6��������d�9�N��~�6m���}M 4�@ ���]�.m��t�������Ȃ1���֣��\O���W���>�^��i`��W��*_������}�����o������k+L�4�C���}���v_�_��}*�����Ϯ(��Oo��># ����k��lZZ�v�i=����s?��}�?�h�������ŵ���7���� |O��D�f���_���f���62�\Oi�Ei�����S�6����M�f�ue��{�c)��p���:�*�����Q�H����1�`FݱK�k N��0�*:�cgnQ�l���������w�@�RVF]I����ٝ�RG��EJ�^Ωӵ�DE��$��0}��!�E�_ʥ�Q���v�^�b��Qm��U��37��:�e�`�=>ݡ2H� �y:X1�G�:�KA����*Ril�E��2gy]U�3��t*��%\`����ֳ�#/��p��� _.�*=�H/�}5�� �7��7�~_ƞ 8���4`mG�Ľ�I���b��'Wsmf�Z ��8 YCd�>���U�v���������������_,�D�l�����?;`DŽ������y[H`6��o��]*�9��]��)�@� dw�z�E�6�D&*Ý���f/�\��%³�k��o�1�/��,��u�������lS� {$�s7��M�vR��}�Kl�n�;�o�B��a[Y���0M��Γf��F����I�jRH��J��l3�3�*5���p��ʖ��TUc��A����ud�1YT�Ӭ���G��o��Q�H�S~�dr�z�s:��C/NY�'��e�� ����Fw��Rxpy�OWX��-u0� ��9<;�u���bk�<�/�P�T�����pA�6��2����_�����8����y�z\mqu-��V�j ?�F'�q�����A��kZ���ܸ���;��4x�O8q*}:�9S�U�����z��N� ��F�R�e,6����|I��h;Ӓ��+ַ��0��e�mM�7��8�>���d�B�*n`��������u[�X�*"���l� ���c��H['s��=�h��c~���:-�Ԉ!�u�]�{bv��ә���+;��Ǹ�D��_�ZZ�&b��q��8#�c��ԙ� ־��d]�xpX�[hse���[c�"�O�#t?1�����K(��������$�k�! �c\a��O:N��.���X��4�j76Q�ӹ�WX^L���,9R��=q�+/fкB��]ɉ�.�Fr��2�!�q��[���&o���? x�����q��}��3]��Ac٘���;�� =E�?�/O�kyH�I]�~�ΊA��m�X�?�}��:�W�G�^A=�?7��dBCW���A�|���P����L��m-������P�gP4�!���x �\�KOn\&�=�/C��S1w�������]�������ʥ���G90��Iײ�ݳ�mYi�/�ѩ��gMV���<S�%�������|V>�:_���/Q��kPG��4*%-�ȸ���d���h�Ӡ~C3�$���]6Tb_���e�/h�bZ=5�E��ZC/J��� 1,�����i[��Pv�R��Q�q"�R��/�J�I����X�5����`w�ܲ���T��dkMД��G �Ӡ8�b��җ�g��<� ���88��n�d�.�}j(� ���y�~���g� �?�]&���?��w����.+mq}�3�KE�V�Kw�;��n"��px�?�%��W��P�����d�f"�A�A�n��"}�8}N���*��TI���WI��K@�����_�?���'���ش�!���D���(�Y�����O�O�g�2=��r�|��%�U��?5ed�8>]>��+MV��H@�c��V?��]b�$N�<#��<V�c�K�!PItv8��j皎Ј�]��g��r~�mk�ag��*6pG�zY���i��Y�;�����d�H��݀#�?�W�/�[��ɓ#�V�#p��G�I��ڣ��Lx�<�uȟ�\���}��U��{�6�+�A�pOq�V�-FˁԴ���?I�X�f��n6�k�u��W��T;���Mןz��A;u�������Z.]�Fz_S��i��dF���do�+�=��T'�c�lj�u��A�U�jI�p�.!r!��E�ض7+�j���1�+S��2���be��?(ߘ�����dN�Z�j+�9��l��N�﹫�w YCAc8F:�wUn�'[��Z+�KN�f��n�hn"��)����9�j&�}"O��V7(�Xs�ās�Z#���I-��n_���� �B����ɪ�P�����W7�Ө�}�;��U�tk�1-��$ye�:s�;�Pn&���V?B!�0?���He�-�5�E�TeY�����F2W���������� ��8zL$2����}�����k����h��xG}��C�@|�Q4�������s�>�Z�lX�.�y����^?�;�W�b�ҙ=��O���\�Q�#��?�T��b�o��%��-#��u ԏ3{c�X�!<rG$n�DQ@:)��З���~���b������p� %C"�e�I��@ �v�5p�Û�����Au"ד&���R7��W�Ɇ��cj��7��vn����ͤD����h��̀H�M�>a�^i�o�:�5Q�'��ԯȠ8--�OA�4�X�*�DpP�d~,�6�d���J�"�s�u��F������7|톫 �H":���\=v�-ѕ��n�<4���-},�<0k�W��RG� ����'|�s�jd �&��}���W9�ˋ��b��m ��ܓ*�{�t��[�����ʡ;�?�\��ֆ�}��+1������hv���O��m�g�$ʙ&��l �6�9��L�l�@�������9d�\�������M-�}��D��wR7,>�=����qo�5��t> �Lc��Ԙ��.%z^�n��,dG �J��}��<o�Ӛ�J�����u��K\1�m����,H�R�~3+�F�3D�B�2����3�M�Ĵ9����]�};��K���ںZ�3 �cL�H:m�x(�tO��o�N5��{Z���>е7��F��|���K�'��}f��7O�ۃ��i��!�V ԝ8��G��Beo��,�D�<l$y� i*c���5�,a�m`��\�P;r��"��M��zyLP]�#������2��g��6�����4H1���u�Zǐ3w��l|e��#��b��3D|En�e$v�@�ݍ!C1����O{������c�������t�:�D�c�^@]�wLϦw�ꊔ1եj���T?+���Q���M�R�Y�*@p�ڴ��R�U�xx�%:��x����^c��;kϳ�!ַM*F���D�+�>տ �u:�t��������$ʸR��Z8�.��%���Q~��ZxQ���$��{'#|��LUt�<ד��V��5�Z3{��m�|�{���>�x���R+���ڒ�)���v�`��6a�W� m�||��UT� -c3v�2l �G5ǹ�k�#n�-Vgb�:��܍'�q�jcJr1�/R��*�5�yd�s 7Ԉ<����}F)����&;��Ri~�,x����j�T\�p_�l$��f��Z���K9�Æ�!�9J��O}��n/���:T`�*��l��|RnS���2���CZ�Y��}���[��y�1k: DX���\���=��R�f������&�ω���\ =�q�� ���J�F�p�lg�~{�����.S��%����:��\Kޣo�q1 0� $��m�����Z�N��f;���elM9wf���jxk���s�F��;Gla�Z#d��#�u8?���K1.-��n��ԓk��������U ���&dZ!�k4Z��2`���y��5W-?���x ��}��~G�Az\���F�������v�v��)�2�1Տ�`�������\G(��I��H;6�ԙU�NV����߆nz���ǯU�.���;��Pm��cj�ֵ���-�,x�ϧ��ae(Z4w^끁�|T3�WvnH�:�^#��9�.y'�q��֫�*��� �n��T�#����)�.�������T���m�\w"Hp�/�eQ�}A��m�A��Ҵ������Q�%$�`l�p�G�{�L��I�����>�h����dp��Hv$9Ϯ;�+=�C��v���x��s�IU�0�o���~�e��&*�k7�D�"RT�x�����j��}U���k���"��8mQBC.T����c����b7O��́~�����^��&����1FOc�;q�s�B��*����bxM4�6�)�wD28`I�x����ߌP��l��P�\|�wS�&���2!���ܞ�����4C�9��M9����"�L�[m����s���h�P)�~�[n�VZz�G��V}�/�'��U� Wy�� ����RF�H#���9��Pes[ˮ���'�I(ҋ�]s�v�y�ߕD8L��u7A.u�쮦�gy�������R�M��:���O����[��]� �A��D83A �Su_�fx��Ze�� �\�����T!�1X]U�s��F�Y+�E�N��z�8B�i9�%c�ey$��,����x����*!�@ �Su,��N�¯B�y�������������eh�/���oo��Kv��\���1J���{�/��-�1�ӯ%�R�gGgn�rA�ۓ�L4Oʑ{������1d�٢����b�c�>ɜ��Gj���+3`)��?Z�0N�f��d:�Q���&+���2�m����|�Ssn�Qeb�q��ǀ�JD�x�hX`�������E����1ͫh�;�u�V�kH ����TCݴ�J���.��|xrɀvRGo_������9#+��ď���"+G�'8lm�v'�$ևᘅ�`u7d�G�۩�K43��K�&� �V!��''m��ެse�_�T2�W�ۗ�����n�Y��*�7�q"�Px��}�Y*5�Ar�ѩS�"���u��R��ZI����� ǩ'?�B�Ba�]�ô���Y#�$Mjt���n����������*��#��(��Y LX����|Rs�n�)� O��h��KU."!����B{`=��_i�r�����c�O����(:��-��}{Ի@L8�%_b�%�7=sK�Ӻ�n�pP�;�I���gh��GeQ�����6]im���][ ӱ<v<��酯��ؘ����(�-j�N��z2FI�Ͼjm�\!ą]J-c����UHR����Fpcԧs�G<�R�2�!W�h8HS�t�m�H�,�g�9���H8�K��:�`�LLJ[�8��t��e�ws�i �.��1����T[Z��� O����M��^���x~�N̬u����2}��W5�d�Ԥ�\ ����QH���+��'#�s�R$�B�X��u����,B��|�ʪA����U"��jv�O]x,�DnTK"kv�Id`y��gl�^���ax�nN���-VQ�V9Yu��Wp8*s�UT�E��B�]z,�Vj��8/t��|튱��ꩫ�s�ue�Î5�A�9ӷ;���3��#X!�w;�⛒�d�7��<o���"鸐a��誒)UG�����v������5 �u�T�<�I�w>�����,�����m'9��ާ-%W�����q������P�m����3���Ϛ����Jh�s� ����P'�3I�p��U)�:؏��&x�SÕa�m�w9���M��-35�]W,�x>Y|E#�y�9�{ԃ2����d���A�ϣR��njs��0�n��Ӿ[u�V{�Q�D�c-�8�C�j�8����M�Co�.k+�.tG*1x�8�?��]�Y�NV�~�� ၙ�C�M@2�79���Tfk�n��u)�I9c����Y]T�BM�'�ҜF�� ��#�FB�MD+���A�>E`.$.�X��l#� ��{+�$�D�_\�t�m����5*o��*�Ԩ�qk��$m��>�d�pc]*��J�r{��,�o�R�-���������V�-�W0#�ǙC,8��{�橨�9k�I����G�Zc��;vR�M�,����;P���)S"/�Y��.bB� J�,8��g$Օ3E��-#���̮_�S[<p4k�G��;g�c�z� ]�t�U�����#_^���~��w�p� |=2NN�c��|��DT��v�U�Śu7�1yהqP�Vץ꺄**X�d�9��Mľ�4�9�S� ���x��Z�j�s���4�"�E�#��v�=F����4��;��*���_ X����\�-,5F�"���4����5����6�ˡQ��)����pz��1�-�"�$�cج�u;���j�F�a9� �'�uV�Nړ;Q�#��2�G%۲�YK��8�8���U�ܤ1s�PƷ7��u�|�a���1@�6 $�ۜl}�2�3>`�E�B�gW�sݯc����6���X�aӋ˩�4��*� ��0s�����T���MZUhe$�8�}���[,:��ɘ)�S:v ;��F�UL>\Ç_��C���@�"�Z���dW���4lt]� v�~�{�B��B�o+>7�@Te����u�r�S�i�m* ?��?��v��5(S�����`��+��dr���\n�&�h%���S)*�H:��; �G+�AoE��5�s^M����t�Uܖ6o$�Ȏex�'��#���g�LT| ���%wP�\v �\Σ��x��D��,�;�$����iu��O��Vj�it��~�~ �F��RH���c��x%sv�F`��� ��A�g#zz��b�I��]��FX}�NVˆ��C5��hʩ@����z�>���H�~�K�O3��-��J�7(���U�#� ����#�qS���A��ʠ ���?M[�C�k�`ij:�����5e:�Ez��|���77?� #�Q���V����ǭO#jӹ��n�S_�1�����ⴉ��L�������L�>�b����⫞�p�y[n^7��F�:� �������N`�Q�0$��y�p|��!����7������YPO�����&���� � %���^z ��I?de�p��?N}�*n^Lxw�>�u൭��P�B��� L��6�����F���W��m�i��E���$׆X� �m-�3�7��3Pk ����huJ���l�Ԟ�Nk�aq/�N� �8�WNrs��?Z���2��MZ"������_5�,W���Ř�@D��Df(��Q�!�1DI@@O1@�@JJ7��@D�z "Q�D"J7�%9���Z "Q� #1F %,Q9)�M�n;��`��� (�S���� "R��@Fb� %-�耉)`��9(ވ�oDJ[���耉)Q9(4@D�~)���$b�#!<f�#!��F(B1�"Q��P�b�#!��F(B���-1�ƧN��ǀ=rp>�(����LmC�'��'n��g�@��QԭM��cKq�`{P��S8X��B����b�JX��B%�9H��D��)���')i��(D��Br�� �F(D�%(���B�(��b�J1B%��P�b�J1��b�J4М���S3�����N�G}��� �@�z+l��j�G�����(\���)�U�Eb��WQ~��F���b�\O�O�x�Nt�a&��~��K�U=�a�hW�X�9F(D�"Q�(���B��P�b�ъ��(���Br��B�S�BӶ{P����B��B,���}�iG�1� 3�����'U��O�u�����%a�'���3��rG��Rڅ�K ��S�0y�Y2���4"Q���B%� b��>�y�*��X"���� �=.��vGF��I�3^0�Y�6܌�nE�W�����J>�!��=rG�,c99#O��r}(YF��[��?h,�.�#����ˡm �O�-�x�4.�N����}O~��r� �Ŭ����dUc=�9��9��D�ǭ�U.�ǜb~hSm�tКEw�Br����I;P�P�K�~��1�p0����=�(N�c��dF+�kb�?w?�lw��E���Z�mBr�(D�&�=�B1B%4"Ul�G$��*�^�=@���`g��~x,��F6�f�H�Q���oB��U�c��(YVk��[Is̢f�%�a�sB��jT�n;y�"��t|�HZ1��d���Я��5'N��\�-g��Vg�$m�y���4�][#6`I�^�7Y2���%�p-0W;�^:ڴ�k�$R>��x8��8�r:�4�tT�lG���\�oӖo�7�k��� �c��U6��X���s��s{n����'D��!��s�.�m�M+i l!�t�� �U�Kgx1��T1�C�3�o�B�3Q�1+67�[(�N�%�(�����|K�):Twc�B��'U9X�Dn�!�y5�('�C������L �;�6��C���G��ZX�(kv����'�v��8�,U+0��r��9��i���U�G�@P`6Ց�L.��`�=B�t��X�\�[@�ڃ��d���#�%��0��s>\G5ڞ��U���S�N��B��«cL�Ò�@Hf�؉j�6���б�I,�NJ#�c���g~�� �O%�Y�W��^�"�+����=~3B��j�,W7����vZ�l�BI��VF>�-Xl���u�tK����,�xd�8)���߸��ۊ8� {R;�[c��}������E�O rp3��(���{{Ik��u��sW)��Y��J���s�r<,�Le�$��`H�P��P���΄�7�����2~�����a�B�6��4]b���^@�g�#!]�`�H�m�8[���>�v���J�����-���VE�n��9��jK�>g��V ����e���[�����W3Ǝ��ѕ~���?�h]AF�G4֫4��iH�ʹ�+�0)(_F˓��N��~�$W�����Z���mB��Ur�fU9!Gq����U�l9�o��滽&)/bg�a˗@�*w�'�����C�H×"y�gV���ʧ�&E#f�m�c���粽&֧������v]@��ư��!�! ��7�;���phT��Hm���I�z}խ�Lkg|E2�#a��,3�9Ƕ��Bu��eL�S��s]��j-�`�f���H ��s�H-����R\��{G����xp��R�l�sk�&e�cT �N���=�9�&�����o��td&y�n��5HP�#~#}hY��ߘۄ�^Q;�au�;�9�ǭ%yp��Br�P�b�,��v�q.$ �ۓ�(VӤ����U���P�@B)����|T�]�6Q�+�Ӣ�JJe2�,��cV���n�� ��-�������G�ۭ�\\�a�Ҩ�` ���(Y0�B�g/�>k�2zS�h�E�i �܍��mi�V^I�T�I��V���MDn�l���)����ɰ��^���8`����O��|q�A����s�I�qtC��-���.��\M.�}"TR�>w>_V�3�ja����%M��^�)"U�o+.h}��q��>�4)������5�༠�h��t�A� I6$��!����dP�ݨw���t;���%��f���Hr�C��OnFG慜Q��dxy��.E��L{H�h�-eID �n�#9�m��S���^�S�Q&�Y��CO��,�:��Lg�L(��ů�d�#C���\�����4ndt�gP�1|{zЫf�����{-���Ժ�V�.I2K�Hq�;�m���J|V�)�1�s��M�����2dYtμ��<6a�w��Q�]�H�\=���tx��{���#<�@�ʩ؍�ޚ�Ԥ.sA���+u�N��XǮ�$O�'��$��;�Z,�� � :u}-���JįS�� XBI��d��8�zk�F��I�O+��ԙ� �E"1&D>������\��At���� ѣF �#T�N��z"� |�Ϯ�|�n�r�"�JZUR0��Ҹ�g��ס�]�ݠ,[�nS��[>��E����a���v���N�X�����4������3�<���R*�EΒ�s��[ ��~�i�+����Nʥw���9��9� ��᩹�Ĵ�>�_�s�f��]t��"�4�A+;� ��}0A���U�ߖ�6u�?�� %ܷ-q��K�G�#F\A8q�kEg8���'�s]�G�N�V;���`��|j=�8��3QX*�D��}��x|_�+Qv(f\��rNs���=�� ���������/E�Vqۛ���l:吞@�m��4.i���w�欜�H�|S�����v4(�T��B�;��Ԉ���'S�6����J�@x����� RT1����3I"�9H��uή,���be�t�@;p�l/i�Â�w�Mu�fr|R�������R]jLm3���-�S�Yݜ��m�f�J`ז;E��@O����8S-+F_|��}F�lg�X1t2�I'i�K���gd.n"G�PX0bL��Կ;�).k;z���a�z���#���GhdPAI�W��0> �C�I�O^+_P�/i}#<�E� T���όsB���jR4ఋY�%q<���[<��sB��e`E�u��>��e ��,@�;� F�w��B�d-r��]��4��#������2=(X�1��<8.U��I���3s.�aa�����$����Z�b��P����EÎ�{{�LY���T��q�x�ݭƓ��ۿ�ul�z��⽴�%l+�x*���<�H�RY*S�I��n{Në�}��B�i�in"W�h��B��#��NV�Xִ�nfW{Y,�P�( �xa�jlI�v�-ͪ*� �:�]{+I-�F{�ڵـۏ�?��Ԫ`6˅{9��u@d1,@��<�)��6e`&ە��+c?S�τ�cV�@�?�"�c�2�5�{�7{��H�=�r26�).0�� 6�ל�.[k���?�X�*3h�}'�'��jk��ĵ�4\D�9��n���w���x-�1��;� ���Ƿ��Q X�=@���p���UXԇ�� ,t���I\��� g;s�%��bM��xށ �{�H�F�p�02�<��"�X����ogOEݿ���Kd��V�P@�N� �c��a�%��7�.,/�W�⪰H,%�{�?f�#�"iν^om�j�T��hf����]��,�ܧ��ৈ�HlV0��84)S�Ę���:����߭�REM�gY0)���q����(�NiG�2��?p�즸,by )l~"F��n6��b��A���$Ǐ�Amܲ�}o �� Y�ap2N�8۞M �Tql�:�S�[?��[�Й�1�b�����*���F��+���.��ML��E�4q��{���B�X��]�F��uUżsO�!�U��Y0\j-���r3� LykKjZ����tm5��9�65+l�?�=Hp!n���l�����d.�Fu�l�폥 �����m��>�Ydk�,�d���`x���.�D�����7��� @B'�r{�3ښ�Sp���U=��DIdPW%��5g$���;{��L�����-]94+F���M:�Ԡ�Ls�w�U5��^�����t�g���8s;3i��l/<.3Ip�[h����V� �6�,D� #�@G����څE<�4�ž��˥mt�ڤ����ُ,��B��e�, ������Y��yl�d���V�}Tg�rG�к�L#X�T�{��>��Hx����G(����#ʸ>o6ڹ?� ��6��_��]��I���A#3��:��������aarᝂ7��Zz�RD!B�������'s���*�T�Ә��� }z��{mW��͠%���#q�� 8Z�Z�ax{���Ų��uW��3�Ѱ n;k�?��ңۗ2�X����.t�h�&V�|7f!�G�T�in�O�ׂ��:įq�0*��@�*O=���߽���hii �2�����A��#H�g?�d����J�6�@ې�?E�:�6�d�Kxbe�J���{�� ����v �=G�U�:l�]4������P� ���2.�0}���Q\Z̧^\�@���`�sZM^�T�3 ��t �b���Z���_�מ����cb���~|��B�״:H��~�mp�̷I �k�%��s��4���Z�$�o�.���<�÷���x��XGo4�1Q ����[��8��kub�I��a�����9�� �H|w��{+�7�2;����'ymn����e'�^>9��>Z�4�����P�h^�]�!�S�01�y��h�Q�^��D��{�K@�+������(WbZ��+:"�H�]Σqiw�Mŧ��t!�`�F5�@89$��=�X(��:y:�p�˄j���[�O�@��r��#��Β�L\ɶ�r ����Oc)j5�`F��`�\Ьs�������%�\�Y�^a�K0r1����B�+l��6��NE����!H�Ï0�Q���D��F�L�.d+��`�#�zn�d�`��$@�j�$���.paW�[�\�E�ҺǾB����~�-�_M��`_��'ԣ�����À�Ó�}��zk�E����\���FN<�#�Ҥ�C��wN�+Z�vw��(q�s��MfHu�ou�]���>�Y�pIp�!�*>�;TW�G��h�Y��Ъz|�ҙb�fxe�B/%_P� �N;��B�f=��ă'�7X�N���Nğ#��rF���Ǿ(Wv��f#ď��G�}�]�D�*�h�x�u�K��rF�ӡ�6^� �۾>��u[�Ia��1`r3�yܓ�q�$U�M2A��ޫ�� �J�8���`���.s_P�m�U!�Kĸ�D���Q����B��XXD͗s�L ��x�gp���(Xh2�^C�2(�du��s��2y�w�#�]��9�q���r�%��"$��p�$�Ҝ������.l>�*"G�[b���<l>h�2�j %jM �M$�w7;�}3�ߟZFC�ے�k5��������j2�.�� ���C���ͦ�ׇ����ɺ�uծz��k�R�(h�������=����e|�4�K�=���^��g�"ƣ��R��?����=�-�"x��J+�G���!e�kgc�����P�p�g�m6TO$3�2O�N�s�d�n|��'�\P�ֹ�������곷A�f��/JF��C�J��҅`ƴ�ˎk�L���kr�����������K�-���Η]Z6_�1uP�>U���Ҙ�j� :Du�#)0.��*�0*����H�99>�B�p�~���r�}�u��$�rW_�?��A�B��{6��rJ����0s���r09�'�BA�!��c��eS! ��@ ���4ʺ�Ŗ�n� ������nA�jP�u0t���#��L���<���? �2{d�ڑ���8��)��7]X%�k�H"��bOnF��mIesk�Y�yyxw.����K��b��'��eS��7�qB�J�p��i���Cmr,�254Q� nH#���cޅ��=�0��z�ʺ��l*�K��r,�.����m��|1Ć��k�x��)��B%�X�Up���~h����H���yϿ�:.��a�}����M8Z)P��y���3�f֊q�O���oz�]F�k($�X� � Nh�]+k߾鳺\�8�|���ǥD����=���3۬+o<I!�$��e@0N���ǭEs�Ǘgi�@oߠWI�����c�~�|��Ɔ*s�>��M@a�g ����'�����_U[��uI���d�26;��z![W�sS3�#k_�s:�V��ʏt�(A�0�3��r~��j��m�C-<�%�RG�JͯiQo����lQ8p� ۇ_�և�3�auai 8��ol�j۟Ҕ,��x���w��.�K���%�I��`�̀�rus܃���XkөNĂm���%��GT�a?��,N��9�F}h[�P�.ԯ?{�'_(�������7�,���z�Mz���Z0���]�N��NS1ą�P6�ϥF�wT��谥ع�[��u�`0��A�?ΜE��A�&�x�[�I-͊�ą��)�'8r��C�f`�!�X��ˆw���gY3��pG�Mjs�8.��[��&Y%�B|�IƇ��v�҅��:N2}�.��qሧ�9���-�����/�=�5�}+���km��7����6�4��ʛ{J�I����) w$m�8�P��a�B�/��w���.�r={zg��+�+��̞r m*ppqMXl�9T:A��{m�IGSu�^I������*Z+� DeV"\���F}O�%$�M$��z�P�B�V����|W�$,S�l�l�<�҅��w}�،-4���-�THp0�zr��T�8�CL��Ь�ԣ��IH������(U�.�<�6�� �aTh�v+�pF{��b�Zi�9L�T쮤�dG�Ƒ�:���o]��S �˽��]rx�!~�'������a�]fF\��q�Қ����4q��.4���hD�aUn���c nh*n�l�ROp�3�R}�m�D( a���Y���8���I�N�kCA%v��ZAU�X;�g��@�<|��e�r���g'��V�N'����o����AdPv� 4"�r���r*�*�`��tB�;I��1���&5��(!*� ��Y��e��P~���^iʵ�0����*�Cv�JjrѪ�ay!�ɖG;g�}j*��i�s��d4>to���*�;+M�%�I��HP�.��7���f�͜�%[~�� Y�l�*�\��q���]F�s�}mbuWDh������ ͖w�WF �`����$-4j�����Cc�}�M�]b����$M��ZZ�8%W*��b�B�vԄi��֍��K[��BH��ȎZQ���O��t�~�E Q��^Bq�y�=�RiN�9��d�1 ��*jy��s��!M �3ߜzБ�b�Ӎ��3I"��0�;����%D�1 $���ٗ�o�B;$̡s�"H�]G��1�{�IE��������\x��o�N�q�'|���T����el��6�^�������c۞��T�{��ǿ�6��uc�c��b~j@��J�~�Y��X 8�>朩���X�FX<�Zj�%%9bA<��5}h�*v� D�+[HQ|�\(ܞFsޒ�I$�7\�o��?������ c��SO*�r98>���ău?��� eU1�( 6���hR]����d�gօ*p����ќk��d�����Qp�#��[�������QȐ�,7��<coZJ�K`��>�pb��b�GċS���� =� ;�fgI:I�x���\Iw+Km/�͒�(�n�]�ʹ�X]o;�aҌN��W2a�T��8�ށ�T��d<�_Z��I��Ԁ��'ߝ��8�n\�!b�d�أ.�9:�4�i�+�CEՋ�(0Nvp?N�HQ.i�i���6� *t�'�7�4�U�`%F�d��w�+7'|�g�J ��C�3�|"�`0t�;��z!�@���h����G-���ǩ�AQ{��3�)�0{q���V�e��Z���PB��┪���բ������t��=��)Q����Z���&2&��+���މHT�a�UI �W ���H1�j5R .Th9V��|�y���Ϣ�<��}�N2�߾�А��)�A؎y#z!,�H������c���"�*�6h�G|e�����:������pU9]4�Z�m%�Kj�J�5j_3�;��>)�eV� }��+�Op� ��H�3�St� �#��Y����oGr�u�Z��:�����\��#�f��U�-)6���4�g�4���4]�$p�d@4��l���n�|���s��GF��8 ���#j��ʬ���T ~\����{�(�UcL�q�1Y@:I�68:�R۩> {�J ��`C���������6����J�^{||� !�[�0�שT�t!����ǥS~g.ܑ�wh�uDO��8Ԭ}CcP>��*:,A̦`��G�D���������uf�&���rW����qA���S����e�<�+�F\����1�3L-M��r�26�s��Skb�tQj&�1�h�{�:��~l�Z����F�s���(���%$p��a�|�\�v��t.�UUU n�4�O(:�$�#J�Ʃ��8L���Y���ɩ�1�<�w ��J�P�m���O�Gu��.��m&rN�������@�h�H�%̫X�|�`q�����i���]�x���)�F����EUTe��a�/T��@�l�3�v��6�}&�.�*�r�CބAE�r�4������a�f`'_Lj�\d���� e�z_x��miqn�jL�< �?ʌ���gP� �ܢ:�M���qF�$��s������+[+IDs��N�\�.T�h�=�x؏��4��V�`Aka[a�ma����;�"��9��A�� 5p�./ܹ��-�yd�WfbH�ay9߰�i�w�P{@y�=�i.�\��˱���� ��`�M�a).|(�����:ue��j'�<P:�����x�?EU�����qt��o=����Z�cx�)T�I�1�ܭ�uhV��&��L��v�<�F�Nq�0,1�*�qgj�����@x��ڰ�.��2[)��G��M�qPg�ʮ�)V"VL.�*[??J ���tZ%a"������?���h�Us���Œ� �H9�9��\-+ ��9�����8�� ���|"�pA��=i�O�R:�^@�X�P��}hE�`+����6R@:����JJЅ��f��!�U'>,`�����Q�P� ���~�3����6+ Q��1��p�zm�%-ɕ�_ �}�w�>*�̮�N��Ǜ��}�0�S���f{4��tb�� �s����Hu�k��x�B���F3�Hm:d�j��&^{SV�ܦ�Q������,X���L+.��c���E��{�*4��L캽5լ�Itꍴ�laG���N�-`s�7EԱ��ݙ�^��i@5c�;m���i�ޣ��˪YF��m�҄��+Dg9l���������!Ȑ�6�ud ���m�e��LSSj.H�z����Z��D�����z�� �� ɘ18ԙ�#څ�>e�1�jvX�C�5�m�#�FSE�|ϩ� 'o��KupcԒʑ���c,��2[�?*`ki�`��~���,�iu*�2��)w$�8��N���"�u˽J��P��Q�$�2�6J�7n ���(`�:d�a N�_�G��ϟ SYd���ϭ<���uӇ[,�L�`b\�g���NOz`qW5��raFn젆�@���v�q���$��ӻ~W[\F�"�\�H�ۮff���`3����U1��������Em�s��CL�H�a�{Ԙ��e� Q� ��'e�.�h�WY�2��6�o���Í���n`?;<�SL�_-���r�^��F|"�+�9c=�T̬�Õ�Eh�+�nm,=8�D5�*��,H�,��Fq�� n��,w�B�4�Bɏŧ��o�R �mp�tP�uZ�����|�5M��! @V[�a���<�M��d#��p�}h�@nau�-d`�h��:j1�0oM�����W4��Gr�%ܱF�B� Ƒ �)�g��0�H8��VٴSk����Ia��s�?J �P��0�o23 VX�,��(��ڒ�(D�oZTݖ8T�2�8��jmZp��'��Ax�L�mR*�*�n��N7���R�^s��Y����u��@��D�j��r��o�;�9?��4��K��Z�h�fEx[ � ��Go�AC���'|>�A�IbF�$c�PZ-$��G����<�Iq��7Sq���\�����i99<�'�P���A�J������F�3�?�E>�sI��$ ��prE ���B�YB�D������2x��6k/3�>��ks=���O���-2�1�;�\��Od�ԣ��h��8�G�^��O��[.�����F~w�s��?L�*���@�gx�«��W��E���ٱ8�7l�ڟ���K�.��1�Po�O��E�4���~h�3�¨Zg�Q���z�q"@�m��������O�D�*�>�u`v�*��4���s�R�L`0��}�?�Tc��#|�h������C@o�^ۥ5��B�w<�\� ����'ʠ�(V�o��4\*ᝬ0���}}��r�l�AU;�����|�U:�ǭn?ic!��Sҍ�m�|=��}l��F����g�������H;)���CIķ�_�w���kK�d���%��DFS?��Vm� �>!H �u�w^�K�d(����Gך�<S � ��uf%y})��,��J %N�Oµ�jI�a���(H��K�V`B�{�P�0��B7�_VA8S���Ҁ#�R�Г��| �j�K�[��1�D!���7� �*0B��fب�+g�F�G���Oo���?��?�-�x��K#`��1�W>�������zl�+i*BV H�I�����K�u�l�yc�S6F�cҜ���i��Up�@x� =(Q�B�FA��<c'"e(�:��8�q��P_hS�ݑ�ɠ�],o���JMx7 �h�W��`iү�=w� 2�"�pWR��l�ރ�����j6��:#:�2���ڙSy�!_qr���e�L�w��a-�d��U�N��gjj�`�}f�tΑqq�h�D#������tٝ���5ިc����� ��� ��+��M�$UQ@a��枩�)g:�۰�О�%�%Fp{s��!wMrYN0N���4d$yN��Oja6���X��ՠ�C�w�Rs�(,�z���*����Tb�vK���`�� �$-��J�B�~-��~�y�4�6�e4��g$hX�$|���9��Q?� �fR��*��G�a���>)��#��PYK@�0��n7��ՐnO�B�����IX/�[�� (w�������dpWI��sN��;���D�@�6I>��W4 GB���I�S/�T��w2q�VJ[� �?�$��ӟ�h�E�$j���M$����%���8�)�R@�J�a�v���u�X�VB��1�� m���-3��0��S�W��Ax����`���ZD*]He�;�Kr�:��� �;��(U.хC��0�HBr�r>vވO�'��-��q��;�T�cպH�ԝ�� Ʉxp��۵ ft�÷c���mEљ���zp$_��tJ3�tQ���f\�#qD����h��@�G��D��8�0�dϙ�F�r=�,΅k@u#"s�m��h��h��W��p�Kh:\R�l�������>�ε��d�.�����t��y�Ѻ��|+p9��GmLjWO�t>g�[��X-��'~C���h���Q�4~�B���Z�F�D�p�����Y�����i��դ���on�m(�1]L!F�=�S6UT��$�1�'�N�%� �D�s(P��lw��1LI����m�����QL��֊���g��`=i���E?�z.��^������6�x�/�vG!sرǶ��EZ��F˝���,C����?��RE4IS)Բ1�y��X�o�*�tY���\��BȒX�3�'�l����Z[3�����0�"�#;r���&�u�¯\J��C����q��K+���U}�����$�#a,r��*�� �z�N����p�^���H�^��_C��e�ҍrH��D1F�Q��R��\�EP�Xt���pZ$)�, !��v����c�q��?� �P�b�-�y� ��TZ8�I֡N���zjP\eE�R�oLlCBc3T$uL`s�';Ф:($��1;�!8� �� fxή9�Q d)��;����j�C��e��Џ���b�}�Н�q,.���&bq���*�����椶��[i��`�I� Ԉ�����6��#�� �T'��_�:]�8����$~�����j��j2"��b���S;��M��57#�L��B�`�0��6f;Ӂ��B3��/Nw���F�����O��9A���z����L<o(;�%���}�9*�1c���K��dv( ?9ɥ*���]�G�l����d� ��W��h�RX8�1���n=���I"���X��Ք,I�YYH:"��9���U��Uw�Gy���X�i5Պ*�g�30��]E� c���g��5�`��]�m6W�u �kw�}��;��s<�z����05�lI���}i�WS�1�������d������>ənys�s��7�*�i�f�,~�s�^]ݥ�_ 2��[�;� ��0�g=��5��M*t�E=@5�]c��t���۳��ӽAg�'�*�. �#>"��c(q�M$S���m�#�W��"Ap����W {�PT��d}U!���� ��~���J�G"V.�q�c��ʃ���_Τ�e_A�;D��u{�'T�I�mn����io����| �\7^���a@V8|=J�qo���v6�Xn�[Kͭ��r\��'WU^p�j�������8�e}0ڏ!�i�y[NJ6�q�Q���d-er# ���q���v`��߄������v�z�٩@[���5`�{����)_֠i�k�,/��[v1�Zg܃�v��&�35�ɝ3��H���8�+ J���laZl�~�>$�{y��)J�k[H �mzZif�����$��T�R���$�ӥ6�\�~6��;�%�q� �h:[\Ok y'��ǛQ����89�{H�J��\4T<��� Խ;��䱙���'���U����2�_fb�~�[���2�E�d�1��;��ՀK�e��6$�T�:A��n�P���-`F]7!�:Dm�6S�] g�4��������O>��$�x:��n���O��}{Uk�2ZA�3Cv#�_[���v߾�s�)�XNg!�j�#��1_+i,p��RP.VE����#��k>�g�$���g�IU��s��"`�W��I�_L������/>����]�Qn�f�� � h����w��z�����1�&I���L3�O�g?D�a���j��o������$�?�T��L�~�C��F�����}��D�^��)� ��5�o?D�Q��'��Q?nz��ŧL�{¸'�&�ӳ��O�?��m�(?�n����:��'��(���)�a��|Z�o�;�λaqywy �Nae�Ü� ��9�����.F>�<%AM�7��Ǯ\�)�u�۳����8��Ҡ�{a��,�Y\���cuh�����N�ߪ;�R���4�Ҥ��4i8�㷵0e�;��]ϥ�S$�;�3!3��dz�ll�w�]ms�t+� 5w���1ڤ/����n��Ɔ.Dͽy]j������ 5�bXP&�X1Ơ�}�J��W9��:8פּm�q�Z�"�:�z�%��Ya�pN�#'eS�Tt���̓��GJ�����[ם~�y<��P�u99�`3�8ړ�l��ڏs[L5����r>ѵ�uy_���/O),��d8,���wݻ����.�`�#H ·^و�����@df`PϦ<����}�a����U��\�3\� ~�,J� �\9�0A��z�J&`��r&t�ǭ���h�~��ǘ���L�.�����c�*M� ��l�U �c��⯺��I�,��ete��8搑u[Y�� u���];�n�g�m帙��RX�cB�g����օ��|��E� 'B73k��q��h�2ޫ�mV9,0I"韒i��ewh���%������G2cbb1�(�N��S����,ۅ��yc�lu���#��k�+t��q+�"�(��:���� ���UysDH�:[��[��w��xX��eMh > �[9>c�6��/1ov%၎2H���kk�^�����V KM4hZ8��r8,�`#;p�m�5�Ε��U�N������Ot)�7L��Ia%�J�sd�!!��Q��b�q�H���芡ڒ5�ֺ,W�I�^F�+oL��g`�6-�s�~驆�J���A�&?v���;x�D�S¶��x��QuC��$Q�'l�<{ԲI +cp���N�c�#����u�mE%���^r���y��:y�F{��\���S�.1��gI�^~[�h�%�~ �d�O ��0�;��>e��ִ�O?��6��Y�O�9f������g��-AWge��|��8>�S�!sqT�*���7���Y�N�*x��I��UK�X�U�^=Ŵi��.YI\�[a�;R(S`��:����}, 44i���Rɧ�q���:&ڔ��q>�g�f�L�g��� �s�Ll����~��i�|�Y�cN!������Š�#�c�H?�WH�>�W�t�_�S�!Fࢡ���t��^i[s���r�OzSJG1R7P��(-g_�E��Ix��]�c*�p"?�)��z�R�|})��bY��<������:-��X{���2�H�� ������c��?��������ef'�����K�"`^5C)�:Wb�#��a�|տw����?S�M�w������5]αu�T��D����37�4�*�Y�!9o|s�*��0Xp���4L��:���k�����b궢7���7S�WH���ȫ�s�xkD3M�}���<1�L�v��Ƅ�=6Z:����[dž%�E��L����T�fbx`� �&�p�?@�����9n,]�q���ۊ�������d���H�-ż����$iߑ�7������qt@pm@l���o[.��0ʮg�arve�]��4�1���~�������ʶ���E��N� �٤ʼnf,Ϭ�\�@ N˒F^P5�[��a�����'���f�������EAs���d}<�E��)�g쳽�I��s���?�55��X}�)f���?O�7��bs�|�H����H��!��q#� �7C� ��iH���� 0t�';��xӹY�a��rϑ�dž��]����w�����]Goq����=��O�j�3�!3><������I4��j�[s���$��E���2�C��!�2�]� =ի:��- ��s���KID�������=`�4V��� �Wq�#���C��v�~�!U�|�.m�-7'��eտ���JJ�ʬ�\i�ga�Ӷ�Y)W�̎]j��.�5���x��3I�8�s�ƿ�#m ��8&D�W�K���Rx��'Op�Ɨrڄ��9 N1���!Vk����������7��s/X���Uf�s����^A;J�s�ա�$B�Ta26���o���-�Ң��Wӄ�O �R��ӶUwb��?5��%@ĺ����^{bXI<�Y�YMp"@]I �T��zrj3�T���=��*پ�t�团�Eb�G;����jy���E������6�tV5�6�Im�r��dT#I��7]D$M��ȼā%\qU^֗�'�c]�q4�(�2�َ�!Ҩb��vƩx�����X+$�i�n�5i�����#��7re��yQ���=F��"UT�T�5������ �yWŷ�=�~1u�m��=����pV;�u,fw�o��s�f�k��� ���%mXR,�$�7�Tca���P�ֶok;���;����M��uwn�G�x����HR� ��>*m�>v[(�m<Hs i�1";�n+���q����&l.�Rs����ťw���ټ�1���3M�X����7���i����L�G��uC�����J��cE#�S���S�6���U�tk�5sj����N���M�X���U*��R���H��BK](-%��Ug`/j�j&�(�����۱�O�ʖw���a�Q��h����^j�Z��<��+�t+�~�[�Vѭ��B�$!���v�A�����<\]V;�4��x#�;���>N�r�v�D�#[����v����J�`�w�'8�q�}ڕ�M��.����v�"O b���Q�'�������R1�|�eI��P�����-����B�un��Co$����8�܂ �#���j����Q��t ���`�x����w��Z���PI 3�X��"ۦov!��� �������B��bڀx���^��<Q���Z3N��LmlI��b�m��h�ˢ�η�iT5��{���^+�Sa�?�|�I�%���gNK�.�V�D��A:����ZY�GݤpZ46ml9�r=�M�gq�W��o�}��%�q��[�Nq��_�(�?Ғ�i٧�Q�^v���]\Ƭ�5ż��;�3�C(s��@��#B踴aZì8� ҵ�C<��Y9:ee� ��bMEsEB托�Oªy<8$^�ӥ����f�G��X���v�G���p4^����|V���t�"��\��Ȩ[��������U5hb�.��}�y-w�V����b�4�aO��j���*���;�/=������0O��)`p��09mG̾�j�; �ؕ���ˈ�:m�x�����3#�G�$ʝ$~D���w���M��$���.���X,���+�34M�X �ƣ���r���zw!Yٺ�{�-3�xX^5�Y��kn��i,٥g|H��:[���?�q�)��V��},��-�o��<�eq:�RI~�EqA���Z���}JT���q���56��U���Xke f�k�D�mz�Q��������0@fdB�@*�`�|sH��Fʶ����I��p�$��/<��7O�<�K���X~��Gq�,x��X�@ӿM�f�t"n���=�*�o 2��Gӫ����,�� ���^/���>���T�}>)�c^�>�W{�J��5 �[~ �sX��WR���Ӝ������x��-���9�#i �CM�8�Ys������������-�-���{ �^I��9p�� ?��\v��N�˪+�e�9'������7���C�n�*�F� �q�"1���6��m�։S�^]�u�5Uݤ�-{�'�M,c}Xb?x�l�5R�TW9ZD����ċ��.���T�|idg�}@���槞з;r�u��5���M�wN �����j2�flz�\����*�v��;`�߿>Ԕ�Td��`�ˡ�V)�<�ߜ�@��Y0���M���+Iok�>̡D`�����4(��a� �pC�i���䩓9�m�=(C��M���.�OM�}���2�I��'���,�a�hP�Uzq��8l�����F����nU@c�FvPX�pv�=�R5F�k�"�,�u���>��4MqjɷHƬn�co|z�t�*bC���&�stt�YVkkFY)�Ɩ�����?\@�)7XAk���Oi0�"��č�%p$Υ������;~���;��!�e �4i����+nވ\����,!���I����q�|n����H���-(x�TL���F�[,2 $gc��zp8�BkA�5�/�`�<�>VB�,gA]�FrA�3���i��I��;{����z�:F�$���_b˕,p�$���*�6 �*�m�HDs���T�=����ɕ*�%��n��aY�e�ϪD��9�_cIV�'��Q��i"�or��`T���A Ԥ�5h�c7�Y%�8��֒�3/��$'Ф���ϐ`}1B2I���S�d ���m�4Հ��T��#3ȱ��d����R���@�C�!s�Kc:QFާ��N�_6�n�R�+h [V�n=G���i����)�ȱ'�x�NAm���$�ޅ����?%9E�.�}�o�B3�i��_�OS��F�;*�R�^;PHߊ������ui��Rk����2N��2�T���S�#��E�L�u)��in��`��П�ލ��u1O^����j��vSIC��Y>�)D�p���^�zRX�Xj(���x�E��>BC��`�@N2s��l�����5�"����v�k�PE�T[���D�*;+��'Q�6>�Բ�jui�l#��+p�q���:�Q{$v�)��U�bF�{�U��u�� /�:�[����$�:2��������TQ�l�� q;�,'��C�Q��s�;��ֲX��Ǫ��c3*0}Z���;m�"��B��e����������08�SJ�imǪ�l���He:�HI�}q�B�j �<E��g �/�� ����i��0N[�]o{H�A�ӯd�Σ�n�����0w6QE#=���k�l�Ac��g�s�҅6Vs�T���=���E�)� ƝA�N �B�y�ܭ��'H�,��K3iߜ`���( ��]z�.z\m��ĦKH��1۸��E��W�\�7�mm+H�K��Ҹ���4֖U�ax�Q�����ep�[�+�q��� ���e��]�)�-�UB���,����'�d?xU��?ؐ�H9^TzmNU��vYkl8;����͈���T�pT�),�k��Yol�6?x��g[F�}��F1B��R��X�N�!�`�@m�����ԼG ݊��Gs���m� e�\��wyN������� M���P�210�fǔENO��ڄ�z�u6���e֬R�9m����JB��;���5F�r@8��?M�CF� l�����H#d�G~O�hQ�l�_��SC�R�'�gl�?]�hR�I�[�1RS�\����P� Ъn��t\�U ��cӰ�)ӨA�en�����!�'�`�#'��ʴW7s��u͵�q��eh=j2p�>����TV>ф���RȒ"�q����ls���B�i ��Z�i-�� ������;����R\�Q���uuOT���I��ݛ��IPdl��8�}3� )ЭZ�c�@�x���c��BB&q hG���r78�q߹>��IE\EY0b}������]G���H�� � �4�5�a�H<4��WA�����֢?+���P�s�G���i.�h�f�F�`Ųs�=��ɡYU���H3���?k�����5���n��ّ m���Nv�MM� 2B���u*5C�'oO�Wq����%�aYYԞ�q�'R���i�Rf���5��瀱P��zoD�}n�8�)� Rq�E��$�mD�?1�oq�Z)���H�z1Wٻ���4�%�p�k4hP���0o��"ʬc;&H=Oz�\9��/��Օ�c���sQX�J�������7wQ�}��2�\JbB��.�pF��6۷�M���aiӦ]��l�]�/3�R~��A/Z/ ��G�X��]J�\8e�F3�[P3F.�=�bp��Ј� �^��!�f�I���LȮ�����c�i;7��:.UG:��f���H�㳨Y���IђI̒Ie� ��o��w#��UTjѯ�״�mi?���+wK�t�ɑ(vU�yH������"!g����:G �ӂ������9�x�)�x����L�EF0��ݴ���$��m[�>{J��αԾ� �Q\�uhϋw����#�Jd��H�u���SQ��w�E����j[�t��&��Y�#7�D���*2�O�Ίmk��e���5����G���\��+�t[ˮ�Ү$�+�7+%�f>��<F�:O��l�X�L�U iA�,u��}�z/�w=B �3���Ш+���ӿ�n �&˝��E��L�f='��������C$J������L�`�}2N{���*TY_.gj bx.�߁�"i�|�2�Qc8pps�]����O5���Y�\�V��$D��e�ͷs�����ì�_��u�f���͍Yfhٻ������%\�C\{�D�7�;����Cm$Hળ�����;S��k)V�/w� �lS]OnVx�";�� h�J�;�6�)C��:Zlc�.��I5G�����@�OP~ ��H��e�B�&U���(L�7]�^-7:� ��Ԝ� �K`M��3;��IAddq�1�Ϸ�ԟ#���kk�-��3�A�8՜�d`n�?�j5�T+�{�u��~�L�u3s�ڙ]bء�]������6=�,�khe,s����*n�k�<h�-������rrFwߟ�/6<0euQn3+ꔗ�EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEH� ���J�,v[��f�#tԜ�jL.��*UbH����������������������������� .��UZ�&����F��s)�-C3Q�(Q9��z�����8�N����"�"�"�"�"�"�"�"�"�"�"�"�"�"�"�"�"�"�(����uP� �3@�&��!�LE4"�"�"�"�"�$��Q�D��rX�� ���0�R0�W4��p���$N�~U�\o��fU�r��RpsB��:�$P�P�m�S�@��$���P�V���S� (����� A� �=�1ĶHR�T|F��~U_�ByB���$XMA��J`J��Q�^d��V+��қ*w"U���պ�V����8�Q{����X8;mY��t6�JM��7��_%������l�Ҍ��m�%YZ�QBBBBb�ޢ熉(U3��+�aD�m�i<�J�1V� !,�l��z��`nP��`��t:�h�Dʘ��گd�z�Q*A��9��Xڟ6R� 6X�M�38�"$';�˦�M�)+�;��i�̆��D�uަ֛��T�z��V6�7�$&�V ��!:�H�'�����P26Xs��X+�.p�hK`�P��٢��$�{�� ��]J��B`B�Y��V1��*���=��.S'�iq��x�G#'�� ����$&T�`��ôQ��n��錷�PS$`��M�`���r9����uF���<�tjH�u!N�(��"� �9����(U3j>Ւ�L��)� �k!2���iⴚ�(i���q����X���#}�R%�)�����P����(�H�H��V����_ʈH`���-!�|ɔ��m@;c����D&}{P�; #�9ȤL�:�:1��U�K"e-� �'�TX]��ӭtS.��I��(�ܚ�Tk/2�����L�O�����&� �*��e�H����*%� �D)��m |����c�c��1�{S{�[�tu~��6�M�$�ulO֬�_���F�9�>�KI ����븄l�8�8���d�B�;�?5h}��B�0Pm�J�ځ������w�ݛ�b<�%-dl�Y�9uN%H6x��W��q!F!&n¡R�X&�9�\dIL%��T�^��?�F� xP�#�֘��f#�ע��Q\1;Ut⣓6S1��j�eYI��Y\�L�H],�jꚞ�ߎ}kFW2]�3di:C �G({n�إU�&�,[c�I�{���E���?*��$j���55F�@�z��"�J�n�Vj�3�) 75\��1���Լ<��aS�>Pk��Y�l�ڡPH�d�K�C `�Y�8X�R���h#����M�):�I 29�3��E(!�F�≑��By���9(��9>��)9�{������t'�h����C�w����ѿW�Pw;~�C�ʄ��M�AMY��o�֚A^eE�q����B#�E��Tڪ0,��>�S��50��kCE#����%�d� �ӈ��n�,�A�3����R[�TaW#�Y+Vs��u�JFw�{b����\S*E�pN~j�W)��=p��D�������p�I�<���i !W��Ed' �z��Y�ʂۍ�uRL��A8�O49��@(�'U���n��!����ކ=���߮���|A�Ƭ�I¨��ӻt���z�XH늌�:�5Ϋ�̫�gޡ0�,zՑ"�$x4��4gޣ<Џ�q(Hc##+QI��&���5:�k�-�~� h�����6>hF�H6B2s��.p9� Y�e�� 叹���Q��nv��.� �I����(Q>�����Z�Q<�w0��{��hQ�g>����O��IH�*sG�L��8>�T�?��O~ˉ��J=)5�t��>*��Q��r 튃�s6Ɏj�s��t��2!C=�>P�rM,o�RZ ����M�.�j�<�Nk3�&�A����8�d�b��������'�P+���㰮����i�6O��^����=z��2����w#,$H+��59����^ZϬY4�ٶ�pğ��2���e$�۶���Jڑ !,�5�h��$���BY�I �+�`���*�u�\� $n����VK �;Һ�e��nkC�R ~i�TI�&�{�0ۦ�y m�W~� %� ���:u��lPD&N6��'>Q�P�k3��i��D�����~ � ������kKF�D�`0�R����2�uby���_Q����LK>�^x�/�W����pG*��N��M�.���6�H&��ő d�s�D�j�$�i ���2t� ?ƪ�y5,�����\1$7,uג�U#7��\q�q)(�I*Eה%PM!HU�BITL%PM�B3L9�L�3LD'�(�� ��I��!�~j���)h�2�v��ЕA���B!4��BF�&SK�"E x�$��)�Ś �HՍ~d��\-���%���(F�:�%�P��M#P"预#zWB��TQI�a4QT"���QM��E+!!�P�i��S#t���ՌtAL��*���ڋ���F��H�#�T�%5�M�E$�B��U �LoV H�(B;�Hkޝ��ބH���(�e5a��(4�#�qBU�#4�4�3(E���% �h��B(B)B��NP����E��ڥ��%�1Ĥ�j$��5=8Q�U!4P�:����EEG�E�����6)"���c�ze�"R�P� �BF���P"P�Z ��QOT'�4�uBY��Y� �⣢P&@�ޥ�I��HP�W�(4��>����Pi�<9��0��#<_�E���0�Z�<���q��PRo��v��<@�1R��R������ }�.C�Jj?��MC��>��7qgmG�j�|k �=��Gf��N���P���Qk|��HR<T>�I�ŷ�V��s�2�������)�z�(Fs�v'ҧ����kW2·bgK�ȝJH�+Oz�^aT�hqEFJL����(E:!��0L���K��D�M�!�� R0�a�E*C�RB*1(H�n�0�A4�'��НL���D �O����,��f�a�k���ʯXx_�Z� ��d��������my��;�q��7���ܥd���lc'TcI��#���(%D�y�Vkf��y�)9�6��^���&�G�>�"[����n~<��#�\��q�X���2���q$�~��UJ7o�>���q�}ʛV�;��~��5����# �7>��5��/�j�y�T�eR�rwI.��i��RGz�!�G4D�<�FsLMQd#4��I*S)��P�j���!0OÎ�%��"t�#�t�Ϯ�O� gz�iM#�D�Y |��i�T��� �6�왙�R�q�S^'�'�,���/7#Sb-�rZiҴ�7,qa\�|Y���}nU��◌��WqK�B���Gꌁ#<���Ug�x��G�y^3�0>��~���`xd x�voj�������x��$e�?��Ңq�ή�De ̱P� gz�`q$ �[Q��Cr3�oU�Ih=_�`�R~��&�_���w $��֫�&����]�!h�69)�}+��[�a݇�d�#�ӷ��f��2���ÕH��1Rh��AB(B "�sD��9"�E��B)�G��4B2(�B�Ly� Q(A4�!��G�4�`J6����u=n���O ~�m�X�!�����������p��3_3 kd��8�֑k[h��>�FɤI?P��GcI��(C})T7��q.���ɫp��Z��MOp�N0��NN����lľuP������:�p���P� ���?ƫ�4��5���D��|����5��L+��ºByO��WG����O�w�|t�0T*�]l��s���"�D#"��ȣ2�;@�F�;DBY�� �� ��A�KJ�Lh�f����������+?h�N�}(���g< wn!�����FTk�������^߭K�$i�F�j��FȄ��l���Y>g;#,�=B_*&�7$zו��4�iR�E��_I�nVB�N���y�J���zB�Bo�qI�\Aw�:��b ����qѨ�kl�� g5m?�W$g� Q��&��3j�����n�=`����4�@�����C�.�NW�q�����ߓ�+S>V�Ht_[�6>F#��x(�p����(���:�NF�:H��*�M�k���HC�G>�zU��<}M�D�s�֫4��Pv<~��IL���N�'�����A(�%`F�n3�5�0��趠#1y���Y�ܦ�=�nb,T�P�w���B2i�r�j3�L`�P��4B)�B2if(FO��� �0�OJ��!,{Tr�F���'��Т]}r}��^��S���?�w�� ��ۧTHv�@��ڵg5C�~}S��W��O����`:OR��H ��U�÷X�p���.R�3��[ٶ~o��(�a���ۯdJ��N��d��=#z��_���% �vU4�]H1����k����ggiD~�>���L2,T%����ӎ*�V.��?/�~x>[&��(*H���df����n|&�;�ӕz��ձ��u��y=����m8��������1�#���##I�����@5� �:�E��A���"��z��@�W�j=�_�#��ք�T$�-��VlAN�^���/<JF���� na���M�~Vye�4��Y�;��������)7#�s������E���������j�������0c�BF�z]��rT�0��/������Q!Vi8+�Ua�`G���1t� a�G)��w�~��T���C�yQ�v�Y�@�QW�s���U��49��L��t눎A�k��j�XN�y� ����k��ֱ���0����������VM*��ơO�1���>���d ��;�>��IؒXn$�ێ��Zۻ/�P5�A�_� (������W�\t{�O/$ݛK�����u�>G��O���@p��&��}T��J�1X����O��YZ�4��(�Z���$���_�FA�#q'���?��D�R��,>>��:�x�c���5�X�#+<�# ��M�iM���j�����/�##z���� ����.�b��?��<�V�� %�m��f�a*T�:����Y�,@��X�8�����v�89�Ω�{��j���m�L�A�M,s�Փ�Rv�:�f��cc~(�bSL<�0�r3�M����m�p�A6����#{"e�Z �Lr+@��C�� @�����J4(���ni3k�\��%L����%������]S7�I�b.{�B�e\�A'���1��X�51�4K E�;M�}T�_T9��N��ĺ}��s�C��8�9�At�G�����NA$���H�q��T�9��,'K��yG�`�(la��S~L�l�1!U�%Ib@�z�[���Cd����ۮ��!E�]8Ìz���~�X!�;��'�����!`�lTѡD�5�v���L��`�1 ���X�S���A��o:�G���E'*U:,.��@�~�{�̦IZ�6�N=NO�k�O��r�L�'��YT\��4o�����A��%�q��"9�/��@�jƽ��"s�x�������r*�P6��#Q������ i���[J�<�e�6��2���k�?3�Ú�d�F�"u�o�ХyR�@! ��z��/hpd���(�����ם5�,�|ʶ�Q���$�z�����"w><�#d�`X�����<��L�װ�`ŝ��w�;��R����D鹟J�"�A���Mx6��>�8L����*��7�xe���$j��?��v�� �?�N����������������s����j�eg-������u��?�g�H���i���?���Ƌq��X��ʝ�㑌~�����in�����#�lG~�M�u�9N䑌�kN!�&"g�jLƧ� -U�CJ0�����VJ��^4��1Lj��HXh������{z��F�r�5�����}���:��|r9ڧF�l�f���f;�<Լ�ˏ�O��Hx!֏�]������KcX����R�T|�672M��D�N�ML�����t݈�����yxA���G������[.���^�n��w^�DF��8��{T0�`{ƭ&8�عi��70Q�A8�?և�l#8N��g�JC� }�hmJ�@<�o�D2˨��s�huZb�p�=��wJ��@?�q�����H�m����F^}y!��ɤ�F�wT�(h;�5���0!JH��nq���5����1'PO��6 �$����Ҩ�A����-�����n֘��M������U��T�v�@�E���1nIi��b�M�0�w'��t�v�3��A �y��)��\H�R�0�m��V�(V�)��p3��I�m7��� ʱCC�~���j8�Ud��3{Xy5 F$�Ƕ�\��?mR�x��U$��֩4)�s�p�-�AL��朓�Do���?�9�c�"?�R����`N���k�9��.�&��O��ܘ)����Ս�@,<���<e(*Z4�I�q�[�~Ȃ� "�$� ��Je%ld���*,� ��/ݨ��TȔ̃?ڤ�H�ߔ��_��A����$��UQ�;y"������,�?�E�$g��qI�d�������m�`G��+EU�'!����.�:y냨Cc��Q-$�l������Α�sV��a���3'+v�G���$��?C�Fw$S�M0�K��x�>�� �x�$&�ճ��#�r k.x���⯷�Β7��?�u~���"ā�Z�����wU��AZ�[N��M柱��=�`��#m©���S�đk�� �m9� �(��^" �X<� U����H~�1:��wh�RP���x�'�~?J)�F��;K�����_~,<Z���9#:�����qӚd�.]p �0~�q�+�"� J������K��N���jnF����<n��B��8�=�-�*��b��w�|��&'dբ'g_�~����<�=���R!�,�;JO�m���b��i <��H`�5��Y�G�md����\|G�(V��c��[�#��-l�2�N�㑒>��ʟ�ꂛ���I8I-x���O |���9�5el_������`1˚A�nRw�9s��V9�R~��U�W�֞�48�Z�;�1ׄ$�j�,��g�q�J`�������A�BK�1� �n�X#U.�ȦU �j���_Z�_�i�Z�zdžɊ` QN�l�6���]���vc�a��N�9���7��!A�F�<��:����`�#[^����HR�y�B�����[LJvm��Zd��M�!L65U���'���+<s������ϫO�e��Uo�k�C����K���A�+�߇�����F�x:(�]�9a��R0�������E�H=���V�{G��� <*���9����;37ߒ��G���8�y@L�W$���ԃX�I0c���Cc�*��B9<c�3�w�jR'D)�Hd ����L4���x$��J�GoJ�� �p�5c_3Z$u��O��j������ԼBFsV��Ź�un�2�N�3g���L!D��T����4�) �vD)՝]����L��Q 9�v���`�s�?ZN.'~����>��U��q0�qOܒ~MN*չ3�(�O.8c�j�}zbC��ww� ;����T��'1�M�I-��i��$��O�Ign~��ؔ �ڢ��l�U B`���V4͎��#�D�7B���0�l�+]\gn2T����lh��Y�K�����?v��s|Wl|���wu*�ӂX�c>����C��!{��_T�G9>��Tg���s�� µC:so�jO������J� q���`@&�o�wD����lv���<zV|6����8o�2�@X��I��YK�dh�l���d�T�"���c�Z��&�gh�`�<�YE�����ʬg�d��Z�ख़�֛y��|�� `_`)�������M����H�� d/��mt��AA�\��Ou䨴K���3��ꊸ*S�� Dxk�2�q�G�$nH"�WhiXM��r�B����U�p,�Ƶ�8����@q{Uө����F���g�dǙ�o�P���NGj�v�L�ȟH��U����{��0@�*C h�c���)��p�����U>S����G�]����('�����;)p�;���J(�HFO�j���fcs����s�ʹ#e9�}Ec��*Svm[�L8��PX4�~ɠ��E��.�A9��ܑ�D�Z�J�l��"�J%���C��u�B[v�r��&p8�jn (H�ҠKb�>�PnL!{�Y��bp������c3ō�� P�~����I�8��+�Q`"ϰ��} �by(�VfR{⩨�U�d^�[��$](�IQ�Ut(R%��N�tx_�d�b��VUǭk�F�j6�{�����D�P�1?Ί8qL�1��A2�BN� /"��s���y��UBu�s�J�cp.s������Sk��db�8�]��uD �"=;�)�7 YЫ�|�W����<&�n=ߔ�6V���������V�5V:� }�< J)I(H����j�N0P�����x����ɺ��פ�������P5��}���l(B�9c��5� Uә��fx���D�8+.0u����ͬi����<�D��2���$�sZ*Q�M��9�F���m�� A�5����ʬ��52f��u��)�����oY�4i>����#}�:�R�*�-� �<qX�>�|�C�ئ@�W.AS��~1ޱbs0����@7:u�e6�5%}v9�)9���ȝ~�<�7VDH\nF3��+V�k �L"c�O��r5��})�����[�k�N�(�)4�r�005~#���g��^�R�R��~��0��4�`�#��"uO1 �WK�����u;1s?X�B�L�R��O�Gҭ�R��4���4&]{yr~�,NlC"�,���ù!b�#}#�������]n�0�>)%��t�u% L�Ri���WrA$g��a 92 ���5���t��f!�t���!� �ܟ.��@U�>#��>�V:��y�o�����_����(uuay)help_cursor.png �������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��t��t�fx���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3�����IDATX��OLTW���tZ�8J˟�4)�iA�����ژ�4I*��BC�M\�6vх%�.e�]���P�c�1X@��$�Ri�B�80����]�2֙�(��%'/���}������<9���ѕ����n��˵�̙3f����$�V�U�4�#������\M�.���ƍ{��Җ��<;!sss��|��Bq��Y���Lfgg�իW˜�Y^^./\��!�{��:�,#T������J��72>>(((�@�(((��n��fgg�ڷo�����|�������5k�G"%%E���hccc�&�i=�<a��)�,..~,�H���K]�ő#G~�2�I�'������|����T^�zUw�\��n�v���//^�c(�bU!fi�V�AQ�N�>m\��w�^���B�~�رN��9|��IJKK����ە��̵@`���H8��,)����_����d977�����������c�ܹs�� ���H)�LMM��!� �_UU�&&&� 1��jMMM0\:-˸�b���M&B��z�arãx��Z0���&''���n�zz� ��ݽ{wKjj��j���,fff�n�[焌)����C���5ׯ_�v�\�B������&''�SRR�777��Ҳ�k0�������@ z,�Xx�Pmve�� l���_!���&�(J����� ��o���DP�����������i��G� ������B�l�K�w@1�B���N4Dbǎ&���kwww�`0D�<xP !��Ç;�:�c�-�%��p�z�[��2777����B !dCC�e����H��%4���f�t:����~��6: ����.�.�*��������G5TQQIIIJMMM70��E�D\���QU�)���e��ߏz.##EQ����*UU����h4n�uNN�O��� �y `�s�N��R^�rEVWW���j�y������[�788(��ԩSM�{��ܔP���������*�����B���x� (^'�q��2`mWWW���b���1�u]�6���>6�\���y����|0۷o�"����������K���!��?\�D"L&�:���Ķm۞�b+�f�z�����zʼn'����j�v,5y����� CCCׄ�f��r w)���l����o�Z����O����'�2"b9����?�y 2!�L@$O!4�L�~8|<p�sC� ��?Վ��D/�)����IEND�B`���(uuay)filtermodel.ui�����^������<?xml version="1.0" encoding="UTF-8"?> <!-- Generated with glade 3.18.1 --> <interface> <requires lib="gtk+" version="3.16"/> <object class="GtkListStore" id="liststore1"> <columns> <!-- column-name width --> <column type="gint"/> <!-- column-name height --> <column type="gint"/> </columns> <data> <row> <col id="0">10</col> <col id="1">20</col> </row> <row> <col id="0">5</col> <col id="1">25</col> </row> <row> <col id="0">15</col> <col id="1">15</col> </row> </data> </object> <object class="GtkAdjustment" id="adj"> <property name="lower">5</property> <property name="upper">50</property> <property name="step-increment">1</property> <property name="page-increment">5</property> </object> <object class="GtkWindow" id="window1"> <property name="title" translatable="yes">Filter Model</property> <child> <object class="GtkGrid" id="grid1"> <property name="visible">1</property> <property name="margin_left">10</property> <property name="margin_right">10</property> <property name="margin_top">10</property> <property name="margin_bottom">10</property> <property name="row_spacing">10</property> <property name="column_spacing">10</property> <property name="column_homogeneous">1</property> <child> <object class="GtkLabel" id="label1"> <property name="visible">1</property> <property name="label" translatable="yes">Original</property> <property name="xalign">0</property> <attributes> <attribute name="weight" value="bold"/> </attributes> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">0</property> </packing> </child> <child> <object class="GtkTreeView" id="treeview1"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="model">liststore1</property> <property name="headers_clickable">0</property> <child internal-child="selection"> <object class="GtkTreeSelection" id="treeview-selection1"/> </child> <child> <object class="GtkTreeViewColumn" id="treeviewcolumn1"> <property name="title" translatable="yes">Width</property> <child> <object class="GtkCellRendererSpin" id="cellrenderertext1"> <property name="editable">1</property> <property name="adjustment">adj</property> </object> </child> </object> </child> <child> <object class="GtkTreeViewColumn" id="treeviewcolumn2"> <property name="title" translatable="yes">Height</property> <child> <object class="GtkCellRendererSpin" id="cellrenderertext2"> <property name="editable">1</property> <property name="adjustment">adj</property> </object> </child> </object> </child> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">1</property> </packing> </child> <child> <object class="GtkTreeView" id="treeview2"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="headers_clickable">0</property> <property name="search_column">0</property> <child internal-child="selection"> <object class="GtkTreeSelection" id="treeview-selection3"/> </child> <child> <object class="GtkTreeViewColumn" id="treeviewcolumn3"> <property name="title" translatable="yes">Width</property> <child> <object class="GtkCellRendererText" id="cellrenderertext3"/> </child> </object> </child> <child> <object class="GtkTreeViewColumn" id="treeviewcolumn4"> <property name="title" translatable="yes">Height</property> <child> <object class="GtkCellRendererText" id="cellrenderertext4"/> </child> </object> </child> <child> <object class="GtkTreeViewColumn" id="treeviewcolumn5"> <property name="title" translatable="yes">Area</property> <child> <object class="GtkCellRendererText" id="cellrenderertext5"/> </child> </object> </child> <child> <object class="GtkTreeViewColumn" id="treeviewcolumn6"> <property name="title" translatable="yes">Square</property> <child> <object class="GtkCellRendererPixbuf" id="cellrendererpixbuf1"> <property name="icon-name">object-select-symbolic</property> </object> </child> </object> </child> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">1</property> </packing> </child> <child> <object class="GtkLabel" id="label2"> <property name="visible">1</property> <property name="label" translatable="yes">Computed Columns</property> <property name="xalign">0</property> <attributes> <attribute name="weight" value="bold"/> </attributes> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">0</property> </packing> </child> <child> <object class="GtkLabel" id="label3"> <property name="visible">1</property> <property name="label" translatable="yes">Filtered</property> <property name="xalign">0</property> <attributes> <attribute name="weight" value="bold"/> </attributes> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">2</property> </packing> </child> <child> <object class="GtkTreeView" id="treeview3"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="headers_clickable">0</property> <property name="search_column">0</property> <child internal-child="selection"> <object class="GtkTreeSelection" id="treeview-selection5"/> </child> <child> <object class="GtkTreeViewColumn" id="treeviewcolumn7"> <property name="title" translatable="yes">Width</property> <child> <object class="GtkCellRendererText" id="cellrenderertext6"/> </child> </object> </child> <child> <object class="GtkTreeViewColumn" id="treeviewcolumn8"> <property name="title" translatable="yes">Height</property> <child> <object class="GtkCellRendererText" id="cellrenderertext7"/> </child> </object> </child> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">3</property> </packing> </child> </object> </child> </object> </interface> ��(uuay)floppybuddy.gif���`������GIF89aP�F������� !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~��ぁ������������������������������������������������������������������������������������������������������������������������=v{����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������!�NETSCAPE2.0��!� ���,����L�>��� H����*\Ȱ�Ç#J�H��ŋ3j�ȱ�Ǐ C�I�dA�(S�\�r�Ʌ�N�jI��̗ c��JϞ@�����H����2hJ�2�rD)@*0�.����O�[�vDٕ@��Xsjj��l�6$��٫w��5��mW�)���9-��͢�{�,ҁEg�u8��� �5|��b������S�C�J%�x3�|C�f���۸Ic��qh��q�}vm�B�N��������-�8�(U/g��ys���_�9�q�ٵ�^?�9y��ï�>�d�����|p���_M�6�~����ϕ�v�(�ބ`�.�}� W!�*I����І�9g�N���������AȚkhq���8S�)��5�H�g�f>�$JB�H��L:���m�h:��QIe��!I��6 $�0JY$dH�X��'u���m���Ah긑�*�9�|j��B��昉a�рx&�b�����e1�aJ�Yzi��v�i���J����:*�����A*=�ҫ���������Ꚕ���,B�k$��K�O9Ūl}<�WL%�*Q�M��i�.W�~H���S;R������v������ն;�m_2xn~)�.�����kn�2zk0����.9,o�[.��f���w���#�!� ���,����L�>��� H����*\Ȱ�Ç#J�H��ŋ3j�ȱ�Ǐ C�I�dA�(S�\�r�Ʌ�N�jI��̗ c��JϞ@�����&EE4eS�F����@�TL}Z� 4�T�I�b͚��P� �v�X�(��Dː�յj7�)֩V�U��{�n���*��4�Y��R{���5�*ʹ��� �,��h�q �|PJ�|��]�x'�ФsW��Z���_S����ޙ�'[�}�u�[[E�%��č_O�|9s��ϥ�.P����as����s���SW�������o8y����g�uh�`� ��w�%�V�"h r�Y�]��ɗփ��v�N��(�����ǁ��d���`]&��L%�Db�'�\~ rуx�vڌ�Ԉҍ&�x!��A�j�Fd�("��6��DP�8%JU�����q�E[�V`�`)����eH_����q�y&[k�x'���Q�G�)"}y~�`1Uh!�;)Zބ�N�N�f꒤�v*i�����I+¤Ҩ��hꥄ�����Vk����j��*t뎵�����*+Od!U�_��D�l�v���5�`u]�6�k؎4�����-�M����f�ҷ�yfb�������nW�J5�Ӣ������c��$�K�~���n���7���G,�T�!��This GIF file was assembled by CDavis with GIF Construction Set from: Alchemy Mindworks Inc. P.O. Box 500 Beeton, Ontario L0G 1A0 CANADA. �!� ���,����L�>��� H����*\Ȱ�Ç#J�H��ŋ3j�ȱ�Ǐ C�I�dA�(S�\�r�Ʌ�N�jI��̗ c��JϞ@�����H����2hJ�2�rD)@*0�.����O�[�vDٕ@��Xsjj��l�6$��٫w��5��mW�)���9-��͢�{�,ҁEg�u8��� �5|��b������S�C�J%�x3�|C�f���۸Ic��qh��q�}vm�B�N��������-�8�(U/g��ys���_�9�q�ٵ�^?�9y��ï�>�d�����|p���_M�6�~����ϕ�v�(�ބ`�.�}� W!�*I����І�9g�N���������AȚkhq���8S�)��5�H�g�f>�$JB�H��L:���m�h:��QIe��!I��6 $�0JY$dH�X��'u���m���Ah긑�*�9�|j��B��昉a�рx&�b�����e1�aJ�Yzi��v�i���J����:*�����A*=�ҫ���������Ꚕ���,B�k$��K�O9Ūl}<�WL%�*Q�M��i�.W�~H���S;R������v������ն;�m_2xn~)�.�����kn�2zk0����.9,o�[.��f���w���#�!� ���,����L�>��� H����*\Ȱ�Ç#J�H��ŋ3j�ȱ�Ǐ C�I�dA�(S�\�r�Ʌ�N�jI��̗ c��JϞ@�����&EE4eS�F����@�TL}Z� 4�T�I�b͚��P� �v�X�(��Dː�յj7�)֩V�U��{�n���*��4�Y��R{���5�*ʹ��� �,��h�q �|PJ�|��]�x'�ФsW��Z���_S����ޙ�'[�}�u�[[E�%��č_O�|9s��ϥ�.P����as����s���SW�������o8y����g�uh�`� ��w�%�V�"h r�Y�]��ɗփ��v�N��(�����ǁ��d���`]&��L%�Db�'�\~ rуx�vڌ�Ԉҍ&�x!��A�j�Fd�("��6��DP�8%JU�����q�E[�V`�`)����eH_����q�y&[k�x'���Q�G�)"}y~�`1Uh!�;)Zބ�N�N�f꒤�v*i�����I+¤Ҩ��hꥄ�����Vk����j��*t뎵�����*+Od!U�_��D�l�v���5�`u]�6�k؎4�����-�M����f�ҷ�yfb�������nW�J5�Ӣ������c��$�K�~���n���7���G,�T�!�This space for rent...�!� ���,����L�>��� H����*\Ȱ�Ç#J�H��ŋ3j�ȱ�Ǐ C�I�dA�(S�\�r�Ʌ�N�jI��̗ c��JϞ@�����H����2hJ�2�rD)@*0�.����O�[�vDٕ@��Xsjj��l�6$��٫w��5��mW�)���9-��͢�{�,ҁEg�u8��� �5|��b������S�C�J%�x3�|C�f���۸Ic��qh��q�}vm�B�N��������-�8�(U/g��ys���_�9�q�ٵ�^?�9y��ï�>�d�����|p���_M�6�~����ϕ�v�(�ބ`�.�}� W!�*I����І�9g�N���������AȚkhq���8S�)��5�H�g�f>�$JB�H��L:���m�h:��QIe��!I��6 $�0JY$dH�X��'u���m���Ah긑�*�9�|j��B��昉a�рx&�b�����e1�aJ�Yzi��v�i���J����:*�����A*=�ҫ���������Ꚕ���,B�k$��K�O9Ūl}<�WL%�*Q�M��i�.W�~H���S;R������v������ն;�m_2xn~)�.�����kn�2zk0����.9,o�[.��f���w���#�!� ���,����L�>��� H����*\Ȱ�Ç#J�H��ŋ3j�ȱ�Ǐ C�I�dA�(S�\�r�Ʌ�N�jI��̗ c��JϞ@�����&EE4eS�F����@�TL}Z� 4�T�I�b͚��P� �v�X�(��Dː�յj7�)֩V�U��{�n���*��4�Y��R{���5�*ʹ��� �,��h�q �|PJ�|��]�x'�ФsW��Z���_S����ޙ�'[�}�u�[[E�%��č_O�|9s��ϥ�.P����as����s���SW�������o8y����g�uh�`� ��w�%�V�"h r�Y�]��ɗփ��v�N��(�����ǁ��d���`]&��L%�Db�'�\~ rуx�vڌ�Ԉҍ&�x!��A�j�Fd�("��6��DP�8%JU�����q�E[�V`�`)����eH_����q�y&[k�x'���Q�G�)"}y~�`1Uh!�;)Zބ�N�N�f꒤�v*i�����I+¤Ҩ��hꥄ�����Vk����j��*t뎵�����*+Od!U�_��D�l�v���5�`u]�6�k؎4�����-�M����f�ҷ�yfb�������nW�J5�Ӣ������c��$�K�~���n���7���G,�T�!��This GIF file was assembled with GIF Construction Set from: Alchemy Mindworks Inc. P.O. Box 500 Beeton, Ontario L0G 1A0 CANADA. This comment block will not appear in files created with a registered version of GIF Construction Set�;��(uuay)menus.c�h������/* Menus * * There are several widgets involved in displaying menus. The * GtkMenuBar widget is a menu bar, which normally appears horizontally * at the top of an application, but can also be layed out vertically. * The GtkMenu widget is the actual menu that pops up. Both GtkMenuBar * and GtkMenu are subclasses of GtkMenuShell; a GtkMenuShell contains * menu items (GtkMenuItem). Each menu item contains text and/or images * and can be selected by the user. * * There are several kinds of menu item, including plain GtkMenuItem, * GtkCheckMenuItem which can be checked/unchecked, GtkRadioMenuItem * which is a check menu item that's in a mutually exclusive group, * GtkSeparatorMenuItem which is a separator bar, GtkTearoffMenuItem * which allows a GtkMenu to be torn off, and GtkImageMenuItem which * can place a GtkImage or other widget next to the menu text. * * A GtkMenuItem can have a submenu, which is simply a GtkMenu to pop * up when the menu item is selected. Typically, all menu items in a menu bar * have submenus. */ #include <gtk/gtk.h> #include <gdk/gdkkeysyms.h> #include <stdio.h> static GtkWidget * create_menu (gint depth) { GtkWidget *menu; GtkRadioMenuItem *last_item; char buf[32]; int i, j; if (depth < 1) return NULL; menu = gtk_menu_new (); last_item = NULL; for (i = 0, j = 1; i < 5; i++, j++) { GtkWidget *menu_item; sprintf (buf, "item %2d - %d", depth, j); menu_item = gtk_radio_menu_item_new_with_label_from_widget (NULL, buf); gtk_radio_menu_item_join_group (GTK_RADIO_MENU_ITEM (menu_item), last_item); last_item = GTK_RADIO_MENU_ITEM (menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); gtk_widget_show (menu_item); if (i == 3) gtk_widget_set_sensitive (menu_item, FALSE); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_item), create_menu (depth - 1)); } return menu; } static void change_orientation (GtkWidget *button, GtkWidget *menubar) { GtkWidget *parent; GtkOrientation orientation; parent = gtk_widget_get_parent (menubar); orientation = gtk_orientable_get_orientation (GTK_ORIENTABLE (parent)); gtk_orientable_set_orientation (GTK_ORIENTABLE (parent), 1 - orientation); if (orientation == GTK_ORIENTATION_VERTICAL) g_object_set (menubar, "pack-direction", GTK_PACK_DIRECTION_TTB, NULL); else g_object_set (menubar, "pack-direction", GTK_PACK_DIRECTION_LTR, NULL); } static GtkWidget *window = NULL; GtkWidget * do_menus (GtkWidget *do_widget) { GtkWidget *box; GtkWidget *box1; GtkWidget *box2; GtkWidget *button; if (!window) { GtkWidget *menubar; GtkWidget *menu; GtkWidget *menuitem; GtkAccelGroup *accel_group; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Menus"); g_signal_connect (window, "destroy", G_CALLBACK(gtk_widget_destroyed), &window); accel_group = gtk_accel_group_new (); gtk_window_add_accel_group (GTK_WINDOW (window), accel_group); gtk_container_set_border_width (GTK_CONTAINER (window), 0); box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_container_add (GTK_CONTAINER (window), box); gtk_widget_show (box); box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (box), box1); gtk_widget_show (box1); menubar = gtk_menu_bar_new (); gtk_widget_set_hexpand (menubar, TRUE); gtk_box_pack_start (GTK_BOX (box1), menubar, FALSE, TRUE, 0); gtk_widget_show (menubar); menu = create_menu (2); menuitem = gtk_menu_item_new_with_label ("test\nline2"); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), menu); gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menuitem); gtk_widget_show (menuitem); menuitem = gtk_menu_item_new_with_label ("foo"); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), create_menu (3)); gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menuitem); gtk_widget_show (menuitem); menuitem = gtk_menu_item_new_with_label ("bar"); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), create_menu (4)); gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menuitem); gtk_widget_show (menuitem); box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10); gtk_container_set_border_width (GTK_CONTAINER (box2), 10); gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0); gtk_widget_show (box2); button = gtk_button_new_with_label ("Flip"); g_signal_connect (button, "clicked", G_CALLBACK (change_orientation), menubar); gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0); gtk_widget_show (button); button = gtk_button_new_with_label ("Close"); g_signal_connect_swapped (button, "clicked", G_CALLBACK(gtk_widget_destroy), window); gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0); gtk_widget_set_can_default (button, TRUE); gtk_widget_grab_default (button); gtk_widget_show (button); } if (!gtk_widget_get_visible (window)) gtk_widget_show (window); else gtk_widget_destroy (window); return window; } ��(uuay)css_blendmodes.c0������/* Theming/CSS Blend Modes * * You can blend multiple backgrounds using the CSS blend modes available. */ #include <gtk/gtk.h> #define WID(x) ((GtkWidget*) gtk_builder_get_object (builder, x)) /* * These are the available blend modes. */ struct { gchar *name; gchar *id; } blend_modes[] = { { "Color", "color" }, { "Color (burn)", "color-burn" }, { "Color (dodge)", "color-dodge" }, { "Darken", "darken" }, { "Difference", "difference" }, { "Exclusion", "exclusion" }, { "Hard Light", "hard-light" }, { "Hue", "hue" }, { "Lighten", "lighten" }, { "Luminosity", "luminosity" }, { "Multiply", "multiply" }, { "Normal", "normal" }, { "Overlay", "overlay" }, { "Saturate", "saturate" }, { "Screen", "screen" }, { "Soft Light", "soft-light" }, { NULL } }; #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wformat-nonliteral" static void update_css_for_blend_mode (GtkCssProvider *provider, const gchar *blend_mode) { GBytes *bytes; gchar *css; bytes = g_resources_lookup_data ("/css_blendmodes/css_blendmodes.css", 0, NULL); css = g_strdup_printf ((gchar*) g_bytes_get_data (bytes, NULL), blend_mode, blend_mode, blend_mode); gtk_css_provider_load_from_data (provider, css, -1, NULL); g_bytes_unref (bytes); g_free (css); } #pragma GCC diagnostic pop static void row_activated (GtkListBox *listbox, GtkListBoxRow *row, GtkCssProvider *provider) { const gchar *blend_mode; blend_mode = blend_modes[gtk_list_box_row_get_index (row)].id; update_css_for_blend_mode (provider, blend_mode); } static void setup_listbox (GtkBuilder *builder, GtkStyleProvider *provider) { GtkWidget *normal_row; GtkWidget *listbox; gint i; normal_row = NULL; listbox = gtk_list_box_new (); gtk_container_add (GTK_CONTAINER (WID ("scrolledwindow")), listbox); g_signal_connect (listbox, "row-activated", G_CALLBACK (row_activated), provider); /* Add a row for each blend mode available */ for (i = 0; blend_modes[i].name != NULL; i++) { GtkWidget *label; GtkWidget *row; row = gtk_list_box_row_new (); label = g_object_new (GTK_TYPE_LABEL, "label", blend_modes[i].name, "xalign", 0.0, NULL); gtk_container_add (GTK_CONTAINER (row), label); gtk_container_add (GTK_CONTAINER (listbox), row); /* The first selected row is "normal" */ if (g_strcmp0 (blend_modes[i].id, "normal") == 0) normal_row = row; } /* Select the "normal" row */ gtk_list_box_select_row (GTK_LIST_BOX (listbox), GTK_LIST_BOX_ROW (normal_row)); g_signal_emit_by_name (G_OBJECT (normal_row), "activate"); gtk_widget_grab_focus (normal_row); } GtkWidget * do_css_blendmodes (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkStyleProvider *provider; GtkBuilder *builder; builder = gtk_builder_new_from_resource ("/css_blendmodes/blendmodes.ui"); window = WID ("window"); gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); /* Setup the CSS provider for window */ provider = GTK_STYLE_PROVIDER (gtk_css_provider_new ()); gtk_style_context_add_provider_for_screen (gdk_screen_get_default (), provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); setup_listbox (builder, provider); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)progress_cursor.png�����W�������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��t��t�fx���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3����4IDATX��oHTk�?sf�g�q�M���x�1��M� d��PZv��� ,���Q�A�F�u_�A� j����)4R*�6W�n�D--�:�0�k�9�o_�8v[�ڛ���sf�y�������������������\]]]���`CC������p?����H<������4����rRD���ˎ�b�Ǐ_��D���\zzz�h4����ÿ�Ri���ٶm����[��ý{����G���yi�L&&&�������i�f����������.� ��Ե;uo rV��Ƕm���9p�����������]�v}WZZ*���[-Z�J���������X_[[�������$`2�\+� /^,�`P ���H*++%���x<&"j||�noo����Գg��w��Y""�h��ƍǀ���|ܘ���� eɒ%���'+W����*y�ꕜ<yRV�^-�PH ���P���d������%"���yg�ҥ�@��b6"����HYYY��i������z�h��eY(��v��p�i��QQQA}}����yT\\|x�j��9׀�099�m�ض���F)�i�ضMnn.������H$x�� O�>��ݻ��q�����o߾}����o� | �&���i�8�N��4Meee�Y���MFF�������~���x��->����Q]]�����{q��҂�l(YYYض�i�������COOO:����F��A�]���똦Ʌ0M�8u�Է��T��r��p`�e����a���>������0�`�C����Dze�8w�'N� �����X�v�o�_�@�y;��:J),�����D������.b��_���ٳx<�n76l��,lۦ��ݑ����-~�h��^���H��� FFF~�����X��ߟ388�����l�:�� �R��b�\.�D�ceff��T)���'�H$�n����`Y"��0::Jee%�?�̙3h����ر���B�^�x��b� FFF�$W�=�,�JwB��*555�e� ���!O�<�)���I}}�ܼySL������Iff�dggKww�}�֭f��e�p��AQJɽ{�$���M�6I$��TWW'�a���#G��RJUTT�X,���4�ѣGE)%�=�AD���F|>��.�PH�ܹ#����[[[e����r����ȪU�����nnn�7P ����ݘ��J)�r���O���:::�v��)�G\.�����$??_����t:�0 �B���aD�/_�g`=�=��i���\�z��`cff��p��eY���ArssE�uq�\�t:��t�����+������oD֭[�W���O���=�D"�*//�'� �H�d\x�ҥ}{��4MSojjr��a����, �u�V����hnn~�o߾����^��a7�M�͛7�_+H��n�M���}AA�ы/�~��eW4�m������~���7��lB|�y�A�[�$k�C�z����,M}���n&O9��d�!y4�*�9��9f�Heb����"0I��9τ�>��2NK�hL�$�+��)�9cS�w��K����IEND�B`���(uuay)shortcuts.c�������������/* Shortcuts Window * * GtkShortcutsWindow is a window that provides a help overlay * for shortcuts and gestures in an application. */ #include <gtk/gtk.h> static void show_shortcuts (GtkWidget *window, const gchar *id, const gchar *view) { GtkBuilder *builder; GtkWidget *overlay; gchar *path; path = g_strdup_printf ("/shortcuts/%s.ui", id); builder = gtk_builder_new_from_resource (path); g_free (path); overlay = GTK_WIDGET (gtk_builder_get_object (builder, id)); gtk_window_set_transient_for (GTK_WINDOW (overlay), GTK_WINDOW (window)); g_object_set (overlay, "view-name", view, NULL); gtk_widget_show (overlay); g_object_unref (builder); } static void builder_shortcuts (GtkWidget *window) { show_shortcuts (window, "shortcuts-builder", NULL); } static void gedit_shortcuts (GtkWidget *window) { show_shortcuts (window, "shortcuts-gedit", NULL); } static void clocks_shortcuts (GtkWidget *window) { show_shortcuts (window, "shortcuts-clocks", NULL); } static void clocks_shortcuts_stopwatch (GtkWidget *window) { show_shortcuts (window, "shortcuts-clocks", "stopwatch"); } static void boxes_shortcuts (GtkWidget *window) { show_shortcuts (window, "shortcuts-boxes", NULL); } static void boxes_shortcuts_wizard (GtkWidget *window) { show_shortcuts (window, "shortcuts-boxes", "wizard"); } static void boxes_shortcuts_display (GtkWidget *window) { show_shortcuts (window, "shortcuts-boxes", "display"); } GtkWidget * do_shortcuts (GtkWidget *do_widget) { static GtkWidget *window = NULL; static gboolean icons_added = FALSE; if (!icons_added) { icons_added = TRUE; gtk_icon_theme_add_resource_path (gtk_icon_theme_get_default (), "/icons"); } g_type_ensure (G_TYPE_FILE_ICON); if (!window) { GtkBuilder *builder; builder = gtk_builder_new_from_resource ("/shortcuts/shortcuts.ui"); gtk_builder_add_callback_symbols (builder, "builder_shortcuts", G_CALLBACK (builder_shortcuts), "gedit_shortcuts", G_CALLBACK (gedit_shortcuts), "clocks_shortcuts", G_CALLBACK (clocks_shortcuts), "clocks_shortcuts_stopwatch", G_CALLBACK (clocks_shortcuts_stopwatch), "boxes_shortcuts", G_CALLBACK (boxes_shortcuts), "boxes_shortcuts_wizard", G_CALLBACK (boxes_shortcuts_wizard), "boxes_shortcuts_display", G_CALLBACK (boxes_shortcuts_display), NULL); gtk_builder_connect_signals (builder, NULL); window = GTK_WIDGET (gtk_builder_get_object (builder, "window1")); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); g_object_unref (builder); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)markup.c�k������/* Text View/Markup * * GtkTextBuffer lets you define your own tags that can influence * text formatting in a variety of ways. In this example, we show * that GtkTextBuffer can load Pango markup and automatically generate * suitable tags. */ #include <gtk/gtk.h> static GtkWidget *stack; static GtkWidget *view; static GtkWidget *view2; static void source_toggled (GtkToggleButton *button) { if (gtk_toggle_button_get_active (button)) gtk_stack_set_visible_child_name (GTK_STACK (stack), "source"); else { GtkTextBuffer *buffer; GtkTextIter start, end; gchar *markup; buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view2)); gtk_text_buffer_get_bounds (buffer, &start, &end); markup = gtk_text_buffer_get_text (buffer, &start, &end, FALSE); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)); gtk_text_buffer_get_bounds (buffer, &start, &end); gtk_text_buffer_delete (buffer, &start, &end); gtk_text_buffer_insert_markup (buffer, &start, markup, -1); g_free (markup); gtk_stack_set_visible_child_name (GTK_STACK (stack), "formatted"); } } GtkWidget * do_markup (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *sw; GtkTextBuffer *buffer; GtkTextIter iter; GBytes *bytes; const gchar *markup; GtkWidget *header; GtkWidget *show_source; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_default_size (GTK_WINDOW (window), 450, 450); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); stack = gtk_stack_new (); gtk_widget_show (stack); gtk_container_add (GTK_CONTAINER (window), stack); show_source = gtk_check_button_new_with_label ("Source"); gtk_widget_set_valign (show_source, GTK_ALIGN_CENTER); g_signal_connect (show_source, "toggled", G_CALLBACK (source_toggled), stack); header = gtk_header_bar_new (); gtk_header_bar_set_show_close_button (GTK_HEADER_BAR (header), TRUE); gtk_header_bar_pack_start (GTK_HEADER_BAR (header), show_source); gtk_widget_show_all (header); gtk_window_set_titlebar (GTK_WINDOW (window), header); gtk_window_set_title (GTK_WINDOW (window), "Markup"); view = gtk_text_view_new (); gtk_text_view_set_editable (GTK_TEXT_VIEW (view), FALSE); gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (view), GTK_WRAP_WORD); gtk_text_view_set_left_margin (GTK_TEXT_VIEW (view), 10); gtk_text_view_set_right_margin (GTK_TEXT_VIEW (view), 10); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (sw), view); gtk_widget_show_all (sw); gtk_stack_add_named (GTK_STACK (stack), sw, "formatted"); view2 = gtk_text_view_new (); gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (view2), GTK_WRAP_WORD); gtk_text_view_set_left_margin (GTK_TEXT_VIEW (view2), 10); gtk_text_view_set_right_margin (GTK_TEXT_VIEW (view2), 10); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (sw), view2); gtk_widget_show_all (sw); gtk_stack_add_named (GTK_STACK (stack), sw, "source"); bytes = g_resources_lookup_data ("/markup/markup.txt", 0, NULL); markup = (const gchar *)g_bytes_get_data (bytes, NULL); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)); gtk_text_buffer_get_start_iter (buffer, &iter); gtk_text_buffer_insert_markup (buffer, &iter, markup, -1); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view2)); gtk_text_buffer_get_start_iter (buffer, &iter); gtk_text_buffer_insert (buffer, &iter, markup, -1); g_bytes_unref (bytes); gtk_widget_show (stack); } if (!gtk_widget_get_visible (window)) gtk_widget_show (window); else gtk_widget_destroy (window); return window; } ��(uuay)hypertext.c��F%������/* Text View/Hypertext * * Usually, tags modify the appearance of text in the view, e.g. making it * bold or colored or underlined. But tags are not restricted to appearance. * They can also affect the behavior of mouse and key presses, as this demo * shows. */ #include <gtk/gtk.h> #include <gdk/gdkkeysyms.h> /* Inserts a piece of text into the buffer, giving it the usual * appearance of a hyperlink in a web browser: blue and underlined. * Additionally, attaches some data on the tag, to make it recognizable * as a link. */ static void insert_link (GtkTextBuffer *buffer, GtkTextIter *iter, gchar *text, gint page) { GtkTextTag *tag; tag = gtk_text_buffer_create_tag (buffer, NULL, "foreground", "blue", "underline", PANGO_UNDERLINE_SINGLE, NULL); g_object_set_data (G_OBJECT (tag), "page", GINT_TO_POINTER (page)); gtk_text_buffer_insert_with_tags (buffer, iter, text, -1, tag, NULL); } /* Fills the buffer with text and interspersed links. In any real * hypertext app, this method would parse a file to identify the links. */ static void show_page (GtkTextBuffer *buffer, gint page) { GtkTextIter iter; gtk_text_buffer_set_text (buffer, "", 0); gtk_text_buffer_get_iter_at_offset (buffer, &iter, 0); if (page == 1) { gtk_text_buffer_insert (buffer, &iter, "Some text to show that simple ", -1); insert_link (buffer, &iter, "hyper text", 3); gtk_text_buffer_insert (buffer, &iter, " can easily be realized with ", -1); insert_link (buffer, &iter, "tags", 2); gtk_text_buffer_insert (buffer, &iter, ".", -1); } else if (page == 2) { gtk_text_buffer_insert (buffer, &iter, "A tag is an attribute that can be applied to some range of text. " "For example, a tag might be called \"bold\" and make the text inside " "the tag bold. However, the tag concept is more general than that; " "tags don't have to affect appearance. They can instead affect the " "behavior of mouse and key presses, \"lock\" a range of text so the " "user can't edit it, or countless other things.\n", -1); insert_link (buffer, &iter, "Go back", 1); } else if (page == 3) { GtkTextTag *tag; tag = gtk_text_buffer_create_tag (buffer, NULL, "weight", PANGO_WEIGHT_BOLD, NULL); gtk_text_buffer_insert_with_tags (buffer, &iter, "hypertext:\n", -1, tag, NULL); gtk_text_buffer_insert (buffer, &iter, "machine-readable text that is not sequential but is organized " "so that related items of information are connected.\n", -1); insert_link (buffer, &iter, "Go back", 1); } } /* Looks at all tags covering the position of iter in the text view, * and if one of them is a link, follow it by showing the page identified * by the data attached to it. */ static void follow_if_link (GtkWidget *text_view, GtkTextIter *iter) { GSList *tags = NULL, *tagp = NULL; tags = gtk_text_iter_get_tags (iter); for (tagp = tags; tagp != NULL; tagp = tagp->next) { GtkTextTag *tag = tagp->data; gint page = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (tag), "page")); if (page != 0) { show_page (gtk_text_view_get_buffer (GTK_TEXT_VIEW (text_view)), page); break; } } if (tags) g_slist_free (tags); } /* Links can be activated by pressing Enter. */ static gboolean key_press_event (GtkWidget *text_view, GdkEventKey *event) { GtkTextIter iter; GtkTextBuffer *buffer; switch (event->keyval) { case GDK_KEY_Return: case GDK_KEY_KP_Enter: buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text_view)); gtk_text_buffer_get_iter_at_mark (buffer, &iter, gtk_text_buffer_get_insert (buffer)); follow_if_link (text_view, &iter); break; default: break; } return FALSE; } /* Links can also be activated by clicking or tapping. */ static gboolean event_after (GtkWidget *text_view, GdkEvent *ev) { GtkTextIter start, end, iter; GtkTextBuffer *buffer; gdouble ex, ey; gint x, y; if (ev->type == GDK_BUTTON_RELEASE) { GdkEventButton *event; event = (GdkEventButton *)ev; if (event->button != GDK_BUTTON_PRIMARY) return FALSE; ex = event->x; ey = event->y; } else if (ev->type == GDK_TOUCH_END) { GdkEventTouch *event; event = (GdkEventTouch *)ev; ex = event->x; ey = event->y; } else return FALSE; buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text_view)); /* we shouldn't follow a link if the user has selected something */ gtk_text_buffer_get_selection_bounds (buffer, &start, &end); if (gtk_text_iter_get_offset (&start) != gtk_text_iter_get_offset (&end)) return FALSE; gtk_text_view_window_to_buffer_coords (GTK_TEXT_VIEW (text_view), GTK_TEXT_WINDOW_WIDGET, ex, ey, &x, &y); if (gtk_text_view_get_iter_at_location (GTK_TEXT_VIEW (text_view), &iter, x, y)) follow_if_link (text_view, &iter); return TRUE; } static gboolean hovering_over_link = FALSE; static GdkCursor *hand_cursor = NULL; static GdkCursor *regular_cursor = NULL; /* Looks at all tags covering the position (x, y) in the text view, * and if one of them is a link, change the cursor to the "hands" cursor * typically used by web browsers. */ static void set_cursor_if_appropriate (GtkTextView *text_view, gint x, gint y) { GSList *tags = NULL, *tagp = NULL; GtkTextIter iter; gboolean hovering = FALSE; if (gtk_text_view_get_iter_at_location (text_view, &iter, x, y)) { tags = gtk_text_iter_get_tags (&iter); for (tagp = tags; tagp != NULL; tagp = tagp->next) { GtkTextTag *tag = tagp->data; gint page = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (tag), "page")); if (page != 0) { hovering = TRUE; break; } } } if (hovering != hovering_over_link) { hovering_over_link = hovering; if (hovering_over_link) gdk_window_set_cursor (gtk_text_view_get_window (text_view, GTK_TEXT_WINDOW_TEXT), hand_cursor); else gdk_window_set_cursor (gtk_text_view_get_window (text_view, GTK_TEXT_WINDOW_TEXT), regular_cursor); } if (tags) g_slist_free (tags); } /* Update the cursor image if the pointer moved. */ static gboolean motion_notify_event (GtkWidget *text_view, GdkEventMotion *event) { gint x, y; gtk_text_view_window_to_buffer_coords (GTK_TEXT_VIEW (text_view), GTK_TEXT_WINDOW_WIDGET, event->x, event->y, &x, &y); set_cursor_if_appropriate (GTK_TEXT_VIEW (text_view), x, y); return FALSE; } GtkWidget * do_hypertext (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *view; GtkWidget *sw; GtkTextBuffer *buffer; GdkDisplay *display; display = gtk_widget_get_display (do_widget); hand_cursor = gdk_cursor_new_from_name (display, "pointer"); regular_cursor = gdk_cursor_new_from_name (display, "text"); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "Hypertext"); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_default_size (GTK_WINDOW (window), 450, 450); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 0); view = gtk_text_view_new (); gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (view), GTK_WRAP_WORD); gtk_text_view_set_left_margin (GTK_TEXT_VIEW (view), 20); gtk_text_view_set_right_margin (GTK_TEXT_VIEW (view), 20); g_signal_connect (view, "key-press-event", G_CALLBACK (key_press_event), NULL); g_signal_connect (view, "event-after", G_CALLBACK (event_after), NULL); g_signal_connect (view, "motion-notify-event", G_CALLBACK (motion_notify_event), NULL); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (window), sw); gtk_container_add (GTK_CONTAINER (sw), view); show_page (buffer, 1); gtk_widget_show_all (sw); } if (!gtk_widget_get_visible (window)) gtk_widget_show (window); else gtk_widget_destroy (window); return window; } ��(uuay)grab_cursor.png���p�������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��t��t�fx���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3����MIDATX���kG�?�Zk�J.8�4���Bk�{Iȡ�����` 5��>z�!��_k�L��8�'_����4 �����U�~:�זV�V�3=X^kI����Ռ���w��<x��x��fC�e�V*����nz{{�ǩ��O�PN�ؓ �� �×-� k�6lY��ݻw5�qs�={��aK�X���W����ȓ-� ��j�Vۖ XZZ�r``@����ƱR������g���.v��:EQ�y��e�ʕ+\�x�����$�ib�&O�<Qddd)e����w@��4u[;�B���������ؠX,b�&��|��G&�!�����#�ҥK_�R��RʟWWW�GGG�l���d8���j5e��l�\.G#���G?~�y����5M���Ν;_!��&(�mS*���f��E�g2�~����4�|���i�������Jԋ�����Q����8���t�R���~���\���ב��e���'�`���h.�V�ݬV�_ !T۶75M;-��V�� L��p]�]���A2�t�!� |i(Ȧ��T*���=.\� �^�����M�岇� �?�)�T����۶y����~��r��%�N{�_�z�eY�����|}}�0��~�(�r@h�&%�͒H$�F卫p���a����:�z0�L&=�u]'�<xx0�lI;�r����p��TJU�= ]]]lmm�F�T*������4�/^�p��) ���(�b�|�r��5�=� ��\.�������r�q8w�������D"�7�8�x �x���q��0sssض���>��[�n��*��������|��m4:p�߾}�������̑��Ѵ�-���T����Bo#s�b>�����'PUΟ?/����4鐚�����O���>|��ee�0�sm���!;;;= ��(�X����_8���9�zB���7v�ƍoϞ=�����/���T*�eY��(n�0�����?x�`��9�I+*����iZ��p�f���3@Hչl'@�'��\jm�7�����nE�BC[vT�}!�1�%jߙ�r���d�C%�i�����IEND�B`���(uuay)ne_resize_cursor.png������������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��t��t�fx���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3����lIDATX��OL�g�?��UV� ڸ�Ź�u��S��Z�aC$8C�N�zXb���1v�� s���2�=4-)Y�4�2���l4���ҷ��g�X-¶������y����k�?���gS��S����g5 �*�(���튢t���a��S������Ƀ���-�&��ؕ+W,7o�\/}�;&�l��Î;�a`#��e�������|��8p@�X,��k@�1���>����� � x���f�����K�.���ݽ&��ׯ�mmm��RJ(�`������㓺��㚦���d*����Ç�g�X��yal!@v���������x�w]�MB�U�� c��e`k)��rbb"���y����a5�9���UUUi�p����;�|�n����!]ץ��aӦMO���f�4M�� �Y�$��s�Σ���S���w�^�*l6���OtM���u�&�ɔ�4��e���2>333U__�����=��'GI !V��V ��(���\�����?��V�B�mmm�EY���&��?X�8s�L2t !�G�U���<�^�@��w��~)�����, ��҂�f������凜.�۽,�t:���}}}�����0���l���.�-�{������P(4G�]�&:�&�%0Ŀ��gY|�Ν��������K$�`0���z����(�D����������Uؾ};CCC"�F�NgO<�U�Scc�ٱ��������\;��ݻ]&���7n���[�V|>�H&�1��������>0�iڨ�n?599y�ܹs��=uz����N���Loo�ؼy��F"���� ���5@�������FGGoK)�]�������鴈�b�X,�M�Rb```8�J^��g`���������l6[��z���|s�֭��=`�gi���M�KV������/Z[[�~���xWWW��(o뺾!�&.^���bw�_�9�6�������gggkll���V �T�}P�m۶�kjj� x�� ���6��nG6�V������U�,0��XY��v�E#�:K�����F�żoEr&�b�ā?������;��9���$w�D��Q)F�\�O3�ĸ��_�h�7^�;t����IEND�B`���(uuay)listbox.ui�������<8������<?xml version="1.0" encoding="UTF-8"?> <interface domain="gtk30"> <!-- interface-requires gtk+ 3.10 --> <!-- interface-requires gtkdemo 3.10 --> <object class="GtkMenu" id="menu1"> <property name="visible">1</property> <child> <object class="GtkMenuItem" id="menuitem1"> <property name="visible">1</property> <property name="label" translatable="yes">Email message</property> <property name="use_underline">1</property> </object> </child> <child> <object class="GtkMenuItem" id="menuitem2"> <property name="visible">1</property> <property name="label" translatable="yes">Embed message</property> <property name="use_underline">1</property> </object> </child> </object> <template class="GtkMessageRow" parent="GtkListBoxRow"> <child> <object class="GtkGrid" id="grid1"> <property name="visible">1</property> <property name="hexpand">1</property> <child> <object class="GtkImage" id="avatar_image"> <property name="width_request">32</property> <property name="height_request">32</property> <property name="visible">1</property> <property name="halign">center</property> <property name="valign">start</property> <property name="margin_top">8</property> <property name="margin_bottom">8</property> <property name="margin_start">8</property> <property name="margin_end">8</property> <property name="icon-name">image-missing</property> </object> <packing> <property name="left_attach">0</property> <property name="top_attach">0</property> <property name="height">5</property> </packing> </child> <child> <object class="GtkBox" id="box1"> <property name="visible">1</property> <property name="hexpand">1</property> <property name="baseline_position">top</property> <child> <object class="GtkButton" id="button2"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="receives_default">1</property> <property name="valign">baseline</property> <property name="relief">none</property> <child> <object class="GtkLabel" id="source_name"> <property name="visible">1</property> <property name="valign">baseline</property> <property name="label" translatable="0">Username</property> <attributes> <attribute name="weight" value="bold"/> </attributes> </object> </child> </object> </child> <child> <object class="GtkLabel" id="source_nick"> <property name="visible">1</property> <property name="valign">baseline</property> <property name="label" translatable="0">@nick</property> <style> <class name="dim-label"/> </style> </object> <packing> <property name="position">1</property> </packing> </child> <child> <object class="GtkLabel" id="short_time_label"> <property name="visible">1</property> <property name="valign">baseline</property> <property name="label" translatable="yes">38m</property> <style> <class name="dim-label"/> </style> </object> <packing> <property name="fill">0</property> <property name="pack_type">end</property> <property name="position">2</property> </packing> </child> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">0</property> </packing> </child> <child> <object class="GtkLabel" id="content_label"> <property name="visible">1</property> <property name="halign">start</property> <property name="valign">start</property> <property name="xalign">0</property> <property name="yalign">0</property> <property name="label" translatable="0">Message</property> <property name="wrap">1</property> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">1</property> </packing> </child> <child> <object class="GtkBox" id="resent_box"> <child> <object class="GtkImage" id="image2"> <property name="visible">1</property> <property name="icon_name">media-playlist-repeat</property> </object> </child> <child> <object class="GtkLabel" id="label4"> <property name="visible">1</property> <property name="label" translatable="yes">Resent by</property> </object> <packing> <property name="position">1</property> </packing> </child> <child> <object class="GtkLinkButton" id="resent_by_button"> <property name="label" translatable="0">reshareer</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="receives_default">1</property> <property name="relief">none</property> <property name="uri">http://www.gtk.org</property> </object> <packing> <property name="position">2</property> </packing> </child> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">2</property> </packing> </child> <child> <object class="GtkBox" id="box3"> <property name="visible">1</property> <property name="spacing">6</property> <child> <object class="GtkButton" id="expand_button"> <property name="label" translatable="yes">Expand</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="receives_default">1</property> <property name="relief">none</property> <signal name="clicked" handler="expand_clicked" swapped="yes"/> </object> </child> <child> <object class="GtkBox" id="extra_buttons_box"> <property name="spacing">6</property> <child> <object class="GtkButton" id="reply-button"> <property name="label" translatable="yes">Reply</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="receives_default">1</property> <property name="relief">none</property> </object> </child> <child> <object class="GtkButton" id="reshare-button"> <property name="label" translatable="yes">Reshare</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="receives_default">1</property> <property name="relief">none</property> <signal name="clicked" handler="reshare_clicked" swapped="yes"/> </object> <packing> <property name="position">1</property> </packing> </child> <child> <object class="GtkButton" id="favorite-buttton"> <property name="label" translatable="yes">Favorite</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="receives_default">1</property> <property name="relief">none</property> <signal name="clicked" handler="favorite_clicked" swapped="yes"/> </object> <packing> <property name="position">2</property> </packing> </child> <child> <object class="GtkMenuButton" id="more-button"> <property name="visible">1</property> <property name="can_focus">1</property> <property name="receives_default">1</property> <property name="relief">none</property> <property name="popup">menu1</property> <child> <object class="GtkLabel" id="label7"> <property name="visible">1</property> <property name="label" translatable="yes">More...</property> </object> </child> </object> <packing> <property name="position">3</property> </packing> </child> </object> <packing> <property name="position">1</property> </packing> </child> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">3</property> </packing> </child> <child> <object class="GtkRevealer" id="details_revealer"> <property name="visible">1</property> <child> <object class="GtkBox" id="box5"> <property name="visible">1</property> <property name="orientation">vertical</property> <child> <object class="GtkBox" id="box7"> <property name="visible">1</property> <property name="margin_top">2</property> <property name="margin_bottom">2</property> <property name="spacing">8</property> <child> <object class="GtkFrame" id="frame1"> <property name="visible">1</property> <property name="shadow_type">none</property> <child> <object class="GtkLabel" id="n_reshares_label"> <property name="visible">1</property> <property name="label" translatable="0"><b>2</b> Reshares</property> <property name="use_markup">1</property> </object> </child> <child type="label_item"> </child> </object> </child> <child> <object class="GtkFrame" id="frame2"> <property name="visible">1</property> <property name="shadow_type">none</property> <child> <object class="GtkLabel" id="n_favorites_label"> <property name="visible">1</property> <property name="label" translatable="0"><b>2</b> FAVORITES</property> <property name="use_markup">1</property> </object> </child> <child type="label_item"> </child> </object> <packing> <property name="position">1</property> </packing> </child> </object> <packing> <property name="position">1</property> </packing> </child> <child> <object class="GtkBox" id="box6"> <property name="visible">1</property> <child> <object class="GtkLabel" id="detailed_time_label"> <property name="visible">1</property> <property name="label" translatable="0">4:25 AM - 14 Jun 13 </property> <style> <class name="dim-label"/> </style> </object> </child> <child> <object class="GtkButton" id="button5"> <property name="label" translatable="yes">Details</property> <property name="visible">1</property> <property name="can_focus">1</property> <property name="receives_default">1</property> <property name="relief">none</property> <style> <class name="dim-label"/> </style> </object> <packing> <property name="position">1</property> </packing> </child> </object> <packing> <property name="position">2</property> </packing> </child> </object> </child> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">4</property> </packing> </child> </object> </child> </template> </interface> ��(uuay)shortcuts-builder.uia������<?xml version="1.0" encoding="UTF-8"?> <interface> <!-- interface-requires gtk+ 3.17 --> <object class="GtkShortcutsWindow" id="shortcuts-builder"> <property name="modal">1</property> <child> <object class="GtkShortcutsSection"> <property name="visible">1</property> <property name="section-name">editor</property> <property name="title" translatable="yes">Editor Shortcuts</property> <child> <object class="GtkShortcutsGroup"> <property name="visible">1</property> <property name="title" translatable="yes">General</property> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="title" translatable="yes">Global Search</property> <property name="accelerator"><ctrl>period</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="title" translatable="yes">Preferences</property> <property name="accelerator"><ctrl>comma</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="title" translatable="yes">Command Bar</property> <property name="accelerator"><ctrl>Return</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="title" translatable="yes">Terminal</property> <property name="accelerator"><ctrl><shift>t</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="title" translatable="yes">Keyboard Shortcuts</property> <property name="accelerator"><ctrl><shift>question</property> </object> </child> </object> </child> <child> <object class="GtkShortcutsGroup"> <property name="visible">1</property> <property name="title" translatable="yes">Panels</property> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="title" translatable="yes">Toggle left panel</property> <property name="accelerator">F9</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="title" translatable="yes">Toggle right panel</property> <property name="accelerator"><shift>F9</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="title" translatable="yes">Toggle bottom panel</property> <property name="accelerator"><ctrl>F9</property> </object> </child> </object> </child> <child> <object class="GtkShortcutsGroup"> <property name="visible">1</property> <property name="title" translatable="yes">Touchpad gestures</property> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="shortcut-type">gesture-two-finger-swipe-right</property> <property name="title" translatable="yes">Switch to the next document</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="shortcut-type">gesture-two-finger-swipe-left</property> <property name="title" translatable="yes">Switch to the previous document</property> </object> </child> </object> </child> <child> <object class="GtkShortcutsGroup"> <property name="visible">1</property> <property name="title" translatable="yes">Files</property> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl>n</property> <property name="title" translatable="yes">Create new document</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl>o</property> <property name="title" translatable="yes">Open a document</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl>s</property> <property name="title" translatable="yes">Save the document</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl>w</property> <property name="title" translatable="yes">Close the document</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl><alt>Page_Down</property> <property name="title" translatable="yes">Switch to the next document</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl><alt>Page_Up</property> <property name="title" translatable="yes">Switch to the previous document</property> </object> </child> </object> </child> <child> <object class="GtkShortcutsGroup"> <property name="visible">1</property> <property name="title" translatable="yes">Find and replace</property> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl>f</property> <property name="title" translatable="yes">Find</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl>g</property> <property name="title" translatable="yes">Find the next match</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl><shift>g</property> <property name="title" translatable="yes">Find the previous match</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl><shift>k</property> <property name="title" translatable="yes">Clear highlight</property> </object> </child> </object> </child> <child> <object class="GtkShortcutsGroup"> <property name="visible">1</property> <property name="title" translatable="yes">Copy and Paste</property> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl>c</property> <property name="title" translatable="yes">Copy selected text to clipboard</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl>x</property> <property name="title" translatable="yes">Cut selected text to clipboard</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl>v</property> <property name="title" translatable="yes">Paste text from clipboard</property> </object> </child> </object> </child> <child> <object class="GtkShortcutsGroup"> <property name="visible">1</property> <property name="title" translatable="yes">Undo and Redo</property> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl>z</property> <property name="title" translatable="yes">Undo previous command</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl><shift>z</property> <property name="title" translatable="yes">Redo previous command</property> </object> </child> </object> </child> <child> <object class="GtkShortcutsGroup"> <property name="visible">1</property> <property name="title" translatable="yes">Editing</property> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl><shift>a</property> <property name="title" translatable="yes">Increment number at cursor</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl><shift>x</property> <property name="title" translatable="yes">Decrement number at cursor</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl>j</property> <property name="title" translatable="yes">Join selected lines</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl>space</property> <property name="title" translatable="yes">Show completion window</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator">Insert</property> <property name="title" translatable="yes">Toggle overwrite</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl><alt>i</property> <property name="title" translatable="yes">Reindent line</property> </object> </child> </object> </child> <child> <object class="GtkShortcutsGroup"> <property name="visible">1</property> <property name="title" translatable="yes">Navigation</property> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><alt>n</property> <property name="title" translatable="yes">Move to next error in file</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><alt>p</property> <property name="title" translatable="yes">Move to previous error in file</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><shift><alt>Left</property> <property name="title" translatable="yes">Move to previous edit location</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><shift><alt>Right</property> <property name="title" translatable="yes">Move to next edit location</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><alt>period</property> <property name="title" translatable="yes">Jump to definition of symbol</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><alt><shift>Up</property> <property name="title" translatable="yes">Move sectionport up within the file</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><alt><shift>Down</property> <property name="title" translatable="yes">Move sectionport down within the file</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><alt><shift>End</property> <property name="title" translatable="yes">Move sectionport to end of file</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><alt><shift>Home</property> <property name="title" translatable="yes">Move sectionport to beginning of file</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl>percent</property> <property name="title" translatable="yes">Move to matching bracket</property> </object> </child> </object> </child> <child> <object class="GtkShortcutsGroup"> <property name="visible">1</property> <property name="title" translatable="yes">Selections</property> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl>a</property> <property name="title" translatable="yes">Select all</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl>backslash</property> <property name="title" translatable="yes">Unselect all</property> </object> </child> </object> </child> </object> </child> <child> <object class="GtkShortcutsSection"> <property name="visible">1</property> <property name="section-name">terminal</property> <property name="title" translatable="yes">Terminal Shortcuts</property> <child> <object class="GtkShortcutsGroup"> <property name="visible">1</property> <property name="title" translatable="yes">General</property> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="title" translatable="yes">Global Search</property> <property name="accelerator"><ctrl>period</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="title" translatable="yes">Preferences</property> <property name="accelerator"><ctrl>comma</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="title" translatable="yes">Command Bar</property> <property name="accelerator"><ctrl>Return</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="title" translatable="yes">Terminal</property> <property name="accelerator"><ctrl><shift>t</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="title" translatable="yes">Keyboard Shortcuts</property> <property name="accelerator"><ctrl><shift>question</property> </object> </child> </object> </child> <child> <object class="GtkShortcutsGroup"> <property name="visible">1</property> <property name="title" translatable="yes">Copy and Paste</property> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl><shift>c</property> <property name="title" translatable="yes">Copy selected text to clipboard</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl><shift>v</property> <property name="title" translatable="yes">Paste text from clipboard</property> </object> </child> </object> </child> <child> <object class="GtkShortcutsGroup"> <property name="visible">1</property> <property name="title" translatable="yes">Switching</property> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><alt>1...9</property> <property name="title" translatable="yes">Switch to n-th tab</property> </object> </child> </object> </child> <child> <object class="GtkShortcutsGroup"> <property name="visible">1</property> <property name="title" translatable="yes">All gestures</property> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="shortcut-type">gesture-pinch</property> <property name="title" translatable="yes">A stock pinch gesture</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="shortcut-type">gesture-stretch</property> <property name="title" translatable="yes">A stock stretch gesture</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="shortcut-type">gesture-rotate-clockwise</property> <property name="title" translatable="yes">A stock rotation gesture</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="shortcut-type">gesture-rotate-counterclockwise</property> <property name="title" translatable="yes">A stock rotation gesture</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="shortcut-type">gesture-two-finger-swipe-left</property> <property name="title" translatable="yes">A stock swipe gesture</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="shortcut-type">gesture-two-finger-swipe-right</property> <property name="title" translatable="yes">A stock swipe gesture</property> </object> </child> </object> </child> <child> <object class="GtkShortcutsGroup"> <property name="visible">1</property> <property name="title" translatable="yes">'Special' combinations</property> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator">t+t</property> <property name="title" translatable="yes">You want tea ?</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><shift><ctrl></property> <property name="title" translatable="yes">Shift Control</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator"><ctrl>&<ctrl></property> <property name="title" translatable="yes">Control Control</property> </object> </child> <child> <object class="GtkShortcutsShortcut"> <property name="visible">1</property> <property name="accelerator">Control_L&Control_R</property> <property name="title" translatable="yes">Left and right control</property> </object> </child> </object> </child> </object> </child> </object> </interface> ��(uuay)iconview_edit.c��������/* Icon View/Editing and Drag-and-Drop * * The GtkIconView widget supports Editing and Drag-and-Drop. * This example also demonstrates using the generic GtkCellLayout * interface to set up cell renderers in an icon view. */ #include <gtk/gtk.h> #include <string.h> enum { COL_TEXT, NUM_COLS }; static void fill_store (GtkListStore *store) { GtkTreeIter iter; const gchar *text[] = { "Red", "Green", "Blue", "Yellow" }; gint i; /* First clear the store */ gtk_list_store_clear (store); for (i = 0; i < 4; i++) { gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, COL_TEXT, text[i], -1); } } static GtkListStore * create_store (void) { GtkListStore *store; store = gtk_list_store_new (NUM_COLS, G_TYPE_STRING); return store; } static void set_cell_color (GtkCellLayout *cell_layout, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data) { gchar *text; GdkRGBA color; guint32 pixel = 0; GdkPixbuf *pixbuf; gtk_tree_model_get (tree_model, iter, COL_TEXT, &text, -1); if (!text) return; if (gdk_rgba_parse (&color, text)) pixel = ((gint)(color.red * 255)) << 24 | ((gint)(color.green * 255)) << 16 | ((gint)(color.blue * 255)) << 8 | ((gint)(color.alpha * 255)); g_free (text); pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8, 24, 24); gdk_pixbuf_fill (pixbuf, pixel); g_object_set (cell, "pixbuf", pixbuf, NULL); g_object_unref (pixbuf); } static void edited (GtkCellRendererText *cell, gchar *path_string, gchar *text, gpointer data) { GtkTreeModel *model; GtkTreeIter iter; GtkTreePath *path; model = gtk_icon_view_get_model (GTK_ICON_VIEW (data)); path = gtk_tree_path_new_from_string (path_string); gtk_tree_model_get_iter (model, &iter, path); gtk_list_store_set (GTK_LIST_STORE (model), &iter, COL_TEXT, text, -1); gtk_tree_path_free (path); } GtkWidget * do_iconview_edit (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *icon_view; GtkListStore *store; GtkCellRenderer *renderer; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Editing and Drag-and-Drop"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); store = create_store (); fill_store (store); icon_view = gtk_icon_view_new_with_model (GTK_TREE_MODEL (store)); g_object_unref (store); gtk_icon_view_set_selection_mode (GTK_ICON_VIEW (icon_view), GTK_SELECTION_SINGLE); gtk_icon_view_set_item_orientation (GTK_ICON_VIEW (icon_view), GTK_ORIENTATION_HORIZONTAL); gtk_icon_view_set_columns (GTK_ICON_VIEW (icon_view), 2); gtk_icon_view_set_reorderable (GTK_ICON_VIEW (icon_view), TRUE); renderer = gtk_cell_renderer_pixbuf_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (icon_view), renderer, TRUE); gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (icon_view), renderer, set_cell_color, NULL, NULL); renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (icon_view), renderer, TRUE); g_object_set (renderer, "editable", TRUE, NULL); g_signal_connect (renderer, "edited", G_CALLBACK (edited), icon_view); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (icon_view), renderer, "text", COL_TEXT, NULL); gtk_container_add (GTK_CONTAINER (window), icon_view); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)grabbing_cursor.png������������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��t��t�fx���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3�����IDATX���K+W�������~�� �j+�B, ֕ԕJ��u%����)r՝t��lT���%VĶ�4�j�F��'Mf�t�!�����`�����{�{<�Y�z���j���?꺞B�l��h4�,����*n�i� �aU�g�d����[���u�ݮ!TY�5]��N����q�*��f�C�euggG����<����!///���g��|=���errrvssS���_�(R���X,&�����P�� �H�N� ���tuuMMM����}�J�~��o�D�L�L&����(�:������S����"�����W>�����>\T�O���r�MUU����U1@KK�p�\o�ZE{{{��B!���+�^������KKK��5����###/TU�=�����LH�T(�=>��į����ۿ�/����t���a�ۛB������ ��2����i�a��{ws�2 Ecc����������?*�#S�������~��0��z�ۍ��*�=��"��iX�`0XH���R��~���N2�������Z��$�p8Jҵb�I�J�... e��O6��b����p�\\^^�p8p��477sxxXh�$��Y���l��������0���D�$�@ ��(D�Q��� ���������fC��g�)��i���j��t��\__��t��J|$)�V��q��L��������벝+UMM��J�n19�M�pfff�{zzZx<�N瓟��V:;;�x<~��}P.��_YY�fhhh6��U)����^������ɟ===KWWW�����HY�p�������-I҇���_�ttt������o߾� �o���(<t���^�pS>k̯ZqWw �\O�_������&�ߕ��@>����+�ʝ�&����IEND�B`���(uuay)expander.c�������������/* Expander * * GtkExpander allows to provide additional content that is initially hidden. * This is also known as "disclosure triangle". * * This example also shows how to make the window resizable only if the expander * is expanded. */ #include <glib/gi18n.h> #include <gtk/gtk.h> static GtkWidget *window = NULL; static void response_cb (GtkDialog *dialog, gint response_id) { gtk_widget_destroy (window); window = NULL; } static void expander_cb (GtkExpander *expander, GParamSpec *pspec, GtkWindow *dialog) { gtk_window_set_resizable (dialog, gtk_expander_get_expanded (expander)); } static void do_not_expand (GtkWidget *child, gpointer data) { gtk_container_child_set (GTK_CONTAINER (gtk_widget_get_parent (child)), child, "expand", FALSE, "fill", FALSE, NULL); } GtkWidget * do_expander (GtkWidget *do_widget) { GtkWidget *toplevel; GtkWidget *area; GtkWidget *box; GtkWidget *expander; GtkWidget *sw; GtkWidget *tv; GtkTextBuffer *buffer; if (!window) { toplevel = gtk_widget_get_toplevel (do_widget); window = gtk_message_dialog_new_with_markup (GTK_WINDOW (toplevel), 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "<big><b>%s</b></big>", "Something went wrong"); gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (window), "Here are some more details " "but not the full story."); area = gtk_message_dialog_get_message_area (GTK_MESSAGE_DIALOG (window)); box = gtk_widget_get_parent (area); gtk_container_child_set (GTK_CONTAINER (gtk_widget_get_parent (box)), box, "expand", TRUE, "fill", TRUE, NULL); gtk_container_foreach (GTK_CONTAINER (area), do_not_expand, NULL); expander = gtk_expander_new ("Details:"); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_min_content_height (GTK_SCROLLED_WINDOW (sw), 100); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); tv = gtk_text_view_new (); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tv)); gtk_text_view_set_editable (GTK_TEXT_VIEW (tv), FALSE); gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (tv), GTK_WRAP_WORD); gtk_text_buffer_set_text (GTK_TEXT_BUFFER (buffer), "Finally, the full story with all details. " "And all the inside information, including " "error codes, etc etc. Pages of information, " "you might have to scroll down to read it all, " "or even resize the window - it works !\n" "A second paragraph will contain even more " "innuendo, just to make you scroll down or " "resize the window. Do it already !", -1); gtk_container_add (GTK_CONTAINER (sw), tv); gtk_container_add (GTK_CONTAINER (expander), sw); gtk_box_pack_end (GTK_BOX (area), expander, TRUE, TRUE, 0); gtk_widget_show_all (expander); g_signal_connect (expander, "notify::expanded", G_CALLBACK (expander_cb), window); g_signal_connect (window, "response", G_CALLBACK (response_cb), NULL); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)modelbutton.c�������3������/* Model Button * * GtkModelButton is a button widget that is designed to be used with * a GAction as model. The button will adjust its appearance according * to the kind of action it is connected to. * * It is also possible to use GtkModelButton without a GAction. In this * case, you should set the "role" attribute yourself, and connect to the * "clicked" signal as you would for any other button. * * A common use of GtkModelButton is to implement menu-like content * in popovers. */ #include <gtk/gtk.h> static void tool_clicked (GtkButton *button) { gboolean active; g_object_get (button, "active", &active, NULL); g_object_set (button, "active", !active, NULL); } GtkWidget * do_modelbutton (GtkWidget *do_widget) { static GtkWidget *window = NULL; static GActionEntry win_entries[] = { { "color", NULL, "s", "'red'", NULL }, { "chocolate", NULL, NULL, "true", NULL }, { "vanilla", NULL, NULL, "false", NULL }, { "sprinkles", NULL, NULL, NULL, NULL } }; if (!window) { GtkBuilder *builder; GActionGroup *actions; builder = gtk_builder_new_from_resource ("/modelbutton/modelbutton.ui"); gtk_builder_add_callback_symbol (builder, "tool_clicked", G_CALLBACK (tool_clicked)); gtk_builder_connect_signals (builder, NULL); window = GTK_WIDGET (gtk_builder_get_object (builder, "window1")); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); actions = (GActionGroup*)g_simple_action_group_new (); g_action_map_add_action_entries (G_ACTION_MAP (actions), win_entries, G_N_ELEMENTS (win_entries), window); gtk_widget_insert_action_group (window, "win", actions); g_object_unref (builder); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)markup.txt���������� Text sizes: <span size="xx-small">tiny</span> <span size="x-small">very small</span> <span size="small">small</span> <span size="medium">normal</span> <span size="large">large</span> <span size="x-large">very large</span> <span size="xx-large">huge</span> Text <span color="gray">c<span color="green">o</span>l<span color="tomato">o</span>rs</span> and <span background="pink">backgrounds</span> Colorful <span underline="low" underline-color="blue"><span underline="double" underline-color="red">under</span>lines</span> and <span background="pink"><span underline="error">mo</span><span underline="error" underline-color="green">re</span></span> Colorful <span strikethrough="true" strikethrough-color="magenta">strikethroughs</span> Superscripts and subscripts: 𝜀<span rise="-6000" size="x-small" font_desc="italic">0</span> = 𝜔<span rise="8000" size="smaller">𝜔<span rise="14000" size="smaller">𝜔<span rise="20000">.<span rise="23000">.<span rise="26000">.</span></span></span></span></span> <span letter_spacing="3000">Letterspacing</span> OpenType font features: <span font_desc="sans regular" font_features="dlig=0">feast</span> versus <span font_desc="sans regular" font_features="dlig=1">feast</span> Shortcuts: <tt>Monospace</tt> – <b>Bold</b> – <i>Italic</i> – <big>Big</big> – <small>Small</small> – <u>Underlined</u> – <s>Strikethrough</s> – Super<sup>script</sup> – Sub<sub>script</sub> ��(uuay)decor1.png�C�������PNG ��� IHDR��Z��G���JL����bKGD����̿��� pHYs����������tIME�7��Iv�� �IDATx��w���ƿg�݅�,�{/� *؍-kԘfD�M7���)�X��bb��b��{WE�����Ny~̹s�.KX�M<�|X��;3w��<o9�1����������������������a� �1"&�����n������1"c�7��1!7�8ҶO�)5CD��[l���A�� "B�d���4������R ��YĐ���ob�i�"|�e��x���n��A�C�% �O�b���9���j������*9hG�Ϧ<()��!���!�d����#|������>" g�X�"%���=���K�| ����1�G�V��:�w�P�.��=�!�o��Z�3k��Ҵ!�Շ�Pd���MfS��zҟٙ��� ��QJ�G_ ��s�������ϑ�V��� ��ĕ��- ��ϝ:�>�Ҙ�`�f?㯕�e�V��Q���e\���on�e��!�����ҟ����u��@�㥄���"4�x��Y� 0Tљ.�bs�5��crV1yg���#����y�G�Y�G�&BxD�����Q���Er4�!K�����ۄ�6U��������W8�������Gx��YI=1^�*N�jF�;�;��l��R��C��*^�_��U���F:SC� ��Q��T��đ�3E�2���x�!9bB���<��v��ù��&�#|V���$>^�T��0�Z_q0�9����.�y�E2xL�ɼID��l�QC> ��^�9̬K��#������~��7��/����������b�-^�����I���.��h$�G��SKwzRG5�Y�B���F2��P���Q3{��������?�O���(���y�F:0�}؎���������h���z^��!� e�������5�g<�s�KYm�� �7��ʪZ �1����ۚ?c5E����,;���k�������џ�Q�GEbN��*�P�:��:����P]��h����O��#B�&�"Z�k�M��#��)ߒ��.Ң� % ��� ���-���� �2B�t���4���o��q����NR��!�*�}u�"D`���t�(�1����?�B��F�i���4���#L\�J �����۶ya�Ҹ��|��I�d ؊?���j�˗ܣ���f��t1���R� ��N�O��VD��q+o1Е/�m��dyXGӀ�Џoқ�20���:�5S)���|���a)+)"<��ї!gM�f[Y��UH��W$��(�+���$�?CL�B�P���ܨS�MdJd�в�^�ki��lH`n]r(n��c<��J���DӖ.\r���D�)0�k��䉉�Sv���#�E���)��g?`x�6X�:��xO�s93����sƘ$Y���6:q���9K7�`O��!ߠ���.a���q��C��.`��%�E�G/z�������oP�ٷ5�S�F�"`35���b�h��d����lA���G�# ��j�J#R�����c�5\�`4��+)ҧ�e���z�?�L��B:? Q��w�Vu<��� �!�R��� �S����TMP��=t�V!"B�;�X"�au�'��~�i�h�~���`�-:E�T��U����Tֳ�������� )�0�s#*S�jE�]������U�e� ���=Z^���MQL��7��a���7pX���s܂T*���ˣuX��a��9����5��x]�f��wdyH�d*�a������6�2�ք٨Ȇ5�~�b_��u��dz�fb o�}�b��<�%#/���]x�����Բ���f����Ͱ5�h��@�~דc�[���$�\i��6)9��U���y�i�b0�a0��@:c�H��,`>�x�����~&I{7RE�P�-�lmM��'A��oZx��v��*�U��N��|��ܝ�x͒�Y{9�)��I��t>'���O�N?f9�p��nU�yHLh$k)��t �P��:��d��xT�3(�#��mM�zB����c��l����T�#"V0�YL�M�3��6C�@��,67��3\�'H����w=/��"�۰+�0�!�*j+ɷp���/��ӕ�q���q���tB����(�wcC�A) n��k鯉�/ yEVD\m���Wy����Qeث��RF�k�D1UCd�QV?Th�um�}U�윮Q�t���f�4dFMDJ� n�i�Z}�Q�F�ݠ7���=J���~^!�|SW�x�������]���(Q���B���\;)��{�WzQ�+�g�@��D����k������ ����еZi%نʃx-b �"/�xm`�D���|Aho� �� ��>VluVY�,�DHH��(#��絤.�1W*#d�Yw�5'�������#���2Bd��ޗ��'g��jnс�Qg���k���۴pBq �QL������iK��fd4^S����Bgb���vB9yB�t��ӂ�%B�c�a�#[I��qX�#�[�B�����{�Y�ٵX߭t�V��h�fj�f���l͟�4��B3��7�� m��6f�đ֑8Mq��|�(a��=C����5[�}�j&X�g/�Uk�~�'7�1�ۋ�Ò �y��-�� xL��c����n���QyOq�m���6�Es�G� �rB[�UZ�ͬ�o��Ɗ�@}Wo�1%��m��G�\���.BFyu�g�X����x�;��+�C��C4Z�4\C�_}�O5X�4J;h��q����?�f=���hl����S¼�֣�JŊ�U�a���q��4J_�e��J�z�v����1��q�}�榼���[���v�u��lL��Q��͚?�%oZ��t�N�1:E��R�1$9���z���~���hd�T���@}Ko)ހ�d���0e�Mc���d4J�u��&Q�x�w�M���r�Э����6�}�Mj�}{��/ET�:������.�C���4v5�{a���Z�`�ʨ�U�#�F#ml/�$u��ߪ<�DD7X̟q���<5T���E�22�V*`e�A��R���ӵ�|!_�����P?����(��u�V�EA7�_�B�h��fQŀ-� �с�l��⊫��T�=^O��״�V$9�쏾:k��T��ɚ?�2$�4@�|D�xE���S}�mr��괙�վ:@G�X��:B��i���5\��W�ꐾ�X��F�l�U�ji�|�K槩�X�.�{Nw�&�[Ӕx+�-dD7J�+�����hħ���ݔr$I�l9� ��+�4�L���,����s����s-'��ԋ-�3�&Y�Ri��-�t*39�si�SW� i�g���&��Y�K-\����F�����L�,RhS' �A�� >ǯ���d�H���Z>�7��$��Sl�|Uק�rp8����lj�Du�X�W�=�s�2��23YF����td0C�P�ӗ��o̟T�o��PW�W��Y�+Y�B������� 6Nҙ-ɾ��@SEK�F[�{�i&/� 9�b�\��2�Q�%c#nS�PF���fI����:}�l=���y U'U���Pܠ�PFj���i+��g�hݧ䅫Zm�^��o�d�������p�hH���-�{����hOUk7��ʊq$��B����I��f[�s�v�J�J��N-Yz_q�mmL�����EC�)�C����E��hA��4���ֱ���j�վ:_7�5-�`K���/q;�4{��P��M��)���#��a]�/k/ �.�����P�F�h����ZB��e�NC�-�K�W���A���:�*�;��j�цmD=����*�����S�^��[��W?��˅|eU����"���*�Ck�e�Z��&C��.ԇ*��ȃкt;�_�S�K�x=�� �|���NWV�Jh�~�Y��D���'��Bakᾤ>Bu+_���,5�7����>���`����^G���u��T&��>{�ɣ�:��M��<b5���~��ks+< С�Do()�o�G �I �]Cu���N�FyE���i�|������RS��4{�ƪ�P��E�S�:����/Z�)V�]��54%uo]��r�"�J�>���u <u�qzNQjQⵔ�6��|}O��|U��Ueb6�� �}&�FC��ʩZ_�+ [,m�#&�=�%���/�����,�A���X��D,���.��V���t�^��l���Y�;�f�S��h����z[�G6��Rl�Q�5+�&�B������y]g���Zmge��d T����H�s9c�<> 䔨���s��W�';��t�.��zN�4]�5���:'K<�okK��*I�(ZQߚ������z�����V+*�m��R�mE��X]��(#_����JFU��Y`,���]��<��A+�#ڠ���D���T��C�h��ʨZu�RV��`��x�=��vRm�����D]��U��� +"�q�4L�&ݤC�UY�Qm�ok��֟-�x[� j#��kzD�[4:Q�1�Zyڐz�u�����xF�EM�\!�E�W�Ն��:j�~��dd�U�xV��Q�$���Sm�����^w��?���0F�������/-���/-���*�����.�U�k4\�H�bY�"���3�Վ��}(!��� *��'��M�����1w�G����f#N�Kgi{�<[�n��4��4�P�@�M�S�wy��s� �*kvF�f���H��M�t��N�h��}tE�e�a������]ڀ�E+�Jj�u��O*�@������o�<u�YzF���5�T&��Ko�au���+c��Uζ�M��b�E&k|��E5:@O(�����r:KsV�b�)�xK��1�SNFWk{!_�5SQ�p�El�X�1zB vP=D=�3-K�H��#����5�r��a��e|���ѓ�Cgi���B-��:S��#����Bd?���e��5 �:�r��7B&�rf�� }]wkU��{9���6ӗ5�VIӖ��%u�,���l��k�>����T@#sT�d�(?���Ӻfw��xi��By�\o��- ��E�g\i�p�%�%ZI����v��CO[RE֢V�O#BK�Y��ʓ�J\�~�V}�W1Q;*o����69�}K��zZk0�Mr���6q�6�V)I<W�����i^ �ɺE��� #� ma�'4F��1���m �k�^���D��Z�J;��z^��g/�N�ܯm��-�\��B��0��Uy[��c�$�\_�r��;��t����H���k��rV{��#� x�JCP1}W�)���6��MVY�L���<���Z46�I[UT D9gY"�B#�[e�:�&�jyP�S'����T�X����6�a����f�L�r�(ZcfZ��@� +f��zԟ4N��I�<��i��+�p6�6�q��gc!���jl��(��t���������S�P�v�7t���+zA���Z����B�x�6n��Z� 6��I( ��f��:[)�v��B�*\���d�η$���j��T'_��CEk<2 e��V{%4�E�+LǃD{.{����S [x�� 7d��R��>������1 <�#�=y:H��!���u�K}�Q�X3�P�ĩ���D.֜bY�b+���u��R]zld4D'�:ͨ(� 7P;ǩ���� ���Mym����C[ �����AE�Ȓ�������de�k�~��*W�i�v͋;Y�d����zNb9�g��үԀxE�d�)��ܲ����[0��2!"�8;Hݬd`mZ���~`�����S�U�N�,��F��kot/����4RUؙd�{B; חU�Z}Y�˸Ic��� ��ү�0��HW6p��"i����ZR�(��&�A�V3Cw�BdE V�e4P��zWeǰ��+�JE��xH5Y7���:P�FW�w���Ri�ú�VlV�X*��g���u�~���B]���pB`��!Z�,r#$�&�coTG+v�� �����N�Rbw�a��tңR�ʩ�<���i���"n���7T��4��K5�*�d�'�e�n2�Ei$�H�W5�Fn�@}]/ۚ���k֘V��:L}T��Td�.������i��Y���2�Ӌ^���NVo���@�j�V�k�A�r��m=�+t��Qo�2�ȗ����F�ݤZQQ��ܛ�׳�d��p�L|�J���=-E�ק��iT� ɈSv��rE6���OW�^�_(k�0BO��PiP���]=5Wq3�V>���>���8����P}U%�J0�����*��[Uhrы�J�3�g��K5$Mgv�q�K��*?E� �����n�?u�z+�f����zUa���<�U�><��huJcF5�}�e�F7�!=������M=�Gu�&�b}C�ꯚ4͒��u��:_h���\����6��aEB�T�<Lyy��&E�#RX�����5�0���)������(�(�m��hl�.ײ��W���]�As���Q��Q��жi��T�[m��b�1Y��(��8��v��Z<��u�f�XA�R yK_RgK!OY ұ�T�-�����ܩT�* �h���iz$c ���f3�f�>ʖ.���u���uf�T�Q^�ꪮ�SwuUG��L����V[�t]��TO�|*g�Z�mi���ګ�]�Pw[��z���p4+�y�+�f��p=��P8Q䗖tYU�0�`hH�9V<����Y�cMQ7;Cw��&z�KBF�5K�h_uK���.�\��zٞ���ԭ���QF}��F�P���^&W��o�����z���~K��p��j�\�Z9��V��V��vә�����M�M�Nh^��) �����|�檅��X���@��YDL�j|���sS}r���ʦ�����Vdn��1r�d��'��R"^b5ѕ]9�}�gJm��]̖���c��1����c!b�l#�ؖ1����=��1��&�N"\����WmeFr*� &3�i�c5�mwH٢�.�TSG�1����)ͻm�����xx�|D̮|����� �f�\���.�> rt��b�5] �����$]K �men2c�yud3�SM#�4�'Y�E����:��2��F0�1�bj[��V#�*b�^�A^�# ���ó��y��aG`7��yj��]:���$���U,�R����y:QCG:ҍ.��! �F��M;�59����N���[/K�L"����<s}�o�K��"����\@;A��U�5��u1y{��H>��iZ�s��df��Q�hB��j����ښ�9��3���2��ڋ뾄�vK�Z�7���.o1�٬d5��,��KO�`��f���ڀm�O�쎱��-����ЙΦiK��*5�c� �7=I��S���Z���)i=M�9��s|}Ϝk����<��T`�m,��e�c%�UC����H#�Y�f3����jV��Xui��L�BC�?�����.!>�u�&�>�!�#Cӛ}XN0!�����_��-A�&�ʓf^+oXr�R��]���M��Q�}I&(%D2�K�M��T���Qݬ �u��F�T�n�%MeN�75PF����غ�{3I#�O��S}�]5�Q�b����i�N�\�\$O�����~%'g���h`cŜ��ӒQ�Tꚞq� ���^"��@F-��k�5�m����h��N׳iH�;���؉#���T1�2A��V��G7��4��R�y"�t ������^�`G�a��Vy:ځ����,�G(���ׅ�����^�_i�<�c�,/d"ۂiݖ/�h��J~��� �%)[Kk*�%�v���,�ё����zʃ�z��,���~�� �k��Jj�2�k`x�E���ZIL�<>U��H�HO�ҟ�t���I�]a1ư𩥳�<�Q�.����<�����K�.W�Ĺ0��L~S�v� 1��&������I�pi�-?�],Ϟ_e�²bo���hc�_KZ�g�@'Ƒ� /��h-!5��$|"^��K���oL<�䩡��ݔ�g!�#|<��+�%��t���o��߯�Q)��T��涱��3-��o������T�I����Q�:��mJBxmx��b* ���iZ�4�8�?�����s���f�u�L�D�</�9�$�B67�ӭ#>�b��!��db���#�ˉ��?�X�;�MlM��-=!e� ��b Ķ�u)����&�W��#$���X��~l�.ֲz�K��N,��� �IDAT��ߤj�᳇������'"fXE�ڦ�|��>>�����n:Z�'N�'�/i4���,0��$��$n�gV!�pk�8�i�j���2<g)�g[s�& ����C ���>M���D��I`Y��y�.]�d�$����AOSe�a#>Y����9Ү H�\��j�r@��=]��H#���� ���z�a���fL2�W��ҀG@C��ֶ���\���I�����!���뵨y}KE���J��>1��2�s��/�ɜ��2��>���'��"��Jb� @@�y��R<�f��@5И�w����d"�T[�v��Sw���Z�E������W7��nzY1g��H�n*2dغ�r��SF�i�Js�v��q[;ʈu���@h����|j� ���N�!V��b�ҙ��+i��Hd�a���EO]�g)���O�6��i&�V�98y�QM'�)�"?1c���g�w�1��v^�Fb��꓂��ɲ#۲5��Iw�I�K����I��tV�9��N5Y�j?�X�z���Q"�4�6��{�<Ma3��v�B��H�E��<�ͬ�ZDgӁ��"�X��~Y"]�&I=,{�}W��}�;{=p��U�W�����sY������c��F+�K�B��X�*'�\����Ha���vKh@ܫͬ���t2��>k�z����e3��u�V<�V�&�-C�\��r��%)^Y>�1^e*+�m�Lib�O0���n�x�;T�,�g��Y�]�#�g�Z���,]=[яu�`�V�Q��ms��}���U.��:�n�r����{����1�ZI���)�3x���00��sX��i�����4�,�P��v�8�j��[,��}�����y��� �iE�@xd���""` �nmh2�&?� h�#b�(�a0dɄ�j<<f�"IG�uX�"1����{���M�{+��ߡ�D�o�4@��]�,�o�~M&�w ��[d��{���A�~�h�,�3<��1�������a0T3�$X�!�lA��iL���KߕL�ɱ���xd ��s�m b2M/<+���c�����uΰT��'�G�jZ0�J���;��vBc9�PE�\Vc�R���{���FRV��oݣ���>RM굂�I}�t��F�e�R�`7#�&�S�'c�.6��0 ��3��=G�֡��H�����V}z�q��)�c�����ӡf\��g̒!��d�X�����ށ��ܑv����2C�y��Rl��-�ZX6r�����eqq}0�<�yLTS��3M?�@Tq�+���B���"I�.c��[�����B�q�:��A'�4_����m�ڌ��?���H��t@�k� \:�3�m@?ӤR�y���>���V�R�t�)�\���+Z��̴�Lm��u���}�9m�9L/�U8ҮǪS�]��rۨ�k4� *���=�22�����#��Q�Die�*���m=:Ժ�3NZU�^��#��빠����z)a����f����ײ�X�F� .Q�tnj�^-4Z���+��͑6m�4�{W��eE;�n�'�(m�Q��o�]ꪜP�nPK{�� 1�xY�h� ;��H�D5Y��m��m����&3 ��^���C��m iµ�3�O߽d�1�>���jjZ�6R�L��횦��`�n7v;ɳ Z����E��(�4���t�ϱ�cW� +VWP�2?�+t�ˋ���d\�X��9g�����F�nkg��P�Y��8UF���9V�6� �����LVg)h��l�la�h���eZ�[�H��U,����{���SN����/��W���PN[�UX[Cz�$W����8M�H��kO*:V�����u�[�=�K+F}�C��c]u�XEk�Κ�K�t I��9b-��$_��'��ChW?Hj\w0;�d� &�bⴠ0i�q�b���[i"�L��U6-f��&S}ׂ���g�d)�S$)��د��t�#d&�@�xvrb����V��y&p�s���Q�z��<(�j����5J�tn��:M�G�`����E;OL����SӴ�u�b�� ��fJ5˸G;�0ճ4{��a��"%˨/{�<;J�UJh=W�q��Z�\Hp+ �K�^Z�.K��ӓE40���`_����0C�� >P��9�,��!��HD�㸘�&Y7ˣ�j�����K.$kb��K{('�zk3%���C�@�k������Q���+�P� W�^ns�'y��u�z�SVh?�����������C]l����)�^�eZ������n�4HQZ�C��լ�u���'dt�ꉚ�;��kK��U7��װb��ȕ��Ӳ���q�M#�[�V�:\�NO����S-�dK�]�8��N�m�$������0�Wi@4�!K�ܓN<��>��r!{SE=?e�J�\�@8|�ɅR)"������M":2����/u�jd��ӷ����~4��.�&B�+688|�1l ���+8�,>>=��6HZ�/� �p���}�1���5�#�6����)�ֳ+!�ǒ����lM 1�8���Ͻ�x��9���f.�Iy�<p�4�ֳv�c�zV����.��0���I������Й?�������q)'�.��� @��V�M�>��5AO���F���� �u� 6�OuTV��o�B\n�D!� -�.r�P�����*U�&}�f�2����<���m�v�^���n�!/�!�kx|�j >l�a"V�#����C����2.`x2A�+mmn�E�Vw���I����Ɲ�"2���Jzt_�ǁ�Q\@G�]�#��7�G�0�ʣ*�]��YӖkhu���h�z�Wy�&ks!��u��}%SdV��͏}A+��p3i���iڸbvV`'���wT� ���+BFY���vX��q�:�T�I*�2����>Mk�m� |B`����@l�\��@��|2V��-:�7c�"�\�jJM=�z���� ��Hܧ��IC�<>�������O����S�i�>��!�Yb�i}������Gd��'"� ��'oI^�v:c���f{�!b�X[�j>҆x���r Ykw!���C<B�c�IBdȥ+�$��.3���q7�%��E>�fR�i���I�_�7Ӎ��@E���(=��n݆x�ǐ[L��ӍӶ��D���w��}�^���m"��q���>��Zy��𩓶�FK�}����8:RZ�1kw��HҲ��� ���(��& mL)d�Q� �{���LBG�&H ��m9f`��˶���8lҖ�,���v3JI�>E<��÷����F�}ަ�i6ie� M0���0lOƖ����YA��%g| ��Zm��I�:� �z�C�����T�=Y<�E���m<B��s�M'�-��|`:�Ӹ���&!-ú�M�G �𬆍���|@��wy�i���@2AR0��13�~�)�æ����L�z���B�>70L_b��݊���1T3���+Ltؤ����21�վ��G P�Gl�~���g�V(��e�q�(���&p�L�]#Km�લ�=�ݩ������婫���������w1Z�MG�u}��*b�YF�&F�k�����كN<�L��A� �n�K�8p�T�5�ԭM�K��F�`gN�!Y�p^�!�al�0kYs��a#Gʤ��b�a°����alO�<�0��,&"C���Mit�ĎXB<�d��j���R���EH�d�@�K��x(M)��3h�@���-����B%%2�މ��n�'�Ͱ3`�dH�� �98l2K���w�vB�d+mwxe[K���@��#f>"���d������x@N�j�@���`g��������t�7� �,�q��M=H�hd�A�a1�ق�yB�����z2�{ȓ�.0>�1�U�%�Spp�ԣ��BB��@�9�5��N����<A'��q���h.��K;�9�eF�@p��5_���Jfhs�.�&���H��<H��|�o�d�n̲�f�SK?�q�u�T�M�a�0�"�����4��L��|� �t���^0�v�#,��#�6��1����&"-�F�҇�Y�v#K'F��\����ߩcfdgt��!�b)1�3U����+��J������fH�0t�noS�pKY�vV4L�Sq�tQZ�M=������'b2�MvgR�"y����@�l�æ!msl���,W��v͝˶�h2�ak�����@ph��H������c{(F^a�/���p��6 �0z�����ؽ�y����l�X��C[���ْ�Sl�5���}O�!���$n�k���&��fWb�[�V�5�d~�Y�I����*ia4��<�a�!_�E�܅�0��lS�rh3�n3s��<ߢF--����O�#`�ɑt��]{��!mס��(U��ZiP�x= Dt�T����97̡�H�QC�ްDLf/$�������2��I��+�qh3����``)�X��ن� ��:���t���N�:�i=��]���Y�خ��d�b��xGwƱ���0x�:�8��<�0�,3x�"I*��NC��|�O'�B�R:p��mGZ{2��ȥ�1���8��&N��Yk������~f�S���ʫDɀ�Y���d��¤X��(��f��|��#��H�Z��Gt�0��L���tMq��� H[��Ө��q_.7>Zt˯��rNjWM_p�mBZc��;O=��*��H�����p}��s��n,m2��AO���1��+������Il�+�qh��-�a�!�p��#�|]�x�<�ܭ���.H�_s�@��ہ�[�����$�8ܵvh?у���'�-�q_~O����91 T�k��H[� �%8���<�c�`+�K'<B["��wh�-�U��9��@#73��I~Ȗ&2x@�\ �g�bKJ��uu����/�+�vh��6���)pYr����3�s�uh���Z��%&��fO����"uv�푴A�h!b�X����{)����H�l����_��#�P�_�g��uh�� ��f�*����c>O<�#Egi�!i����+���?s<��w���C{$�o�+�\�G��X�dK3����N8�GyP�&�rt�;��_�#+��\㪼� is�4��S�<�51;���b�b|b���rh��'�oB��41��q�wy������C;!������t���1 ���a�#�E�-�ɹk��>H��>�A&)?���a@�LV�̍��uh����Go�A5`�0�� ts?�Y;����h�7� >��V�}�"�2��p?���䳃�Ɛ�3���b�c"�ç�C�o1�j_�uh� Ҟ�!�t���v&³�|������.{7s��MHk���)oә���S�X��=�X�^b�dWttphy�t���I�bW�2A� ��WGP��-^ųK�98� iK�|��O�q8� ;\��-��ȓ�@��m�kW� y���d��(5�/5��Yw01��xl��]�MLZ����������VՒZ�����iL���h�0zP��m`oj�촛r�o�ja[� Pϳ�rh;y����y���"<KK/��̎@̋�뗃�&'m����U,��Q�}�PK~1x�Eݥvh#y����3VЉ�"ym;�`��W��V�6%�t��r��%2#�%��*�JӚT�4ґ��K�hL���3����6s�2��F��^]v�Ԣ۶5��ݵvh+�ziP+��\�]����9.��V�X�3d�TT#�;k�IW`�#�C�:b��ҵT�hZ��9�Ⳛ�HG[�6������7��J�%�,N�%����@D�`��=ph���->N��2ri�Z�E[�X�4$����E�4z5�b%_�"<�����m?�����o�LGZ�6!�i�n�3G�*a��QZ�ZAQ�dwrqZ�6���V�F�l"r`�e��GƖ'f1�-+�rK��vh#yP��b�ً���F��@Ѫ�d=��G㱫1tq%�mCڤʫT5�ዼ�<�*`9�Xˆ��%ge�e4 z9�:��� ӯ"f3�'1,���:X��;�M_�r�wt�����8d�@V���D�K���4F��_����]ȗ�����BT� ��6���OԌ����\}��ڐ,�<g�{y_s(P�@�uh;G�y�'o��"\@�{���<�1�*�"p���Odi �,2�">/�5f˩��id�F_\�D�vAZh�2,d;����P:у�, �pj�K���0��8���|@x�ye7DȇL"����r�[�9q��^H�\�Q`xa>�8�/���HGv$�s���i����"1�%���@g��G��Y�}C�s�uh?� 9��X�G�40��9�"�,��ؒ���8���������3�m~D"�l�' `�<���6�pphsKk1L0�uoЃ����z:�p�=@G��up�80�4S�c(Pd�r3k���cyQ�-��j2�T�C�д��HQK�I~J�*���&�8jS����暶H�0��B�Rv��P�����vAڜ��X|[������b�������.��ě1�d ��X��0xOޮl�rb킴�R3���s�����<;��Ll}W��9�GlMG�4rBN����]��C���k�C�Iz��m8:]�ѩZ�vJ�D���<�4��ʿ���C;$m�^��3�QmeAi}G�vii=V�gVsm�-L�6�vG��_O�9�5J��88�C��X4�|N���I"�I�/�9l,|��a�1����N_��}�#W���u�T��g�&��Fd�X>� �p]wiک<P}}��1��(Sv�ڕ�M䁇�h�Jb:q���;���1,mi]��,�~=��A�oJ��e���溁���U:���u���]�6N��YcmBJ�kڥ�Mf%���R:rY2��n��C{&m�d=���v�ո�ˁ9�O�F@H���� ؙc퐴IX��w�={���n��ç�O�K�M�COU�#:�:�;KklA�Բ��]�9�SGL4�<�mB��Nvtv֡]���ӕ;)⓳�07S��]�6�|�a6���S��8��q!/��H���/RMw����ˇREl�����uh/������ �4�bGp��캸�x��uh/�6f�ȹ�0Do��q�r>G�zMчZ� V�QC�� ��?m�L��~�7L��9��B<�ӑ���0�<��e��� ��˰�e��!d��t����eD�"�3���O�:�5Uvh� ��� lg��5x8�j���F��bp���E����F�t#�L��N"�-VsPC��zW_��H+Dd���=J�>�0�=i�#��̔Ӵ킴�I� 0�i$�p#|��p<ĮTQ���C����e.���C�"��K-"�x�.z��H��=h��b�d���ه"�@��9�~��i�I��h�ٯC�שa�C-��ǐa3�Z�9�M��R�����5�*���{��iØ4�`@�5iK��B�F��"X�Ԓ��nEp��ӕ�B��v� �T� ZZ1�R��Z���5mL�1�㸸gƱۦ���E!�@x������DԹ�W�=��F��<[i���� �K�%��d��v� �6>��d/F�e\G��0�q0}4)� 9��}��9#���d�x��Ók$��%3���+Q8e�[�3�M�5<��o�U#�4&I��Z�� ��o��Hq��%����Y��a�7X�j����/,�>KiR��S�e}��,��H��%���3����FI� #�A��>��@�j����%N��r��V��p#n�j����B�OI���1OO���\����"�x��H9�E�0,<r5�4��4�hE,��ñ�A~�<%5J �uJr����B�Pi��?d�Y�+,��# Uօ����"i�p�h_��ǵ�2��QZ������_��,���օ��ö��L�����QJ[�)0 �L��>�U�-u"L�)m+ $8b3��mݘ�:+"�6i�����s�%uD�Һv!a�^>⼯.-�=����TL����IDAT�o{��C�PiUkE����H�Hx����~r!"��:^(a�ĝ��ԩ]Pi+�o>2E�A.�h���Y��[���7|��5�"bi-<�y<�[� ��69��"�J����4����^˸"Ji�U���f��Ļ��놭���*����Ls���UwE�݃j��FF�1~��i�#� ��Ջ�r���?۹�V�(���� ���p�k��&Dd�z)���|a(��VZ��<���\�@�$iE���p��$� UV�c"�����u΄aH���Eڢ�݇+B0F����XjxL�V� mu�v�c�lF~0`�,i�M��KD ��X#��)k8Y� 9�)4�n| q�3��k�ea��N�'%����%�ګ:+���(q��癛M�1P�h�W��q�֪�%���I��9�y�,L��s�uvrO8���ʘHM�N��5�������<à���+ �u㚶&�U�������K<o�X8��#�" i�����0�LYF����]Z�D��xe�V��kl� �.�]Ri�H��| "�������%��Ҫ������?@��T�ݒi}�5̩��y��Ą��BHZ!i���BHZ!i���BHZ!i���BHZ!i���BHZ!i���BHZ!$���B���g�nk��d����IEND�B`���(uuay)fishbowl.c����>������/* Benchmark/Fishbowl * * This demo models the fishbowl demos seen on the web in a GTK way. * It's also a neat little tool to see how fast your computer (or * your GTK version) is. */ #include <gtk/gtk.h> #include "gtkfishbowl.h" GtkWidget *allow_changes; #define N_STATS 5 #define STATS_UPDATE_TIME G_USEC_PER_SEC typedef struct _Stats Stats; struct _Stats { gint64 last_stats; gint64 last_frame; gint last_suggestion; guint frame_counter_max; guint stats_index; guint frame_counter[N_STATS]; guint item_counter[N_STATS]; }; static Stats * get_stats (GtkWidget *widget) { static GQuark stats_quark = 0; Stats *stats; if (G_UNLIKELY (stats_quark == 0)) stats_quark = g_quark_from_static_string ("stats"); stats = g_object_get_qdata (G_OBJECT (widget), stats_quark); if (stats == NULL) { stats = g_new0 (Stats, 1); g_object_set_qdata_full (G_OBJECT (widget), stats_quark, stats, g_free); stats->last_frame = gdk_frame_clock_get_frame_time (gtk_widget_get_frame_clock (widget)); stats->last_stats = stats->last_frame; } return stats; } static void do_stats (GtkWidget *widget, GtkWidget *info_label, gint *suggested_change) { Stats *stats; gint64 frame_time; stats = get_stats (widget); frame_time = gdk_frame_clock_get_frame_time (gtk_widget_get_frame_clock (widget)); if (stats->last_stats + STATS_UPDATE_TIME < frame_time) { char *new_label; guint i, n_frames; n_frames = 0; for (i = 0; i < N_STATS; i++) { n_frames += stats->frame_counter[i]; } new_label = g_strdup_printf ("icons - %.1f fps", (double) G_USEC_PER_SEC * n_frames / (N_STATS * STATS_UPDATE_TIME)); gtk_label_set_label (GTK_LABEL (info_label), new_label); g_free (new_label); if (stats->frame_counter[stats->stats_index] >= 19 * stats->frame_counter_max / 20) { if (stats->last_suggestion > 0) stats->last_suggestion *= 2; else stats->last_suggestion = 1; } else { if (stats->last_suggestion < 0) stats->last_suggestion--; else stats->last_suggestion = -1; stats->last_suggestion = MAX (stats->last_suggestion, 1 - (int) stats->item_counter[stats->stats_index]); } stats->stats_index = (stats->stats_index + 1) % N_STATS; stats->frame_counter[stats->stats_index] = 0; stats->item_counter[stats->stats_index] = stats->item_counter[(stats->stats_index + N_STATS - 1) % N_STATS]; stats->last_stats = frame_time; if (suggested_change) *suggested_change = stats->last_suggestion; else stats->last_suggestion = 0; } else { if (suggested_change) *suggested_change = 0; } stats->last_frame = frame_time; stats->frame_counter[stats->stats_index]++; stats->frame_counter_max = MAX (stats->frame_counter_max, stats->frame_counter[stats->stats_index]); } static void stats_update (GtkWidget *widget) { Stats *stats; stats = get_stats (widget); stats->item_counter[stats->stats_index] = gtk_fishbowl_get_count (GTK_FISHBOWL (widget)); } static gboolean move_fish (GtkWidget *bowl, GdkFrameClock *frame_clock, gpointer info_label) { gint suggested_change = 0; do_stats (bowl, info_label, !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (allow_changes)) ? &suggested_change : NULL); gtk_fishbowl_set_count (GTK_FISHBOWL (bowl), gtk_fishbowl_get_count (GTK_FISHBOWL (bowl)) + suggested_change); stats_update (bowl); return G_SOURCE_CONTINUE; } GtkWidget * do_fishbowl (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkBuilder *builder; GtkWidget *bowl, *info_label; g_type_ensure (GTK_TYPE_FISHBOWL); builder = gtk_builder_new_from_resource ("/fishbowl/fishbowl.ui"); gtk_builder_connect_signals (builder, NULL); window = GTK_WIDGET (gtk_builder_get_object (builder, "window")); bowl = GTK_WIDGET (gtk_builder_get_object (builder, "bowl")); info_label = GTK_WIDGET (gtk_builder_get_object (builder, "info_label")); allow_changes = GTK_WIDGET (gtk_builder_get_object (builder, "changes_allow")); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); gtk_widget_realize (window); gtk_widget_add_tick_callback (bowl, move_fish, info_label, NULL); } if (!gtk_widget_get_visible (window)) gtk_widget_show (window); else gtk_widget_destroy (window); return window; } ��(uuay)modelbutton.ui����>������<?xml version="1.0" encoding="UTF-8"?> <interface> <!-- interface-requires gtk+ 3.6 --> <object class="GtkWindow" id="window1"> <child type="titlebar"> <object class="GtkHeaderBar"> <property name="visible">1</property> <property name="show-close-button">1</property> <property name="title" translatable="yes">Model Button</property> </object> </child> <child> <object class="GtkBox"> <property name="visible">1</property> <property name="orientation">vertical</property> <property name="margin">80</property> <child> <object class="GtkMenuButton"> <property name="visible">1</property> <property name="popover">thing_a</property> <child> <object class="GtkLabel"> <property name="visible">1</property> <property name="label">Color</property> <property name="hexpand">1</property> </object> </child> </object> </child> <child> <object class="GtkMenuButton"> <property name="visible">1</property> <property name="popover">thing_b</property> <child> <object class="GtkLabel"> <property name="visible">1</property> <property name="label">Flavors</property> <property name="hexpand">1</property> </object> </child> </object> </child> <child> <object class="GtkMenuButton"> <property name="visible">1</property> <property name="popover">thing_c</property> <child> <object class="GtkLabel"> <property name="visible">1</property> <property name="label">Tools</property> <property name="hexpand">1</property> </object> </child> </object> </child> </object> </child> </object> <object class="GtkPopover" id="thing_a"> <child> <object class="GtkBox"> <property name="visible">1</property> <property name="margin">10</property> <property name="orientation">vertical</property> <child> <object class="GtkModelButton"> <property name="visible">1</property> <property name="action-name">win.color</property> <property name="action-target">'red'</property> <property name="text">Red</property> <property name="inverted">1</property> </object> </child> <child> <object class="GtkModelButton"> <property name="visible">1</property> <property name="action-name">win.color</property> <property name="action-target">'green'</property> <property name="text">Green</property> <property name="inverted">1</property> </object> </child> <child> <object class="GtkModelButton"> <property name="visible">1</property> <property name="action-name">win.color</property> <property name="action-target">'blue'</property> <property name="text">Blue</property> <property name="inverted">1</property> </object> </child> </object> </child> </object> <object class="GtkPopover" id="thing_b"> <child> <object class="GtkBox"> <property name="visible">1</property> <property name="margin">10</property> <property name="orientation">vertical</property> <property name="spacing">10</property> <child> <object class="GtkModelButton"> <property name="visible">1</property> <property name="action-name">win.chocolate</property> <property name="text">Chocolate</property> </object> </child> <child> <object class="GtkModelButton"> <property name="visible">1</property> <property name="action-name">win.vanilla</property> <property name="text">Vanilla</property> </object> </child> <child> <object class="GtkSeparator"> <property name="visible">1</property> </object> </child> <child> <object class="GtkModelButton"> <property name="visible">1</property> <property name="action-name">win.sprinkles</property> <property name="text">Add Sprinkles</property> </object> </child> </object> </child> </object> <object class="GtkPopover" id="thing_c"> <child> <object class="GtkBox"> <property name="visible">1</property> <property name="margin">10</property> <property name="orientation">vertical</property> <property name="spacing">10</property> <child> <object class="GtkModelButton"> <property name="visible">1</property> <property name="text">Hammer</property> <property name="role">check</property> <signal name="clicked" handler="tool_clicked"/> </object> </child> <child> <object class="GtkModelButton"> <property name="visible">1</property> <property name="text">Screwdriver</property> <property name="role">check</property> <signal name="clicked" handler="tool_clicked"/> </object> </child> <child> <object class="GtkModelButton"> <property name="visible">1</property> <property name="text">Drill</property> <property name="role">check</property> <signal name="clicked" handler="tool_clicked"/> </object> </child> </object> </child> </object> </interface> ��(uuay)editable_cells.c��f.������/* Tree View/Editable Cells * * This demo demonstrates the use of editable cells in a GtkTreeView. If * you're new to the GtkTreeView widgets and associates, look into * the GtkListStore example first. It also shows how to use the * GtkCellRenderer::editing-started signal to do custom setup of the * editable widget. * * The cell renderers used in this demo are GtkCellRendererText, * GtkCellRendererCombo and GtkCellRendererProgress. */ #include <gtk/gtk.h> #include <string.h> #include <stdlib.h> typedef struct { gint number; gchar *product; gint yummy; } Item; enum { COLUMN_ITEM_NUMBER, COLUMN_ITEM_PRODUCT, COLUMN_ITEM_YUMMY, NUM_ITEM_COLUMNS }; enum { COLUMN_NUMBER_TEXT, NUM_NUMBER_COLUMNS }; static GArray *articles = NULL; static void add_items (void) { Item foo; g_return_if_fail (articles != NULL); foo.number = 3; foo.product = g_strdup ("bottles of coke"); foo.yummy = 20; g_array_append_vals (articles, &foo, 1); foo.number = 5; foo.product = g_strdup ("packages of noodles"); foo.yummy = 50; g_array_append_vals (articles, &foo, 1); foo.number = 2; foo.product = g_strdup ("packages of chocolate chip cookies"); foo.yummy = 90; g_array_append_vals (articles, &foo, 1); foo.number = 1; foo.product = g_strdup ("can vanilla ice cream"); foo.yummy = 60; g_array_append_vals (articles, &foo, 1); foo.number = 6; foo.product = g_strdup ("eggs"); foo.yummy = 10; g_array_append_vals (articles, &foo, 1); } static GtkTreeModel * create_items_model (void) { gint i = 0; GtkListStore *model; GtkTreeIter iter; /* create array */ articles = g_array_sized_new (FALSE, FALSE, sizeof (Item), 1); add_items (); /* create list store */ model = gtk_list_store_new (NUM_ITEM_COLUMNS, G_TYPE_INT, G_TYPE_STRING, G_TYPE_INT, G_TYPE_BOOLEAN); /* add items */ for (i = 0; i < articles->len; i++) { gtk_list_store_append (model, &iter); gtk_list_store_set (model, &iter, COLUMN_ITEM_NUMBER, g_array_index (articles, Item, i).number, COLUMN_ITEM_PRODUCT, g_array_index (articles, Item, i).product, COLUMN_ITEM_YUMMY, g_array_index (articles, Item, i).yummy, -1); } return GTK_TREE_MODEL (model); } static GtkTreeModel * create_numbers_model (void) { #define N_NUMBERS 10 gint i = 0; GtkListStore *model; GtkTreeIter iter; /* create list store */ model = gtk_list_store_new (NUM_NUMBER_COLUMNS, G_TYPE_STRING, G_TYPE_INT); /* add numbers */ for (i = 0; i < N_NUMBERS; i++) { char str[2]; str[0] = '0' + i; str[1] = '\0'; gtk_list_store_append (model, &iter); gtk_list_store_set (model, &iter, COLUMN_NUMBER_TEXT, str, -1); } return GTK_TREE_MODEL (model); #undef N_NUMBERS } static void add_item (GtkWidget *button, gpointer data) { Item foo; GtkTreeIter current, iter; GtkTreePath *path; GtkTreeModel *model; GtkTreeViewColumn *column; GtkTreeView *treeview = (GtkTreeView *)data; g_return_if_fail (articles != NULL); foo.number = 0; foo.product = g_strdup ("Description here"); foo.yummy = 50; g_array_append_vals (articles, &foo, 1); /* Insert a new row below the current one */ gtk_tree_view_get_cursor (treeview, &path, NULL); model = gtk_tree_view_get_model (treeview); if (path) { gtk_tree_model_get_iter (model, ¤t, path); gtk_tree_path_free (path); gtk_list_store_insert_after (GTK_LIST_STORE (model), &iter, ¤t); } else { gtk_list_store_insert (GTK_LIST_STORE (model), &iter, -1); } /* Set the data for the new row */ gtk_list_store_set (GTK_LIST_STORE (model), &iter, COLUMN_ITEM_NUMBER, foo.number, COLUMN_ITEM_PRODUCT, foo.product, COLUMN_ITEM_YUMMY, foo.yummy, -1); /* Move focus to the new row */ path = gtk_tree_model_get_path (model, &iter); column = gtk_tree_view_get_column (treeview, 0); gtk_tree_view_set_cursor (treeview, path, column, FALSE); gtk_tree_path_free (path); } static void remove_item (GtkWidget *widget, gpointer data) { GtkTreeIter iter; GtkTreeView *treeview = (GtkTreeView *)data; GtkTreeModel *model = gtk_tree_view_get_model (treeview); GtkTreeSelection *selection = gtk_tree_view_get_selection (treeview); if (gtk_tree_selection_get_selected (selection, NULL, &iter)) { gint i; GtkTreePath *path; path = gtk_tree_model_get_path (model, &iter); i = gtk_tree_path_get_indices (path)[0]; gtk_list_store_remove (GTK_LIST_STORE (model), &iter); g_array_remove_index (articles, i); gtk_tree_path_free (path); } } static gboolean separator_row (GtkTreeModel *model, GtkTreeIter *iter, gpointer data) { GtkTreePath *path; gint idx; path = gtk_tree_model_get_path (model, iter); idx = gtk_tree_path_get_indices (path)[0]; gtk_tree_path_free (path); return idx == 5; } static void editing_started (GtkCellRenderer *cell, GtkCellEditable *editable, const gchar *path, gpointer data) { gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (editable), separator_row, NULL, NULL); } static void cell_edited (GtkCellRendererText *cell, const gchar *path_string, const gchar *new_text, gpointer data) { GtkTreeModel *model = (GtkTreeModel *)data; GtkTreePath *path = gtk_tree_path_new_from_string (path_string); GtkTreeIter iter; gint column = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (cell), "column")); gtk_tree_model_get_iter (model, &iter, path); switch (column) { case COLUMN_ITEM_NUMBER: { gint i; i = gtk_tree_path_get_indices (path)[0]; g_array_index (articles, Item, i).number = atoi (new_text); gtk_list_store_set (GTK_LIST_STORE (model), &iter, column, g_array_index (articles, Item, i).number, -1); } break; case COLUMN_ITEM_PRODUCT: { gint i; gchar *old_text; gtk_tree_model_get (model, &iter, column, &old_text, -1); g_free (old_text); i = gtk_tree_path_get_indices (path)[0]; g_free (g_array_index (articles, Item, i).product); g_array_index (articles, Item, i).product = g_strdup (new_text); gtk_list_store_set (GTK_LIST_STORE (model), &iter, column, g_array_index (articles, Item, i).product, -1); } break; } gtk_tree_path_free (path); } static void add_columns (GtkTreeView *treeview, GtkTreeModel *items_model, GtkTreeModel *numbers_model) { GtkCellRenderer *renderer; /* number column */ renderer = gtk_cell_renderer_combo_new (); g_object_set (renderer, "model", numbers_model, "text-column", COLUMN_NUMBER_TEXT, "has-entry", FALSE, "editable", TRUE, NULL); g_signal_connect (renderer, "edited", G_CALLBACK (cell_edited), items_model); g_signal_connect (renderer, "editing-started", G_CALLBACK (editing_started), NULL); g_object_set_data (G_OBJECT (renderer), "column", GINT_TO_POINTER (COLUMN_ITEM_NUMBER)); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, "Number", renderer, "text", COLUMN_ITEM_NUMBER, NULL); /* product column */ renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "editable", TRUE, NULL); g_signal_connect (renderer, "edited", G_CALLBACK (cell_edited), items_model); g_object_set_data (G_OBJECT (renderer), "column", GINT_TO_POINTER (COLUMN_ITEM_PRODUCT)); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, "Product", renderer, "text", COLUMN_ITEM_PRODUCT, NULL); /* yummy column */ renderer = gtk_cell_renderer_progress_new (); g_object_set_data (G_OBJECT (renderer), "column", GINT_TO_POINTER (COLUMN_ITEM_YUMMY)); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, "Yummy", renderer, "value", COLUMN_ITEM_YUMMY, NULL); } GtkWidget * do_editable_cells (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *vbox; GtkWidget *hbox; GtkWidget *sw; GtkWidget *treeview; GtkWidget *button; GtkTreeModel *items_model; GtkTreeModel *numbers_model; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Editable Cells"); gtk_container_set_border_width (GTK_CONTAINER (window), 5); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_box_pack_start (GTK_BOX (vbox), gtk_label_new ("Shopping list (you can edit the cells!)"), FALSE, FALSE, 0); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start (GTK_BOX (vbox), sw, TRUE, TRUE, 0); /* create models */ items_model = create_items_model (); numbers_model = create_numbers_model (); /* create tree view */ treeview = gtk_tree_view_new_with_model (items_model); gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)), GTK_SELECTION_SINGLE); add_columns (GTK_TREE_VIEW (treeview), items_model, numbers_model); g_object_unref (numbers_model); g_object_unref (items_model); gtk_container_add (GTK_CONTAINER (sw), treeview); /* some buttons */ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4); gtk_box_set_homogeneous (GTK_BOX (hbox), TRUE); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); button = gtk_button_new_with_label ("Add item"); g_signal_connect (button, "clicked", G_CALLBACK (add_item), treeview); gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); button = gtk_button_new_with_label ("Remove item"); g_signal_connect (button, "clicked", G_CALLBACK (remove_item), treeview); gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); gtk_window_set_default_size (GTK_WINDOW (window), 320, 200); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)gnome-gmush.png�����������PNG ��� IHDR���0���0���W�����gAMA���1�_��cIDATx��[�$�Y��NU�{�{���q��lb�K��"�1R�2QL�B �͑x��KH����<8h��`@�����/+lǻk{����LwOwuu�9U���U�� ������������}��|��������O�/}��O ĭ�h(.]X}��[W;�� <��_^qƜȄX����02#L��cŕ+k�z��k�����\����G��w�}��?��Ǔ�p2�&�N1iF���u�v�������Iuvr�;\{� |�鯭4��Ӊ�Q��X����dK�Rg�5�֊V����C�������F�Ͼ�'���C�L���Xp�z���W�G�ɬa0걺&�=����Y*�����_��K�+��ǎ��羓�c�̘�I�(���c�9�\{k-��)vGC�$����h�� �8�8K�_��_��x��WWg�W�'t�-��"� <��yDKf-&K1YF"����R�{�B�ٌXŀ��ڃ��z��斾�oE�c-i�bL�6�CzRJ�Y`�a4M �'!�;�8��OJZ�6ՠ�h<&M���#s��l�~�� ����c�>.�X�L��v��b��+Ng0Ƣ2E�eh���8kq�I�z]T�2Gd6��%"��@�n�Y>|�`����o��F���X�^=vx���ƚek-Ν���Ej@f22k���U|�a����s�� <�����5d��$�Z-�~@�Rc�F����,:��������ۼ��|�Gz���r�T��f�I�Z!|:� �8p� ��9��1���a���@J�ߗx��+6]�[��=Ӧ�j>p��On_����" ��b��c����3?ϛ��uk�O!��DQ��kuffZlnl��������>�RiΟy����b���ҌԦh�2Gl�����.�h��x��W��^�wM��DŽ��� �"C�(Bk ��&;;=��]�u4� �֮T*�:œq�fKss�dW�w>?v�}t�Z��$��n��R��*?x��� {!k��o�Ư-?�ܳ{�r���H�NS�G��v�I�Ra8 �� ~�����#&qL�$�R��0���e��r���s7��h�$NX����ť�u�V$J��&�����WrX._�M�9����<���|ߗ~��K)��5�8I�Lb�,�Z��n���#ʼn��i��$ J���}���y��`�1�j�����s�*�qȷ��om��R��)v{��s���p��/�oH����?��[�~q��X��!RJj�*�R�q�O��iA)�d2A)E�$�y�c�Z�s ��9G�Z���%��X\�gqa�����o���.κ��<�������=��s�t����ؗ��ŷ�D�>Rz{��D)>t�|����c��DQDE$IB����) ��jl�r��!.-�h68r� ��m���h6�:�O��������|=|��?����k�8�V����ۯ���G�kY��$ ��K��s�$I���i�2DQD�(�����A�0;3��#�8~|��Gfn�������рt�ww|��LN�\��B<�[������?~�+���?���q�;��h6x��O��|| \)�������,���T*��cPJ!�G�UG @��N�I�!�:��>r�C�t�]����q���B̀�f3'�����G'~��~�����O����wָc������J�B�eH)B0�L�}��B��Ck�s��p����F���Y�u�f�m��_��]^!��t����u������G/���4��G���K�9�RT*��8�B�n��ׅ!��ֲ��H��E0Dx�<RzD�⯟}����,BxX�~+~u�<P�3��� �n?z���[��'�uO'���M��(2�Ԟ�˲c�Z���^V��?���Y����,���F/\��UU��������=˜�J�)%i�N�.�$�2�sŠdg4b}����y�@�<\]�'�ڼ����2|-�Ȁ��7E���h�>�2���c�}��������U�/�d����xk�R�1��뽑�V@�D¿)i�>�e�d!�0i��h�QJM H)��WI�Ff�Io�ZG�n��&js��\*�x-'��F��k���H��d��$�v��>i�RΎ1fZE'2�zk�ܠ��9P�h-'PX���,�����0Ok��bIL&���&�;��|7W����9���r���Uˣ_ρ�m�w#���$IS�Zk�8�-���$�s�V������2[�/H�)d$J8���<�gY��y��F�A�e�q��)�t�>�1Sŗ ��<�.�d�iZ�OZ��_rљ#�Ϝ9�R�� 9�HӔ4M�}c��JGQ�V�[l4K`MI&�|^��B�»���x<���J)��M��|Pu���m�sn:����i��.�ݻ�],`���_�4�0(�]�����DkM�Xk�L&�q�p8���Lk��N^J�/]��4��E����:Q���ɀ|衇�Yg�R�������r���h�ŋi����PH��qo��vP~Oa���������Fž���������^��f������B��t�=4h���Nmv~��[o��Y��}E��f���]o��W^y�b�V*���I��(��v����Q���Z���z��`0�t���s9�8_ �� ���t�C ����Т_$�g�yf����KJy[�e���N-�իWq��h4��N{�^���_���l� ��$�D&��ͭ�(?N�-��������SO�����Z�C�Zm������aH�e4 ����իW����˯���n(�ƥ��\����ai�K�����k̀WD�4-��0,��N��X�U�\��_\�ﯔ�XL��e]�Gq�J�������k�@��q^x�VNb.?o�^j����2h��g��T�=q~-*I�,�$���&q�!D�o�����^-�/��y*�ˁ��-e@��$�"�E�yO�� ��ʖ�8ɣ�\���M�}�ٟ���JJ�!P�H�B*�z�g@�<�++|~�_/���+�ݟ�����[�Rв4=�}5��{e�RҺ.]7����R�m)�Ź� $ݒv�����IEND�B`���(uuay)event_axes.cTE������/* Touch and Drawing Tablets * * Demonstrates advanced handling of event information from exotic * input devices. * * On one hand, this snippet demonstrates management of drawing tablets, * those contain additional information for the pointer other than * X/Y coordinates. Tablet pads events are mapped to actions, which * are both defined and interpreted by the application. * * Input axes are dependent on hardware devices, on linux/unix you * can see the device axes through xinput list <device>. Each time * a different hardware device is used to move the pointer, the * master device will be updated to match the axes it provides, * these changes can be tracked through GdkDevice::changed, or * checking gdk_event_get_source_device(). * * On the other hand, this demo handles basic multitouch events, * each event coming from an specific touchpoint will contain a * GdkEventSequence that's unique for its lifetime, so multiple * touchpoints can be tracked. */ #include <glib/gi18n.h> #include <gtk/gtk.h> typedef struct { GdkDevice *last_source; GdkDeviceTool *last_tool; gdouble *axes; GdkRGBA color; gdouble x; gdouble y; } AxesInfo; typedef struct { GHashTable *pointer_info; /* GdkDevice -> AxesInfo */ GHashTable *touch_info; /* GdkEventSequence -> AxesInfo */ } EventData; const gchar *colors[] = { "black", "orchid", "fuchsia", "indigo", "thistle", "sienna", "azure", "plum", "lime", "navy", "maroon", "burlywood" }; static GtkPadActionEntry pad_actions[] = { { GTK_PAD_ACTION_BUTTON, 1, -1, N_("Nuclear strike"), "pad.nuke" }, { GTK_PAD_ACTION_BUTTON, 2, -1, N_("Release siberian methane reserves"), "pad.heat" }, { GTK_PAD_ACTION_BUTTON, 3, -1, N_("Release solar flare"), "pad.fry" }, { GTK_PAD_ACTION_BUTTON, 4, -1, N_("De-stabilize Oort cloud"), "pad.fall" }, { GTK_PAD_ACTION_BUTTON, 5, -1, N_("Ignite WR-104"), "pad.burst" }, { GTK_PAD_ACTION_BUTTON, 6, -1, N_("Lart whoever asks about this button"), "pad.lart" }, { GTK_PAD_ACTION_RING, -1, -1, N_("Earth axial tilt"), "pad.tilt" }, { GTK_PAD_ACTION_STRIP, -1, -1, N_("Extent of weak nuclear force"), "pad.dissolve" }, }; static const gchar *pad_action_results[] = { "☢", "♨", "☼", "☄", "⚡", "💫", "◑", "⚛" }; static guint cur_color = 0; static guint pad_action_timeout_id = 0; static AxesInfo * axes_info_new (void) { AxesInfo *info; info = g_new0 (AxesInfo, 1); gdk_rgba_parse (&info->color, colors[cur_color]); cur_color = (cur_color + 1) % G_N_ELEMENTS (colors); return info; } static EventData * event_data_new (void) { EventData *data; data = g_new0 (EventData, 1); data->pointer_info = g_hash_table_new_full (NULL, NULL, NULL, (GDestroyNotify) g_free); data->touch_info = g_hash_table_new_full (NULL, NULL, NULL, (GDestroyNotify) g_free); return data; } static void event_data_free (EventData *data) { g_hash_table_destroy (data->pointer_info); g_hash_table_destroy (data->touch_info); g_free (data); } static void update_axes_from_event (GdkEvent *event, EventData *data) { GdkDevice *device, *source_device; GdkEventSequence *sequence; GdkDeviceTool *tool; gdouble x, y; AxesInfo *info; device = gdk_event_get_device (event); source_device = gdk_event_get_source_device (event); sequence = gdk_event_get_event_sequence (event); tool = gdk_event_get_device_tool (event); if (event->type == GDK_TOUCH_END || event->type == GDK_TOUCH_CANCEL) { g_hash_table_remove (data->touch_info, sequence); return; } else if (event->type == GDK_LEAVE_NOTIFY) { g_hash_table_remove (data->pointer_info, device); return; } if (!sequence) { info = g_hash_table_lookup (data->pointer_info, device); if (!info) { info = axes_info_new (); g_hash_table_insert (data->pointer_info, device, info); } } else { info = g_hash_table_lookup (data->touch_info, sequence); if (!info) { info = axes_info_new (); g_hash_table_insert (data->touch_info, sequence, info); } } if (info->last_source != source_device) info->last_source = source_device; if (info->last_tool != tool) info->last_tool = tool; g_clear_pointer (&info->axes, g_free); if (event->type == GDK_TOUCH_BEGIN || event->type == GDK_TOUCH_UPDATE) { if (sequence && event->touch.emulating_pointer) g_hash_table_remove (data->pointer_info, device); } if (event->type == GDK_MOTION_NOTIFY) { info->axes = g_memdup (event->motion.axes, sizeof (gdouble) * gdk_device_get_n_axes (source_device)); } else if (event->type == GDK_BUTTON_PRESS || event->type == GDK_BUTTON_RELEASE) { info->axes = g_memdup (event->button.axes, sizeof (gdouble) * gdk_device_get_n_axes (source_device)); } if (gdk_event_get_coords (event, &x, &y)) { info->x = x; info->y = y; } } static gboolean event_cb (GtkWidget *widget, GdkEvent *event, gpointer user_data) { update_axes_from_event (event, user_data); gtk_widget_queue_draw (widget); return FALSE; } static void render_arrow (cairo_t *cr, gdouble x_diff, gdouble y_diff, const gchar *label) { cairo_save (cr); cairo_set_source_rgb (cr, 0, 0, 0); cairo_new_path (cr); cairo_move_to (cr, 0, 0); cairo_line_to (cr, x_diff, y_diff); cairo_stroke (cr); cairo_move_to (cr, x_diff, y_diff); cairo_show_text (cr, label); cairo_restore (cr); } static void draw_axes_info (cairo_t *cr, AxesInfo *info, GtkAllocation *allocation) { gdouble pressure, tilt_x, tilt_y, distance, wheel, rotation, slider; GdkAxisFlags axes = gdk_device_get_axes (info->last_source); cairo_save (cr); cairo_set_line_width (cr, 1); gdk_cairo_set_source_rgba (cr, &info->color); cairo_move_to (cr, 0, info->y); cairo_line_to (cr, allocation->width, info->y); cairo_move_to (cr, info->x, 0); cairo_line_to (cr, info->x, allocation->height); cairo_stroke (cr); cairo_translate (cr, info->x, info->y); if (!info->axes) { cairo_restore (cr); return; } if (axes & GDK_AXIS_FLAG_PRESSURE) { cairo_pattern_t *pattern; gdk_device_get_axis (info->last_source, info->axes, GDK_AXIS_PRESSURE, &pressure); pattern = cairo_pattern_create_radial (0, 0, 0, 0, 0, 100); cairo_pattern_add_color_stop_rgba (pattern, pressure, 1, 0, 0, pressure); cairo_pattern_add_color_stop_rgba (pattern, 1, 0, 0, 1, 0); cairo_set_source (cr, pattern); cairo_arc (cr, 0, 0, 100, 0, 2 * G_PI); cairo_fill (cr); cairo_pattern_destroy (pattern); } if (axes & GDK_AXIS_FLAG_XTILT && axes & GDK_AXIS_FLAG_YTILT) { gdk_device_get_axis (info->last_source, info->axes, GDK_AXIS_XTILT, &tilt_x); gdk_device_get_axis (info->last_source, info->axes, GDK_AXIS_YTILT, &tilt_y); render_arrow (cr, tilt_x * 100, tilt_y * 100, "Tilt"); } if (axes & GDK_AXIS_FLAG_DISTANCE) { double dashes[] = { 5.0, 5.0 }; cairo_text_extents_t extents; gdk_device_get_axis (info->last_source, info->axes, GDK_AXIS_DISTANCE, &distance); cairo_save (cr); cairo_move_to (cr, distance * 100, 0); cairo_set_source_rgb (cr, 0.0, 0.0, 0.0); cairo_set_dash (cr, dashes, 2, 0.0); cairo_arc (cr, 0, 0, distance * 100, 0, 2 * G_PI); cairo_stroke (cr); cairo_move_to (cr, 0, -distance * 100); cairo_text_extents (cr, "Distance", &extents); cairo_rel_move_to (cr, -extents.width / 2, 0); cairo_show_text (cr, "Distance"); cairo_move_to (cr, 0, 0); cairo_restore (cr); } if (axes & GDK_AXIS_FLAG_WHEEL) { gdk_device_get_axis (info->last_source, info->axes, GDK_AXIS_WHEEL, &wheel); cairo_save (cr); cairo_set_line_width (cr, 10); cairo_set_source_rgba (cr, 0, 0, 0, 0.5); cairo_new_sub_path (cr); cairo_arc (cr, 0, 0, 100, 0, wheel * 2 * G_PI); cairo_stroke (cr); cairo_restore (cr); } if (axes & GDK_AXIS_FLAG_ROTATION) { gdk_device_get_axis (info->last_source, info->axes, GDK_AXIS_ROTATION, &rotation); rotation *= 2 * G_PI; cairo_save (cr); cairo_rotate (cr, - G_PI / 2); cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND); cairo_set_line_width (cr, 5); cairo_new_sub_path (cr); cairo_arc (cr, 0, 0, 100, 0, rotation); cairo_stroke (cr); cairo_restore (cr); } if (axes & GDK_AXIS_FLAG_SLIDER) { cairo_pattern_t *pattern, *mask; gdk_device_get_axis (info->last_source, info->axes, GDK_AXIS_SLIDER, &slider); cairo_save (cr); cairo_move_to (cr, 0, -10); cairo_rel_line_to (cr, 0, -50); cairo_rel_line_to (cr, 10, 0); cairo_rel_line_to (cr, -5, 50); cairo_close_path (cr); cairo_clip_preserve (cr); pattern = cairo_pattern_create_linear (0, -10, 0, -60); cairo_pattern_add_color_stop_rgb (pattern, 0, 0, 1, 0); cairo_pattern_add_color_stop_rgb (pattern, 1, 1, 0, 0); cairo_set_source (cr, pattern); cairo_pattern_destroy (pattern); mask = cairo_pattern_create_linear (0, -10, 0, -60); cairo_pattern_add_color_stop_rgba (mask, 0, 0, 0, 0, 1); cairo_pattern_add_color_stop_rgba (mask, slider, 0, 0, 0, 1); cairo_pattern_add_color_stop_rgba (mask, slider, 0, 0, 0, 0); cairo_pattern_add_color_stop_rgba (mask, 1, 0, 0, 0, 0); cairo_mask (cr, mask); cairo_pattern_destroy (mask); cairo_set_source_rgb (cr, 0, 0, 0); cairo_stroke (cr); cairo_restore (cr); } cairo_restore (cr); } static const gchar * tool_type_to_string (GdkDeviceToolType tool_type) { switch (tool_type) { case GDK_DEVICE_TOOL_TYPE_PEN: return "Pen"; case GDK_DEVICE_TOOL_TYPE_ERASER: return "Eraser"; case GDK_DEVICE_TOOL_TYPE_BRUSH: return "Brush"; case GDK_DEVICE_TOOL_TYPE_PENCIL: return "Pencil"; case GDK_DEVICE_TOOL_TYPE_AIRBRUSH: return "Airbrush"; case GDK_DEVICE_TOOL_TYPE_MOUSE: return "Mouse"; case GDK_DEVICE_TOOL_TYPE_LENS: return "Lens cursor"; case GDK_DEVICE_TOOL_TYPE_UNKNOWN: default: return "Unknown"; } } static void draw_device_info (GtkWidget *widget, cairo_t *cr, GdkEventSequence *sequence, gint *y, AxesInfo *info) { PangoLayout *layout; GString *string; gint height; cairo_save (cr); string = g_string_new (NULL); g_string_append_printf (string, "Source: %s", gdk_device_get_name (info->last_source)); if (sequence) g_string_append_printf (string, "\nSequence: %d", GPOINTER_TO_UINT (sequence)); if (info->last_tool) { const gchar *tool_type; guint64 serial; tool_type = tool_type_to_string (gdk_device_tool_get_tool_type (info->last_tool)); serial = gdk_device_tool_get_serial (info->last_tool); g_string_append_printf (string, "\nTool: %s", tool_type); if (serial != 0) g_string_append_printf (string, ", Serial: %lx", serial); } cairo_move_to (cr, 10, *y); layout = gtk_widget_create_pango_layout (widget, string->str); pango_cairo_show_layout (cr, layout); cairo_stroke (cr); pango_layout_get_pixel_size (layout, NULL, &height); gdk_cairo_set_source_rgba (cr, &info->color); cairo_set_line_width (cr, 10); cairo_move_to (cr, 0, *y); *y = *y + height; cairo_line_to (cr, 0, *y); cairo_stroke (cr); cairo_restore (cr); g_object_unref (layout); g_string_free (string, TRUE); } static gboolean draw_cb (GtkWidget *widget, cairo_t *cr, gpointer user_data) { EventData *data = user_data; GtkAllocation allocation; AxesInfo *info; GHashTableIter iter; gpointer key, value; gint y = 0; gtk_widget_get_allocation (widget, &allocation); /* Draw Abs info */ g_hash_table_iter_init (&iter, data->pointer_info); while (g_hash_table_iter_next (&iter, NULL, &value)) { info = value; draw_axes_info (cr, info, &allocation); } g_hash_table_iter_init (&iter, data->touch_info); while (g_hash_table_iter_next (&iter, NULL, &value)) { info = value; draw_axes_info (cr, info, &allocation); } /* Draw name, color legend and misc data */ g_hash_table_iter_init (&iter, data->pointer_info); while (g_hash_table_iter_next (&iter, NULL, &value)) { info = value; draw_device_info (widget, cr, NULL, &y, info); } g_hash_table_iter_init (&iter, data->touch_info); while (g_hash_table_iter_next (&iter, &key, &value)) { info = value; draw_device_info (widget, cr, key, &y, info); } return FALSE; } static void update_label_text (GtkWidget *label, const gchar *text) { gchar *markup = NULL; if (text) markup = g_strdup_printf ("<span font='48.0'>%s</span>", text); gtk_label_set_markup (GTK_LABEL (label), markup); g_free (markup); } static gboolean reset_label_text_timeout_cb (gpointer user_data) { GtkWidget *label = user_data; update_label_text (label, NULL); pad_action_timeout_id = 0; return G_SOURCE_REMOVE; } static void update_label_and_timeout (GtkWidget *label, const gchar *text) { if (pad_action_timeout_id) g_source_remove (pad_action_timeout_id); update_label_text (label, text); pad_action_timeout_id = g_timeout_add (200, reset_label_text_timeout_cb, label); } static void on_action_activate (GSimpleAction *action, GVariant *parameter, gpointer user_data) { GtkWidget *label = user_data; const gchar *result; gchar *str; result = g_object_get_data (G_OBJECT (action), "action-result"); if (!parameter) update_label_and_timeout (label, result); else { str = g_strdup_printf ("%s %.2f", result, g_variant_get_double (parameter)); update_label_and_timeout (label, str); g_free (str); } } static void init_pad_controller (GtkWidget *window, GtkWidget *label) { GtkPadController *pad_controller; GSimpleActionGroup *action_group; GSimpleAction *action; gint i; action_group = g_simple_action_group_new (); pad_controller = gtk_pad_controller_new (GTK_WINDOW (window), G_ACTION_GROUP (action_group), NULL); for (i = 0; i < G_N_ELEMENTS (pad_actions); i++) { if (pad_actions[i].type == GTK_PAD_ACTION_BUTTON) { action = g_simple_action_new (pad_actions[i].action_name, NULL); } else { action = g_simple_action_new_stateful (pad_actions[i].action_name, G_VARIANT_TYPE_DOUBLE, NULL); } g_signal_connect (action, "activate", G_CALLBACK (on_action_activate), label); g_object_set_data (G_OBJECT (action), "action-result", (gpointer) pad_action_results[i]); g_action_map_add_action (G_ACTION_MAP (action_group), G_ACTION (action)); g_object_unref (action); } gtk_pad_controller_set_action_entries (pad_controller, pad_actions, G_N_ELEMENTS (pad_actions)); g_object_set_data_full (G_OBJECT (window), "pad-controller", pad_controller, g_object_unref); g_object_unref (action_group); } GtkWidget * do_event_axes (GtkWidget *toplevel) { static GtkWidget *window = NULL; EventData *event_data; GtkWidget *box, *label; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "Event Axes"); gtk_window_set_default_size (GTK_WINDOW (window), 400, 400); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); box = gtk_event_box_new (); gtk_container_add (GTK_CONTAINER (window), box); gtk_widget_set_support_multidevice (box, TRUE); gtk_widget_add_events (box, GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_SMOOTH_SCROLL_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_TOUCH_MASK); event_data = event_data_new (); g_object_set_data_full (G_OBJECT (box), "gtk-demo-event-data", event_data, (GDestroyNotify) event_data_free); g_signal_connect (box, "event", G_CALLBACK (event_cb), event_data); g_signal_connect (box, "draw", G_CALLBACK (draw_cb), event_data); label = gtk_label_new (""); gtk_label_set_use_markup (GTK_LABEL (label), TRUE); gtk_container_add (GTK_CONTAINER (box), label); init_pad_controller (window, label); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)ns_resize_cursor.png��������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��n��n��^���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3����`IDATX�͖]H[g����9�m��Y0�cV�"��!*pl݊��Fp�K/:�v�ū�y�~����ƛ���(���W�^-�����!���q�g��I�V�=��rr���~ɛ�/p������s�$�,��k �����C*�����_P@|�1�9������7n���iK�ĝ��i�9����,˴�����|�9��sN���@���TSSC���<�ǯ_�>r9�w�s������z���#�^O���]��$%r�o���v;���"Q�1F����������߿�c�؉I�T�@�k�9��v��tTQQA�1��(Ree%r�\������H�T�PȖ���jR�T$B<7c$�"�t�b � �rf,�˲�S0ĭ[� n�����Ç�뱱1tuu寵Z-����Şݼys�n���D(�p������#��.�V&�I51"zzzچ���p8���.\�[[[�3Ƹ ��$%�FFF�Y]]����,��@SS��6� Ȭ��v�!�_Kլ��o���_���H���R���ΪRu%�ᬱ����2�E1 �`�.��?��b��GH���Е�g�Ad�����Y�C��y�@���>P�_��$7��7o\��E3��}��P&����~��(��HDJ$�E<Oe9�V�=;55e���>c4�*���@����e��"(шJ���rs2�tS��Z�m��p�K�����dY>�̡��8{��Us$���|��d"Y��C�Vh�ڂ�����( _ZZ�]��\� @{ ��b�X�����(F���&T<,% �r�I�t��j��<t�4�j���?����^�Winn>~��EJ$�{�%I�1���T��[�@M__�g^�w���)---%��J��ݻw3�l� /�x�l6��z=�`Pioo/�R*��w��y�� ����� ���ۿ���4 )&�����j�t:�o߾��^�����T ����������B���4��ir:���G��N�_B`���8�v��9��?�\9m�mmm�����22�ڱ��1�i�o�#��#Ȝ�(�@�N���tv �������KCR�������IEND�B`���(uuay)glarea/��M���4���v���"���gnome-applets.png����������PNG ��� IHDR���0���0���W�����gAMA�����a���bKGD������������� pHYs��`��`zxE����tIME�(������IDATx��Y��u��ګ���g㐢�9Җdk�MіI�@ӒF� 'P q^b=F� �I6�<Y��k I� �@L٢hQ#�҈Ԉξw����5}�(���e�<)�=�������{�#qs�$L.�K��gK����v�\&�H a��-'r#�pU�V�W cs�1,'��o�g])�6��˽��~�@�c��[� �: (�&P�O�sp�3_:z|dx�p�4Ȓ4'��:N���Z�eM��o�}���ߘ]XY���3�B|��y@.�ρ��|�s������y�_�$�,�H��(� �����<ϱ�]�vX[����>��G�/n��N(�9�&P*/��������=r�a�0��������**�,!!�IR�B�����_쯹�+baGRR�/dS*��?��{��ķ+}5�,�)����n����j]�R7��4%Mb�$%NRUS�/���.���C�ȥ���w������}�T�T*S��)�K覉a訪�,ɿ$�4!�c�8!�c�8����ŕ�;%�l3�j>�?��w�������\�R*�)U*��e�R�4Q5EQ�d�.�$邕��}�(���8��L��Kzk}�}��^o��| ��Ǟ�{�_꺎�i��i��� �J���� �ib������������)2���� �,S)����Ұt+�N�9v��oi�nʲ���h���F �,Q*WɃYӻ�/� �,Q�T���$uM�es���;B��6x��@�L��dp����edY�)�2��c��PU��wH2�xI��d Y����\'N�*�$��2Yz�R��r�a/�ۥ�'}x"K3�,#�R�,�,�f�4%�C|�&��+�!���4#�R$Ecy�I(W�pz��`��R�ӿ*2� {AަXS���#i�t2��EDa@x���v|� ��(�KӘ$�Iӄ4MI��qy�x��q�7/ӱ]TM�R.?��m��j���8ꮰQ��ݕ�w\�s�|���}�K"C�(&����j5�4��z��^z�;Flj☡�a\Ͽ�/xAډ��H�dO�A@����{x���ظ��ݱpmױ���|�;>��(���g}}�3gޣ^�g��V�\�,���r�Iݮ�����=�� +�]�i�E!����B����s=<��z������H��x� �wq�����/����*�� X��K�g]�.`$����Y_��N��8ΰ;mۢc��X�OǶ���c�:.���高������9u�0�x�9�TUM�A�&d�]o0�z�����R�����$I�i9���<�����дn��V5�x>����_f����eN��t���=�/~�SJ���uD�*]��U�(��Cǧ/��ֱ]���x��g�"e]�iJ��r�|�qXZ\���4��?ȓ�?J�LN�&<�fee�O�����ek h 9b3tM]�)��q�����?:���f����aee������O#IRV�6(�L.��X�E۲ ���x��ϳ�4χS����m;���N�,^�����_K�W���]k��l�SSSkj��ى�YZ^�G�ⶽ{���'��L����|6M66[�Uk<���<��c����Sor��Ǭo�awl�0$c���45��79v����ɓ����BGr|-[y ߐG�����O���l��x�����0>>��]Cܵ�G�fa��'�2,�b�y�c�hl�!���{>A!I����8V�����=�=X6M���{�8�*�f9 x���WJ%�I�q���ˬ���?ÿ���4��X��=� I,�ϒ�)aF1AA�1iS2M�8��V#������l������ľW_}�N`���nvC��C����y��Ȳ��� �Ο'=�������=?��ʪ�!q#�2%ä���J�����o�zw}yus��l^[[[��a�� ���R���N�Z1�l��{�&'�%�B�R� �45�$&�Ŭ�q% �$�� }� �Z�Z����\�4c�>{�`˲fFFF5���A (lvnzSo�}͖m��w�szr��;��B��A�k*�"�$ i�"+2����*�aP����_���K˫�/ߚ�����8��ju��j�'�F!���%�{�T;���%I�UU�Z�a�*�W)��:�r�0體��� R�V��jh�������ɩ1�9��n�ZoO�>.�^n(����H�pZ��F�F��m���f�Q�{lCM쯡j*��#�JwK�t72��y?����\�v�♶ ��'�� �m��멅�#� ��V��,ˆ�g�C3TE�s�uM����!YQU)#��m+�_܈�����?%!�@��C�^>���k�����R�(u�c�3�����e��՞�]l���A�����_x�)n���/�o�+�uh�Z�Q`Q�,�<��l�i�O����U c�g�7y�A|52��7]�B��9p� �@xq� �b���o�?������ڧE�~�p���{ ��ց�tcŘ��5�.�a��[A�����}�/ e���f� b�\�����G�Y�����D�@��6�$��-<�E/�E,��E��=�<VD�8q��//���.���!��<+d�M`��PV����<}��C�v�w�b�}H���B&*za+9B�{��z���4z�Q��$Pr8�C�7ze�^�)|��oթ� �{�������y շX�~o�$��Q�a���jm�Ӣ��� �"�E����B�b�xv����P�Z�s�|�EkS؎%�_�X����{.^�52* @�N�wB�h��JiO��{�]�Xd��Z��8'��Z��O���YG2Ad��;�@���zo�o�����������A�k�����IEND�B`���(uuay)css_basics.c���������/* Theming/CSS Basics * * Gtk themes are written using CSS. Every widget is build of multiple items * that you can style very similarly to a regular website. * */ #include <gtk/gtk.h> static void show_parsing_error (GtkCssProvider *provider, GtkCssSection *section, const GError *error, GtkTextBuffer *buffer) { GtkTextIter start, end; const char *tag_name; gtk_text_buffer_get_iter_at_line_index (buffer, &start, gtk_css_section_get_start_line (section), gtk_css_section_get_start_position (section)); gtk_text_buffer_get_iter_at_line_index (buffer, &end, gtk_css_section_get_end_line (section), gtk_css_section_get_end_position (section)); if (g_error_matches (error, GTK_CSS_PROVIDER_ERROR, GTK_CSS_PROVIDER_ERROR_DEPRECATED)) tag_name = "warning"; else tag_name = "error"; gtk_text_buffer_apply_tag_by_name (buffer, tag_name, &start, &end); } static void css_text_changed (GtkTextBuffer *buffer, GtkCssProvider *provider) { GtkTextIter start, end; char *text; gtk_text_buffer_get_start_iter (buffer, &start); gtk_text_buffer_get_end_iter (buffer, &end); gtk_text_buffer_remove_all_tags (buffer, &start, &end); text = gtk_text_buffer_get_text (buffer, &start, &end, FALSE); gtk_css_provider_load_from_data (provider, text, -1, NULL); g_free (text); gtk_style_context_reset_widgets (gdk_screen_get_default ()); } static void apply_css (GtkWidget *widget, GtkStyleProvider *provider) { gtk_style_context_add_provider (gtk_widget_get_style_context (widget), provider, G_MAXUINT); if (GTK_IS_CONTAINER (widget)) gtk_container_forall (GTK_CONTAINER (widget), (GtkCallback) apply_css, provider); } GtkWidget * do_css_basics (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *container, *child; GtkStyleProvider *provider; GtkTextBuffer *text; GBytes *bytes; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "CSS Basics"); gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (do_widget)); gtk_window_set_default_size (GTK_WINDOW (window), 400, 300); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); text = gtk_text_buffer_new (NULL); gtk_text_buffer_create_tag (text, "warning", "underline", PANGO_UNDERLINE_SINGLE, NULL); gtk_text_buffer_create_tag (text, "error", "underline", PANGO_UNDERLINE_ERROR, NULL); provider = GTK_STYLE_PROVIDER (gtk_css_provider_new ()); container = gtk_scrolled_window_new (NULL, NULL); gtk_container_add (GTK_CONTAINER (window), container); child = gtk_text_view_new_with_buffer (text); gtk_container_add (GTK_CONTAINER (container), child); g_signal_connect (text, "changed", G_CALLBACK (css_text_changed), provider); bytes = g_resources_lookup_data ("/css_basics/css_basics.css", 0, NULL); gtk_text_buffer_set_text (text, g_bytes_get_data (bytes, NULL), g_bytes_get_size (bytes)); g_bytes_unref (bytes); g_signal_connect (provider, "parsing-error", G_CALLBACK (show_parsing_error), gtk_text_view_get_buffer (GTK_TEXT_VIEW (child))); apply_css (window, provider); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)listbox.c�������0������/* List Box * * GtkListBox allows lists with complicated layouts, using * regular widgets supporting sorting and filtering. * */ #include <gtk/gtk.h> #include <stdlib.h> #include <string.h> static GdkPixbuf *avatar_pixbuf_other; static GtkWidget *window = NULL; #define GTK_TYPE_MESSAGE (gtk_message_get_type ()) #define GTK_MESSAGE(message) (G_TYPE_CHECK_INSTANCE_CAST ((message), GTK_TYPE_MESSAGE, GtkMessage)) #define GTK_MESSAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_MESSAGE, GtkMessageClass)) #define GTK_IS_MESSAGE(message) (G_TYPE_CHECK_INSTANCE_TYPE ((message), GTK_TYPE_MESSAGE)) #define GTK_IS_MESSAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_MESSAGE)) #define GTK_MESSAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_MESSAGE, GtkMessageClass)) #define GTK_TYPE_MESSAGE_ROW (gtk_message_row_get_type ()) #define GTK_MESSAGE_ROW(message_row) (G_TYPE_CHECK_INSTANCE_CAST ((message_row), GTK_TYPE_MESSAGE_ROW, GtkMessageRow)) #define GTK_MESSAGE_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_MESSAGE_ROW, GtkMessageRowClass)) #define GTK_IS_MESSAGE_ROW(message_row) (G_TYPE_CHECK_INSTANCE_TYPE ((message_row), GTK_TYPE_MESSAGE_ROW)) #define GTK_IS_MESSAGE_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_MESSAGE_ROW)) #define GTK_MESSAGE_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_MESSAGE_ROW, GtkMessageRowClass)) typedef struct _GtkMessage GtkMessage; typedef struct _GtkMessageClass GtkMessageClass; typedef struct _GtkMessageRow GtkMessageRow; typedef struct _GtkMessageRowClass GtkMessageRowClass; typedef struct _GtkMessageRowPrivate GtkMessageRowPrivate; struct _GtkMessage { GObject parent; guint id; char *sender_name; char *sender_nick; char *message; gint64 time; guint reply_to; char *resent_by; int n_favorites; int n_reshares; }; struct _GtkMessageClass { GObjectClass parent_class; }; struct _GtkMessageRow { GtkListBoxRow parent; GtkMessageRowPrivate *priv; }; struct _GtkMessageRowClass { GtkListBoxRowClass parent_class; }; struct _GtkMessageRowPrivate { GtkMessage *message; GtkRevealer *details_revealer; GtkImage *avatar_image; GtkWidget *extra_buttons_box; GtkLabel *content_label; GtkLabel *source_name; GtkLabel *source_nick; GtkLabel *short_time_label; GtkLabel *detailed_time_label; GtkBox *resent_box; GtkLinkButton *resent_by_button; GtkLabel *n_favorites_label; GtkLabel *n_reshares_label; GtkButton *expand_button; }; GType gtk_message_get_type (void) G_GNUC_CONST; GType gtk_message_row_get_type (void) G_GNUC_CONST; G_DEFINE_TYPE (GtkMessage, gtk_message, G_TYPE_OBJECT); static void gtk_message_finalize (GObject *obj) { GtkMessage *msg = GTK_MESSAGE (obj); g_free (msg->sender_name); g_free (msg->sender_nick); g_free (msg->message); g_free (msg->resent_by); G_OBJECT_CLASS (gtk_message_parent_class)->finalize (obj); } static void gtk_message_class_init (GtkMessageClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = gtk_message_finalize; } static void gtk_message_init (GtkMessage *msg) { } static void gtk_message_parse (GtkMessage *msg, const char *str) { char **strv; int i; strv = g_strsplit (str, "|", 0); i = 0; msg->id = strtol (strv[i++], NULL, 10); msg->sender_name = g_strdup (strv[i++]); msg->sender_nick = g_strdup (strv[i++]); msg->message = g_strdup (strv[i++]); msg->time = strtol (strv[i++], NULL, 10); if (strv[i]) { msg->reply_to = strtol (strv[i++], NULL, 10); if (strv[i]) { if (*strv[i]) msg->resent_by = g_strdup (strv[i]); i++; if (strv[i]) { msg->n_favorites = strtol (strv[i++], NULL, 10); if (strv[i]) { msg->n_reshares = strtol (strv[i++], NULL, 10); } } } } g_strfreev (strv); } static GtkMessage * gtk_message_new (const char *str) { GtkMessage *msg; msg = g_object_new (gtk_message_get_type (), NULL); gtk_message_parse (msg, str); return msg; } G_DEFINE_TYPE_WITH_PRIVATE (GtkMessageRow, gtk_message_row, GTK_TYPE_LIST_BOX_ROW); static void gtk_message_row_update (GtkMessageRow *row) { GtkMessageRowPrivate *priv = row->priv; GDateTime *t; char *s; gtk_label_set_text (priv->source_name, priv->message->sender_name); gtk_label_set_text (priv->source_nick, priv->message->sender_nick); gtk_label_set_text (priv->content_label, priv->message->message); t = g_date_time_new_from_unix_utc (priv->message->time); s = g_date_time_format (t, "%e %b %y"); gtk_label_set_text (priv->short_time_label, s); g_free (s); s = g_date_time_format (t, "%X - %e %b %Y"); gtk_label_set_text (priv->detailed_time_label, s); g_free (s); g_date_time_unref (t); gtk_widget_set_visible (GTK_WIDGET(priv->n_favorites_label), priv->message->n_favorites != 0); s = g_strdup_printf ("<b>%d</b>\nFavorites", priv->message->n_favorites); gtk_label_set_markup (priv->n_favorites_label, s); g_free (s); gtk_widget_set_visible (GTK_WIDGET(priv->n_reshares_label), priv->message->n_reshares != 0); s = g_strdup_printf ("<b>%d</b>\nReshares", priv->message->n_reshares); gtk_label_set_markup (priv->n_reshares_label, s); g_free (s); gtk_widget_set_visible (GTK_WIDGET (priv->resent_box), priv->message->resent_by != NULL); if (priv->message->resent_by) gtk_button_set_label (GTK_BUTTON (priv->resent_by_button), priv->message->resent_by); if (strcmp (priv->message->sender_nick, "@GTKtoolkit") == 0) gtk_image_set_from_icon_name (priv->avatar_image, "gtk3-demo", GTK_ICON_SIZE_DND); else gtk_image_set_from_pixbuf (priv->avatar_image, avatar_pixbuf_other); } static void gtk_message_row_expand (GtkMessageRow *row) { GtkMessageRowPrivate *priv = row->priv; gboolean expand; expand = !gtk_revealer_get_reveal_child (priv->details_revealer); gtk_revealer_set_reveal_child (priv->details_revealer, expand); if (expand) gtk_button_set_label (priv->expand_button, "Hide"); else gtk_button_set_label (priv->expand_button, "Expand"); } static void expand_clicked (GtkMessageRow *row, GtkButton *button) { gtk_message_row_expand (row); } static void reshare_clicked (GtkMessageRow *row, GtkButton *button) { GtkMessageRowPrivate *priv = row->priv; priv->message->n_reshares++; gtk_message_row_update (row); } static void favorite_clicked (GtkMessageRow *row, GtkButton *button) { GtkMessageRowPrivate *priv = row->priv; priv->message->n_favorites++; gtk_message_row_update (row); } static void gtk_message_row_state_flags_changed (GtkWidget *widget, GtkStateFlags previous_state_flags) { GtkMessageRowPrivate *priv = GTK_MESSAGE_ROW (widget)->priv; GtkStateFlags flags; flags = gtk_widget_get_state_flags (widget); gtk_widget_set_visible (priv->extra_buttons_box, flags & (GTK_STATE_FLAG_PRELIGHT | GTK_STATE_FLAG_SELECTED)); GTK_WIDGET_CLASS (gtk_message_row_parent_class)->state_flags_changed (widget, previous_state_flags); } static void gtk_message_row_finalize (GObject *obj) { GtkMessageRowPrivate *priv = GTK_MESSAGE_ROW (obj)->priv; g_object_unref (priv->message); G_OBJECT_CLASS (gtk_message_row_parent_class)->finalize(obj); } static void gtk_message_row_class_init (GtkMessageRowClass *klass) { GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = gtk_message_row_finalize; gtk_widget_class_set_template_from_resource (widget_class, "/listbox/listbox.ui"); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, content_label); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, source_name); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, source_nick); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, short_time_label); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, detailed_time_label); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, extra_buttons_box); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, details_revealer); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, avatar_image); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, resent_box); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, resent_by_button); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, n_reshares_label); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, n_favorites_label); gtk_widget_class_bind_template_child_private (widget_class, GtkMessageRow, expand_button); gtk_widget_class_bind_template_callback (widget_class, expand_clicked); gtk_widget_class_bind_template_callback (widget_class, reshare_clicked); gtk_widget_class_bind_template_callback (widget_class, favorite_clicked); widget_class->state_flags_changed = gtk_message_row_state_flags_changed; } static void gtk_message_row_init (GtkMessageRow *row) { row->priv = gtk_message_row_get_instance_private (row); gtk_widget_init_template (GTK_WIDGET (row)); } static GtkMessageRow * gtk_message_row_new (GtkMessage *message) { GtkMessageRow *row; row = g_object_new (gtk_message_row_get_type (), NULL); row->priv->message = message; gtk_message_row_update (row); return row; } static int gtk_message_row_sort (GtkMessageRow *a, GtkMessageRow *b, gpointer data) { return b->priv->message->time - a->priv->message->time; } static void row_activated (GtkListBox *listbox, GtkListBoxRow *row) { gtk_message_row_expand (GTK_MESSAGE_ROW (row)); } GtkWidget * do_listbox (GtkWidget *do_widget) { GtkWidget *scrolled, *listbox, *vbox, *label; GtkMessage *message; GtkMessageRow *row; GBytes *data; char **lines; int i; if (!window) { avatar_pixbuf_other = gdk_pixbuf_new_from_resource_at_scale ("/listbox/apple-red.png", 32, 32, FALSE, NULL); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "List Box"); gtk_window_set_default_size (GTK_WINDOW (window), 400, 600); /* NULL window variable when window is closed */ g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12); gtk_container_add (GTK_CONTAINER (window), vbox); label = gtk_label_new ("Messages from Gtk+ and friends"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); scrolled = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_box_pack_start (GTK_BOX (vbox), scrolled, TRUE, TRUE, 0); listbox = gtk_list_box_new (); gtk_container_add (GTK_CONTAINER (scrolled), listbox); gtk_list_box_set_sort_func (GTK_LIST_BOX (listbox), (GtkListBoxSortFunc)gtk_message_row_sort, listbox, NULL); gtk_list_box_set_activate_on_single_click (GTK_LIST_BOX (listbox), FALSE); g_signal_connect (listbox, "row-activated", G_CALLBACK (row_activated), NULL); gtk_widget_show_all (vbox); data = g_resources_lookup_data ("/listbox/messages.txt", 0, NULL); lines = g_strsplit (g_bytes_get_data (data, NULL), "\n", 0); for (i = 0; lines[i] != NULL && *lines[i]; i++) { message = gtk_message_new (lines[i]); row = gtk_message_row_new (message); gtk_widget_show (GTK_WIDGET (row)); gtk_container_add (GTK_CONTAINER (listbox), GTK_WIDGET (row)); } g_strfreev (lines); g_bytes_unref (data); } if (!gtk_widget_get_visible (window)) gtk_widget_show (window); else gtk_widget_destroy (window); return window; } ��(uuay)/���������s������������������,�������S���E���h�������V����������C�������������������r����������������}���y������$���no_drop_cursor.png������]�������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��t��t�fx���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3����:IDATX��KhTW�w�1��&m'�PH��f�1T 5X$�"�+T��(TkV��Bͮ�H*��.�/����C Y��P0d�LJc`23w��;�u1��;�w~p��{�������o�V���8�[���m�Y۶�m�^.�s�i�����d2Y�a�����%��J��SSSFkk+�x�;w�ٷo_��Ç�;;;��&��y�T.��T*�x<�X,��;w��������֭[5<<�����{�����K�R�qS��ѦM��288�h4��7���_�T*��t:=��Y�r�`Y�剉 �СCrG�`P�`P�@@۶m�������S[[��=�J�R�X������Çk���rGT���ell�<666|���{.���7g2��4.\� ��������i�F1���y���B�����>���� �aHb||���q�^/�H�����뙝������K.�# ���Y��:]�r�4I�R<z��۷s��u�^/[�lajjj-�� �����������i��{�8�����l�.��@�P��رc}�ey �ª��~v���ٳg�^��SJ$�ݽ{��������ri���f�[�nM744�|��{ц�Q=N��/�yVe \J��@@ �xnJ_Թ��D3�.���J���7��H�������2��o�&��� F�Gk��ollԹs��8��T>�'��z+@��0�m(���^���y<�2�i-�!`����O�b���k�.�r9����O�d- |��Ԥb�(I�z�����t�$�P(H�<x�R��Vv��펰��G�����]�&Iցܘ��v_xj`�����}���aÆ \�r�={�p��<��ܜ�8��l�����vG�L&u�� I�������I�m� �B�����=�fgg%I�rY�t��)����n���Q6�$Uy��D"��B�X���ǕL&544$�4W�o����K��+�(�<y�9��,% �@�����s����y�l�v��ŋ��D���m~l�ϧp8�����@���F�X�@x�P�|�b�O����&qz������IEND�B`���(uuay)builder.c���������/* Builder * * Demonstrates an interface loaded from a XML description. */ #include <gtk/gtk.h> static void quit_activate (GSimpleAction *action, GVariant *parameter, gpointer user_data) { GtkWidget *window = user_data; gtk_widget_destroy (window); } static void about_activate (GSimpleAction *action, GVariant *parameter, gpointer user_data) { GtkWidget *window = user_data; GtkBuilder *builder; GtkWidget *about_dlg; builder = g_object_get_data (G_OBJECT (window), "builder"); about_dlg = GTK_WIDGET (gtk_builder_get_object (builder, "aboutdialog1")); gtk_dialog_run (GTK_DIALOG (about_dlg)); gtk_widget_hide (about_dlg); } static void help_activate (GSimpleAction *action, GVariant *parameter, gpointer user_data) { g_print ("Help not available\n"); } static GActionEntry win_entries[] = { { "quit", quit_activate, NULL, NULL, NULL }, { "about", about_activate, NULL, NULL, NULL }, { "help", help_activate, NULL, NULL, NULL } }; GtkWidget * do_builder (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *toolbar; GActionGroup *actions; GtkAccelGroup *accel_group; GtkWidget *item; if (!window) { GtkBuilder *builder; builder = gtk_builder_new_from_resource ("/builder/demo.ui"); gtk_builder_connect_signals (builder, NULL); window = GTK_WIDGET (gtk_builder_get_object (builder, "window1")); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); toolbar = GTK_WIDGET (gtk_builder_get_object (builder, "toolbar1")); gtk_style_context_add_class (gtk_widget_get_style_context (toolbar), "primary-toolbar"); actions = (GActionGroup*)g_simple_action_group_new (); g_action_map_add_action_entries (G_ACTION_MAP (actions), win_entries, G_N_ELEMENTS (win_entries), window); gtk_widget_insert_action_group (window, "win", actions); accel_group = gtk_accel_group_new (); gtk_window_add_accel_group (GTK_WINDOW (window), accel_group); item = (GtkWidget*)gtk_builder_get_object (builder, "new_item"); gtk_widget_add_accelerator (item, "activate", accel_group, GDK_KEY_n, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); item = (GtkWidget*)gtk_builder_get_object (builder, "open_item"); gtk_widget_add_accelerator (item, "activate", accel_group, GDK_KEY_o, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); item = (GtkWidget*)gtk_builder_get_object (builder, "save_item"); gtk_widget_add_accelerator (item, "activate", accel_group, GDK_KEY_s, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); item = (GtkWidget*)gtk_builder_get_object (builder, "quit_item"); gtk_widget_add_accelerator (item, "activate", accel_group, GDK_KEY_q, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); item = (GtkWidget*)gtk_builder_get_object (builder, "copy_item"); gtk_widget_add_accelerator (item, "activate", accel_group, GDK_KEY_c, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); item = (GtkWidget*)gtk_builder_get_object (builder, "cut_item"); gtk_widget_add_accelerator (item, "activate", accel_group, GDK_KEY_x, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); item = (GtkWidget*)gtk_builder_get_object (builder, "paste_item"); gtk_widget_add_accelerator (item, "activate", accel_group, GDK_KEY_v, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); item = (GtkWidget*)gtk_builder_get_object (builder, "help_item"); gtk_widget_add_accelerator (item, "activate", accel_group, GDK_KEY_F1, 0, GTK_ACCEL_VISIBLE); item = (GtkWidget*)gtk_builder_get_object (builder, "about_item"); gtk_widget_add_accelerator (item, "activate", accel_group, GDK_KEY_F7, 0, GTK_ACCEL_VISIBLE); g_object_set_data_full (G_OBJECT(window), "builder", builder, g_object_unref); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)demo.ui������4������<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*--> <interface> <object class="GtkListStore" id="liststore1"> <columns> <column type="gchararray"/> <column type="gchararray"/> <column type="gint"/> <column type="gchararray"/> </columns> <data> <row> <col id="0" translatable="yes">John</col> <col id="1" translatable="yes">Doe</col> <col id="2">25</col> <col id="3" translatable="yes">This is the John Doe row</col> </row> <row> <col id="0" translatable="yes">Mary</col> <col id="1" translatable="yes">Unknown</col> <col id="2">50</col> <col id="3" translatable="yes">This is the Mary Unknown row</col> </row> </data> </object> <object class="GtkAboutDialog" id="aboutdialog1"> <property name="program-name" translatable="yes">Builder demo</property> <property name="logo-icon-name" translatable="yes">gtk3-demo</property> <accessibility> <relation target="window1" type="subwindow-of"/> </accessibility> </object> <object class="GtkWindow" id="window1"> <property name="default_height">250</property> <property name="default_width">440</property> <property name="title" translatable="yes">Builder</property> <child> <object class="GtkVBox" id="vbox1"> <property name="visible">1</property> <child> <object class="GtkMenuBar" id="menubar1"> <property name="visible">1</property> <child internal-child="accessible"> <object class="AtkObject" id="a11y-menubar"> <property name="AtkObject::accessible-name">The menubar</property> </object> </child> <child> <object class="GtkMenuItem"> <property name="visible">1</property> <property name="label" translatable="yes">_File</property> <property name="use-underline">1</property> <child type="submenu"> <object class="GtkMenu"> <child> <object class="GtkMenuItem" id="new_item"> <property name="visible">1</property> <property name="label" translatable="yes">_New</property> <property name="use-underline">1</property> </object> </child> <child> <object class="GtkMenuItem" id="open_item"> <property name="visible">1</property> <property name="label" translatable="yes">_Open</property> <property name="use-underline">1</property> </object> </child> <child> <object class="GtkMenuItem" id="save_item"> <property name="visible">1</property> <property name="label" translatable="yes">_Save</property> <property name="use-underline">1</property> </object> </child> <child> <object class="GtkMenuItem" id="save_as_item"> <property name="visible">1</property> <property name="label" translatable="yes">Save _As</property> <property name="use-underline">1</property> <accelerator key="s" modifiers="primary | shift-mask" signal="activate"/> </object> </child> <child> <object class="GtkSeparatorMenuItem"> <property name="visible">1</property> </object> </child> <child> <object class="GtkMenuItem" id="quit_item"> <property name="visible">1</property> <property name="label" translatable="yes">_Quit</property> <property name="use-underline">1</property> <property name="action-name">win.quit</property> </object> </child> </object> </child> </object> </child> <child> <object class="GtkMenuItem"> <property name="visible">1</property> <property name="label" translatable="yes">_Edit</property> <property name="use-underline">1</property> <child type="submenu"> <object class="GtkMenu"> <child> <object class="GtkMenuItem" id="copy_item"> <property name="visible">1</property> <property name="label" translatable="yes">_Copy</property> <property name="use-underline">1</property> </object> </child> <child> <object class="GtkMenuItem" id="cut_item"> <property name="visible">1</property> <property name="label" translatable="yes">_Cut</property> <property name="use-underline">1</property> </object> </child> <child> <object class="GtkMenuItem" id="paste_item"> <property name="visible">1</property> <property name="label" translatable="yes">_Paste</property> <property name="use-underline">1</property> </object> </child> </object> </child> </object> </child> <child> <object class="GtkMenuItem"> <property name="visible">1</property> <property name="label" translatable="yes">_Help</property> <property name="use-underline">1</property> <child type="submenu"> <object class="GtkMenu"> <child> <object class="GtkMenuItem" id="help_item"> <property name="visible">1</property> <property name="label" translatable="yes">_Help</property> <property name="use-underline">1</property> <property name="action-name">win.help</property> </object> </child> <child> <object class="GtkMenuItem" id="about_item"> <property name="visible">1</property> <property name="label" translatable="yes">_About</property> <property name="use-underline">1</property> <property name="action-name">win.about</property> </object> </child> </object> </child> </object> </child> </object> <packing> <property name="expand">0</property> </packing> </child> <child> <object class="GtkToolbar" id="toolbar1"> <property name="visible">1</property> <child internal-child="accessible"> <object class="AtkObject" id="a11y-toolbar"> <property name="AtkObject::accessible-name">The toolbar</property> </object> </child> <child> <object class="GtkToolButton"> <property name="visible">1</property> <property name="label" translatable="yes">New</property> <property name="tooltip-text" translatable="yes">Create a new file</property> <property name="icon-name">document-new</property> </object> </child> <child> <object class="GtkToolButton"> <property name="visible">1</property> <property name="label" translatable="yes">Open</property> <property name="tooltip-text" translatable="yes">Open a file</property> <property name="icon-name">document-open</property> </object> </child> <child> <object class="GtkToolButton"> <property name="visible">1</property> <property name="label" translatable="yes">Save</property> <property name="tooltip-text" translatable="yes">Save a file</property> <property name="icon-name">document-save</property> <property name="is-important">1</property> </object> </child> <child> <object class="GtkSeparatorToolItem"> <property name="visible">1</property> </object> </child> <child> <object class="GtkToolButton"> <property name="visible">1</property> <property name="label" translatable="yes">Copy</property> <property name="tooltip-text" translatable="yes">Copy selected object into the clipboard</property> <property name="icon-name">edit-copy</property> </object> </child> <child> <object class="GtkToolButton"> <property name="visible">1</property> <property name="label" translatable="yes">Cut</property> <property name="tooltip-text" translatable="yes">Cut selected object into the clipboard</property> <property name="icon-name">edit-cut</property> </object> </child> <child> <object class="GtkToolButton"> <property name="visible">1</property> <property name="label" translatable="yes">Paste</property> <property name="tooltip-text" translatable="yes">Paste object from the clipboard</property> <property name="icon-name">edit-paste</property> </object> </child> </object> <packing> <property name="expand">0</property> <property name="position">1</property> </packing> </child> <child> <object class="GtkScrolledWindow" id="scrolledwindow1"> <property name="shadow_type">in</property> <property name="visible">1</property> <child> <object class="GtkTreeView" id="treeview1"> <property name="visible">1</property> <property name="model">liststore1</property> <property name="tooltip-column">3</property> <child internal-child="accessible"> <object class="AtkObject" id="a11y-treeview"> <property name="AtkObject::accessible-name">Name list</property> <property name="AtkObject::accessible-description"> A list of person with name, surname and age columns </property> </object> </child> <child> <object class="GtkTreeViewColumn" id="column1"> <property name="title">Name</property> <child> <object class="GtkCellRendererText" id="renderer1"/> <attributes> <attribute name="text">0</attribute> </attributes> </child> </object> </child> <child> <object class="GtkTreeViewColumn" id="column2"> <property name="title">Surname</property> <child> <object class="GtkCellRendererText" id="renderer2"/> <attributes> <attribute name="text">1</attribute> </attributes> </child> </object> </child> <child> <object class="GtkTreeViewColumn" id="column3"> <property name="title">Age</property> <child> <object class="GtkCellRendererText" id="renderer3"/> <attributes> <attribute name="text">2</attribute> </attributes> </child> </object> </child> </object> </child> </object> <packing> <property name="position">2</property> <property name="expand">1</property> </packing> </child> <child> <object class="GtkStatusbar" id="statusbar1"> <property name="visible">1</property> </object> <packing> <property name="position">3</property> <property name="expand">0</property> </packing> </child> </object> </child> </object> </interface> ��(uuay)application_demo/@���I���\���css_blendmodes/�f�����������`�������flowbox.c���l3������/* Flow Box * * GtkFlowBox allows flexible and responsive grids which reflow * as needed and support sorting and filtering. * * The children of a GtkFlowBox are regular widgets */ #include <gtk/gtk.h> #include <stdlib.h> #include <string.h> static gboolean draw_color (GtkWidget *drawingarea, cairo_t *cr, const char *color_name) { GdkRGBA rgba; if (gdk_rgba_parse (&rgba, color_name)) { gdk_cairo_set_source_rgba (cr, &rgba); cairo_paint (cr); } return FALSE; } static GtkWidget * color_swatch_new (const gchar *color) { GtkWidget *button, *area; button = gtk_button_new (); area = gtk_drawing_area_new (); g_signal_connect (area, "draw", G_CALLBACK (draw_color), (gpointer) color); gtk_widget_set_size_request (area, 24, 24); gtk_container_add (GTK_CONTAINER (button), area); gtk_widget_show_all (button); return button; } GtkWidget * do_flowbox (GtkWidget *do_widget) { static GtkWidget *window = NULL; GtkWidget *scrolled, *flowbox; const gchar *colors[] = { "AliceBlue", "AntiqueWhite", "AntiqueWhite1", "AntiqueWhite2", "AntiqueWhite3", "AntiqueWhite4", "aqua", "aquamarine", "aquamarine1", "aquamarine2", "aquamarine3", "aquamarine4", "azure", "azure1", "azure2", "azure3", "azure4", "beige", "bisque", "bisque1", "bisque2", "bisque3", "bisque4", "black", "BlanchedAlmond", "blue", "blue1", "blue2", "blue3", "blue4", "BlueViolet", "brown", "brown1", "brown2", "brown3", "brown4", "burlywood", "burlywood1", "burlywood2", "burlywood3", "burlywood4", "CadetBlue", "CadetBlue1", "CadetBlue2", "CadetBlue3", "CadetBlue4", "chartreuse", "chartreuse1", "chartreuse2", "chartreuse3", "chartreuse4", "chocolate", "chocolate1", "chocolate2", "chocolate3", "chocolate4", "coral", "coral1", "coral2", "coral3", "coral4", "CornflowerBlue", "cornsilk", "cornsilk1", "cornsilk2", "cornsilk3", "cornsilk4", "crimson", "cyan", "cyan1", "cyan2", "cyan3", "cyan4", "DarkBlue", "DarkCyan", "DarkGoldenrod", "DarkGoldenrod1", "DarkGoldenrod2", "DarkGoldenrod3", "DarkGoldenrod4", "DarkGray", "DarkGreen", "DarkGrey", "DarkKhaki", "DarkMagenta", "DarkOliveGreen", "DarkOliveGreen1", "DarkOliveGreen2", "DarkOliveGreen3", "DarkOliveGreen4", "DarkOrange", "DarkOrange1", "DarkOrange2", "DarkOrange3", "DarkOrange4", "DarkOrchid", "DarkOrchid1", "DarkOrchid2", "DarkOrchid3", "DarkOrchid4", "DarkRed", "DarkSalmon", "DarkSeaGreen", "DarkSeaGreen1", "DarkSeaGreen2", "DarkSeaGreen3", "DarkSeaGreen4", "DarkSlateBlue", "DarkSlateGray", "DarkSlateGray1", "DarkSlateGray2", "DarkSlateGray3", "DarkSlateGray4", "DarkSlateGrey", "DarkTurquoise", "DarkViolet", "DeepPink", "DeepPink1", "DeepPink2", "DeepPink3", "DeepPink4", "DeepSkyBlue", "DeepSkyBlue1", "DeepSkyBlue2", "DeepSkyBlue3", "DeepSkyBlue4", "DimGray", "DimGrey", "DodgerBlue", "DodgerBlue1", "DodgerBlue2", "DodgerBlue3", "DodgerBlue4", "firebrick", "firebrick1", "firebrick2", "firebrick3", "firebrick4", "FloralWhite", "ForestGreen", "fuchsia", "gainsboro", "GhostWhite", "gold", "gold1", "gold2", "gold3", "gold4", "goldenrod", "goldenrod1", "goldenrod2", "goldenrod3", "goldenrod4", "gray", "gray0", "gray1", "gray10", "gray100", "gray11", "gray12", "gray13", "gray14", "gray15", "gray16", "gray17", "gray18", "gray19", "gray2", "gray20", "gray21", "gray22", "gray23", "gray24", "gray25", "gray26", "gray27", "gray28", "gray29", "gray3", "gray30", "gray31", "gray32", "gray33", "gray34", "gray35", "gray36", "gray37", "gray38", "gray39", "gray4", "gray40", "gray41", "gray42", "gray43", "gray44", "gray45", "gray46", "gray47", "gray48", "gray49", "gray5", "gray50", "gray51", "gray52", "gray53", "gray54", "gray55", "gray56", "gray57", "gray58", "gray59", "gray6", "gray60", "gray61", "gray62", "gray63", "gray64", "gray65", "gray66", "gray67", "gray68", "gray69", "gray7", "gray70", "gray71", "gray72", "gray73", "gray74", "gray75", "gray76", "gray77", "gray78", "gray79", "gray8", "gray80", "gray81", "gray82", "gray83", "gray84", "gray85", "gray86", "gray87", "gray88", "gray89", "gray9", "gray90", "gray91", "gray92", "gray93", "gray94", "gray95", "gray96", "gray97", "gray98", "gray99", "green", "green1", "green2", "green3", "green4", "GreenYellow", "grey", "grey0", "grey1", "grey10", "grey100", "grey11", "grey12", "grey13", "grey14", "grey15", "grey16", "grey17", "grey18", "grey19", "grey2", "grey20", "grey21", "grey22", "grey23", "grey24", "grey25", "grey26", "grey27", "grey28", "grey29", "grey3", "grey30", "grey31", "grey32", "grey33", "grey34", "grey35", "grey36", "grey37", "grey38", "grey39", "grey4", "grey40", "grey41", "grey42", "grey43", "grey44", "grey45", "grey46", "grey47", "grey48", "grey49", "grey5", "grey50", "grey51", "grey52", "grey53", "grey54", "grey55", "grey56", "grey57", "grey58", "grey59", "grey6", "grey60", "grey61", "grey62", "grey63", "grey64", "grey65", "grey66", "grey67", "grey68", "grey69", "grey7", "grey70", "grey71", "grey72", "grey73", "grey74", "grey75", "grey76", "grey77", "grey78", "grey79", "grey8", "grey80", "grey81", "grey82", "grey83", "grey84", "grey85", "grey86", "grey87", "grey88", "grey89", "grey9", "grey90", "grey91", "grey92", "grey93", "grey94", "grey95", "grey96", "grey97", "grey98", "grey99", "honeydew", "honeydew1", "honeydew2", "honeydew3", "honeydew4", "HotPink", "HotPink1", "HotPink2", "HotPink3", "HotPink4", "IndianRed", "IndianRed1", "IndianRed2", "IndianRed3", "IndianRed4", "indigo", "ivory", "ivory1", "ivory2", "ivory3", "ivory4", "khaki", "khaki1", "khaki2", "khaki3", "khaki4", "lavender", "LavenderBlush", "LavenderBlush1", "LavenderBlush2", "LavenderBlush3", "LavenderBlush4", "LawnGreen", "LemonChiffon", "LemonChiffon1", "LemonChiffon2", "LemonChiffon3", "LemonChiffon4", "LightBlue", "LightBlue1", "LightBlue2", "LightBlue3", "LightBlue4", "LightCoral", "LightCyan", "LightCyan1", "LightCyan2", "LightCyan3", "LightCyan4", "LightGoldenrod", "LightGoldenrod1", "LightGoldenrod2", "LightGoldenrod3", "LightGoldenrod4", "LightGoldenrodYellow", "LightGray", "LightGreen", "LightGrey", "LightPink", "LightPink1", "LightPink2", "LightPink3", "LightPink4", "LightSalmon", "LightSalmon1", "LightSalmon2", "LightSalmon3", "LightSalmon4", "LightSeaGreen", "LightSkyBlue", "LightSkyBlue1", "LightSkyBlue2", "LightSkyBlue3", "LightSkyBlue4", "LightSlateBlue", "LightSlateGray", "LightSlateGrey", "LightSteelBlue", "LightSteelBlue1", "LightSteelBlue2", "LightSteelBlue3", "LightSteelBlue4", "LightYellow", "LightYellow1", "LightYellow2", "LightYellow3", "LightYellow4", "lime", "LimeGreen", "linen", "magenta", "magenta1", "magenta2", "magenta3", "magenta4", "maroon", "maroon1", "maroon2", "maroon3", "maroon4", "MediumAquamarine", "MediumBlue", "MediumOrchid", "MediumOrchid1", "MediumOrchid2", "MediumOrchid3", "MediumOrchid4", "MediumPurple", "MediumPurple1", "MediumPurple2", "MediumPurple3", "MediumPurple4", "MediumSeaGreen", "MediumSlateBlue", "MediumSpringGreen", "MediumTurquoise", "MediumVioletRed", "MidnightBlue", "MintCream", "MistyRose", "MistyRose1", "MistyRose2", "MistyRose3", "MistyRose4", "moccasin", "NavajoWhite", "NavajoWhite1", "NavajoWhite2", "NavajoWhite3", "NavajoWhite4", "navy", "NavyBlue", "OldLace", "olive", "OliveDrab", "OliveDrab1", "OliveDrab2", "OliveDrab3", "OliveDrab4", "orange", "orange1", "orange2", "orange3", "orange4", "OrangeRed", "OrangeRed1", "OrangeRed2", "OrangeRed3", "OrangeRed4", "orchid", "orchid1", "orchid2", "orchid3", "orchid4", "PaleGoldenrod", "PaleGreen", "PaleGreen1", "PaleGreen2", "PaleGreen3", "PaleGreen4", "PaleTurquoise", "PaleTurquoise1", "PaleTurquoise2", "PaleTurquoise3", "PaleTurquoise4", "PaleVioletRed", "PaleVioletRed1", "PaleVioletRed2", "PaleVioletRed3", "PaleVioletRed4", "PapayaWhip", "PeachPuff", "PeachPuff1", "PeachPuff2", "PeachPuff3", "PeachPuff4", "peru", "pink", "pink1", "pink2", "pink3", "pink4", "plum", "plum1", "plum2", "plum3", "plum4", "PowderBlue", "purple", "purple1", "purple2", "purple3", "purple4", "red", "red1", "red2", "red3", "red4", "RosyBrown", "RosyBrown1", "RosyBrown2", "RosyBrown3", "RosyBrown4", "RoyalBlue", "RoyalBlue1", "RoyalBlue2", "RoyalBlue3", "RoyalBlue4", "SaddleBrown", "salmon", "salmon1", "salmon2", "salmon3", "salmon4", "SandyBrown", "SeaGreen", "SeaGreen1", "SeaGreen2", "SeaGreen3", "SeaGreen4", "seashell", "seashell1", "seashell2", "seashell3", "seashell4", "sienna", "sienna1", "sienna2", "sienna3", "sienna4", "silver", "SkyBlue", "SkyBlue1", "SkyBlue2", "SkyBlue3", "SkyBlue4", "SlateBlue", "SlateBlue1", "SlateBlue2", "SlateBlue3", "SlateBlue4", "SlateGray", "SlateGray1", "SlateGray2", "SlateGray3", "SlateGray4", "SlateGrey", "snow", "snow1", "snow2", "snow3", "snow4", "SpringGreen", "SpringGreen1", "SpringGreen2", "SpringGreen3", "SpringGreen4", "SteelBlue", "SteelBlue1", "SteelBlue2", "SteelBlue3", "SteelBlue4", "tan", "tan1", "tan2", "tan3", "tan4", "teal", "thistle", "thistle1", "thistle2", "thistle3", "thistle4", "tomato", "tomato1", "tomato2", "tomato3", "tomato4", "turquoise", "turquoise1", "turquoise2", "turquoise3", "turquoise4", "violet", "VioletRed", "VioletRed1", "VioletRed2", "VioletRed3", "VioletRed4", "wheat", "wheat1", "wheat2", "wheat3", "wheat4", "white", "WhiteSmoke", "yellow", "yellow1", "yellow2", "yellow3", "yellow4", "YellowGreen", NULL }; gint i; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Flow Box"); gtk_window_set_default_size (GTK_WINDOW (window), 400, 600); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); scrolled = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); flowbox = gtk_flow_box_new (); gtk_widget_set_valign (flowbox, GTK_ALIGN_START); gtk_flow_box_set_max_children_per_line (GTK_FLOW_BOX (flowbox), 30); gtk_flow_box_set_selection_mode (GTK_FLOW_BOX (flowbox), GTK_SELECTION_NONE); gtk_container_add (GTK_CONTAINER (scrolled), flowbox); gtk_container_add (GTK_CONTAINER (window), scrolled); for (i = 0; colors[i]; i++) gtk_container_add (GTK_CONTAINER (flowbox), color_swatch_new (colors[i])); gtk_widget_show_all (scrolled); } if (!gtk_widget_get_visible (window)) gtk_widget_show (window); else gtk_widget_destroy (window); return window; } ��(uuay)gtkfishbowl.c�������_A������/* GTK - The GIMP Toolkit * Copyright (C) 2017 Benjamin Otte <otte@gnome.org> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library. If not, see <http://www.gnu.org/licenses/>. */ #include "config.h" #include "gtkfishbowl.h" #include "gtk/fallback-c89.c" typedef struct _GtkFishbowlPrivate GtkFishbowlPrivate; typedef struct _GtkFishbowlChild GtkFishbowlChild; struct _GtkFishbowlPrivate { GList *children; guint count; gint64 last_frame_time; guint tick_id; }; struct _GtkFishbowlChild { GtkWidget *widget; double x; double y; double dx; double dy; }; enum { PROP_0, PROP_ANIMATING, PROP_COUNT, NUM_PROPERTIES }; static GParamSpec *props[NUM_PROPERTIES] = { NULL, }; G_DEFINE_TYPE_WITH_PRIVATE (GtkFishbowl, gtk_fishbowl, GTK_TYPE_CONTAINER) static void gtk_fishbowl_init (GtkFishbowl *fishbowl) { gtk_widget_set_has_window (GTK_WIDGET (fishbowl), FALSE); } /** * gtk_fishbowl_new: * * Creates a new #GtkFishbowl. * * Returns: a new #GtkFishbowl. */ GtkWidget* gtk_fishbowl_new (void) { return g_object_new (GTK_TYPE_FISHBOWL, NULL); } static void gtk_widget_measure (GtkWidget *widget, GtkOrientation orientation, gint size, gint *minimum, gint *natural, gint *minimum_baseline, gint *natural_baseline) { g_return_if_fail (GTK_IS_WIDGET (widget)); g_return_if_fail (size >= -1); if (orientation == GTK_ORIENTATION_HORIZONTAL) { if (size < 0) gtk_widget_get_preferred_width (widget, minimum, natural); else gtk_widget_get_preferred_width_for_height (widget, size, minimum, natural); if (minimum_baseline) *minimum_baseline = -1; if (natural_baseline) *natural_baseline = -1; } else { gtk_widget_get_preferred_height_and_baseline_for_width (widget, size, minimum, natural, minimum_baseline, natural_baseline); } } static void gtk_fishbowl_measure (GtkWidget *widget, GtkOrientation orientation, int for_size, int *minimum, int *natural, int *minimum_baseline, int *natural_baseline) { GtkFishbowl *fishbowl = GTK_FISHBOWL (widget); GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl); GtkFishbowlChild *child; GList *children; gint child_min, child_nat; *minimum = 0; *natural = 0; for (children = priv->children; children; children = children->next) { child = children->data; if (!gtk_widget_get_visible (child->widget)) continue; gtk_widget_measure (child->widget, orientation, -1, &child_min, &child_nat, NULL, NULL); *minimum = MAX (*minimum, child_min); *natural = MAX (*natural, child_nat); } } static void gtk_fishbowl_get_preferred_width (GtkWidget *widget, int *minimum, int *natural) { gtk_fishbowl_measure (widget, GTK_ORIENTATION_HORIZONTAL, -1, minimum, natural, NULL, NULL); } static void gtk_fishbowl_get_preferred_height (GtkWidget *widget, int *minimum, int *natural) { gtk_fishbowl_measure (widget, GTK_ORIENTATION_VERTICAL, -1, minimum, natural, NULL, NULL); } static void gtk_fishbowl_get_preferred_width_for_height (GtkWidget *widget, int for_size, int *minimum, int *natural) { gtk_fishbowl_measure (widget, GTK_ORIENTATION_HORIZONTAL, for_size, minimum, natural, NULL, NULL); } static void gtk_fishbowl_get_preferred_height_and_baseline_for_width (GtkWidget *widget, int for_size, int *minimum, int *natural, int *minimum_baseline, int *natural_baseline) { gtk_fishbowl_measure (widget, GTK_ORIENTATION_VERTICAL, for_size, minimum, natural, minimum_baseline, natural_baseline); } static void gtk_fishbowl_size_allocate (GtkWidget *widget, GtkAllocation *allocation) { GtkFishbowl *fishbowl = GTK_FISHBOWL (widget); GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl); GtkFishbowlChild *child; GtkAllocation child_allocation; GtkRequisition child_requisition; GList *children; gtk_widget_set_allocation (widget, allocation); for (children = priv->children; children; children = children->next) { child = children->data; if (!gtk_widget_get_visible (child->widget)) continue; gtk_widget_get_preferred_size (child->widget, &child_requisition, NULL); child_allocation.x = allocation->x + round (child->x * (allocation->width - child_requisition.width)); child_allocation.y = allocation->y + round (child->y * (allocation->height - child_requisition.height)); child_allocation.width = child_requisition.width; child_allocation.height = child_requisition.height; gtk_widget_size_allocate (child->widget, &child_allocation); } } static double new_speed (void) { /* 5s to 50s to cross screen seems fair */ return g_random_double_range (0.02, 0.2); } static void gtk_fishbowl_add (GtkContainer *container, GtkWidget *widget) { GtkFishbowl *fishbowl = GTK_FISHBOWL (container); GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl); GtkFishbowlChild *child_info; g_return_if_fail (GTK_IS_FISHBOWL (fishbowl)); g_return_if_fail (GTK_IS_WIDGET (widget)); child_info = g_new0 (GtkFishbowlChild, 1); child_info->widget = widget; child_info->x = 0; child_info->y = 0; child_info->dx = new_speed (); child_info->dy = new_speed (); gtk_widget_set_parent (widget, GTK_WIDGET (fishbowl)); priv->children = g_list_prepend (priv->children, child_info); priv->count++; g_object_notify_by_pspec (G_OBJECT (fishbowl), props[PROP_COUNT]); } static void gtk_fishbowl_remove (GtkContainer *container, GtkWidget *widget) { GtkFishbowl *fishbowl = GTK_FISHBOWL (container); GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl); GtkFishbowlChild *child; GtkWidget *widget_container = GTK_WIDGET (container); GList *children; for (children = priv->children; children; children = children->next) { child = children->data; if (child->widget == widget) { gboolean was_visible = gtk_widget_get_visible (widget); gtk_widget_unparent (widget); priv->children = g_list_remove_link (priv->children, children); g_list_free (children); g_free (child); if (was_visible && gtk_widget_get_visible (widget_container)) gtk_widget_queue_resize (widget_container); priv->count--; g_object_notify_by_pspec (G_OBJECT (fishbowl), props[PROP_COUNT]); break; } } } static void gtk_fishbowl_forall (GtkContainer *container, gboolean include_internals, GtkCallback callback, gpointer callback_data) { GtkFishbowl *fishbowl = GTK_FISHBOWL (container); GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl); GtkFishbowlChild *child; GList *children; if (!include_internals) return; children = priv->children; while (children) { child = children->data; children = children->next; (* callback) (child->widget, callback_data); } } static gboolean gtk_fishbowl_draw (GtkWidget *widget, cairo_t *cr) { GtkFishbowl *fishbowl = GTK_FISHBOWL (widget); GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl); GtkFishbowlChild *child; GList *list; for (list = priv->children; list; list = list->next) { child = list->data; gtk_container_propagate_draw (GTK_CONTAINER (fishbowl), child->widget, cr); } return FALSE; } static void gtk_fishbowl_dispose (GObject *object) { GtkFishbowl *fishbowl = GTK_FISHBOWL (object); gtk_fishbowl_set_animating (fishbowl, FALSE); gtk_fishbowl_set_count (fishbowl, 0); G_OBJECT_CLASS (gtk_fishbowl_parent_class)->dispose (object); } static void gtk_fishbowl_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { GtkFishbowl *fishbowl = GTK_FISHBOWL (object); switch (prop_id) { case PROP_ANIMATING: gtk_fishbowl_set_animating (fishbowl, g_value_get_boolean (value)); break; case PROP_COUNT: gtk_fishbowl_set_count (fishbowl, g_value_get_uint (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } } static void gtk_fishbowl_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { GtkFishbowl *fishbowl = GTK_FISHBOWL (object); switch (prop_id) { case PROP_ANIMATING: g_value_set_boolean (value, gtk_fishbowl_get_animating (fishbowl)); break; case PROP_COUNT: g_value_set_uint (value, gtk_fishbowl_get_count (fishbowl)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } } static void gtk_fishbowl_class_init (GtkFishbowlClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass); object_class->dispose = gtk_fishbowl_dispose; object_class->set_property = gtk_fishbowl_set_property; object_class->get_property = gtk_fishbowl_get_property; widget_class->get_preferred_width = gtk_fishbowl_get_preferred_width; widget_class->get_preferred_height = gtk_fishbowl_get_preferred_height; widget_class->get_preferred_width_for_height = gtk_fishbowl_get_preferred_width_for_height; widget_class->get_preferred_height_and_baseline_for_width = gtk_fishbowl_get_preferred_height_and_baseline_for_width; widget_class->size_allocate = gtk_fishbowl_size_allocate; widget_class->draw = gtk_fishbowl_draw; container_class->add = gtk_fishbowl_add; container_class->remove = gtk_fishbowl_remove; container_class->forall = gtk_fishbowl_forall; props[PROP_ANIMATING] = g_param_spec_boolean ("animating", "animating", "Whether children are moving around", FALSE, G_PARAM_READWRITE); props[PROP_COUNT] = g_param_spec_uint ("count", "Count", "Number of widgets", 0, G_MAXUINT, 0, G_PARAM_READABLE); g_object_class_install_properties (object_class, NUM_PROPERTIES, props); } guint gtk_fishbowl_get_count (GtkFishbowl *fishbowl) { GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl); return priv->count; } char **icon_names = NULL; gsize n_icon_names = 0; static void init_icon_names (GtkIconTheme *theme) { GPtrArray *icons; GList *l, *icon_list; if (icon_names) return; icon_list = gtk_icon_theme_list_icons (theme, NULL); icons = g_ptr_array_new (); for (l = icon_list; l; l = l->next) { if (g_str_has_suffix (l->data, "symbolic")) continue; g_ptr_array_add (icons, g_strdup (l->data)); } n_icon_names = icons->len; g_ptr_array_add (icons, NULL); /* NULL-terminate the array */ icon_names = (char **) g_ptr_array_free (icons, FALSE); /* don't free strings, we assigned them to the array */ g_list_free_full (icon_list, g_free); } static const char * get_random_icon_name (GtkIconTheme *theme) { init_icon_names (theme); return icon_names[g_random_int_range(0, n_icon_names)]; } void gtk_fishbowl_set_count (GtkFishbowl *fishbowl, guint count) { GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl); g_object_freeze_notify (G_OBJECT (fishbowl)); while (priv->count > count) { gtk_container_remove (GTK_CONTAINER (fishbowl), ((GtkFishbowlChild *) priv->children->data)->widget); } while (priv->count < count) { GtkWidget *new_widget; new_widget = gtk_image_new_from_icon_name (get_random_icon_name (gtk_icon_theme_get_default ()), GTK_ICON_SIZE_DIALOG); gtk_widget_show (new_widget); gtk_container_add (GTK_CONTAINER (fishbowl), new_widget); } g_object_thaw_notify (G_OBJECT (fishbowl)); } gboolean gtk_fishbowl_get_animating (GtkFishbowl *fishbowl) { GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl); return priv->tick_id != 0; } static gboolean gtk_fishbowl_tick (GtkWidget *widget, GdkFrameClock *frame_clock, gpointer unused) { GtkFishbowl *fishbowl = GTK_FISHBOWL (widget); GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl); GtkFishbowlChild *child; GList *l; gint64 frame_time, elapsed; frame_time = gdk_frame_clock_get_frame_time (gtk_widget_get_frame_clock (widget)); elapsed = frame_time - priv->last_frame_time; priv->last_frame_time = frame_time; /* last frame was 0, so we're just starting to animate */ if (elapsed == frame_time) return G_SOURCE_CONTINUE; for (l = priv->children; l; l = l->next) { child = l->data; child->x += child->dx * ((double) elapsed / G_USEC_PER_SEC); child->y += child->dy * ((double) elapsed / G_USEC_PER_SEC); if (child->x <= 0) { child->x = 0; child->dx = new_speed (); } else if (child->x >= 1) { child->x = 1; child->dx = - new_speed (); } if (child->y <= 0) { child->y = 0; child->dy = new_speed (); } else if (child->y >= 1) { child->y = 1; child->dy = - new_speed (); } } gtk_widget_queue_allocate (widget); return G_SOURCE_CONTINUE; } void gtk_fishbowl_set_animating (GtkFishbowl *fishbowl, gboolean animating) { GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl); if (gtk_fishbowl_get_animating (fishbowl) == animating) return; if (animating) { priv->tick_id = gtk_widget_add_tick_callback (GTK_WIDGET (fishbowl), gtk_fishbowl_tick, NULL, NULL); } else { priv->last_frame_time = 0; gtk_widget_remove_tick_callback (GTK_WIDGET (fishbowl), priv->tick_id); priv->tick_id = 0; } g_object_notify_by_pspec (G_OBJECT (fishbowl), props[PROP_ANIMATING]); } ��(uuay)gnome-foot.png���d�������PNG ��� IHDR���/���0�����#����gAMA���1�_��IDATx��Ykl�y=wfvvf��ܗ��)Q���Ūl#H��qd�mT i�4N A����(�n�� ���]� l���<��8v�*�#%RDY$MJ���>�������?2T ��,�T\�0�����s��_��e�/�ׇ��o�>Н:qj�����^ڷo߉��m�X��p�d�WM�jo�1W�[�?kll,�c�СT*5�:6�M��$eW2�o�b� �x����3���}�3�������}��xg���PU��jI�3&�c�����+���wM&� rտ%v�{v�������$+���Q)��:ښN��Ƙ��U���O�d�Α/�R�7ODzHKR"�x���Db����!�zK��AH�iY�0 ���R����edLU��(f�y�Q�������ݵr�]] Cj6ѪU!���J-���a���>����奂��J��z��|q ��琈E�0�y���m{���A=�J�|��7xx#��l��uS�6�}Wz6���#gޘ%r[%-�M�����i|�Zov,e�|�Y���Q�p�"�z��}��_���wԪ���_��h��U��v�yc�����Ѧ��Y�|�)�B&_���; �q�ի��t�Mb�\^�����cϏ����& �G��}F+���8n�u;��hdhp6�Zb�e�w7�%5���� 33�j�`*��-�����n��x�w���-�8p���h$Rwmcg.�#���\�ٚm�d몂g ��Kdj�,�J(�*�}���k_z����~�'�H����^sk��#��-���dz�7vq5_�VON�K�����F8�%5�*���'��Qc����]X�i����������o�<���GG����V��4P���y����z[���l}�єNj����ƽ$�O��?���)�#���"� �::B�ͪ��?����O���K��iT��A�DZ�*�p�z�0�m[��6�V 1YQ��O|�m��KO��_�g��^�Ԇ|�6<J�{������[���AWU��� Z[����-�吞_��� R\��|�B,����/%����+&S)��?�5Ji���a~d��k�?�����#��-ȭ:YL�C�^%�z�RO$`�����42���e����� ��<33=�ͭ[��}���؍��?��?�-eu=O��#����+�m�����+��-,Ǒ�p��]Ӑ��H_w ��'�5���9��ᇾwCW*�m��#��ר���ْ<448��5<<|<��l�� +�U�`�D�QpG]��D2�J��ŕ<$Y��2��6�a�x�pu'�����-��X��c��?��pw,��r��Ź4��6 �<�,�0���n+�V*���y��z�x�o�G|���g�N��<{�+��j�J.,���ha�@�T"���&��14�,An��4�X�d���u��/��1y~�yq�� �m37)�ة��'bQ�0��i�� ��D�D�����\�B� ��*5��1�9;A��Urj�mJ y�< ����i7 <�k��o�L�`@7��D!([�N���4(��-��C[1s�<��5;y��c��0�Q�G��ɻ���|�������� Gz뵪�NET�y�������g����3P@��=���?���u�)K-� �����=u$ �ڨM �������u]3��� b��R�s��(t9�JJ��:�/�2�����g��i�жG����i�ımP��R���o����y����� ?I@znAn�U�Rt��N��N(R�6 ԛ�ONm��`~���u_߇w�z��q��Tn5`��A��`���� ?e��A�6<��Z���q�e!��(���ԗ��[����bz&�*R]��Y[�ö-Z.�"[(a>��iٟ�ĥ�ûo岹���#vD�P0Ƕ�`Y��oo���<�W��'o��-_n��L��A��YA�P�i�����͘���K˯�F M%���M,ˢ�+���"�����~y�^=��3,�ў�A�O�V��u�V�_\�w�>�zVY�T�?���/�l�$����,D�!��M%c��-��������V0����̟�����lV+T�%drL�\���0�y?m�lВ����'�FG�L%�4�D2IEM� ���M�F>��O�y3������׳ݽ�}�X|wo_o���,�l��bi������uS��/#[(=948�Ǡ`zz{a[aY��GPIg,����#� ����Hu�^-Cm�����]X�_���;��+�{���>��V�WU �m��X0,ϣ4�C<�ЪW���`Y��"��Fni�|��e̤Pk������$>\�|�r=�N�"���6 C�JY�ǒb!Ƕ�Z�@MC#�\�V˫�V)c��=vj�n�����̻� �[�5� ���VI�a[x����A��qD�1�� �XYZ����d2����gr�[���AW�fD/Wk3���G��iZ�e�yx�'��e��BD1D8�%kkeL��%�OO��<�����^-����F�ޜ$ 1-;єdh�F$�EmS'�eQ]Ӊm0M�,g2x���8v�,�~7��|��/�jf��0ֽ%��ю�^�0l8$��-I���(J=j;.���X��aZ���bMo���;M�C| �-Q�8��<�< ��<e��^N}���g8�E�D��~��|F=�q}??�vn���h���A��7"�t��W|/?� ����C����߯��*�� �樕�F����IEND�B`���(uuay)overlay2/�������u���text_cursor.png�L�������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��t��t�fx���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3����)IDATX�햱ka�w�5H�# -�'i;��)!C� ���-����BqqN�t0C:�n-^P��1JMӪ�����Kp(x'�]��{������������˲��W��40���`�m�2�h4�����moo�����n���$V��eY�I&����XT�U@�u{ooﭮ�W����٬� 4M�p�z�n��;;;e�ލ�j�Ĝ�Ѩ0�zo۶���2�n�ny���x�J�^�����t��U��l^������R�|,��n�� �7��V�- <e���n�<w�皦}�/J�$�s����� / ���(��L@W�/p��|���pzz������H$1_W%T,����>,1k�R����(����\��g ��_���ښpr@����LJ�R���e]d2�p"���677E�V��hH�����i�r�� ��~D"�uUU{��\��y �����TU�b�(���L&_��"�e>x�gvςY�� ��b*Z@f6�q���_r� (�����?J,��������IEND�B`���(uuay)gtkfishbowl.h��������������/* GTK - The GIMP Toolkit * Copyright (C) 2017 Benjamin Otte <otte@gnome.org> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library. If not, see <http://www.gnu.org/licenses/>. */ #ifndef __GTK_FISHBOWL_H__ #define __GTK_FISHBOWL_H__ #include <gtk/gtk.h> G_BEGIN_DECLS #define GTK_TYPE_FISHBOWL (gtk_fishbowl_get_type ()) #define GTK_FISHBOWL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_FISHBOWL, GtkFishbowl)) #define GTK_FISHBOWL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_FISHBOWL, GtkFishbowlClass)) #define GTK_IS_FISHBOWL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_FISHBOWL)) #define GTK_IS_FISHBOWL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_FISHBOWL)) #define GTK_FISHBOWL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_FISHBOWL, GtkFishbowlClass)) typedef struct _GtkFishbowl GtkFishbowl; typedef struct _GtkFishbowlClass GtkFishbowlClass; struct _GtkFishbowl { GtkContainer container; }; struct _GtkFishbowlClass { GtkContainerClass parent_class; }; GType gtk_fishbowl_get_type (void) G_GNUC_CONST; GtkWidget* gtk_fishbowl_new (void); guint gtk_fishbowl_get_count (GtkFishbowl *fishbowl); void gtk_fishbowl_set_count (GtkFishbowl *fishbowl, guint count); gboolean gtk_fishbowl_get_animating (GtkFishbowl *fishbowl); void gtk_fishbowl_set_animating (GtkFishbowl *fishbowl, gboolean animating); G_END_DECLS #endif /* __GTK_FISHBOWL_H__ */ ��(uuay)reset.css����p������/* @import this colorsheet to get the default values for every property. * This is useful when writing special CSS tests that should not be * inluenced by themes - not even the default ones. * Keep in mind that the output will be very ugly and not look like * anything GTK. * Also, when adding new style properties, please add them here. */ * { all: unset; } ��(uuay)listbox/������������search_entry.c������d!������/* Entry/Search Entry * * GtkEntry allows to display icons and progress information. * This demo shows how to use these features in a search entry. */ #include <glib/gi18n.h> #include <gtk/gtk.h> static GtkWidget *window = NULL; static GtkWidget *menu = NULL; static GtkWidget *notebook = NULL; static guint search_progress_id = 0; static guint finish_search_id = 0; static void show_find_button (void) { gtk_notebook_set_current_page (GTK_NOTEBOOK (notebook), 0); } static void show_cancel_button (void) { gtk_notebook_set_current_page (GTK_NOTEBOOK (notebook), 1); } static gboolean search_progress (gpointer data) { gtk_entry_progress_pulse (GTK_ENTRY (data)); return G_SOURCE_CONTINUE; } static void search_progress_done (GtkEntry *entry) { gtk_entry_set_progress_fraction (entry, 0.0); } static gboolean finish_search (GtkButton *button) { show_find_button (); if (search_progress_id) { g_source_remove (search_progress_id); search_progress_id = 0; } return G_SOURCE_REMOVE; } static gboolean start_search_feedback (gpointer data) { search_progress_id = g_timeout_add_full (G_PRIORITY_DEFAULT, 100, (GSourceFunc)search_progress, data, (GDestroyNotify)search_progress_done); return G_SOURCE_REMOVE; } static void start_search (GtkButton *button, GtkEntry *entry) { show_cancel_button (); search_progress_id = g_timeout_add_seconds (1, (GSourceFunc)start_search_feedback, entry); finish_search_id = g_timeout_add_seconds (15, (GSourceFunc)finish_search, button); } static void stop_search (GtkButton *button, gpointer data) { if (finish_search_id) { g_source_remove (finish_search_id); finish_search_id = 0; } finish_search (button); } static void clear_entry (GtkEntry *entry) { gtk_entry_set_text (entry, ""); } static void search_by_name (GtkWidget *item, GtkEntry *entry) { gtk_entry_set_icon_tooltip_text (entry, GTK_ENTRY_ICON_PRIMARY, "Search by name\n" "Click here to change the search type"); gtk_entry_set_placeholder_text (entry, "name"); } static void search_by_description (GtkWidget *item, GtkEntry *entry) { gtk_entry_set_icon_tooltip_text (entry, GTK_ENTRY_ICON_PRIMARY, "Search by description\n" "Click here to change the search type"); gtk_entry_set_placeholder_text (entry, "description"); } static void search_by_file (GtkWidget *item, GtkEntry *entry) { gtk_entry_set_icon_tooltip_text (entry, GTK_ENTRY_ICON_PRIMARY, "Search by file name\n" "Click here to change the search type"); gtk_entry_set_placeholder_text (entry, "file name"); } GtkWidget * create_search_menu (GtkWidget *entry) { GtkWidget *menu; GtkWidget *item; menu = gtk_menu_new (); item = gtk_menu_item_new_with_mnemonic ("Search by _name"); g_signal_connect (item, "activate", G_CALLBACK (search_by_name), entry); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); item = gtk_menu_item_new_with_mnemonic ("Search by _description"); g_signal_connect (item, "activate", G_CALLBACK (search_by_description), entry); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); item = gtk_menu_item_new_with_mnemonic ("Search by _file name"); g_signal_connect (item, "activate", G_CALLBACK (search_by_file), entry); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); gtk_widget_show_all (menu); return menu; } static void icon_press_cb (GtkEntry *entry, gint position, GdkEventButton *event, gpointer data) { if (position == GTK_ENTRY_ICON_PRIMARY) gtk_menu_popup_at_pointer (GTK_MENU (menu), (GdkEvent *) event); } static void activate_cb (GtkEntry *entry, GtkButton *button) { if (search_progress_id != 0) return; start_search (button, entry); } static void search_entry_destroyed (GtkWidget *widget) { if (finish_search_id != 0) { g_source_remove (finish_search_id); finish_search_id = 0; } if (search_progress_id != 0) { g_source_remove (search_progress_id); search_progress_id = 0; } window = NULL; } static void entry_populate_popup (GtkEntry *entry, GtkMenu *menu, gpointer user_data) { GtkWidget *item; GtkWidget *search_menu; gboolean has_text; has_text = gtk_entry_get_text_length (entry) > 0; item = gtk_separator_menu_item_new (); gtk_widget_show (item); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); item = gtk_menu_item_new_with_mnemonic ("C_lear"); gtk_widget_show (item); g_signal_connect_swapped (item, "activate", G_CALLBACK (clear_entry), entry); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); gtk_widget_set_sensitive (item, has_text); search_menu = create_search_menu (GTK_WIDGET (entry)); item = gtk_menu_item_new_with_label ("Search by"); gtk_widget_show (item); gtk_menu_item_set_submenu (GTK_MENU_ITEM (item), search_menu); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); } GtkWidget * do_search_entry (GtkWidget *do_widget) { GtkWidget *vbox; GtkWidget *hbox; GtkWidget *label; GtkWidget *entry; GtkWidget *find_button; GtkWidget *cancel_button; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Search Entry"); gtk_window_set_resizable (GTK_WINDOW (window), FALSE); g_signal_connect (window, "destroy", G_CALLBACK (search_entry_destroyed), &window); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), "Search entry demo"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 10); gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox), 0); /* Create our entry */ entry = gtk_search_entry_new (); gtk_box_pack_start (GTK_BOX (hbox), entry, FALSE, FALSE, 0); /* Create the find and cancel buttons */ notebook = gtk_notebook_new (); gtk_notebook_set_show_tabs (GTK_NOTEBOOK (notebook), FALSE); gtk_notebook_set_show_border (GTK_NOTEBOOK (notebook), FALSE); gtk_box_pack_start (GTK_BOX (hbox), notebook, FALSE, FALSE, 0); find_button = gtk_button_new_with_label ("Find"); g_signal_connect (find_button, "clicked", G_CALLBACK (start_search), entry); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), find_button, NULL); gtk_widget_show (find_button); cancel_button = gtk_button_new_with_label ("Cancel"); g_signal_connect (cancel_button, "clicked", G_CALLBACK (stop_search), NULL); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), cancel_button, NULL); gtk_widget_show (cancel_button); /* Set up the search icon */ search_by_name (NULL, GTK_ENTRY (entry)); /* Set up the clear icon */ g_signal_connect (entry, "icon-press", G_CALLBACK (icon_press_cb), NULL); g_signal_connect (entry, "activate", G_CALLBACK (activate_cb), NULL); /* Create the menu */ menu = create_search_menu (entry); gtk_menu_attach_to_widget (GTK_MENU (menu), entry, NULL); /* add accessible alternatives for icon functionality */ g_object_set (entry, "populate-all", TRUE, NULL); g_signal_connect (entry, "populate-popup", G_CALLBACK (entry_populate_popup), NULL); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else { gtk_widget_destroy (menu); gtk_widget_destroy (window); } return window; } ��(uuay)ducky.png�����������PNG ��� IHDR�������������� pHYs��������� OiCCPPhotoshop ICC profile��xڝSgTS�=���BK���KoR RB���&*! J�!��Q�EEȠ�����Q,� ��!���������{�kּ������>�����H3Q5��B�������.@� $p��d!s�#��~<<+"���x���M��0���B�\���t�8K��@z�B��@F���&S���`�cb��P-�`'�������{�[�!��� e�D�h;���V�E�X0�fK�9��-�0IWfH���������0Q��)�{�`�##x����F�W<�+��*��x��<�$9E�[-qWW.(�I+6aa�@.�y�2�4�����������x����6��_-��"bb���ϫp@���t~��,/��;�m��%�h^�u��f�@�����W�p�~<<E���������J�B[a�W}�g�_�W�l�~<�����$�2]�G�����L�ϒ �b��G�����"�Ib�X*�Qq�D���2�"�B�)�%��d��,�>�5��j>{�-�]c�K'Xt������o��(�h���w��?�G�%��fI�q��^D$.Tʳ?���D��*�A��,�����`6�B$��BB d�r`)��B(�Ͱ*`/�@4�Qh��p.�U�=p�a��(�� A�a!ڈb�X#����!�H�$ ɈQ"K�5H1R�T UH�=r9�\F��;��2����G1���Q=��C��7�F��dt1�����r�=�6��Ыhڏ>C�0��3�l0.��B�8, �c˱"����V����cϱw�E� 6wB aAHXLXN�H� $4� 7 �Q�'"��K�&���b21�XH,#��/{�C�7$�C2'��I��T��F�nR#�,��4H#���dk�9�, +ȅ����3��!�[ �b@q��S�(R�jJ��4�e�2AU��Rݨ�T5�ZB���R�Q��4u�9̓IK�����hh�i��t�ݕN��W���G���w ��Ljg(�gw��L�Ӌ�T071���oUX*�*|�� �J�&�*/T����ުU�U�T��^S}�FU3S� Ԗ�U��P�SSg�;���g�oT?�~Y��Y�L�OC�Q��_�� c�x,!k ��u�5�&���|v*�����=���9C3J3W�R�f?�q��tN �(���~���)�)�4L�1e\k����X�H�Q�G�6������E�Y��A�J'\'Gg����S�Sݧ �M=:��.�k���Dw�n��^��Lo��y���}/�T�m���GX�$��<�5qo</���QC]�@C�a�a�ᄑ��<��F�F�i�\�$�m�mƣ&&!&KM�M�RM��)�;L;L���͢�֙5�=1�2��כ߷`ZxZ,����eI��Z�Yn�Z9Y�XUZ]�F���%ֻ�����N�N���gð�ɶ�����ۮ�m�}agbg�Ů��}�}��= ���Z~s�r:V:ޚΜ�?}����/gX���3��)�i�S��Ggg�s�K��.�>.���Ƚ�Jt�q]�z���������ۯ�6�i�ܟ�4�)�Y3s���C�Q��?��0k߬~OCO�g��#/c/�W�װ��w��a�>�>r��>�<7�2�Y_�7��ȷ�O�o�_��C#�d�z�����%g��A�[��z|!��?:�e����A���AA�������!h�쐭!��Α�i�P~���a�a��~'���W�?�p�X�1�5w��Cs�D�D�Dޛg1O9�-J5*>�.j<�7�4�?�.fY��X�XIlK9.*�6nl��������{�/�]py�����.,:�@L�N8��A*��%�w%� y��g"/�6ш�C\*N�H*Mz�쑼5y$�3�,幄'���L Lݛ:��v m2=:�1����qB�!M��g�g�fvˬe����n��/��k���Y- �B��TZ(�*�geWf�͉�9���+��̳�ې7�����ᒶ��KW-X潬j9�<qy� �+�V�<���*m�O��W��~�&zMk�^�ʂ��k�U �}����]OX/Yߵa���>������(�x��oʿ�ܔ���Ĺd�f�f���-�[����n �ڴ �V����E�/��(ۻ��C���<��e����;?T�T�T�T6��ݵa��n��{��4���[���>ɾ�UUM�f�e�I���?�������m]�Nmq����#����=TR��+�G�����w- 6 U����#pDy��� �� :�v�{���vg/jB��F�S��[b[�O�>����z�G��4<YyJ�T�i��ӓg�ό���}~.��`ۢ�{�c��jo�t��E���;�;�\�t���W�W��:_m�t�<���Oǻ�����\k��z��{f���7����y���՞9=ݽ�zo������~r'��˻�w'O�_�@�A�C݇�?[�����j�w����G��������C���ˆ ��8>99�?r����C�d�&����ˮ/~�����јѡ�m|������������x31^�V���w�w��O�| (�h���SЧ��������c3-���� cHRM��z%��������������u0���`��:���o�_�F�� IDATx���y�m[Z���c̹��{�sn[�.��}R^K,A�D��PF#��5QQ��?�$���G��ğ $���J��E[ E�TQU�VwOݾ=��{�5�����֘�$D#`5s<Ϲ�ܽ�^k�9מ����m\��Z���*��xux���}�}�v{'!aw�R�� �HIU���c��k���y�����%���ˉ\ֲ��Q��r ��Ѽr�ϼ�����r����/}�ōG^�����⧐.�:����4G���w�<�V��@����0�Pq�;�E�V`}�+���xЅ_��]�ɯxW8z���+�WWw��G�~�\�e-kY���-���>z�b������g~�7��W_r�̃��F�_�t<�K��� T`�@\�# ��� @���_]|�PЭ���=� ��_��b}q({�����"@�ʍ�_�oV/��מ���ҽ/+˅[ֲ���e}���a�[�|��n�������O|^>Ka�2�4x`�\LX_��-��� @���@��qҿ�^�n8�$�# �B���@��z L@0F�N��>�N�~��戫WN����������o��������ڧ�+��e-k)����\O��=���O��c��5�gϏS��SD-�]����x�>jq��2 ���ˀ���2��%�nj����'�Ӡ����V�@��y� �@�U���X��v��L��i`\y���8z�|��O�Cﶗ���Xo./}Y�Z�R���ѻ�>�=�x�_���O��U�9ᴻ�ӂ�>R�Z�Ώ���� �������Jѯ��Pt) w���N��.X"�& ��B�o��nP�Or:���5P.���X;r�����T���U\� ��{�v�+��7]y�����R����e-EzY��W�W��s�|�����^����Pq�^i�`��ӯ��t�ů��<��v�@�R�W ������i�,N��@���9���|Ƒ����g���ϋ����1�w:��^;j�tv���<�w)@ �c��=0���p�X��S>pׯ��_sק�;��)Yֲ���e�R�[��7�����?�k���4ka^y�/�d(ۉ6 ��+��#�1-�(�K춃�B�V쵠J�u-�X�"Pt�n��=%��*l��~/:픃h�f�@��i@ЍGP���s֟˺���8��l�˯����s����9�k��,kY�Z���~q����V7��?~ݵ���+����tu�2 [!pڵ�� y-�]e�}��X��^�x.@,J�*���v@�h���t�c}��t��E=�� �t��@-��J�w��I:��E�:�}_��A�B�I���6�Y��E`���y`���䁣O������ͯ9��t�0-kY�Z���~a��?�w������_�?~v<N�Za��B6 M�3�Z]�2��|�v�q�05D�d��N�E<� 0\h�+mO�(V&-���(��J˓v���i�?W'@��Ӣ[�/Dv�:�.Ig�����y* �K��;���Kƪ�_'k�g��W��9z��������+���ǖOײ����H/��{�Οųo��ߴ{�_�ִ$�[k���͡jt�[ �����E�pΑ����&�k��s�+��(�ڷB*�Fv�"�T��wkB�^� � ����-v��!��� +���=��@<��w�O$��N��8�na����'���Y��ڬ�ݠ\l�|\�^~�s/��o������Z>q�Zֲ�"����u��U<��/������P���4�����Ū�@�,���t���^;[��M�� ,'���k��E��� cW9�+�-{�-KP9T�����5�ϧ�_/Y�������W�H/���j�E&8툧�.�q�lx�d�WQfw��Ah����r+�ˇЉnV��Ϥ���N;��=�����%�W_�^��K�Yʲ���e-��X���x�'~�?� ��+�;�i쵘H��v� 5g����nC�^Ye1F�"桅Q��v:���&Ϛ.��=h��Ή�kX� �;u�v�.�[��A�A�^��[�`V���D%�9j��hA��OU!}W��;����6��9i��I;�:��S� A)��U��u@n�����}���?���e-EzY˂�G��ލ���o����v�`��^��hQ�Nݽ�9��N5ξ�B�� O�c'�a�ԍ�|Ieq��u�N�tC�ea��:W�\ݚ�'ʨJ��]�v�B�XI� �d�B"Y��T�^Y�K��W���{Z�B;��b]��hq��Y�v��eO�h�>��$������g���쀗}�_����_�'˧sY�Z���>���o�3�����?2p��v+e7�������,[�������\K�a��]/��=�?6�ъ��_�t��N���V^;j����F;��C�c�,�HA!lgq�?�E�����Q�Z/PQ�ἽVݠ�I�s�բ�;����(�s:�U}>��D"[�=ѹywI��5+�>�y�gq���?����ӏ.rZ>��Z�R��� �Ο}띏��g��^��8��v��G����a��,�I�J���Zd��f�~xL+�g�ha,dfKQ8\�2���E���L�;�:Sv�ґ] %�y 4;��v�f|�.<�u��P��<v�m��Z7����:oW�$�x�U_k���z�9.�Ş��!q��i���1��טF���� �\��s����������]ֲ�"��O���|�_:{�������XI`�#��sLBU�Ö�Y�����P��D�B�j�(����/p;bv�P[ �hr⨻� ���9�&tl�5��7�+ig�@�|��I�t�eչ����Z������\�C��2�H�f3 ����0* �Dn-4R��̃���I�c J�r����Sn<��'���~��~��}we��/kYK�^��e��Ի.=�����͝8 �3�^��w�ŹQ�_�0�H�hs[���(�U:ʟʴ^��n!$-�ijnƽv�(J�vƙ���&7ٓuܨZ�c�Y3��Y<s���I h%���S�:{���!t.}�q` !o���ET<g�$�e��]+��븙`��+��g�U;|�2����q5%����;Nj^��߲|������%�)��\Ͽ�/}������ ��p6*��@5�>k! �IMJ��\��-��i�I�a�h�q��9G툽�VT&;|��?P_�+��M�͇M��W��vuư�$�����LSϹ��"��$����'�M�{�Qv�L��4l�2�혪��N7;����z��Bw�� ��o��s��7��_��⦤�.��8}���/��C��������e-���>Nև��W����^y|N�h1�;-<���3 *�Zq��!GG�u�%�#�ڬ�i��^����>�mJ����t�RS�Γ�S�8X�U4m�~��/�7m�M=r`�U�X���oVG0��+�:�\H����U;�Z���:}�i��z��q<0e �=ߏ�y���I��<1���&'*���j�v���%2V3�ȧA_��O�������,��e-k)���]��&��Ϯ<�G�� N��'�ks�ʎ���V,�d'{K��:�u�AǮ(|��»B�-8�~�nb^�h�s�R�+.��(�2�M$FA���4j�i�t�\���BP�q�ҽ0��0i|(�N�;|`����� �)�k-��0ǚ ]�4�푖��i���ׁ�:&���e���_���������������,�e-k)���XZ7?��w?�C��M]��~E����7$r�g���b�����R����������9"��v�Y��N���+�-�_�O��8���'������x��J�2�-k���:�h���0(\�Y�+�m��A7�*�>MD�>_��N$� K�,��o� ��},H����,I�gp�o��DB�˺��V(#p�Y\~����/Y>��Z���Zfҟ���������i��tu�>j!�va�0�bd�$�����$��И��:��wZd 8VZx��I�pb�F�k�h4�&��Ml=��srT�u��dh���=�����s%B�ڭ���`P/ ~sb~5�м�ߘؔ]e��݊1���Q�Zb{!�<:��z���u��,�D'��.�ot�"�nJ���+�����7���>|��ݾ|�H/�|]{�}�#�����m��4��dH8�M[�����ؠo���rĈG���N^�wZ�a�$���Ҙ᎒*L���E';C�9{���E�qS>4Ƹ��v�s���Y���Y�N$d��!�Ԗ�%^g��1�jϪ� {gz����z�;RRY�w�����u�ؖ 0��X#k?=�7:y�Y���:n�*�\��ev�;3�A��'G���q��8}���귞?��/[~����H/�t=��UO�����;�����Vz���,g�Aw�������\�v�~ҿ��]V���}]h�Y��f�ՙĨ�b��#g���7Y�ծc.��#������*�����$v�`A���d[N�;��A}�a�kV���Mm��٬9��75�.(���9�=S(�M��@��3GbXdtg�B=�����,����r���#��.�����կ}��K�^ֲ�"������[��y�G��_��tu��Lk;�:~�ٌ�3Y�լ8��Z�I'�Lx8�Z�&��'8�P�����eJ�W[�]v�t+�yS�xZ���X�Y���G���ӊ3� �8��]X@�l�.���qw���=�k&����ܬT��Kj窏�ɽ�T���4��F`s ��Ȭk���z��Y���g����!�`�.��� N���^�ڋG_w����e-EzY-� ��<����5'��tu�E�7xa�Z�ڝ� N�f4��B���XZAFd]L�]\sႧ�3d�h�����8Pk�S� ��EZ��Ĭ4���U �q�0��5��m'v�v��nS�K�h�Z��������[P�����75RC �{5YI��@�q�tDP@+�N��=��}&e(�ݛ�wV'$��Ҵ����&'�V�Դ;���t�?�M��'o>����7cY�Z����#�g��?��������v��%��Y,��^�8�-�-X&2��Z;�U6���f�`$49��|`7xH���,V"C2�ޕ'G��%q�P<g�� �w���<+��u a�q`�ljF_��dA�ל�:�E+pc03h߷�!��y"�6�h�кm 4^Y+��{횝�k��^�4i�w���4��2��PR�'�.�<u�4�� 0�Y�%睾��?�]��Ǘ_�e-�cl-���u�}��Տ��?������;�n�]հUH�����U-q�:��[ݶ9���T��C`�e!�^Y��>Ai�%YvÉ>�.�Q�cGK���w���8�hw?�P�����N�0ڱsF��2b��,`a���X�y�V�f�i3�������ۚ/7<RH�6"a�aЙ��H;��V�Ϯ�;�&..��(7���@�Pj�M��D P<]�rV�����!������M\���!��ò7_ֲ�"��_�u��O�����7����#���J��4$I�$$dQ~$��M���d�?�s��V�2��e�p ����O���(P��{-�rĢM=���]nu�H\t횘���y|נlئ�]�!A�r%� ��ZL$=ȋ���9C"J��X�).6���d�˨ϓ �,�u��:Ρ�1����JǢO�Q�=1o:z������Ӟ^�����q�-��B��kO�j�|������j��Yֲ>6ֲ��8Xiw�}��{��8��(��7)9��m�� Y*��=�L3~q�������4����r3kgW�õ���::����+�v��p����1f���(,Ȟ3��T�2z�$�q.��=j7 ��ec_�o�e�[#����I72!�f��5O�Wֶ��� �tJ��F�c����5�_Da�w�DŽ�]�@8��7j�lz�J<_��!����.ߎӋ'n\y뷼���ߚe-k)���%Z��?.?�2����*�G'�y-��ĮU�Y�@��Z8 Z(�� ���h�(;0�bͮٵ��H��2ͺh�]���DgY�3�f��ЎCK�:T��]�x��v!kfD� �c�g�-4L����-�-~2e��v�2}՟�`��u�u6���;��H����8r�6r���qTv���2s+��T� ֝� P� Zg���{^�ӧ��������e-EzY���������u�N�f`<�yqM�Y��]W&��Q������}�d͝+�;��>�Q�f2�u�ҵQ1(���n�E����-��[H� �r�!f�i$�^�Ә�e��ۉ6����?ä��nܤf�M�U�Π i�hp�q��B\�t0\CD���ɴgִ�� �P�}�(:��Mv���� v��G*ϣ�h%#�1�۲��Ǘ�>ǥ�q����M����~��oв���e�"�'~��ٛ����=�=�?cњu��sZ��)������xFzJ`�L���0�)�(0�Œ:hI8�4#����N-ԣdV[ʖ1�K$��_h�X����Yf��8ց�r1P>Oɭ(w���cW�;sn�cN{Ց#p�����Ҕ�&uP۟7Msu�F���>b�Xi���������в45��h�R3�葯kf4�EU��m�������������e-EzY�������9Ͻ���| N�����l�& ~����Q69��f��Ϟ�_�Q��]xf���^�=�n�L t�r�Ū���Nݠ�"�7(:w���D�9�ap>l��H�=�W�0���ƙ���u�q�Ww��xX�UI���춢_yѨ��rAtaEX}��ky��N�7��Γ���b�'@_3p�b$3����6�������܁<�5����D��^�M/{��۴�e-EzY�����~�W�ӓc�:PWl]���=o�rD�/�v��&%Ү�ӹ�xvo���B+�B�]ǂ�"i]k�#�Yg�`��c����2�B�!rv�E��J�B^ M�qY�c�,��;��X�wB�b)�ZBV�4\!|*m&/�nx:���g�JͶ� ��P���f��4ØC� M�h�>lX��K:Gv�]IznjѮ8h�=�v��8�#n�@n7I��J�+w������������/ղ���e�����K~ү��3�qJ�����';�cCe��{����ע7�q`l%�P���ܣP�[3��� P�ĕ9��Q�Y@::�����(@9����*�S���LV������=Y�ns�^�=�7�p6n�sp����sV�@/� ��(�<Y�hG����|K77��kՉ�z�j3c������:D=�bnn~�>Y�S�3�S<N�_��H�s�$�nf.ô/��K#p�>�~����?�{�a��Zֲ�"�����̛�ğ:���}�c�&-Y����I�*(i���i� ��jb���\ӑ����]r�YHX������n���-��M�U���B/��F0���JO������Y�-���iGj��7n�4K� 9���Ă-��|FsZt��2�]���6�02#&����l��A��z�t��'r���@�ώ���.e�@�ڮ����<3�3p�!��9��Z��68K��z ߁�7��_���kY�Z�����œo�������'8��&�r�t9S&����8� �d����́�������g��+�3w,�G�-� dd"/��+~;ͬ=�be�܈ZabqX$� ݾrj��V��S����e�-H��U���.b���q��v�^����b.c;�!0e�D֊��ۯpȢ��<�� g֎�W,�+��+��CHZ��͑C�q�A!p��"q�^ "����pe�+�_.n\��}��O���lY���Z�����z�ﻇ��Kw*+ؑ����X�Y��Ь ����榐6�,�0�� ��;����.�o�ȇ"��Pf����M��H��p ��UL����0�Y�a>�fSz0N!�-#�L�qW�����^��eFs�.��ZY��v��'[zD�XL79{�������C�����q*���v��B�#��ij�E� Mn�7'tb�L�]�|�6i�kq��?����k�W^����߶e-k餗����/���9��mz���ٽ�֜ߒ�$��=�K�hG�r�Q�7� 2*�d3��}K<�ؤ�9� m>�u͑�9��B���,�b;���:X�ǥ�xL����MB�0g5�T�fT�B���\2�GQ����9���ҳ�>����$�6�ڽ�1�ܒ+K���0�k]t�̠�yrܸ����B�v!�o�!�Y�-�m�06���d�p�иw�@��ǣ�� �6���|���^ֲ�"���u���������_�Sg��B^k���vY����s\��:�M�Ʉ�Qo��(q� g���0����u`�עsH���J$;�B�!,�F�,;Z��-x�de���[ArUY�Պ�k�uF�*�(5�،YܚEzL�[���x�+sF�J����k�휾�D?q�f�Yl�Nv�|v��T��G@\�0��!�P��8��fPy�Դh��C�,�1���\V�+�H�'���?����ۖߺe-�c-p�G����O�q�Z�|zi��'��Z�S`�<�ݚ�6;2#$�����f��R+�%7���6!nK���S:c�����sB�r�=wԮ4mg�^ ?���I�9�@�H%����ՙ��A��y %f�4;���t�Bʁϝ�3.��ʜ������1��;�(���`��I˪٫&��x��G=��mQb�ة�3���+#�G=���0���w�� u��NY�S�*�+U7f�W��#�������o��K��ᗵ���^�ϻ�~����B�0�[�r��� cG�48s�X<*t�Y�Y2=��ܠ�4(�kiR�m{�Yj�HYi��EC��JmH-�� :�v�����ms��i�{�r��e�H�Y����ج��c�f־�jW�\G sfV8�&�?]�Lmdn"b��Ҋj�|_:�v����3��;���9mY�[�\�F@(�+P�1���#�s2��?v���͉�>�}������[���۷�e-EzY?Ϻ��|���궗�4Ҭb}��:��P�8O�u~�t�*Na�$�w �Gu'3rz��6�����xu�nY�����M-V1ѥ����>���]3���-�IXl:eQO,X��L+��tNm�6�^�y0�S�?UKȒ�窛���ը����P������t�m�Ҁ{�A�0R���+>���ͨ��.��N����[��w|���}�kO��9��Y~��HF�ˊ�i-�-b����8��W���_�{�}��[��e-EzY�7�~�7����'�8$%�N�ma��� O{e{�H2�%�i��Þ��d��P.@ML�q�[�>WJ��ٵ9�2ӎ~�̪6b�A]��B!k�!�t���fPx�f��1���:}��';O�u���H'3{��r��]-U�8SQ"ݸ���y�&�����^�S�,�$��sk��!�+Uιk;f�� �5��M�P��f�i��������v��a�l#QI�#���\�Y�9�9��$N��-_���oᲖ��e������� ����3�]i�$�����X�X�5�&��k�%�A�^�FM�a�S�TU�jG� ˞.�1�k����M�)[7��y}c�h]���A65�*Uf]s��f5�qעE`���!����vD�_"�X4>����P��b �w�2]l�b\j���M��(�֍{j�Sm��!}���bRٞ0�Ť��Ҩs�#��w|L� R\iѯt=&L�%�<D���3����p� l�����Co��������e-k)�˚����篼��7����8�+-V���$s�'�En�#�i��2��N)�&l,�:�͂-}*̌2�X�y;6�p`g����H+�¥c���hO8�NUi���I�6�6_��nFl�z�Us���1�y�ĭ�\̹�5}u-`Ca!��@H9�7��BZ��v>�_�u �]v������6���B��Z�n(���8��0f��S��x^c��$6H?��Z�A�F��t%s<�i�f�E���;�����o^~#����H/���x����� +�ʺ%U�}$Q�u�gAo��2��V�4��`a��&6%�A�1��t�����[̣�;���� v��c �Xı֒� 0 ��/Q�=g�<N����M<�oz<��d[ _S�=�9�diW��[�I��N7H�;� ��^WZ��S��$j2#D'D���=�@YZ$Bg20�~����قz9�-K�_k�]37$���F'Ȗ��M����E?KGW�����=O?���nzY�Z��������������.B�+MYr�����y���ڱ�&�>�}�hC�`�ʎ�f֡h�(�@ś��[Q�4A�XL�(��`q1�o����*���`����7��Җ0>�*��L������q��]fq�>X�:"3Oo��X�&��{��������-=&9���!��=�*���U�kx�F?P���4O$m�f>��5���'+2�f�6=�����_zվkܼ��6qQ_�`uDKP����eUW����ߍ��~��_��e-k)�˚.�͇��o���/���FB�Йr!�9զ�v�oir�j��Na�R[�S!�c�%(�n����f.d��ę�E�Hc��n�3�sGYP�0f���|�)�L����l�B���4��K�3�3mB��Y�AY8��ƌg���9+����Ea��-����q�Rء�H��3ua��#�M��MGτ��")�o��Tʶ<7#i�,s+�ĩG]TV�čD��ћ���q�����p��O���C����7tY�Z��'�z�~���Q�Z�iA�қ���5�樳�x��_F@�������I�S4�N�y������/ę��v�C�M�Uм����l+��J��M�e0�u����y}�bq�]-�=]��k+O�J�0'[��H��B��u��禤�� ��ni+knX��p�6��J���������C��H������+�ݦ͞�#}yj$�'?\!|M�uG_���8s���+����ڻ�6C-� ?+訥vN����آ�^ֲ�"���ή���n=��ψ�qj�yM�OӨ7�:��5�@�������-p��g���H�����Χ���B涱�}h�fGF7RK�:�3��đ�et����� �+�M������w݆Ňzf����¬�7Ol��b��`$�ag�i3g��]w&d���Q 0�s�+���v�5�E�Ԯ��@ MQ�iz����>(aQ7V{i�Ӯ6#g�Q��< ьil���Hŵ3�+Q9����Z�F�p���&y��(�^���=�������7uY�Z��'�z��_����p7�u@��Mu������dX0�i���*sB��ʹ�,��mנ�a������-���a��a�������e&� �o�i�2�xg<*<8�=h������#�d�,�Iv�U.4P1ָ��Z�`��|��s=9%-����e��y�!���e����L��EO��j�2�y��I7#���JONQ�@YW��H"Q j`$�>Ǥ���I�t�c3P ���Ej�g>6D�FtWp�����oZ~S����H�'_w����,n�O��,]3��}s��*�H(��H�I�@>��HY@0KB2�ڜ�X�#�F�I[�7p�Z�K�$M�Q��ewg��}(�3n�=�ݯ��W!,^��؉��ʈ��5Ϡ�>��<��H��}�5�o��Do�l��^ъ�L7Gޜ�&2�0miĂ� ����=7C��єʼnndj���`_c�?�@��g^UL<�n��67M9��<�s?de��Ɵ��w�}�����Q�GV�q��]6�;<��5�g>���e-k)ҟP���߾���槎Q��]��Pz¢�B<�:!#��>=h�%쀓u� Yf)S� ��'F��eJh&#�d)B��Y);�B�ԯZ����`�H�X�^t蒮��NhT���K��8h�����x��xzl�ؠ���̪�֣`wZV���&��,zރׯY��+3TM ����n�\�Ҹ�� �c`��$��EWҽ��οz�N!���m��x�fj�]s�"M�֍l��>K�"�7��*Bf}%���#r��C��������e-E�f�=��{�O?qo������F�r!�%*���Ձf�,4)j! �:X��fB���T����c�����G8�E����M X@:jo}�<j�*���f�<�����[��x�ΰ��TV,$�F�}���O�g�7�J�J�n��=��~�.��cjsu�#�M�Wg�i��\��^��0����������kq��3D�Bi��m,|ߦ�P�� ���8���v�.0��@���&���?{T������[��˖��e-k)ҟ0뙟��ߺ� ���b��#{��m3��d�n����%U��Ɗ���Ԫ�+��c�d����Y 2hP���e���,x�d��vǂ`��D���Q�7�lk�E)�]+���G�����|;�D����CV3�M��>�T!�y������o�4*Ѯ�Vċ�pyM�V"�̥9��� �f�%�1>s��Ĭ���9Υ�V��0#�ψb��x�D%�|��Y���#�1��} ��B�ttG6l+���7|�e-E��~m�~pu���,�o:X���'���c�a���Nԓ-C{���.|���`o�2��d�X�,3�JZbSXk�BQ��A�5�/�he(+�V�Ӡ���n�Q�F��$��ԎY��F�MA���S�Rn�h����2RS��vJ�*t(C�y��n4%k˹v4���P�K%����LY�y��d믈T�V M��N7`i������ �d�a$���+�ꎨ�8%��082�y.�S$�P ����QUw\��{~�/�/�oﲖ���u���p�QV���TMMV�f1�V�˨��P�\�zQ�7S�&�<EZ7�&Yx���Z�,�)�4&���9ie����}��^,�o���-��5��Y��^��:�Fm�����B�������sʠ&�<�:Om�\���]�&+��{z�{����' ��{�pu�Z�Z�27F�߫�A��ā���b>��w Ҝ�6����9d�Y�Y����㞳�u��z���� �o�d��L��V��퍱[�7����H\�������ȫח���3�AI8���Z��cڒ��h��B!�`sh�3��ތ]�|���M�)0;I4�O�m�ZH��� cZ_�lF͒ңɭںu����5�Rb!gwW,ʱ�q�8e��be�����Yh�A��7�k@�M��_u2�/�ŅD3g��֚�t��|c�{��f�j���7V�#aL��,�`G�g�8-��7���h�p�D�����l��}�h�R��q-S�`��RϼkNg99�����{������f�-^ֲ�"�q�����K.F9B�G��ע�Eo�S�꠬^s�J�Y1�ȏ�r>dJ���}����-;b*K�5{d�"#�V8�6��˭`�"��dr*��\�0?ha�uՕp��0cO{v�A7�5H�z-.R�a]���K3|)�(!q�x$>W� 7݊L�c`}��i��2GM��̲�s��}��!�)�f��z��u����8��x}܊p�1�鯞�/8[fx��mN"7E4g���O���|���ۜ�Ͻ�G^=�=��"/kYK���\�~��&�ഋԬ���؍�L�+Y��}��ŕ#��I*r��ڼ:t,�y�MfD�����D�-�yM����6��M���uW2���ej���gY/d��۲�-�ڵ B25����i�Evd�F�-c:'J�@�uV8|ة�Ke�><v�6��l]s��=��J�5ѡk����s���^/��{����|��k^G,�����p`�}�ʍ�#�Qy�j�F���imz����7_���6"���0���Tt������{�������&/kYK���+�}�+�-��J�.���������qԮ�Q�����#��D �cP��~�� 4>X�FF����f�az�c��'c���H�H���T¬f�B8֠��W"�I8�-4f�`��"�y��1��B�57��g�B ��Ġf����1_9x58I�����qN.+%�uG@���s^f��N5����Vu�ϝ�ڱ�=G3�0��;�1�$�Դ�Ր(o)\��G0bZ��/U��A�m�7�E<�c�7���o0y���)���Y��7�����ۼ�e-E��n�����W�5NC��3e<`we�D�=�ȌFl�B2�� (V�I9���90nRxc68�����w���6�٠QZqZD�3��t���˻r�ª�D5���1s�rͤcܳXs`v�B����}���Ԍ?�cpFj3/r��ԩ%B 3��Ü�fOC��8��rh#Gƽ�4�BB��*ܐTE@�J�bgLr���>�i�D�c�٣����]B7q㠞�!j�,$��sjx�4�1��� ���F�@���բ�*���ΨE;zyo�eG����w}�g-���Z�R�?nV�?�ݓ�������p��94ǐ�~=�:0��@���$��ĩ����%�� W�.4��X��>U��:��9�'6�i@�\��,��������+̤E��OKs2i�Y�R3�L.d��#�QhD���SY%�= �qӰ�2�c�ML<Q�w��9:p��4��8E5��&���uC'���M���f�o��Jw7gF"��4�o�0�$r���7v5s�n�RΗ ���g&;��e憻=�-��#!�1���{�����P��8}����_\~�����Hܬ���?���{so�3�b��y��׳�-[ʬ��\��$^M$1���Ef�)�B�`���Z�-��E�������SfUg�k�ml�j�fco��t��/m�Yש�+my��B�g1F��,{B�d�硡�V:��qu����9-��m!�ճ�Ҩ��&*Q,l��WG-�����&,�2K��^vZ+��C��{��y/�֨��(�� �13waȊ]#�����͠���>��su��}���lN� ��lH��k�8��O��Pej��̃���t�Ȗ���H�@����_�8���8���ҮH���"�ί=�M��g�I�SB������4ש�ǂ/,��$K2ȫ}?i� B�|~��4��ؘߞ�`���R�,��qqx�k3X�ۼ��ρ�Fw��x�L��t�$;x$g�����*�ؽO�;�b�A#+Q�9��� ��� �YB/�ñg5�;g���k�|؉^����y�F ��6@A�(���I������<���kUI�B�Y���z���#�Jy����{��E��?���-���Z�R�?���{��gN;j_�.U+d�V�[�ֲ�H&�Y�G�4�l>"g�4�����N6�tf�)@9p1�i�̢��X�5��fϒi�B�Z:-��+�I;-)3 3*��X�F��m8����F۠����<-zԢ�/L�# \�eun��g����<蚫v��VX+�~���ShsvP�|�7��=�Q<�_<��)^���h���i�RI\s�8y���v�I���)����[M"oZ�8c�����&��w�D�Nt#��\���o�`��^ֲ�"��u��/�a�S�MfSi��:����rB�%<Ӆw��WbQ�B�ʬ����t�����ʾA���̓�h.t(+�J��/I^��b�1�m�-���Jj�����R����I^�f]}iP�#۸��p���OT�: ^��;�N����:�u�,���>O���e�9h1���+)t{#2a�0��]s��6f���t��K��7ɘ���K�{z��0�]��.����n�����d,4�ӉF,�]w������}�ݳׯ�x���.���Z�R�?fWM����ʸ6Q;�� _=a_�}k�κ��F����� �@{��%?�ў1��uU���<��Q����:d@�b�L��m1�M�TXLE��?tu�t�b�^$o�|��!�EAB7��9�+=�� ��{�41遲�{�3ۜ�r�g5�{�=�Bm(�t���D���ф�'J�vQ�]ٓ�F�N��#�����EM*c*+���^:�A��XU���xn�2�T�^_Vx�A��I��d���;���.�m���<��!k�^����Ȗ���H���k�k:�X��l��6r,�C����|���Cj��8{5]-�- g�����ZF����<�ͼ��ٺ�h���3kˁ�*����J���qs)K�O��z�i��f�;�1�-21m�*e��6���\t^ޱ{�G�����1��dr�:&<1H�����tL~�Ӷ�8B�k���>���PU~�τ�1�hY�]���3ˁh��ٲ�N?�ܬ�13�ё=�9q�A���4P�?s��h�9n؞k�H�37;���Pg�� ��[��7/���Z�R�?f�����?q��i����^Ϥ$�ᵐ��P+�W� ���dOt��B��q�4�8뮳b�ZV�[k��Kca�z�����k�An�l&nI]6wvPAK�R�MM��B<S7<��T����Έ@t���6�Z'J�s찝ɱؙ{i������l�@mxܰ��=y�|��J��04T �p;�i=ӅMH$;��E��F"��4�� ���9�&��N�;������� g���w�Vh�|#�\�DY�EH�#�ȣHK8���[�3��{_���/kYK���[��S�?���a��s@�L(6pVZJu���:@8�E[��]d��q�Lzn�=e��M������$�Y�V39��:g,�܂0L�d��W��&�]�nRh�2 �i.h�i���ep��8s6�_ք{I*� �3!Z�"��_�m��f�h�+{-���N���Y���-�+զ!����"$G���5IZ��.FR�����2Ӫ�2��=CL��0�za��E�4�EY����2�-��E���i6�p��G�N�#�0�G*����;p��O/d�Z�R�?���?:e�L�J� sժ��+D�aE�-cﲛ5�=�G���U&@�e�J��<�XX�c��!�l M�����u��٥����q��B�2�7�^ؽ������-�od�����Ó��X~�8O��7�N_8M{-��K�2��>tL��B�m�4_p˯6f4,kd��"7U����{iz�����l�QB^'��a)3��Q�<�Z*Y��`���[���c�y��H}���Jg��<�Y�����e@���z�g����~Y�Z���ֺ��7����ԑ�l�R�E�.S���l�i��ݬ(� ��Q ��D�О�y���L`�.��E�\p&+/�m.���0qQ&����}��;�,F�Y����I{-xʘ�eJ���B�#}�)�r+%S�^�[����TTv��f]���-��tt&s66:-��f��C��vޢ;�Ό�.6��8Z�J���UTK]�l_sj��D�RW�������O�v�Ea�@2�DW���o�����e�;v��fɦ�<�A��P+���Um! S�+����_���/kYK���Yó��I�ʄ5cK�.3�C�8��V�]u^o�QXz�vJXJ�:5ư"vX0��4����,{�$v�L���x�yA�ن�е+��+�LUZ'��`�]���C8�L;}B�5jqs4Q��F!lk! �ٚݧ3*�C���3�ޠe��q`���]��.�� ���0��|+�`י[X��m�����uT�\��aK��o�b)m�a)`��;�C�7��m��q&���J2��ӍPu�lsKs@��fϘԾk���Ү�V��Op���[_���/kYK���Y������+8]ʣ����l�e {P_Y��;�I�I�;B���k�NBO�2i�� (�(]��y��7}K��0H�ƥk��Q�$E�`�������n�=e�eD�PBXe�ZB+��3�H]&7sৠ�˙�,k�3�#�����=<Om�Q[��^"�Rl�#�n�L,3�(]�+��������%$\I�4-F+���臍Ҏ�l&nU��z�B�n��u��j�������(�y��F�h�3��6��%�Ց�L��lV!�|�ދ'�yi��_ֲ�"�1���?|M<қ�T��D��3@�B�ùƎ�Z�� �e���1�� kZ��Vsv��5�p)b�.����Xm&2+pdzn����9,+�]���+�f݅İ����P�Wa�'h�b�Ο�lE��l��QߓD��eUЅ��`�� �P�~�G-�X�ו����Ƞ69\8�9�Dl2g�U��Y�0��znV0i�*�NC ��fyе������:O�pT���@�y��rS���7D�ȂE1Щ����|QT��FD'`��ȓ��q�؛�����/kYK���_���~{>#���T�[�yw��4 �G+�źEZj��F�T�6B�A�\xc��F�4&�В����Fj֞f��:�C�堳�C0W`!��7�s��P��u*�cX���!���XL�e�i���wm\Pf�u�m�R a�r���};6����:&��ިX"�4�LG�bR��A�%��m��Z�:�U:�y�wk&M���A�i�Y��@���2���={:�M�z��J�?�v�!~'D����6gg�x����6�l���G����mO� ����ۿ�5�o�������OG��ψY.)�I�zi�M[�x�&!��Sa����H4j�?�R�;S��D����J7��Z�0,T��`̼��#dm3�� ] ��Za5KPJ��C�0�-~ѳ�,��E��*q�,S+t�����h��:_7�,;�F��͈�� �kD9ӟKj��9��٬���)5��1�� >�dL�y�F�sQ�yR�r HD�F�+L������5�!�u���v�шbƆ'l����]�� Zp�rT��)ͳ�w�@��b,t����ݭ.{Ǖ���e-E��z��'�k}�ޤ�Dw���<5�7O���L�Ĺ`�|gG�+�W��HG�!Q�k�o�\�:Q+p�7[ �?j��V��+����� }������<�<X<�sv�4��k�{a������T���d,ⅧgnEˊ��☱ٍ�.��sQ-�}�����Ҋ�p�S+��Ԕ���<o����,�'��Auʁ�̹�� ���[��0;�-hD�|���*� q�5n0�=0�y.��������}C^*s����-, @� ...P"N?������;��������;/�GK0�*zd;5��d��s /0R�A�Y�����<cW�����R��%�\����Χ`��m]!�R�1��� �! ��.�u�Ŋ������ms]� f$����}-���T۔�n�"�Z�G!�h�z�=3��f����L�rqf���r��\ڼ�li/G-�p�$L�ğ��;�t��<�ʕs{K��4W`U�� �M�o��I)�˖^у"msd~�B4�v�<�pD;�D�2>����,`����}s���3��\u��j��I�g���_������HԮ���G��?©Z0�\¬+ݚ�{�7�HW��N�9�� }��]x��0��F#�ϱu�t�(����q㐘҄��8Efҟ��4�Ȝ˚�IL�\�<�����R���F,�3��{B�,��;�de*��)fzm�-����(�"ogv&x������u�R+�gT�"����M�A�o�Y:��e��%������S6f=�:/��"͂V���l,t^���H u9��mt�sӓ�8��(th�n*L� <�y�{��r I�+ݨ�����u����v����7߽� ����Hԭg~�/���G^��ѤH�\��j��TU�vS,�r%(�Y�2�0�W�BN� ��x!��p�:�͛�y�w�E�]3�0Oho��YX&��Q��Ί���ᓕ�ͺU���g���\ܴ͟�/��t�� �6�6MB:~c�[`����!ͽP7n�0˸���wq��c݈t���/����k'�,g���ӿ%\U�j� Aa�+�U/��ܹ1)���bM9z��T �����$2Gx;x ��t�ML���9�&�y�$L�q*4z% ���^σ��}?�w��r7Xֲ�"��U�����3?�W���pjE@Vz�.A��nE�c�f��Ji��j=�5�0��3,��u�8��� ��sr,|;}�ձ��YHFi(L��[���7�^f�V��,�z�$\ub.1��RH�b^6f~ێ�/�ˏ��~16&�t��8}�&U*��d/Ԗ|�I7&��ҹ��aN`����-7Y��δ4�?p#�тR��]+ܞ����mA"���6� ����.�\x8s�����<vk:��;]`�D��m��k���-l%�G5t��}>e��.zT6��g��%kY�Z��G�z����[o���f}��S�0̐�nzyT����H9ޤD�_欝�dD��� �3��1Tc~��Q�$4D�+�ǬS6"���%,5�L�5�f��a�.d/�d{�'k����Q��fVإ���\� � ]����&��F>�! ĺx��,��f蠡��g�0��\f;�i�čG`���{�r�;j����<6�v�I֪-d� #��S>V�����͝Ө�eJG�In1�S�Ϗ驍� ���}3+���8�t��~�~��E�W`uT����}F�uu;�'����C?���ΰ�e-E�?�z�?��]\}��z��W�>��!q���`:�:�x�V�]NCc[���x�ݓ�}:y�-�D�8� QZa@RVr���I�ʨPfA�� ��j�Km��ШC�V[f^e�v��Ao�e߲���vׁ��u�Ŵ�&��� �8���lh���`j�,ξ����T���bh3g���gF��9q�LN�a:� y#�`��f�Йr#�������LV��V�f�#k2�Sՙ��s~L�NM��D_x��ؑ�F��cg_��W�ɅF&ܐ@傉���[�{Gt�����w|�W,w�e-k)��Q��?�;����o�,��Os~B�4��z3͵���N�ʌ�,��%F�b�*I������U��m0���Շ����HBsB�hi�ە����3Tv��F#r<����U��5+��jp��{l�A��i�}O�v7��}�ڭ;o�u�L�9?�hH�� �*�(��x�W7Q�� �p�_(��E�A�☃}Ѵ�D:�K�n�u���W-BTwO#_��͑�����k�h�R���e6>��ߢ'�ؐ �'ʩ���̰��A9�:w�~�/9�Ҝ+��3�U�����_��!����H�G[ϼ�ۍ��W�#Z}��]G�@w�,��:jW��;��~��r����gRm&�F�]b�79W��e'��B=W��ֲ�]3o���E2�í��?-2+��h3i��G�"�n���s��4���Yi�{�����f��хFd�H���S;��˞�47,�)�p��:�!�ٙ��8e��=��dbw=�:f��{KY�ř����B!� Q&ɯ�3��Ѥ�����Ԑ�4������1٣�%38�L��7M�a���69� g�+�p;�ޢ�?�����WN<���o��/�e-k)ҿ���ɇVϼ�O���;p�u/C���j^��x����ig�P#7y�9Nfi #$e��l*S2%j :ҡ*7�Z%c<���H[����,9�F��]�%[^ϊh�����D�PtCa8���hA��k������T�Y8���A��+�T�C����Yх���f�i��FZK�ُ>��"�Z�[2�5a�I�E�pv���6-�-י<�4j�u��漳b'3C�R�U��p蜾��A�* O<?I?Q�~�:��Y��kֱ�������MNg�~2�e�s#��t��}98�U`')J�����~�r�Xֲ�"�K�*��_��{��ʉ �;��WiM M��ű#��H��@�/L�9�-�҈C#�����$�LUo��\`���z�W��bvŻ!�$Lf%�Y'l�f��H����N0�wm��=���"��6g�~�I��HZV�Ҧ���{6�5����iv���t ��g����ii��b `��z�#��ð�nث��l�P�C#����Y؈�3�K�>;>��ƣ�rƞ�t�,k#ƙ��/m��v�)�q��Tao���D��� �k�iη� �j��s菩VI�:��l&��kJ���co���1����H���G�7|kyN����bԼ���PG-��c.� �M�Gx;�<U'���N;�[eu��ׄ�{�UVB���[[�kFF'������]-|VĤ� ����F�B�v�,-3�P�qm�S�y2� ZbRἳ̠v����h�n3�aVX�{��,m�`�k�o�L��f�]^�o;7"m]-Z�!( ��ۛ�{5AOC����$��Z.E��C�D�B:��,;"0���KR9���OD::�%�cq�����$�b�q��mv:/�+��f��������̍d��[�� �K��K�?��=���妱�e-E���~��|��_���NU�+�0��Jb�Ӻ#k�Z#ʼn�Id�f�j�=Ib��3:v��:�qbaB�N�Fӷ7Y�����Z� Di�Ά����f�y�۲�>���Z�mr�|H\���]A���)U����0Wΰmya�k���4�p����L3Z� �A����M����2��K�&0��D9n�,�T�'נNZ�'�2�����g��Y��f))���H��dYw�Ԗ8���9�<��7�`�j�3����L��n����| n��ƪ�����@�_g�R��"[��y����α�e-E��NϾ�5:Ʃ��0k���CȡAćBE�&1��ԊKᬹp���9s�h�h7w�Ӊg��le������5Yq��-44�\s;c�C��뾽�C��.��?�g��u���̣.�f�a20�M�ʬ�����2��l���Y����5�����9���<��#3f��II���`1�DI��/���Zv��%n HL���t�����s.����� �q�x�)�͟8����>�u�͐:����B�&M��^�u��0&�Kgv����Ѝ�hF<$�����mTS�Ut����_���cY�Z��/�z�������t�L�1�6(��A�۱�ٌ3�yC���5�\���U���@w*�ݘQ����$���a҉�//�2�.�B�16Og��,��J^�]�aZ��I�fI��O-P�k�Y,���eR��0��x�9=s�Nh���`$�sSe� V�)G�y%�D*����fbX���7%�3{u�3�D��Nz��i�s$s%��1� Z:������w!̟ �m��V;q9�B�#MW��PҌ�j� K�o"8f��~ւS�f \�M*X�{���Ɲ��r1J�(�C8��~��F�Zֲ�"���.��O���?�G�:߲�;C xC��Z�L�̣��ơ�:��n�߹0�07�Neǜʗ�V�s켣E%o�>2�]c�yrdR�u��7�2�\��g���e�)�Q֙ʊEȺ�2������ֹ�{�֝A���g� 2��g���s�/�&v�Q��4�ms dhc�{7(�0�x����V䐩��� ���7iZ�v��cԦ�$�}<�����MLq�|�.4,���Q �{=.�qp������9@�&6J �&�]}*-le8�c6S�u�D����!M�Gyۋ�͵���]dY�Z��/�z����{חq*�� �� �T��@�l引��1�8�2P�"z#w�;�M{�Υ��y9���y�7rS�Ҥ��n��H�5����#p#aF'��eY̦��b�3+�qUSn&�+�f�v�ȭ�,�������D�кb�<�O�d6˹���p���I2ѣ�@�G�l�إP��Zdd冠pvnZm�\�V|v�B��[Iz ]m�Ɠ �9�}i R�2 �YO��_�n�<�iR�W2X�~�2&�����H�xB�尴�������*��`��ݔ���Vw�B��� �����|�o]�"�Z�R�Q֭w}�3=�euD�hFv5R�D)T��U��+�hV����]�H��4(���r�~>�f�hD�2�i��A_/��4-l�8W�K37ɄL��θm]�li-�:[��VJrq�f�955fq�h���_��AJ�yڱZri�W��U�" � ��d��e ��X�m��g�g����Ce�A�P���Qa�i����u��aq���@f��g*ѻ�A��r%�+���ϛ�՛ 7{R��y��V�4Dnf�`%��'Y��7�Lm#��~�Hߺ�k�#�ը�ީHn��.w�����[�;ɲ���_�UKƍ�|�����������ʱ=��W�VFH"[,& ��v敞���FNNU��M:��$�����ɤF ۗ��i;��f����ĺ�4�d���4����b��c6�3�/J�������=Wm��ᱠK7>�Z6vw�p�h�eB��a0u찮�䦙��b3�^"�іe��^7<��յ�J�+��Cd�x}*7]�fa�^�,|l�9�=ei�\AZu&n�� �(��%�;�k�J���γ]IhY��≶8"*�l92�1���g(H!�����as �?�����<�Z�(�Z�R�A׳?���48{�2Po��,>C����:��"M2&3{`�5�dc#���NJ$�c��Fh��^�Gf�@��)d=��`ù�ĢR[�°�.�~���:L���������$ͥ�\�jm�\3=q �ʀ�,d>c��g羟��b�D��O�F�<�=%r�Ha3d��D=���QZ�I"����zJU��nH����k���f��x~�(˾zh����J���8V�)�u��U�� X��y�����j΅�����6+���d��qI�]��y-= U�N�d�� xt��Hn�(8�����/�;ʲ���_��{������6w��6�JV�v�k�'��%S��q*��,N�8 ��iGv���>�H��\u�����T�Io�>0_:7�N�vϳ� ��9#7��V\��IW^(Úi��8�y18�`X�<h�h�����i�-� �,�(VcY�&��MD�i��g����`17�TW��0�i�J<W�t�d�=+�|�j�G�z���f#vz͝0/�h��I�ٶ�����OC���������*�zps3V:>+K��`��u�6 m�� QmJ3t���@���� ��6b4� �?��hF���r-?9���i�[G<����宲�e-E�l=�S���}ĩ���L�i��<��%i �u���Bɱ(t-�W|+����\T�2&�ٕ��?q���Z�VF����d��L�Bm��I�$6�K�<M�#����uq�{3��̼����k�� yשq�l�ʑ��E���t��+��8~�^V�� �-B�0=���1Cac������A�N#a�A��;O�n���\�h03��`gw��y�B�I�r(g��{�ʨ�+ǯ�� ��L�:xs�;}-�|�!"�şbGF��F�ܘϻ�[F�t�Y����K�iR�5S�9�|�+��B��Z.P� D��Sox�rWYֲ�"���O��zy�֛T�M��b������A�X2��g�h���~��i�ӎ6}��Z4i1��Jg$��Ҿ�0M{-�cQ�W6�F,&���j���66�5l��@�h���r�{ M�m� #XLy($w2j����I¸�9���a��7sG3�],�ϕ#�^�9K�*�#sC�X��V&-|� [��4)S���������$� G��smnaf6R��:n8|��m�o4(��`y��6���04u�cn~��J?�16�\���� ����;��C��\ ��Z̓N��t�ꧢ~� �~,���& l*n<����~�g.w�e-k)����7~�ݎӰ� �6 q�.r��;��֨�u�i���+�S����{֡�n�&�n�g�H��SK �Z�Һ�`&)[-��511Y;�:��Zf�ẌAդff���v(t3����Ґ���.�X�� ?���Gt�&�*��=��m4h=�s�,˺�B�R��*g�ݬ��f���I��3�3�n��؊o<�����mf�7O���et��>S��\�1�١�L���M����2�:�Y�v�6�0�|Y�v�g��]�H�������Hg����A��>6��N��=��u�j @��W8}�-?����˲����r ~�uq�}���nu�}��Ȇ�aH���zj��v6�g��=�+Lz��Z�2����w�n �S��ݪȩ�:$�*8Z%�ug���w-��Y�,��'���r��y��",�!��>��Y�U���� gn��D-�n��f6�����<�y̲�͎-� T 3�o�[M�6t�>�|�]Y� Gzl�<VF��f6�e�fc�rFO��D��g~w:�Ag��P�5�rj��v^ݎ�dE=��Aya� �n�P��X2Ӥv�;E^��#٤Zxp�R��}g۰�&�%��5/�9tG�9W~�*��{�����P7�6w�(�s��y�����V�He��^we�[�������]fY�Z������[߷�/�t�`���5�Qoli`!J�N�7(8��2M��ī2q��\<����o�+{l��m<�������˸�d��W*.���hw\���(=�����U˹��/�y�d�o�լ'縋�X���4,��ʹ�%�d^���[r�I������B�kR��V���4�װ��y5��y-LBV���h�:���DZvv)G��Yn3;�4��m9�{J�VJx9+���pOc$�j��C�҂<l4�o����ͻ��x�$Ҽ�nhr����y��0���}��d8������ �AǞ���߇H�PWH�59 �������dLp���w|&���;�Ͳ����7]��|~�Q���]�aۓ�6(=m$Y ���H��)V�Z���.x�シ?�p�l���a=rq��x��#��pz���g{��f��L��^����%`�v JwE���ٰ%I��LtJʄ��,�c6�u�|���-�c��4���ZJܚ�AЂV��@�ř��^:��>�r����F�nhH�29����dˋo�n��*�n�|liRn�a��,�s�ҧ<�sF�Ј^#���n�:��͛s�P�&(���R�p[n�x�,�Tl��5���覰�6�����(P��J灺V��Yz����xn2�FhA����E5Ln�2��� 0�D\G٭q~<��~�]��z�r�Yֲ~���k�v9����/��Pv�ڝ��z���Zf�?�7�:��b�UH�:XL�M�&�H�x��W����c|��+x���}ųOo#�����+|�Ymg�8�{���+X���#̅��j�4ܐ�漁� ��`f��eI����Rw�:�^�0p�]-;�Pl�hj�+;p�Y����r��X�q���+�V���V�/��Kns`Õ=7'���Dh��R"���;f��uB'/v�ŷ�av6(KJY7*�%n^��KAߋ����fB�\�8�����5�f��ܵpC��US��)Wk����MD�&�{�m�Q�:� �*Z�H-��yCs u�A��!��r |�2r>Ɛ�+�_��_���fY����B��.��7�=ܺv�㬱^���������H�cl��x��+3��/rٷ���������������s ��#b)X��>Td<{�=?s��x�?��'���Y�]��-=�����u��Gm�tm$]��H3}�͛�s������&�2�Y�ͱͣ%]�O�����غbӣ� <�V�+g�e�1��l��0c�js���wxA�V5�I�LÝ�[�.��k��2�j��Y Z<3Q�<��+�U �P��ݠ��*�y�i!k^��ȠS�vfBX��Ib�Mܤ�f'��M;~�6aԧ{~?Ӎ̑�U*�t�t����������c]�� �;�֫Sfz�~�Ǻϸq����n��e-E��{]�O~���]+�'���a�.�F�B|���`1�}�^o�����?�S���1F$x���)�T�KA�.��r|����<���{�a�ՂQ��X�QΜ��"2e����T+��KJȞ,��@c��\5F���XqZ��93fZ_�g�Bzưȕ� lW���M�!(��5bG'�}�5܁3ݲ�BUYX�ܹ��(��V�������Nٜ�2�A��C��l3��sUs,n��$6�.h#ε�� `���n��qzn$S�ρT��z3�P����Y��3_U�nso���Q�!5�[�xQ��_@��.x�\�x�����决�e-E��}M#.>�W�+�8J%\���g^�2����l��Qٴ�n�lz�7��zc�T&���+�\QJ�T*r��Z� W����Qz�捈����ѕ3� ;��uh�H%6��sd�8+ O��y͝��Y�4KO�p��~�}̵Es���<mdΥM�5���>�V�9�Od�Kl�^{ߵ��d'n�� �oP;XP�@镹yٸ�S^BG�Lo��n{�]�� H���l�/U=�mCa6��Z�p����@>�/|h:{��yzfN{i����z��_R��_2�h%��������u)�gnr`��DC� ߎ>���@�w���Er")��/@N�$������害�e-E��y�?�~Q$����qf'�Y��G��My�eXC�͙�4h��b g�]����H�[Cՙd.��8VT�;]�����R�\����5^�P��8��3qR��$=�����}���E��� �fGx��v �5W2[��s������P�����-�ʱC���?���u4]�bP���o�U,$�����#n�U���H�ic�g������������{��g�h�2깨��<�ɾ��U�c G��Dv�x��A��ln����Ht����P� �Ը1*[[��u��g{����H�`��6 ��|�^gܞ� �?�=\�"N�������]gY�Z����:{���O>��YZ�A!���nfl�vmt��������:_�g��u5`{�*�UcA%���G�cV�E�F�Y������Y�g�\p�C�q��g{c^u�"���z\�;#A5�R�B�4f���o���]��3L?{}�����f6�5�Z1G��:q��ь@�S�3;�/��8�� �%H�(�[�ʘF�����K��\}���M�@� �\p�.c� W�uV��P����r��ǙV*����}%�e��ST�~iú�RRݽ+ZL�!��"]!��������I߃�|��M�B�}��aNw(��uZ�]Q��m"?��ߏ�.zl�1�?���"tY�Z������s�>�������X�f]�A�c��ER[*]#�^=0��vZ�~����nP��x���G.S��sR�lj8��ƌε`�O�����=�]Ƶ[{&#�TZz"��<_(��{�ɑѕ;��K�~;��p�hiP��`3�����cf'��02���i[Ƿ�A�s;PC8.;Ν��Q�G|N�CP�.�Q��͒�Za��ʅ��:ˠ��A���_��O�����c3u�Fj�<�Rמf�"5��{QH;w�r��k�khH�zj'���9J!�̊/�}&ʞ�F�����|ϑA }�I��)�^��5��n(&����}���C�ր��?qoKFYֲ���g]�з}i���1��U)㩠�Ȳ��a��1f]h��|�4������W��4a;fu��Ae��93 p� LY�;�w(x�V�U�����tO}2���ЈQ�������-�L}nߺ�RX@���[w[�f�}gg,j{��w�\�L;X<`�5�@,6hP{I��c�}���6��<��dCB�v���y5�5��僓��mmͿ̺rJ���.{X�E�l7;Mj�9C7�@:+���0Y����L�����<�� ��͗En�����Ah�Y���I(�4%�%n<�A�P)&=��͓m`"�P���>GA�����!���c[�����_��}����H�?����5��tuL�z�7+�I 3��)�����Q��=o���Ji�=�� ��gֈ�!�b?�(�+���`L��q�Ȋ\-Zxc�bţ��x�y�����z�k2s�k̢��#E�yvM��}耧�&�$X�N��Җ�t(����R)k��l�Iy�����8؆֤r��c�⬹a���,͏����sS�fF D�at��>�K��#ӷ�YlRj���3)f/j�bdWg���:�M�P'[����JM�^-�u��]�����cNs5+���x���\H�� s������s��3�EX(���7�QG6~r.:`���0�1J��Qb���q��u�^N��[_��}����H���T`��[_NT��EF ���L})+��=#:���Eo�cb���_������1W�*�N�N�6�� w*�l]�\N*�� �bȂw<"X]����jw;���!XaW�vf���sfonV��e��VT�F���3�.��RF(���ɇ�Y��7]��XY���m�=�ߓ�� �uF}f��:�٠��� 1klL�@���6���V�]�hId^}���UF-R��ߞ��4���� ��hA��x�Hԫ�>�k/ܨL4�n��e�3�Si�e�4�l��&��u?襥�����[,;}6�dm��#!dƲ`sE=�=�]���=7_#���+���5�}軿|�-kYK�����_w_�6s�9�k�a���~��/,�B�0��-������A0� aY����lZ9@���F�T�^PEo�����N��pqA��7f�(��>��X���l2�ά�,�if�g�y*�_�A�l����t��a<b?ϢVh�R�v��%=�C0�ѐ�Ϟ�J�2��ۛsR���F#5q���Z&���!ܸ}i��?��^/g�@Y�9�$a�{&r��q�5�w�T�Qa�,�tn+���k�nY@g3v����w8�t�6Ki���иxv��]O4����֢��'�3:��z�0��L����� �~�:E�i���>�)�hY�Z��ϻ������]�i8"D8(aHD�"ӯ�Ҭ�i j5�3>K�Ao��k@B���9��玕��2�S�!a��@|��d0E�zL(p(pdny�q���>'��ݣ��h� ����� B��؝3�sD�X���b��Y��-bR��d+C+�I��k��_B7؍���жy{!L,��.�,�A��c��V�,�́�̰�R�ȴ)t$_�j�1z2Ζ��+��VdǡEPf���yR�}����ӗ�:n'���ٹㆱ�{�� �=��8q@�LjO�s��L#u�D5L#^��0c�����ʎ^�����o�㥼P���5\�d``�vaW�+�� ���q..�p�؛�Y�B�Z�R��oW����i$�W�� ����������C��7K_����'F(�����[�k/��)eT��B�A������À\+|�d��R�K�f��w=Q�G<;�|=�cLom3�`�D\s��Q�R���C$%�T�]x�fzr�~K�t_��e�t�&Zg]R;��dU`�56wբ�(�2��Iv�����s.j:b�Ӆk� !l�POs�3M�����UD��3�����N�n\�k��8�=�<&�Z� �yYs�a�=27�"��塉�SxybG^h.c?3yHv�F4D'��x��Y��P u"FeK����9 7�W �548}�0�D�^/m*(�� t��~��,w�e-k)�?�*������2���VT�2;Hn��� aMz$�����}��V�<�kծ�C� n�"^t�16��@q.@B�� �*5l�g�{���a�1:BY�d1:�� :���� =�i�e���ls�֙�\�L@ڶ�p�-�М�c��l�v���n{��d��+߆︑�Z�m�I5.朼[kq6��̹�v��bMc#�٨B<��8E���II�wb���Z�D�g�������:��N&��z��"���6Iv%3��$�43_�3�����#�8��6�Z%��N�5-P�jf�J�@���i���#I_�?�x�/Y-ׄ�F�O�y��8��㓾�q��9�܌J�`�)���4�t�����o\n��Z�R�ε��v�k��8k��z�o�ڱ��v[;B�1*A�<�� �����%M�p�,���7v��ŎyB�Q)�\+���o������{�����߅���t��.P+���BM7���cǜa� 9��-��r0 !ja���ټ�4̅�������4�us�f)k�˭�&�����гh�����҈W�ö�D����9N ��)�x� �JOꠝAʒ�(3ڳ0��h��s{-6���̵��D�tY��]���m�!�T��u�D�}��m�G#�uȴ�F�fj���`ם��Zu�\xah�Er 7%e�רмY�yw(����$b���1��Sߤ���a�����|�<��'_��˭xY�Z��Ϲ�O������o�j�F[�4�0b��Lv��z��g�T��}3��A�g�:8W0M�H���~�U���۞��/~1�6�0�-_�������7~ɗ�b *fmP+�G��p�c_) �Fa������nВ��,Պ�ei�b��Ŗ�m�� � ��t�0ٷz���(���j�P���M��BTG�5�)�ɓ�+�_��]G�,��˛��֫�~M���<<�1�#����B�y۠��n��H߮W|ت�B<2ɅuG���'�~ّ>M����9� �� "��ku=9߷7;<V��!+GI�,���>���]ԂSi�9sv�|�\o�i��6J�XVa�iv�܊����H��k���^:�N���슚VGM���D�#0�K BH�x%��N�!��� �q� ��>:x���CW<��#�\������?�������ݼ6����68\L�j��/P���0+#+�D��Ri]�̭<AۤP�E�L�Hf�AJU��*�00�Έe��4�"lAu�5��q���B��w5�͎0=;�ʎ?�-��z��'G��D}��ı��t�!=g�ܠdמ��SU�U�rl��� &�#*ӭ��'��g֧%4�p�� }�����±�1��Cj%r��ִ��J��X<&cC'꺅�ܓU.��c bP5�#HK��͔�d`ؘ7��9Q���5����%H�=��3o�}�/kY�� ��'����i�V@JR���4��*|;2-�1��Sn���Em�����%w� _���T�<�;j���G��ş�������m߇��� ���?�;/u�� '�֡��:�4ܢ�tt���|�����)t�%�;�Q��M�l��J��Zo�)5�f�}��з� �3h��0�8���\�W�IJ�����PJO2Y�y"��~�aM5�ia�0s� �εp� ,I\��XG S����]����m�t� �ȽB��GPI��@�M�)"p(�$���rKb�d�'��%�M�F���c�6H�qD`���b2�5�����ٳ0����K��؛}����9�!�|&B�* .�&�N�|ë�w����[��r�͟ݯ�;.Ig���(�v d:Q�j�Ue;u�`��p�ZZ�sZ���3���.a���z 3夭��5�x�&��?�v������q?���6��[C+g���W`��q��&RFD�*����S�+�q,��Ri����^�se~�3T���,`w v΄=����Y��/������g�U��0��z��LWh�QvJ�r}{|����aKݷ� �s=̇;=�P���̪fvDŽ�M^U �����ϙ�A�8����t1��t��{�5��m���)��T߮E6,��Q�Y7��U��~f7�fpR�n8���_'U ����ϱ7�7�NٓD�ˍI7) Q�r��;��*]�� �����.x��N`)��Z�R�_���_�bP���Q�V��!�h1��x2��2H"%�����dӳ�� ��� |�K��s�jV���X�_�Qv_�/j.�� |�J���i�k-@ 8;�x����>�w��zc��x�F��ڂ 2C?ӎ���:# ��FJ���ɫ�7_�D��U���,'-l�Hl��lY�) 2����wi$8�� �ٜ<�(B�W��W=7�����tMU������,�8H��7r�#ٮ��ѽ�r��Q���T�Jfzj�\�b�&%椯�){��r���q;�i�����=�!�k���Y$ġ��ɨ���@�kJ�o��f&���l��}V�M�P�i��d���o�z����g/��e-��^��3�\��n\�����$��R��[ R�")f�D�qj�56-m ܙ�ġO��ūx1^zϽH�C��3B�N�\�f}��j�ZAB� ��Z� 8��G�!e\���7��c<p�W� vc��ZB�@XY"�mۛXV�؎��^%3/!A� Q�sy��@����6}���9s�3���d�/f�i�.ʴ����m&Z+Yṱν���^�u���籹uʅIO��~��|�f$����FA �NY���e�dh��I��'r,�#s,�Fn���V�nN�8c��Z� }����n�|hF%��&t����}-�/d�#q�04t�6a�G[ ����'{�~A��ͣn ���˱�[F�m�b��c�����-��e-k)�/Xu����G���қX����$�Y�5Zba®g�^+̗حxJx�haq��;6x�}��W!+PkE�J�N=�W�C�.Vx��j�8��<S��y���݄?����_�i�o`�DM� x΄M����';���v# }3w�ّiH%��;2��#�,t��#6O���@��=��;�H��G�kR;vm�n�f�I�n���ۑX�m�݁�;-���.)����L�dp�~-����i�ű��>w��vC��2��y�R�������IepK�_|����E:�S��g����9ƃF&�����p�\�rQfz�|I%n��~~Ri�x7�9��鉳i��e��R���E� d�J�-w�e-k)�m9�!)����d�O&�BrU��gncs)+�{Z F`뀸��_���O�����Y�+�����G ^jvp��|3�r��ň��㫿�����Ow|���A;z+�Zhʨ7x��l$���~�sv�LU��*�t+�-;�L���O�uq��m�ۼoER�N����P[ϝr�z݊�0ISf�I��*��a�:�X�����C�o�:�y�������A����kX�cI����{��f��ޒ� m@9���\�`X��Z;�a&�5�x�>G78$�YЈ��)���cM�疶Y�P��Tn�^�� �c����y��{��5���gR��#]DŽr�2�!U������e-k)ҳNz<C$;8 �Mn�Hv����9�@c�]�]쎁��� ��#�6 �"/����W<�)��O}b�0#�y-H�B �>�� #�]� �aH#�ߺ@�8���/ǟ�3_ `��zE�8�$7����';�ᴳ�?f�Օ+��w�eF�nX�����'F\ڮ QUE�Y�lG�^F�W��?�,�R�� ���\".�t$��y/�q�H�f) WF�v�j ����T���{&xy�^��y�+!�4w��Z"��e�#�7q�*����4�ܤK�`1��fL�(+��kh\�V�p~���d&�uA�w%ӏ�&��'�6ֹ8��wDgr�� pF�c��4)j�}+�.R�����`�;����Xn��Z��'4q,�;eeK3ip�b�$�M�1Ū'��0�A�/�Lj��)���$��u|Ҫ��|�����~��O��v���ң v�a<�k���jFA�~J8?���6��� ���~7�/�ְ��U�n�$6�̈́�qD�z+����?��m�p0������ʜ�AI����\�\e���rsT7���o{e����7_o��<����9�_�3[�{�4YT!K�%zk�d7'ʩ��@��W��S�%d�D���~�µ3�'olk��8%����uۄ�]�fU�!͔��8{&���e�t3[ �3��P��� ��,%�� Om�e�Q�!HҐ!��'nRS�C��9��Uf]�KGՍ���E���Ϗ���nT�������^�ܒ����H�7߯���,L��-c8{���J��-Jfq��IS�Hs����U��]w�O��>��/�b?��o���FL�nB�=��., �T�ݝa�������_����Kq�S � �����b-tЛ}J�捶c�o2#ۉX����} jY���c�X�3GЕ�:��+�<�jLng�e!��s��Vh��p��2��N��ªu�歞b�� �ɦ}��F-L��4$)E ;��4s� ����+���V:c��<�y<yM��g��Rpk�n�T|ź�������w;�����؞3��J��U�d0�#$���=��L�������f�\D�nBd6�F&Y-eL̑�v���Bo5�R2X=�u�(�Iܤ��x��.�&6�FY}�7;5E�҄k���o|���myY�Z��v����z�z�gz̙f�.'���N��E;7��Z��ϴь4��=PO�Н���?���/��m��������x��~�y�#��pi��W(8v�'��N��������3_����Vj����EԵ������\ ���w�g�N;FctW�aQ뀉b*\�q�{̟�+))����E�5#�=[7^-�a���,i�W�sa����|o:b��Zu"ù¬�+���~+�kQ�~�t��L�2ޚ�B�s��2p�&��sk<�� ����=��� &PcD-����>� �y8�����g�t���JpuB��L�:�Y�@}&D��[�)�r�m����$���tvsd���3Nڦ�dw�:�25��B�hzb�=ei�!q�ky�fJc~�uV����d�j L�>]n��Z�R��7�Zq�Ƕ����n8���+8�E+�&m*�F���%�����#�-j=���pk�������>��%w��<���1�i����q�l���^��+8��>|�+��<��qt����^ԣ���(���Y�N�Z!�[ ��K����t��?�A .���,/��!�|���)�f����]�loG��4��g��M#���V-�ú�C��s-���v��Z9��4�B�܄Tn`���C�9�P24��ү������O=q��n���ηx����6��C���v�� 8�;lb�Kw_N�_Lxn���y�g�2����6�����&��B3���&��=/�,�:���j��K��@��sbK+�I e�Q �\iG�|G��c����9�ƒe�g��0w:PʗIj=ڽ���V��6%��@�i{�xx/kYK���y���R�&����gǝ~a`A!���7nʌ���3k��b:��[������C���g�㞻q3�������O�����x�ч�ߞa�w�C�^v�w�{�Я���.] ���+ZY�ǀ�e�t�L��N� ���d��Hh��|�S���t�ƎI5�ʜ6Ʒs �,Ea�4�yɣ�hp�͖}�}�f� ����� ����4�hWWw��\�,T��LG��-;���e��*�x��8��K���D�z}cTD��k\���n���>t�Ó���\�@E j��� ��Nps�Pp+w���]��|6"M#����w�������~�^�EO�"�ќÄ�[-|5r���Ӗ�5(�|#ue����r-����~&�t�\����8g����Ms1s��rQd�:5��$��������y���p�}X���/˭yY�Z�4�j��Z��]�������x�J��9;=v;㍇��Ί;px:Wm��%`��pq���5�R�.�w���=��>��/_���s��9����'� G�� �8Y9����������(�k� �i¢��,�¬8�2�Yׇ�.dRoYI�nh �N�g��G���B�q��F'z{WʖPj�g7ݼ�F��s� ��8J�Ҵ�['Z��`^�%BS3w�IF<j�"���!�x�Y��=�q-��vxfw �w9'Tk;�6�:�R1���R� 1\�ܶY��m������-^%��t��Hx/��#�9��iG*D 0�m�g����p�2�d�S�`� �$��������F�㝡4"X$YЛ�Zl�-�)M�����:�^�ُ�.���{����߳ܚ����H� ~���NG���ʛ%�hoX�y�W���8�o(�A��k�@��u�z��c`:C�N�r_�%�ȭ�w�uk89Ǻ�1M���x�� `0H�s��X�o�֦|]W����Ʈ�n,�N�ݾg�N����(OBnʭxY�T-��]�2���9j����9���i�����4�F��P��J��=gm>jr%� ��z�9�Ut8#�9ʜ���,�������"����x�{���XЅ `�wE%rΡ�r`��13�X)g8'Qꀳ1 #`���[7W�`}�����ɘ�{CA�1���z�����h �B�4��`���s�l��D2r�.��;��}:EC��X�o}�g'���+<8r�<Y�xU�����T��<.<���zzX�����i]r���[t�����t�7�tLC]�w�g����B&-�B��n�fuD�����N��b�_B�R�o�Ly�+�>�:�?�`�<d��.$�˗!)��]pK��+��=�b2G����B���Xd�D}�4;K�1����}��mh���YQB�B�Ү-���eB�i������]�i�9�p,��n�Ч<�La{3>�����n,��S��qV����&�W����� ~��x뇞ǐG��S8��r�+��+���s��;���rvS�0���Å���n�+��g��>�¯��[7 A����B7�,�L�^�CΈz�3 ��s6~h�o��m��Y�&�y�6D��:�fa*+���ɓ�hh�k�D�FO��:�^,s�e-�5����?T���i���Nz���NaʜA��K�g@�A�$H�ӛ��!�x���Q/�X]�a���SZa/�8:�Xw���E�E��*��K��;�5v��=�!���B>כsudr3���UL�Z8Ki�6�����#�\<��&�a�]�8m�<cYP�nfa�O]!T]�l90��yB�IQ��d=���ؖD=�`�X�d�W�k�ϛ{Zj9��u.no|�.|�[<���S(e��8��)��*��\Pk����(�?x5��\ �9�RuR_�W�F`�:<���7=��>����ݖs��t�x�S�QgΨ*c�Y�u3�tt�s���\��G(�2&{O�2�Ʈ�uj�#���ϻѠ�vm]���8�pi��њ�q5*���}n>���-��e-k)҇Յ{���-lCZt�P�1�%j^s�E%;�&�P͐�o�*��-t�}p�R�����C����9N���8>����oFl��>`��Ap����Q�l.��so��n�s�H��B��߰{�2�)������Ӭ+a��~/3 ��'8�}'�Jl�$�B����2�:ү��_�dVZ�����}�����4�pv��z�Q^A?lZoz�}����j�!&[}x{��m+��ՄT3�W�X�-E,��E�HjA)�T��k�s�~L�"DŽ� �w�ؗ����|2��װ9:Ap��)�wy!dZ���������o��Kn��h$�ȣ�Wv�%�%��ƀ�d�I���c���cb!� �n"J�.�~.���*A?B��>C�g����myY�Z�t��/�b�_��H�����]X��oY�M�"d�V�r}�0�M?lpǗ��w�p�y��M�>�;�&��En`##�;¸�S��:F�{ȴ#sm�� �@���k���e6�N��Uj|�좛Cg����07ڜ���[X�'y �\F���ܵ��b-��^��-L�r���m�4:�=����u�2)�!]�x���f�K�Y�:!4Ks�������N��G��x�ڄ���Z���V�Z�kQ��Rщ`�E}�nj[g瘆Ø�3�2cx�$��\3����}�����[�����Itd�m�YI~+���6��"����w��XTh�c|O�#��%7I�ܧ�I@�j� ��y��s搕\Y�B㮴�p����\�-0ݤ�7��d<[��e-k)ҳ"}۫_k�|��0,R�� ��%j>h~y�C��H2c�0�L:�v��� l��֨�j7a�ѹ#��A��ː.�/GGI��}A.���#�]Q�}�4�ޏ��};�3�P�N�c�a�VFV,��Ӓ�Aag4�l�t-tULV�����XD����\�D��|��š�D��M�.�Q.D\�h.� Sxf��o���ӷڱ�Dkv��5��y`�V�������a�M/�pRT�@�AA ����s��-^t�e����IJj��v�R$�{�P��ެ��3~�i� �Rt�PZ�$@>hr�@���w&�`�6��$��`�|Z�߾���c�6�Z��*�k���f�0f^�7;`���N$�� H�������H���˟��TyCg��Q����Ou`�T����ԙ�����\cT�N�4&������I��|����o��uP� �/���7Q!!C*��<�B�u`�p��ko���2�n�Z�M�4��e�I� .�!1�P���h�F��2�Ӟ"Z��-!i�[���j�0�7{GRX�tHfd$���iVp�ΰ}�ŵc�D�3��YN����J�EX<1���_���s��o�է������j�ȼ���,Ȯ�V��|��*^�߇o����� �萦���zЀ� ���}B)�z�����w�m�U߉~gXk�pҍuo�S�B"��� N`�t���?m���s��m?����~~8a�M��ILI$�!D�$U]�*�|O�{��f�?Ƙ{�{T�e��=�S����{��ךc����>p��)�0�e��k����QN��yk����qR�������1�j��m�Ǩ��P$S(J�#����_b&}�)�g�q�Y��u5V��z�s�|�� �Hݲk�{�my�6kS����M�+9 �P��I��3:s��)��FX��X� �o�whU/�s�\A��y�Yy���>��s���l��0ٚ`mC��%L=��������h��� �w�}�g~��$Q�N�J�������v`��6C�[2Wv �4Q!�� 3[�K%KG�+)����WG���ȥ0������N���V�k��̌M �X����Va{�JRXW-�E����r���$챻�{>�_��D2�� �A2ֲ5��J)ѭ"˓c]�/~_�g����y|֗�iΜ!�U��Db��~�5Ĕ�$�1;�I\�}Hr�DaЇ5B�j)x�ׄ.��+u�3V��z��>=T� ���f?�Rߎ(����_���HFK��8=3�r�[�G�`�P���T����⇏Y����n���ڬM�:�3�u�LW݉tY!l*��:�vI�Ѝ�iX�),l�DV���c���!���'����)�g>��R������'�0]O��fR�Ods���aj5�n�8��X=�y��,�|+M%^�%���p�V�B(�W�7�Uٔ2�)��f`;�nV�0���QfW,'7� B6��[M`r��e�&MzH�s֚�uZD��xiY$@}T2�j����23�1���hX�d�K ����x ��O���I~�2kjL6B�b�[)&b2�>����/��s�=�zo���w��/sr|��Ɍ����b�{K�����6�����q�49O]? �Q��T'��h��V�Rd�v�k}�Z�e��?�Q���v"�����Υ{ɔhT��]z�ݷk䠀��r�zoX���v�'Ѓ�WK�r�T��ԛ���fm֦H�T3�����s�E,�b���]�����Տ�͔� ��0�4�>��L~�K9z��~�����@��.һ�)�~+y���f�fq�����6��a���������3 ���Z�k4����R��鷇CG�$�SUB���*�g�vaf� ��c;Ι�N�8��NA�G��̳S�ϥ&)֫�G}�X�}R�ti���"����;e!�V�*""�ê���\WC%�`f�X��y�o��R��9i�-i-�ʈYI��[�'|������'��o�V����6~��Ŀ�� �63V݊��4Ή�<g��&f��k���\-9<z�Im��"���N��^�Z��v����U��ՃN!ӧ4���F����j%�[�I�ح�H�P�è�]�h���W� #� �j���W *�3�dS��μY���o�����o��h:�ͩ0���z;em38Xe-lQ�Q�X�4��#j�z3������N�O���o���)���&����x����q&���\Ƙ_���Vs��d0au���ݹN���JB'�(����deMrS�1_k���]����IaȤ����:����l�@*먝����UyZJ�H�hpS7��7�س��)��*-X��"�b�p}��e�h������(Q�c�����Kܺu���c�S�$kI9I�7�>�ly�o�J�?�c9J�f�<���_�̴�����*B�&�$������#�I:�i�$S��y"� \K��3�M�����/�nF?�:�a$�c�v�����|}�PW�^+qp<�Lf��.�f�Z��<��u߫�K���MD��z����O�_�0֦�<�ڞm6��ڬM��5=s�VwK�eUBd�i�<D.vN�N�3Ց�4r�4R�| �?��A�n�3o��t��q�3� \|�����1h�p|L:yw�A��[Rw��VG�j�ؓW�r!k-8��]h7tQ�WӒ,�̡�v��'+�HBXHW\�/ͦ�d0Iݐ�U��Q7%Ϲ�^X������'�%k���@PR����KZI��0��:�^#!�ue+E;���0u�=�.����Wٝy������NNvu��&��R����Oߙ�?���y��yM��y3�Vg��S���\9�(�ۜ3U�)�sEm��H����g!�@�� ;wz��:�OUr�7��f�H�@ڭΆ}�\�#cX�߳���~�|Cow�}.#�b���oT��щIR�+ �)���=� [ߦ�Cm��lJ��Y�"=��'�\�퐙k��j2(Q �̪JC틅f�]��?'e�:+�zv�dS� L�|����,�z!��`/�Ix��~�s�p� ����}�}����^�����tO;K��cVC*WXlJ.1܈2ss4�+���S ]�:r��$��Z��9B{ E�(y%q��8O�0�6S)��J�p�]q���b��'j^↹r���zqv˚aՄ�O��6:4�U0�����eN�5��{%ͅ]~����Ʒ����� J<HbJ��cI��� ����}Ͽ��O�o�h�h�P���t�o�djWS��#�Ʉ���Lfg��i�~uk���;8{�,R%u|�"�5&뼗n�GO�V����^g�^3��D�[�.��d>[/�.J�K��+Aѣ��{�+T�g'r �k=�f��L�!0p����]�w�J�&�7�fm��4��{?���u_��;z�\�2 $�F%jq.����������WR����=8s��O��Wr�^J��Dx�����p����� =KHo����?cu�� w�Z �S��Q ��Us}~��'J�Rx��r�DG�g ��MmEA������V�(�0���T�9���ҕ�(l鼲J�J'Ot����:oGt�N��&(��!F�J:�0 �~��NP7g�y�!؝q��ħ��eb�{�M��*b����d0�k&�96�v��� c�Z�q8Sc���k-�V$,�WĔ��ú�1 ���<s���̶D3�5��5FК�����_i^t_K�L��T���bev����庱����_�����=��C��E.E�j��Dma�#����Ѓ`VØp(��jԷ=��$R����9��Kq��ެ��tң�����*^q���Q���^��:�ycW skh9z!XQ�}h �2�gS)n!��c�p��G�l�>���r&uDŽ�����L�f%�Y�^� � �01���>�?���1�@3:�+%��ڙ�l>��#*���#�i�sйhR���D��Ymq!��]GE=��0.H:�L%�#ݠQ�1�u��1R�CF>�v探 ��$czq.�裩'�����'~̫y��)}���Ue1d�� �0.�Mh"�w �͞��4�"aL�f�3 �&%�V����G\���?n1����a~&o�,bEe��g�" J����x��8��� ���ΌbB�A�\bWsd�ZG�c�Վ�Y�4��������g岌�K��W/����z�EHv��9�sɮO���Y��9���y�� X�tt�)Z��mt��J �|]��l\�(Z�:r??(1+��4 �n�����}f��G���p�(���?�0X3{��c쥈ۢ�V"�zfn�Tb����Ѝ�����v�~k|�}����'����f��~ �ZJ$h�N/% �Xd#TvD�M^7���6�O��W)s8kZYV�����۬�k5W9�7��?��,��ф�?�"���>��� �6`����Xk�ޓS�Q�}Me+�R;��Td�=։6,�A[����h���=�K��/��Q�$W{�vE� [/�h7 F����$�����^)�]<�Յ����J��J�c+�xPt(�ж�X���͐>w^#3�!���:��k3�&F���P� ��u���:���k�6k�I�N*M��������tc/c7Q�.������^����+;�}�x�,`_ �AAe2V=�+˕v�~���<W �P,�J�� ^�A����=l;�C�d�trC3j%Z�c+-�n�Cek�5��1k(C>Ge��a��[% )�>*P:s �(�b�`&�P��t�Ħ�CZR�����Ws��j�Ku3�;)H{���^��W�� ��SmY>�S?�G������M����������xy�L�T��&)lY 19��k�"+i��Q�T��'���/����K��#Y��M:s�t�7�*�Ft����.��N��^���.:� x-�aQ}�U[T4�R�b�Q���!c��fE$��J\�W#�^�6�㴭�* q)P��:�Q��l�ݛ�Y�"}��ػ�鼺"0��6e�⨤�W��ܲ����cp%�Q%P�� P�+�~A�F�F���}T8�TR�+ds� / �0N B�a��je�ja�����vjgj�"h�����!�:��=e�M�ל� ���b������ν̼�R�+Nc���P�P+�8�?G(�v�VI`���pGd � �:+�{oa��$�>$zG��l"ݢ���s|�g}*Nj[��[���7��I�%�-�6��p�Z�1rQ䜩l"c0T���9ѧ��0�<�ϝcg2�p̧}�'����������ήc��In���m��ڳ[Bݰvi��];������fMk��ʮ.�XF��N����5���(;�$�����5��8��ة�!�Cth�(��*��5�d��}�M��fm֦H�����9�ߜ�;��k��-�N G�I��z� z�$�9���n01�a�Zxl��{s��iǮи�CAiP���t���nP7'[���`�T��j1�i�g��A��LY�tW ҧ��85[I�0y`�&��,ъtC�"Z�vfIk�)Ъ��*?ҟ�ѹT�@�����TJ�����U��n��:/#�.j!ٹ��vCU���=N�9���n )����Ü�� ~�7��a�2F��3�LY��3g���C6Ƒr� �JD�?m�T9s߹m�oO�t��y��=|��~�˸s�]8w�3����=>������t�l��WubZ�N��$*��Y�a��T�0�)l�(�[��w�CY2�ꤳ��$��n�J��M�Z>���rm����(���A�e�``�2A�gB�Xw��f7ڬ����[���m�'���ě���lԕ��O��H�p�2�����m�[�V�TOm�� D��c9ee�+��{ad;�0�ʠR�0�v8Y��}5��P�#�Ч��j���D0E�Ǝb�g-0�X��ں�~M�l����+4n�v\J$J�HV���h���jwF5@�)Ȁ5��w�Q�"®��m�|��@��S�e�֫p�=b}��-0+rHؐ�9�,��U/`{����K��O�����SGT�R�H4�H$F�3���[bm�N]r��Ȥ�\:{�����5�s�,���|���*ϸ�Z\H�:˲�S�m�vI5y���LZ ��=��FՔ���J&3�f��\<�S?��UZ������2ɍ��l�(���JPDD�/���d=<Ġ.ej������O7vc��Y�"�����c]�r��)p��Z��T�BKw�8�[�z�H�u��5m��oSP�R���Ο[���Z�����v� o�-[��Y_�o�� A�=��f%��4t�%3�@�VI<ŏ�nPGZ�;�Օ����N���{U1*ɕ}/lV⒕ͺ]A��s�C�'�ŷ����l��&:�=dD9�$?�s�JP��8���z��s��$��C��x���r"�����~�+y��_��M{����Xn�:��rA�2�rɤv$6���nq~g�"����:Ͻ{��[���sۆ���Iy���L�B�I��i"M!Yb{�m�(T����0֫������1�D�����O`u����oԕ�V:3ѱ�^G�r�z����sTy5�Xm'��G x���a8�U Do1u_ov��ڬM�~�7b�����ާ�E�r��B Ӯ8�p��©͞v���Ƅ&D2�~ڶ({N�k`!�!��t�9�|�ԃ�fV���I�.��N.��� r��9�%bq�>���E�S�c6vR'��_.����� (�҃���r����wJ~1��M~��� iMӘ��߬�ǩ�CC�b��?DA>V�Z WI�Lg:��f��w��{9��Dq9����h\��9e�_��܅{�|�/��.�v�&G��+�:�L 'WWl��qa{ �f>�l�w�t�η̷/ra��B� S���6��5jL'5��y�2z|uKLWV�78ơ j�Z4����h����Xi����B�+._I1�k霍���Q�}��yg$���r�룰���~��Z�$�ݜ�2�����h�6kS��o�z����k�>5�Oa��$Ӵ��� & !(9�X6����/)穸*i�4�؉�"?�y��jS˿[�)������Je(�,����c���V�P�E�m��c �p��+:��n�9jL���;k�� $ }�1$�n5��YLJde���V���ɒ�U�������O�Ƭ�`3h�S�O�А ��j��/ĦC&�۴�6�7$��͉gla����PM��6�`�B�r�Y.Xu��'�%)O���Ė�b��3���8���ƵO������ t�����96��fVS&~��g�<���F��J~���^1�a�ꬿ��PTR]a�Wz�ͫ.ץ�C%s�d�����D�����U{��2�&�9;4�]��<��{K�xLw�������h�6kS��s�����N~��,�M�!���a^k��RD�O�m� Ϡ��� v�����Xe�g`����x�pj5䨴��Q���y.�1?ѐ���l�J7n�u��\�E�ctN�� P���f���A������ m��SlT�W;<[ �iVv0\IIC��a���j�p��EN���1jҘ���Qw,�RM���I���戉]�M�v�T��� 1A�2�X�t�*[�?�$� ���=�R�;���S�����.�7dB3��<^Pۊ�\�|��GB�t�Ln���2U}"�����I�MK���E4�$�@�3�b�R,a�Ƭ��zЫ���$FO|�W�Ư'������/芦���N^�e�t�)t�бE%��"��k��0G�Ԫ�� �ّ�����ߵى6k�F ��-����yK5[��5�\= La-��P���F��|�lTiUd����8���v�bvR\��Ȩ��#�c�n�d�B���/���hLh�+sk5����� ��k2�G�&����[�å����|1,1�`�b�`�K����03u+��*��j�i�0.0A�Tf�)֡�:l��t%�����0kOʔgy���#�~Iw0���%}oI��J�J��L[nɤ_b��jj��`+ܤ�� �������s����D�w�?dZgle���Ɏ>�!����q����C�|Io����ve��(@��|���g���VQ�藓�������Vi���-�KEH�J�|M!Q�������v{�1KAVR$w�˘!+ ��go38cIIt�:�awo�fm��(����+a:[ئǒ��Y y0R�Z,��9�!�2��l�n4��T�P:�YᾑM�Wr�U p�+Y7��)�k=q��5ʱXq�v`ltm���U�!�ϡݲqz�4�k$��*E+�^_�]D=���f 09YIa� ���k%�;�q'�#*�MJ�'k�-�fd$+��#v� bպ27�K��{1y�){,���<1XLl -�)���63u �op��� �,i�M*ke�ޭ��V���D�ü٣�.��\al [���Ux�T���?��8 ��* ��Rɚ�<�z��~ os�2�(��� �ѡ��^`�c������C6y��;I��"�<����s��{uG�����9_�\�R����T����+��h�6kS���ͨ��~�J�'�P��x�����آf��,���iA���8�F��X�nN������[�I%��'�P.3ߒ�l�ֳ�q����墛�&������~m�XO�b��vִ,��G=�X��O���f���y�`�(._�~+�h���V� �9�Y$hVsX����u�^�yx,4 �6*+�k���H�>�8�n�Ν�� ���p�؝0��'��:�*�c�����ԙ-���sD2� ,mE�;8c��N=�$;e� y*� Lh�����h�oP-ߊo�8Yܡ�2�>Kl[��F��9�k��m��-f�(�.���b"�Z%}��0W�Uhz�hW�h��D:���z!�=��dd=L�F���[M!+f2) &>�k��jc=�td_wչ�^��D��Y�"����{}��ډ#�[��Y�J�L���ݱv �0�R��j��,�XIWW?���sڥ�Ҕ�8dY�<���C�n��.��9�F��Յ���e����m�|a�v�v�NMNLI��@�3k��a�����}/��|Z�鶪/^��*�t��J��T�w�:�Y�� �,]a�ڷ*BP�)N��js�=������y�OaN�Ӹ;X�����0� ��T6�/��L!UDӓ�1���u�g���g�&A�EO��2�L̡�j�ͮ��ܾw�F��P��;�US��3p'�__G����aj��㒾������'�������h&=�yQ'$�@����M98j ��ytѹ;+d=��4h�2�@�jݽzu�b����Hz��?{��ۛ�h�6kS�?�/���!7?a�����C�Q��������:%e5��Il�<#%�6BY������1�|��nz�;�"��Gid`1A7P���b�h�L���Q�ԫ��j�p���e��-M�[7n�Mݠ��I1��� �Lg�I���R���P�uz���Y[�����xwS������ѡɉ&�$�}�Z���p���}����K��^��|z���|��Y쪣�K�����$��iI�3s,�r���26X� �x0 �+��1 ���|<Ƭ�p��,~�;q���u�8l7�8���"���c�ⱒߜp�L(c�im�,�!'�� ٩i��kۉ��QM�rlV8\��R�3r�L�`��ވ�|�wP�à��Y>�u��v�x�Z��E��h�{���@��Y�"�]ۻ�K�3�yɑ�Y�{P�y ��^�� �J����$�2G�:�s�sM�BS�k��9�<S<��Q>��AbXbD��l���~�D�ğ��v�j�Gr���v��R�%t.]�l7u`3�a��T�9�,���l=ئ&��r-�\�E_ٲ�����-�RR���+̋�yW�����mnݼA�{f��k��9|7&ބ�OO���9{��@��9�i���k��Q�A}6�����9�58�c�%�<C�>M��O�~�_��_���cy�۟ezy�g�[�?�9X�5�P053Yi�w���� /dZHA4�0���̐T�4r����!���A���c�3��m �z��/<�����ٺ����Yr��Nn�{�g��fڬ�����^������HaIL�V��];)�QjaQW��ڪ�7Fe�+)*�US��yH�Zg�ơ;/���D;W?r���q���V+�H��@��\g��o]"-S�sc}��f�����$]c ���{e��~���N�ܵ�%\��W�*k��f�F7�ЪܨN�1>��/Ւ�n�0D}}#-�����J�z���\a̳�9��<���yf{�~����1;y+��1v��*,><�M�����e�J��=��L��|�&E�t����L��ē�i�����ҿ�{������3�u����}��I�ŗ�'��E����P�'�R�˛$�IC�,s!��J]䂐�b#�@���$eGs�5��*J��U����=���B2�I�߅Qn���^yQ�����w�n��!�iX-�R�����Y�u��褟c���9?�x���6�W�ې�RtF�|&�Y�V���vŷxm�i�tU�PX��"m��4����!֯d-�N������-ڙv�^^J4*Ps�EE5$����R��j�Ȕ��)ú��`��e���!&�;�~����&���9Ø��"v���kUa礨F�ޑ9�:W���=4h��P��vOb�op���#�?�r��["Y[���:&�s�~���/W�YC�̩�Y�cf+R�8^���Z|�F�舷�Ĥ����;�3��/������6G��,=�ٗ\Ɲ<Aw�g����V����0��I-(�P��r�X5q��a�v��7�L�tԮ���+��F]��Ph��p��Z��կ�L�\ �Z4��>����3T�ӃĪ���I�=�z�sd��l�fm���M�y~�/}�/���|E3����k�Me��j�!�2S����n$;�4��C�I���}?eʆ���:A++ �D: 7���\���<%1k�M�x��F�����n�Sև;�I��nK`M4!��\=���_��u�Nv�xd)�g�̅5_B9�jx�����N Sc���T�-p;�5(�Z�DZ��} z���hWm�B����7��+8^}4a�<�Mf�&=����o�h��a�����6��`|}M{���99L���`V�i����K7�����/�|�?��pY=�,��X���� ���7�K{�?�=L�v���Y^��s�lf�������B�~��U�~%љ���y�Z�5�������qH��no���*l��6EF���C7�p�TX�i�k�;L��{�O�l>��Y�"�������7���}��g��@ކ�#�!�sUqUJj�QM���-,���5>1Zls3����zp�a�j�|�I�SlC]=2i�{y�s�F� ���T����L6�����J%]�7��#�|�`�!%���O�RoO����N��y����zhF5@w,q�~����#) �������]��<6��J�R�?gM��S�>����%�8��9�U8�#����f�6�{[�X�l=cv���s��<�F ay���El��+�t�n�������u4�n�^&�<����E�� �=Opt� �N����yCn�G|�H���4�������x���╟m���)�l�2��v�U��/d1}?���X�L�\��H�]#�MD}9���0Q�%��PfTVF.NGKy�ʂaJL'�?��]g�6kS�?�5���'�>�W�f�5�-v1fA6�I}�� O#/d�kG]��Pf�D��"�*�рߖ�ӟ�<W;e�1E��YE�<&x����l�������v�� �m8y;>���t�&�큡�B� vۑW=����Ϝ��=ê�ٜzr��L.>�;S�N�ᷖX�,���l�������F��g���nk���n�Ζ�F9��a`����,���ұB���<<O�6�V���+9ȇ?ϼ~����x��k;g�n�p�=�f{&�ML�É��5�Y?q����A�����a�DV7�%��mr�w�`OH�í�"�<KNװ< Q��Hr��O�����l:��H�ֆ"���!0�Y��J#h1��Q�{�ťF�v^Y�ZM<+��2�fV0���&+d��U��1���������/��7mv��ڬ�_&�6�u�=����G��7����J����{"a��hz��A�e�s �P���g�MԪ/UKF��8@�%GJޚˆ���ibtެ�2?�����ŸP�s7��[�D�֛�,�9a���X���2��V`b"�,3��`�L�q[s&�ϑ�R����j̼���Bh<6[�[[��ӟ�&�o��惡��� ��n���l��..u�m�ޅp[�Al��V�q�x��N:�F�Yr��y0�1��Y�r����r)����+�9�;�}~m�q����YLs��WlomS��{ΰ}�fuH�e<CZ�ayXqП���M��� }p�no3�g��#�x�����7������] eCO嵅c-|�t��!K�ا0�Z�H�J}��g�����/��}�d=�l?&�|������� W�hb�Bc/c�J�Ν�xG�������y��_�;yו�����O^�mv��ڬM���W��/���N_o�6���zR���D���J�����O}�CL��b������AsN;�4��5螁tl$-j��F�˸]p�R��;���,�D��N��焅�� 9X�x���j� �1�� kv�H�@���Ո$���f���ɋDv���)���t[:��}l#���%��6���ɡ&.���'7I����ݏ��4t����κ.E�H�40�M"�iY֒Z��|�SrU��"3*�]%��b���o���(�$z1T�[��Y�Kt-�hX-{������y�2b� V����D���v��9��邼|�����?-�mFH@������^g�Z|k�D�J:g�s����Wa�۹�g�a�a*�k�� 5,! ��V��d�Ӻ�L֟���5��ys(�a�"��J��^"�#�CV�� +�{�K���#6;�fm����;��;/����o�M?�9���� ���JI<�����mc��Lx�������t�酎���d�L����z��L�f�g��P����Dl��KK��0[R�����d�� �|&/�Fm�m ��@65�cH�YBۮ.��!��)�nC�s���*�ؓșt�N����|�6��Y��1yB������;�nx�<?��b������n7jp��n2��ڦ9W��je����n�c,9����N}ͻ$NdT����;�k7�H�H��ȴ?���P_x)�vʪs�OX�L����5�.�a�&{�r ��<�]=�t�.��� &Y��J��Y�� R(+����x����s+�x��̟$�E*=�L��rc��0U�U%�o�m �m����.����5TcO�8����}A5*�l- ţ�U��g��G+���?�=��f�6k�I������ߞ���h��O�C����U��d�,������>�x�<��V�o�j[�� 3f�ܐb��bl��@���^7������/T{��<�O.���u9��ԑt���_�`I8������H4R�8l� �|6`+O�����7���M������-����U$-��Oz`B��{v>搋��Q�S#�b�Pm�n�+-��ϥ�.UΦ�v\��y�:�2K���f�w�L�S9�ӡ��*�� h��l���o�!e���'����%oc̄vu��zU~�� zQR�L-ЯC���� O�~��Y�VMk�DF륳�2j��v���������*jk�o�v��x۩qL�i�h��^r��8��0(CL�CF)���l�<�k���5�>wC۬��tҿ�u���۟}��k�^�͌6��-��b���|p�z�b�ߣ�nX�)�;�����L x˒O24;�x$j�&r�D�|���� fFݥ��phHXl��ђ��!�m�B��3Y#��L^;�!����_-�k0D�2�� C$�ۄ��.�9r�4g��uǴ�8<�F�rI>��e��f�H��~�<���3{x��+lT��,���iw��q�T>�(I��z�<�O��/D1e�{�=�S�8��ib�~v^g¦�x�VL<*ͥΩ0���9$.�C���-B{B2��S�i����Fekڢ�2��Ϸ�&êt�? #Җzr�Z %�����GY�A��I5�u����_8 �ր��5jA���HוT�i��&:Z���VM%\ P�j�s^ԃf�x�>��-�3gom �fm֦H������yߏ��ꙷ��n?LS- i�.'\���n0a��l�����p�P��l˫�j���#v^f7�����L&ݪ0�!o�հe�!6�Ԓ���9Kġ1��Iv���i�tL�Yg<��Œ�JA�<�J�fi�u���x`ข����L�G�+R� � ��dܶ�V&˱��h�����/mѼ`���,8�i-v�a-.��X���I�]��jq����\2�K��D��E�Q���9� ��� �gA��fQw�"7k�3��h Q[�T�Zl��(��{Փ�!����� �W@���bp�4��M4$ë.Y�d4;�v�^�b�+���W)ZV��B�K��o;�V��+/z��P@�:��>顁��|D��uQ��p(�3�$L��H�b��_�mv��ڬ��_�km�.|0�q�WO�؋����!� ��a�١;5����6O��j+P7��z'y��'uwC��1)c�,�@�3���ޓp$<���z,C�Bm��dXA2g�� g+]0��j����� �@��;�`믬�@l=�L�4/���SR�ASal-s�UO����}�%/3�v��u�1���x��� 3Ʉ�<G���⊅I+�m��g�⚵Rֱ2��Fz�d1-Z�Z�z7�C�%�AION J��֚8��!�$vlk�@���LV����.�o��kJ��"����vsePw�N׃E ��>5�I��D $�jFRPo� �v��9':s�D�g�h��FZ�Z aQb�|[���Hl����S[R#�]*f;ŦT���Fc3�����ޕ���[��L.�� f�6��ƻ��\�{��s�~���Χd���ۘ��:��� מ\����=����!労r���O$��؋�y�mO>��G��n���Č�gJR�vN�p�c���DE҂�Ȅu�o^�y��+[i�h�X"� )�dn�[-�� ���G�� O��;"J��%�xؓ���,�Vf��:G>���fOw�m'�=�SS�~�=<��;�� ��I�.�95�)2�-y�E�W� �ckt���LM�.4j�c%�nЙl��q�Rc�-0m0¶vY��q����p�2�Ʃz+���݊;WҘ̰8:k�6�� ��j���� ���\��f6��Nu��[;��I�(ʺ��7U�>�j�j��嗽��^��Y��%o�h3"�� ���S;b�32[�@����͎s/� ����fw٬���ߖu�����̿�Ղ\ט~E8>G���8E���dɼ�y��+����hZ��y{�+KmB� L�#��z~˱RX���D�_ Q{݄ ��'d2�՞ّ08V�e��)-W�n���J�&ݵ�2 ,*r�_�=y���&d&��"�2�N�f�fF>�Jj28"q�(�<�:��կ�D�y���9������<����ׄ1�L�[LR��R�6�v�.f���%ta�\�x�Z�(�a���j)NXQ�� ��9w������ :7Z��]���T�N��H��� ���/ı`�:j���V��l�E��"^���0�J���� ��y�tF���c-�z؈�H�ڠlnE2� E;��G}T7��UҼ��u�_.�V���M�re��nv��ڬM��m[ӝ���_�]�]�6c��͜j{����S�S�i}���̊vJun��2��1Qi/��U�Ɩ�E3��T C�0i7��U�0k`�*���s҂k�k���'Sk����2���R�X�.69�՞���fH���3%��0!ׁ��n�ɖ\APt��߫�1{�=�G�t�%J��غøH<r���=���]n��&.S�fK�HB�I47�M%�~NaH s�Х�^anө}�&���讕𤋮̳�d��^��%�-g� �(Ż*�C���R�^��O���:�c��0��ҹ�^�\Q�<��5Т�VuVAav�OK�{%��on���W�=Ƌd.��&[/�3Q��\�+P-nK�xF^�?B�K��?��ͮ�Y��)ҿ�k��_�=�;{֭p�}��21��r{k�R�-���"0!u�.c/�]˜ ��sʾI���+�X!q ��nx�?�al)�~q7X���X:��%���5�Äю�)P����'c �8�hJx���V��y���̐D�E >�b�5�0i�xK�cH7<�'�J�y�֑�{f���<�����?x�gY����܅1���S�A�%��a�[�[�w��q�)ʩ��Z�F�c���]�#���%��2 ��J��8�{���Y��P�R�2�h'�r�J���D�.jgO^��.8�3�d�)�2�WQIu����,�Z�fT���}�j���Ȱr��l|��ˌ;%�\9����nv��ڬ�����3�� ��}�;���c��1-��a�J �q.�V/�����>�c�^~57��Ø�J0[��ɬ������%+R�ڮTFa�]vɕ����G�uJ�>f�>�]RJ�Ό��HX<K���uz�(�x�粔ʤ�T�.bza��R֢o�ϽZ�x�:qi(�ɣ8R��1���=t3ѺŅc�Żg��z� �!]i!2�6�v�ڥ&���Zf����F����i\��5*����(!)�H7n ����6�|:���e(�,�c����S��Z�u'D�V�Y��l�lV ����5[�;�25�!����z�s��+��._�Γ��KL�Q�!���~��ǎ�c�js"\��#��+m�w~�/~ɦGج��t��U���/�y���w�>�o�I��S��<��O�/$�����Ͻ��Wߏ1S"��2!N��Qh���u�3����X Zac�ĉ�kR8[��(iR����p .0���vD6���u�u�w"�N���=��)�^;� cO��#cL G�Q5'�D�-�*p��G�Y��'n��Yn��ym��݆�xx��v�2f�c���^;n#��7R`r�<�<�^Q��ZHa6 �U�����uf[4�}��`' �J�rN�eH�ϔ�� �*��t*��,L��l)���캙(�:��]4�H��kAMv(�>��Κ� ��O��P�ؒ�P�ڂf/(�w*���:�X�T�o3W.����s�~[V�~�n�w�%�O��͝�[\{��ƿc�'h��m[b{@�s,G$�{lO��7��W��]�������(O��PF�l�d{2�Zfawk�jz)�ٮ�U�P|�]-����AO���w �#Y5*��7�bx,1>ѩt�Im���w�f�'-ܙ��I�/=v�_��l�B��>��x�����0��H^E��X=ܙ����R_X��g�'�$��8|��}%� �Xi>�dO �Ss�"�JN�p夃�K)��Bl��֕�ҡW��_6j��e-����X���al�pw�U6��=�Z/�q�2U��B�ӵ��^��|�:ՙ;YIr�yG#�K���� 1�;��������-v�,,5�)�Q�8e��,���G�����A6뷲RwL��/��}����ؽ���ˈ(&�^5�?�ͳ���fw���á����7�a�%_�M'o�۵�v�.سT昔w�܃k*�������U�����Cr�W���u�kw)���ęW�#��y����"��Ly퀻Q1.R,F0����z�4���l�w;��-9�5�^団)� a{ۻ�i �KY� �❖�C������O�ם����b��ĕ��3�����9�� ��+vW)f������6�j��̑�#�QbZ]rn�klJ��D�v9��\(��Vx\gǍ����S/�7U3�d5� ������l/�5�Ny2U}���+���UG�47�j��������5��k^�ͫ5m�%X&�A"�����+�S �\v�+����c��� d���Vx�|���_���[;u ������`GF=1�[��������uL�����������7�܇�Ͼ���/\7��_��x�M�B}�����k����̶?��|��|_�O�����/��m��\���v�K�.`�j���R�e?�~������W��m�;�կIkw�ӂ���l]��""v�1���F��H�k)�mC�f,V�Fk2�V��XZ,�)����5d.����9o�EF�t�=#/} 9�s�E��eLv��g~/P�.�Ӡ�ΐ�t��M�6Y�j�F,���}�G'��S�.x}f�q����8r�CB�����&�������q���z'��Px9�ÙfC�(�����V�<FR�����}�5C�XT�ZL��U���,�p�X��DĢ�ֳ���� �8X܁�6W^��Û]c�>��ҽ�+������$�;��ir?D��ϭ�C����t�+40}᧽q���J�!ؗnf��������ag�{�I��6�3�~Bb�٥��p����勺k,��P�VA�W(,��Cl�O:����jԵ[:Q;��ʼ���*S-�v���(�0̩�Qqv�\:Jw�VģJ:fӫ���EK�a�u�-R0K+?mrb�)>�:Ϟ��'�Q����KФc7De��ذƫ���'=���@:�%��LZd�3�G�8�����'b<�5�R�]^�Ds� �#:�* IR�`�2��ȯn�ENO���n:[0[����w���u�D�U>6�3�@rs�*�r�ԍ��/�o�6H�;��RP'�j&�<څ���e�M^U�E/���^,D����:w�H�O���T���+|�?��͎�Y���]!��'���_�}<\��?�<��3�O�d�dj�Yh����V�3�zK䇓s�Lٯ3��G~�S�~_���=��m:�ߏ�ԭ������&��E�o�/;�Ɋ���K��-��o�Z~��>5<� ���%c���rWl�a-p�\C�J {���T'ݭ��g�}3��&)- �3-����>zB��ׯ�t�CQ.�*({;��YA�{�ٴ!h!�kX�����&��zR������ܱ�C�O�s��HK����ݙ���L�[Q�sB��A-8�j|��='$�Zc��K���%-�٩'���*�U�|�����'�4ʻ�ݮ�n7�5ͪ��BS��h��@�K����n��F��I�nk�~�N^��H ��H�'=j�j�jԍ�4źx|��I'��Y%��&o��o��ޯ8���n�Yp�c�w~�w��{�k���>�ax@�wV���[�P��(�!�~u�l��_k�{m�I�>Y��W6�~��ɳ�Ⱥ)[� �Vw����̍G2���X+E4i�*z�.�~������ �k�ݧQS��>�d�B]��qΊ�60��B�S��ׯ)��_k��,0�>Oq�ζǘ��)OGֹ�����*n��.�V�t0��[2I[�l�)����8s��G�� �KЫ��$�UC�n����m�xbJX�7u�2��),�W�:f�]N�)�E��'��N:'�妬����ԭ�0�&}��� ��wR34��!�*��7SIߊ����5��,Z��AL��O4�CQ��?��,Q!���+p�+�?�G?g�Sl�Z�G��.�����9�~u�}g�:˵�)4�����0�� dS+�T����������6�W⵿x�����M��}���������f��f���2�>}��*o>�䡳��S����r�~��X���Pu��X=H�Xw��.�q-�/G��q\������i&Q:��@7̞��j�z�5�[v��yv�1tZ�j���JI�*���AB����9�zXh>�q�PDj � �����I�U&�َ韪Y�k�������V]�J��3R����n�F*F6Тj�4K'��VU�g;��L*�2�v�Z��J�XPS�������:�L�8��57:;��c)�Q6��A 6�]io��z%��"�����U�2'���ktf�I�_4㦇t�+>�s~��|�ӛ]b�N�p��}��O���c��U�~�˾���S���0�T�3(g�M4�V�T�IꚝʿWj�;قi�c��-����|�?�{�=ڰ����������~���@Xx�j��������<��;�t �'|3��;�;�~ �ޡ��S��9U��ߵ�]�ґ9X9��������ܺ7� Z�Q�Wai~#c����u�R&���R�{M�u����a��F��8 Bbk[Rj��+�NCA�{���:"�w��V�2Bv�]gqUƞɴW�k f��R���0u��(��cG���N XV�Yo�n&��T�G�����α�tݾ�":y��@����<��^ �PtK7\�`%�������{3��������R�~�Q���鱩8��B�3\�P��:���?�G6��ͺ�8����w}�O���mM�S����p��zH��q�����*�5�uÁ%Uf5 v���>�>�~�y�����f��;�N��|��br�7|�#���e��9��a��;��a��/�B�1Ȝ��a?�puu����f�9�Q� ��\f�c��}zf�Nw���ɖU��b��O��j�1�&�)6m�~=8��jU\U�ԗ�t����~�n\�o3�R���N�Tk}��3��!Ɗ��"2#W ,�ZE����f����WtOM���'J��h��J��Mf�.ت��N�묳�z�lh$����9�U5j6�~�j/�VR��u��d�d�c�5)T�H�z��� �. �D�5Zd��x^hq����`+13�N b�Oz��L�x��N4�Q`�+���60�f C��w}������?i��W��j[�Ymj�����G� �!i�c?��v^Ze#��W@�+�WY��a�u�?������c���ߋ�����yU�}2�O�|�W�I_��#�O�g�'��u��t�%u&)MNم���⨀����9�p?*��8*�n��B�k�G q�I�Dj�Najy�l��y9�!e���;z=>d\Պwx� ���l:�C�c���5��ߣ��|���H�f_���0k6i�H�0mG<1���Y&9�3�[ݱer6Pm�I)E�j�F�*�R�Y)�����S�Ut���V4�9J�5�aK16��Qmw�Q�T�D���HR�6�1�z�|S7�س��d�/ zIEM� ���Y�:J\�J�))_�V�陲��������o���/|�fW�,���7|u�����||e2e�70XfΦ\kI�+��˔{�����`+ ���˴�����&>��e�(�x�� {w��O���K��7��H��z�y��xۿ�=�v����\����y�#��S?���R�T�dJQ��W#��~yl��G.e�"nG�s?�Ө�.l�16�I�bԂ��af�'��`�|s�k�ZTf� ��q��[|$s6:�o�ߙ�G�ȁ\K�^��6������3 �o�#&Yb���r2��c2`�]�N v��Β �dr�HmEeJwÑS�9�E��5j�a���FJF�.L���Pޖt�)��k�բ����c()]1��D �V�r��'�j��4����y}��YsT74�yr':�w��.��)ķJ�R���9��1l�[_�� ����n�Y��-��~�o��o~�oد��Ŭ��N�aQ�_;��F;^����y�X3 չ8�jăz�[Mb�{�n��e~����o�?�����������k~������R�^�������l�/�I�8�1.� RhR�T�N�M�������.;Q�=��8���0�lז��L���kRX�"����;��U��V�z��YZ�\��~HX�*�0�èv:��R���:t~��̋����26p;�0��tGjkR���2H]w�y�D�(���$&Ԉ����4ħ3�������=���ٙfM�-�}�R��ʚ*��^�`) t����W�ک�L��X��ݶ$diH�m��L=ǻ$�&�9(��F�h�,<�|�5�өI����B5(�Gq+��)��Õ����6�{��~��-�l��d��j��ɩ�P�r��ѡf�@n@���� ���M��E�I�r"�� CV�d �g�_��M���#�]�"�a�������q~r���ν����L�_��:����1�ci��0�d�ʬ�#���ӑ��tZ�d�4#��~�P����>mi��ku�PČΐK�F�h"����JQ��Z�u=)��ťҮ$bZ��V ��5�v��cyz�Ky=\H�)��|�!{T�(��[\ݓs����ԁ&ꑧ��ְy�!Q��L��������w���O�p��,�XI�2��DꑝZ��tF�Z�V�l=���6���z���Y�1W*��(ɬ]w�{��_�Y�'�9d��WRl�^�1 ]t�i��!!Vs�R��ї��<�Φ���x���A�ɕK��w������~���ٿ�G�?o﮼�u�����Bz��i��,����)�L�JqmU~5�����]�ŀQ�9��hs%״�ɽ��y��y�kn��G���l�L�+�����{�����C'o�I�� n��!��]�] �*{���xےZ)�);b�hQ+���.Hy݁ːk� ��o�o��ؒ�p 3��K-���fw����UO�'�l�����h�Y�Ƀ�9�3��q��9Ώ�+��t#H?k���uƓ���+rg�jC:z�+=�TCǭ�8����0�M8�:�E��DŽ�f� ��$�x��%{�p������T-�gj���&���ӂݖ��;�u�F�������e�f�+�nz����kGF�>��P?UX;ê���mt3u����a6��l��� W�^��G���w|����}���ջ_��|�6��z�G��@^�u�p���:�˄V�F�t��U��є�-"Jg�Ԫx9��� H�-r�;����ߩ;��\�z�K9�����yS�V�q{����o<�v������9W�����K�m���TN�WO��%�D�n�G�����%�V$�X+���h�DJe@i%ϐ���͝�ݒ���zk�%(�Z:꼞 �jl�Գ�f,+9Z�L�Y����QVʹqTZhݨ8��]�}���^�6�$�k�I䫵��Ǥ�~� �V�V�\���A�ۈ�nIw�5���"��5"a ��dg1���������0{�v���m�J6�~!�:�,9���mP�z�+�IrJ�����*�;���Н���x:iP�+]"�*��٨b��KK�,�fSW�d6�"��&�a����%� W���7�ܿW 7���)?�o����9�F�J�r6\%>�n�z^b�1/��C��Nzh��;>-HI��1zֆ?hl�)�%@&��!��^�j[�������|�=����������p�/�����_2U�:�]�߫1�-Y��L��y v�?���ԗ+&/�4/IT/�p��E�3�9��2�\J��d�5ݐ^퓒��߶v�M�¾�Y���(Z�Q c{�_a]��"�5�$����1���a�� /2-�8�Ut�q��1���lu����2&�#O@��+�gz�h2v��L�u��٬�p[ c�T�~�7-�����I�/�ImC^8�mG��i�4�����<j��@r/��Qyj�i5�$�3�u��n��u�t5*����*�-�Rx��lrhLea��^%*���g���{%|Ur ����l�NS�"����b���ˎ�W.�wo�b�W���h�����o���؏����r�4Ҡ( g�v���6� ���섻#��N�#�h�'Z��u�c�[�@XSUC������o���/�����ߵ��aw�άzvO��>������lR���� ��TY���zҲ�T ;ϸ�b&��\�m;�,`���F�;��i�6�5"�t��3��aw�y$g�tNc��4�ҏ������'L��F�6a�E��1ߒ�d��x�����[w��(�k��]C�Y��9;ͥ6�79R���^R�@���0pXI}�#'K�3f��Ke��э�?P���#�5xԄH����'4�z��@������Q�k_] x��X�6#�w� U�2[���Rob�>���O��Wh��b'��TjL�p��j�a�νW�Z�IaU��M����ʕ��io�}����m���?�������?�O��w�������s���!Y�уiv�[��6�(٫H����ʁ�.w~��^��r7�{̥��R�C@� s��ݩkY���C��b��۞�{�������G7E��xM_��'�G߶߾�}o�}Oh#�V/��R<R֙f%�ؾ'.#�L�]�M�Of��M�L�w;��e��iK�f����憔E��] ��.�V��N�Y1{%\��V��d2��CW�żF���3��:�'*��2�B�f]Y���DJ�U��sΪ'W}��K��I����0��y|ь�]VZ��C�R������mq�����n�}�[���3���>��nN�m���2,��.f�BJٰ��������$b��J7TfEϜ��3�n�u��WZ-��4 "Tc]"+]���A�Y=��j��V�rez�p�{��6w��\�#>�G���7�����w��W�9{N��R�0���;��AIUA�߲�����k��m��z�?T��N��Ic��n���q���X�>:=Lk�<�J;�&�-�>r�9s�q���w�N��[���ق��{.=�/\&]��&Zr���u��f��xc�)c���#�$cj���g�B8u¸��!���i��<� ���1a/{�q"t��xM�$*���vi>��P0��G^��d��m�<N�*�6/��T��r)�Ÿ��ӂ:�"�H�����z�Z���ܓ���g!��5��i[ �W-!R�G�gN���ru�M��YiMpK#�6�7p��g�z��ޱ��c�/��N7�R��I�Y$�Zc2W���{�ewq�� ª��ve3s����a��Ʋ���lT��p%�>��qJZJ7��b�k�t�r��o�`y R������̡?�����������oz���&��Z��� #M����N}%M�&�V-�=_�1}E��R��a~�c ��-�c�Ѭ�~�IjI��^U�D5��;ؿ���?�������s߱)�����#Յ_���ƾ?ƹ�����x;�bג��z��h�?��_��[�D��Lc1u�|�����a^Se�pg)XrL�,>X�S��q�; d�gG�b�::��5*8�H63>C#O*�N]&��N��U�t���@ #'�ų�^ZaI˴�(�!�WDj���%�n��٪hw����-6���� 3Q]��M�F1.�����Z�փ.3������T�\�#��=�!3{�1F���Lݽ�"��!���B��.� �l�/��Md��-7�C�v�YI/y�6K�ltV��K����N%t����A�eN�E7:��U �����C_�}_D�����0]�淽�{����st��`��HQ6�\��D%�V��N;Q�Dx=v1.ѓq��f�����ݶc��q�A��QFEz<��C&N;~�ǏYayM��I�n���QC߱��������+����"�a��}�=�Ν�᷷H�L�f� �"7��W��v�. ݱ�[�ќ�<�@�x�N/HP lA�3Ser�`��8��ş�2��-�bm����i ��&I��3�;K��0�L>�Xm�d��w�?o�+��]�ӥSu��D�k�'r~b�zR��N-�B���C���(�yH�x�>��A�,)Wj�"��a�@�WZ{��Q~H�J(��3ȳ�]����%�;5q��y��<�N9+�x}+k:+���.���#���ճ;khF�@2���/w�ܭ�4��C�RKD�(|�x��v6:�Vn1g�Y ��u�<�Ǿ�����[7w���O�������<�W��g��r,:K�T �(����^���̞�p� n��6� 7���~YC~�� w�6�ᬟO�A�n��j� /�A�i4jV���:���^�k�~y|X��M���Z�����zwJs�"��k�+ȍܨ�ʮ�JfTĄc� EB��co��^3?�Lw�t3���*��|�N�n%����`��0��"����R��������%,�l-f/�&�q��rb��:�I���L����H������ ܒ{�"F�m�ˁ&�o+E3B����c]xO������$;��Gg-��j}g�����T�i����Z�:[;2!�c��=��b�b��&[��H��ΐu|�h��D�d��0]��TV�d^ mI�"�C�j+�I���l�n���l�Y k!�]c�Y�kٸ�1W.���?�����n����|��_�?�W�1^{�Ad�?9��V��\�N>C�+�E҄Q�-ER��p���q��b�F]�8�і�;� �����!3*ҍ�'�FmB�R�;EE�3u���+��+0��)�� O�?w�?���"�a���9&g��۳��v��oքe$2e)�ӯJ�`t�4;���\��B������K��p�Y0�[+�-�����;�1�C�%�2�`���Lc�<������ˤ���I�&�ߤq$c��DQ@g0�'� �iK ��N�EW]\�]�[w�f��n%�cȝh�Rtw�t�:`WҞ���`d����,6��Ө{O�k�[�Ǫ�u�p5�^ѓ8x�6{y3Ut��aG���zw+u?��rI�IN*�Y���a8�E��T��B�&kt_���Vu�2�Ƿڌ(aơ��:?wV���K�e���6W.~�G���g�����p���ߛn}�7�?�zN�Ͼ���b��=�.�Z�3�j�ͨ�a�Z���Q�f�Xא����Q�-]� /3�q�.�{j�,3����xP��9E� ���Z�N���BA��=�WO>�����t����7E��lu�罀��5��'��9Y2��_�n���l�A;<-�]w���KXw�r�f�\e7U�|;b���I�Z��K�������AnB�|�M"�,��G��2�1>T�u��[��� ƁٍxI��ܪ]��TV�5);\��7���0ɰʸ֒�Վ�xV �,A~~��$�c��pT��1�#���WV��iI���}��;I̬����D*�I���h�k�4�!�5���;,���2�U����V|�{%�y��ڡ$�X�����*-����,����D�=���X:�d���bй��ײ�Z���&��Bh�s���/?{����y���Cx�i�����r<���F�}ۈ[^��2va(b�������"g�Q%�ΔN�f�=Ǹ��<�7��yC��J����t���ϥ�w�ר�XV������ٵ��B�u/�|V�}/`v��;o��/���#�<}���l��� ������^Jl{V�'�����E�N=Ǹ�s���^�a/�#]�I�&ēcIEZ�t��):�E��W-����G[� ��38��L9c���;��%Fܞ�>�'1p�a�gg0�!�!�H �j���Y$Y��8Ӓ� ��6Kz�Jq���e=F��[�])9�1�Tx������[:rp���&�-A�}Ph[����>�!�cNm� �Zjc�=��b�LG$�´ǵ`�9&�5[�� ���@�1 /��V>��2+��̲m�g�'֣�����r�M5z���IJQ(�ɟ�ս�i��h5��i��r>Õ����_���o���=��O=/���OW��c� ����~�:�1)���譐� <F'An�G[S!n�S�߸�u���qǜ�S����)��tA����c����n��8��9Jꡚ��BGC�*"�I(Q�n�*�*ݿ�����~e��ol������G���o������}��н���䈙֝`9�C��ݖ<��[��cv?��0�{��Ŀc�#�P_z%��!�8�ڭ8~�]�����FR��=�S,{��V-= n�c&�����I���$�_Sg�و�J�c���b���v[�|�K�u�z�",���z����+#Ug)�a�I[+�v���WE���H/\� ��f��7���S��S/���f��C鶵]�bQC�vwB���%SH��f��;�����ɓ��<�^��'�n6)+Z��8����Q�i�����x=擄���D� fu0�Z��v�A�Xec��(��V2��s%�wT�B�iy=Q-@�W��/��Ï�ܼ+�s�]��>��Y��k�u�]AlօJu�9�T�V���bSk%�͗N���N`ըP�Ӻ��TAM����,N}_8U�O�ǫl���U�]��<��[�H��P���E��C8�������p?���K~������ �xw�n�MWo�o.]x����i������!�{��;��'����Jt�:�Ui�z�sW�% g'2�_pfr�;o�e&[&/��}o�|B7cr�v{BZɕ�=z��_��o/�7It�f�-*���U�2�l�l�L�703I"m�qa1�%[+^�'� �9 �<�����o���,��U���y��Y*l �����4��D�Z8�d��;F�T�x�ɽܵ����"��*�a�O1S�s�u )����N�O,�34��3�\ט�y�����x8p�gn���N6�!�9;llAO�QC7�S{TW�?�+���l�����DU�-)�QC֬f[�~��B�Y%]��i��3^���'��������Ѧ@�_�}܆������|%����:H����[9�����\gV�Ճ`�����G��˽�6�I_�Lͨ;.��p�Ȩ�u��|Zjw˩ҩ��ȭ�n|\���D%F=,�ז����㝃ܫ�;��UC�Ԯ��Az �#������?o��/ǦH��a�=>�������/�ٟ�!n���� 7�p��=+u�*9�E d�Wdz�+[^�)N,�}�eRl��ΰ���S�ez�4�w��m��E���z����q�-�B��!'o}/mG����%Z�9��=v["&��`��[�$� G1��O<�Đ�%�1��iL2�'҉%,��Dq0�0����7�]<�N���,�?���S"G�F�פ�5s�oG�V�\x�V�~p�f�bBO�q�h���Qt�n/g�� L���p6a�1�h��� ���g���R���ӹn6Y�X��-pŶ��^;��Ln*��[%��Z�J���}�,E��|�iG5QXO�'�a�Z=͕��狇���&��*�}�����o������I�D�]�zgt(�Rx�����s�o�#>�qz�����SEՍ �9U�OK�NӚ������P�kܡ�߷4����^k�J�<t�9 Y2��E��u~��K�ޜ�\��c�J����p|ĕ��y��n��H8��¯��o����?����O��_�5��n��9y�{�^���!,u�4�ymG]�EL�d;�?��D5��Ȭ�*$2�������Lާ��b�/�g���cvϐn=C<9��~��_|+'�}���DŽ�Fd�q��6�s w1c\�D��U�Oepd=t���YG^Y�@n �ҁ����r�ߖ�2��: K�s�]g�73��X����%:& ��6����j�i4�s�?~#b)��N�*�b�d��ݘ���%`�$�7�z���&�C���x[s�'?��+2��Ήc�S��h�4?�4B'3��ˌ�TЪ$�r�S���hX�{�A�$jmfVPmijV��tP7bXb*�0�6KN6��`�Wv^xϵ��Գ��ܭ�Ǡ�����x���o��f�U�>��\#�,f-fوs\.ݱe��¿E�w?�<njy<v���=5�>���'�?�*���Oi��S�Í ����X'�DE� $�TP�F��{��W���e�~�^���Bw�+f��K��k7E��`��;��'��W���}ag?�8��=�y���y�&͜��ɓ,��DŽ�+Ҳ#��*s�j�� �����_�#IS��r}�n�����%/d�/�~�4$�-T5������ĝ�� �[W鞺E����^���0g"�9��gp7���LN� ���!ު�|�Cˈ��Bef�s;e0�W�f���� ݚ)�뒈�t�k�������xWk ��GO�����ߋ�e~k��s�W�^�rQ��9ܥ)�^#z��)�p�E�9����Ϫ�2M�-%�iw��8���'s���ە|M�0�UMgh��M'��8�*�g['�F#�A���T�U�����Wv_��w����~��N�=�.�?��_o��?��Ǟ��3���P�l���t���5�A�\�Y��ҩ������q7��O��ַ�A��b�Nu�<G�U�;j�����h8�ZW�� �:�2�ViV2# �v�E��t����Jgm�E� b�ᏤV^G5��n��&W�~�����W}÷m���j�>÷]����w�35��1���s|��ܥ;��җSo]"/��cM{bX�<�&��-a�����Jns6��h�+^�q]�!�X�YHLihvv����E�{��0;c�%/Y<�8�S�8zۻ��.�� ��mcV��Ǟ��$�K��ß��y&ae2r�� ᖃ �R<�Moe�Q��d'w���t��eS+�T�aQ���'��<ˑ�s��6�-'!%}��Rbu��̌grEq�>����s������V\˪ޱ���~���)��N 4 �TIg[��o����t~\9錻(�p�?�Ϲ�d�&2����F��XR �f���BTȼ����+�>�o���o�C���wq�u������p������R���5��k��b��X&�w�!PB �����;�5�*���dz�q7\���1c�>���S�x� !�J�nٟ��8̖��t�|c��q�.���"Oz��<̨c�1�e���ϡ���wK;��٠�{�=��1W��ꙇ�.m����.s��l����L8�L.������gqΐ�ew�r��y��l\cI��p��E�nI�����=���ڭYr���Jx �(�&KV)�8����^�=��k�}�G0}�rXQ�e��!iu����a���h�UR[ӌQ/nW'r�a�yS�x�v2���<����Nnc�t}�p�$�w�������0�W�Id�ʄL<�ײ�Ȕq�]&�h�U�~XӰL�7����m��v�Փw�y{���1���gTӖ�P��q��;�_⟷�jt_P�j"9�)+a��:� ��Ge�L���J^��ږ���k��Ԯ�;� /t��}��6�y���ހn����П����|�_�ܝ��+����t������cƮwF�v;Y�aΨUl��-�.֍l:�`6R8 v,)#�ҥ�S�t{��> _�ށ�'~���4�a�v���5z�����A`�R-l�R�5�M� +-� �'�OJ�Sm��cҨ��:Z�jɛk�`y�+�}/z�����l�����O��o}��?����w1A>���:Gp���X��xFdBdw�;�8�tZ19�`Q���U��cI��ae�Q � -����l3��Ha�K�,I�&L�b���uMw�V�t]O>2�#G�&C��Ǣ�>�psU�����%�Rf0�����$:�hI�!�,yi`�$s�օ.$=k���g��V�#1�W%�Epg ��Nn8�LYR�$���&$��:�;20p1�v��W���c��J�IE����2#�VP;H�����^Xe����̐$d5��X1M�g�M�J.�l<N {�Bw�m�<�'��������l��ߡ���亂���?����3�L�ٷ�H��z��M�s�;���Iq�J+E<�����z����%T���6Gy���t!�9��i�z�1.�<ǜ�Qqv�:�����4B����>�*�?�gE�rfMK���3��@�hXN�r-뇑A�ˡy�,W.}�?�SӇ��6E�Cx=��}�����|��/�{�Y@�2�[S�+��%�>��S�Y(�ڑ�(x{���L�54�����35v����`e������̚SE����G��rL�,Q�e��1j�"Eq|g{q�bE�R��qS�{�l���7�]��$ɍ��0M���D8��UƺL>��g ���D�y9!��y)ҙC��n���X���&�*sx�s{�1 K��hIt$w3�s�:��398B��c9��c:�f$a&�e�a��OU�nA7J+���5W��i4�B7��U~��:Ҥ�d�:t���W�,Lz[k� �O@����������������)/c+_��_�����w��#>���@3U�Ҩ�M�眴�Z�3D�����[��-�;�]f6��y=o6��W��ҝ���0X4�ݙ��gs�qͬ����s̬Dž9���3wk�ͩ�@:�t��������?��ݩ��[�a8#��� ��j!,� ���)��K��p徯�P��H�;���}��^�������8�6�I9i�F����`Խ:hiL��4*�rd,���j�U��P_��*L[l$�(�})!�o�h��#�a��λ�J���/R�\|��5�=9��L��p�\e�T:������c��'��L^zb�������^1Lq\�X\�\�5aICGfIP{lՑ�3�vO�3�X(�Ue������f&�Vu�ٌ��V�C�v�Y7^��숹j�ܞ�0�sT��,S�z�D����=È��xw:���߅���{�o�����X�SO>������k���_�����Ԟ�J��*Ċ��h�7�K(���~�0�q���rJ*�SG�8�ȩ\s~tK�*,w���M��*�� t���S�w?��2�<�0���q���|��H�%��Q�R¦���V�9(#^���g`4NV;jZA�LRG6M�;|�+���O\���ӛ"�!����?�m���}g�vĜ��H&cM��Oq���H��A��CO���RR��W��m�$��W���]�n�� G�����4�G���@G�.ȃ���1���V�jv��S�p�s�\e���V��I S���H��v�1��k�:�\�m�p�A�8\��[7��^5,��^�hI8���g���z;��U��+�*q�%'����e��5�{}ÇRD5� FmZ��an�2q� +���s��I��Ѕ��j��V6cd���鬪`q��\9���+�~�㟶���W<y�7���[��E��;_b��l��w�\��������pj?�@�4�i-,j-T��Z��pP���L�ua.� ����=����֛�T�{��=���k6N}��y��Nٜ*���s<�˹ ��n�rh�[���0�OY�^S�qQҙ}9P�c�w!vƥlI~KQ䰵젿͕���>�^���6E�Ct��k^��W�G��������ȤUG��2:䚖��ՈDH̩���Ζ+|�� 3z}[2��a ̀�H��� �,c'�jr����z����?R�?��Oc'�z4x�k�r��5�D`��+� �-H���am�ڀ=�`a� 6r,�$h�Ý�q��Zbs�i-'W7Nd�"`�ҤC��g����1���|&w��G�瞷`�����ߓ'qeE��Θss��,+oE�3��Zgf�b�\�~�ZZ�O'�D�,}�g�o�i�������*@{�i�\���������������Y�߳�_��/�����9z����Nl�Y�}��y��^�_�0�ZH��iLI(K�]wC1^h%3���y��(��aUZ�Jʚ���kxN�V5�u�N�깆ꧺ��3�^7���hNC��|]|�9ufP���j3:�t+7���ug=e�H��¨Hwq�+քT���6ʸ�=�ϠQ7���,�W�3����5����]^�}�g���_��/�R�Jzg=��i���1��F2S<�JӘ���D����=�7� ���� ��Y�h�&�j�0�\c$���Y��Q�b��>�mm\����^3�x���qd5B�R�ѥ��ӓ��8bE��FO�N_Q&�`��SU��K`�2&�T�#{��ԔC���ؐh%n��u�����$����B�پ'���[�<�#�D�L��M)�n�����B�ИGC�us��O�����h�<F�Ԉ@u?"��6D�5�j"h�l�F5�J �BB�?� x�_��ϙ<�ُn���J��[���~Rw��>��;_�}1ӟ��)������H����J��t�)�d[�CBQ������ ?d{��Y���F#���<*��D��N�+Y���s��ӎ�ќ����ߗ">@�jNͤ㩯 ���E:K����9͟f��S��4�Cg�ϣȅ�.8 �2&��y�����Ȫ��P�͖܋qU����3ؒ��_�_�d���5R榓�]^7~�����O~��\�o{�Y�1��[B�X5����]��u�)6��=��E8��V��d����HL��#2�Rc��S3S�y�5�d'�#Gؒ��=| ��[����G-�˺Q=������f���wV�;�T��pg������:�oL���s���L��<A�"�lu��?᭥?0��cv_���0���w匑t�p�j��n�������J���נ�qUb#���NԘd"����d��~+�i��|B7��<naз"/�W���/���_���ˌ���|�b>|�+��G?�������Ky���x��T�����S� ��uCO�Y��8���~G�J8 ��^Mj��5����W��*�|;�]�/�9ȭ� ���v7*`�|N��u+�6[��=��ơ��|힣X���?��̧ s��ۋ>�Tl����׃�]$�nĞG�k�|V�Q��B;�����W�*oL꩟�gB�tj(�<�������Mo:���u�>�I�{���m��'�r�0�"tR\�U-���v�\z,��KK�ע����\���v��;npX��c�Yh�LgK�s�j��ڛpԖ��(�m��;���T��ΐep����u���ⱚ� iaj0�`���m����G�7o�qBŊHO�N�Bŋ*vf�����gr&r��Gl���Y��D?ꜷ�<��B����|B��V����]�%VMt_��-!��V�T����*�c[�ܜ�j���Q��BS��X��;���o���w����d�菎�&UW�l��o۔b��5�V��kf�3�$�$��ʦ��!��m�l�&����sc!v��$����z뾧���ۼ�����L���,�����k�mYv�}c̹����s��gu�~�MR)�-R�H=bҤ�Hp� �eH�$@~ N���A��0"8�e�!��ؖC�(�)�oR�棻���ꪺU��s�^k�9F~�o�9���(:QB6U�hVս��k�1�7�G�wy��h�*�>��N!%T��k[H�tu �>�;����a�ߗ�W�7>�Q��ߌ�Ϧ�0߮�o�����/��G;��:C(�4882�3�.VYՑ��]Av��Y���~_�A �+�cC��=��S��8�W�j��)͈�f��b�n���N�V������ݶ�N�'�^��>���g�S;(��%��wD���Oo3M�����K����#�;�KS��|ؑj�MYkrAP�C���IH����ua�֗�7~�������+�w&��_�}������>�үS���J���`��R�|k"���9�� �G�y(�L%�r+�uv��zM���v�p�g��@\��eD���2�b�%J���������t�_�!��C(�"��� e�}B���g|�K�²��-�m�CM� p<���{2�Q�E���5��η������\��A�Ⱥu��ˊ�2r*�Dr`zN7�l�Z(�����:i/E���}'vd}�4+N�qjS�r(Z��뒜e,�Ƣ!��=�o���q,�@>��~w��\����)�y�*w�`OLG�mP���a�$���盒�m��vvC؞S���T��=�-�!>G�e�] ��M�D1�]JSu�䯢(���Ҍ"jy�����|oȞ7�D����L�^Q�xQ��nǎ6wE�ה��j���8�B4�J֟�'?A��xz�E� ��6�=e��o�^��gS����{�}.�:'�=Mk-��tJ�no^���^��X>w_��Y�߽�N�E�C�膔�76c�rƁ:��>��ʋ|r�/�J���p}�O���Cq�zg�������?��>�����B��t�b����F<�rZ���bഽpּFB$��d}O���yc��n�4��g���k0�`�t(:�;�9Ƌ�8)��=�/�$��gn����;r�d�fe���w@yJ��!8��ȅA��D�oq���/���cX��`���� 7��DŽ���w�`�x��2��\��H֪f Z[�� V������/��Þ�$t��=�V�'l-V�u�D�#�R�Ch�f�RPEJ��$����-����k_|�pY���[[t�7�a�!,�n��yv��b��wg f�H��Ho�����n�x>�e+0�G:�$/!�Yw,�s��n��H��0�i-Q�Z˱���kw`xs�;���@��Yc�}Ή V�C����^ax��4�=I�SY�EE ?S6[R=�c�A�rf$�ͭȨ�Մ���n߬k�F�;e�/q����+̱#��o��n�U�za�3V?)��T���|κ�.���s:gj�x�J6���! $/�X��f#3��z5�{��P���e�{2J���h��Շ��N� 9�08����W�ʻ������L�_a_��ݟ��_�����/�������"! b�f$���2����9�.ޥ��t�Z�0���?�ƴ.��`�J�f�#L�j�l�J�D��"� b�܉P9���i9@0p��n��MrUs�������*�� J+{ &�d?@��� q8��x��/��-P�H�+�y[����3{����?���}xi��B�/s�7�dx#��P&.���a`a^��.��|-�#�ˤg1�F ܇&މt����a(%k�}���|�F��,����3�rO�*���� ���!��"� ����ހ��yF�{��L2TV���@�-b���B� [�tM%4� ִGw0�^-5 �W��E!������{S��F��7�� WJM���J����m�y�k��u y�5PA�K͙>��t�V��ti��s����GN��/'8d>�JV,(D^�ܖVD��~�{YN����7��#�'}��)D� �%��wNN����w��ٴ��=�>�w������˺*$�^S����G[u!�ß׆<9�ia���g�#}ڸ+M���Ϸ������П}�C��"��a��<�W_���Ã���0�QJ�aD�l��ʱ6�s��}�7����zG�W\������tIN�\�Ѻ����#�=W0�;��`���#=r�G3��l<22�8��_ل�Y�b����K��4`xWY��3�0f����r���� �^_�1"�Hi�;�d�2�+2^#�~ 㥯{������J$�0��Nz>��X ��=��d�9B�. �6&Z��)���#�8T�O�i��!�s6� �B)��`��x�1���y����3%�d�w���(L�ɒ��X���i١�Ts�e�I$�%�9f�K���̉?��0��1VW����, E�6�K����e,�۴��W��M����s�ݥ�W�;�mm1`wIز�bJ�U��V��}Y��K�LQ�d4C'?'��8}J�k�kG�$��CJ�P pϧ�U�Vp�t�����XV'� �����)Sm:+�Ucߦ8����7b������V��ڽ�J?m���<�J�i<��hMԼ�����\�m���`�����m#� ��#���W+�����c�f�d��U|��W}��͟~�� ���_�������#��J�m�`�f�+�V�^�Փ�;'����o�]�a+�e6��~VIR�-�c�`b��]�Ͼ!�!���0b8�h��\�#d�0�3�gG�1��R��be��">"b>@���Ŋ���b҂x��nׯ�x-�xn8;�����.� �];���*^��/���Ҋ%�t�,�T�,�v�F�1b�J��tV�}�|2E���B�P�c@��<[�Ƿ�pΙрiע}-� �/�;�e�����O?�a^�Z ov`�dX��(2lFW�1A�0����b�5�����M����0�e����B|e�ŮL!�;��qy=����nN`�{�= X<�������R�_<a�`͜z�����Mև�dȖ�:l֘')0���I����?�6���Oj�FMw\}�����x�8�M�]A�4ϹA��t���3����?N�S�+�}q��)�=!-�������x�L���������;7F��� ����ɠ\W�W#��J4��P���{N`M���r&��\��}<x����<��"L����C���/�S%��������rw�w��_�ۿ�qI=@|�����4�.�NZ!�[f��(�����A���U�T!��M�g����J�by\�G8x����9.'�Cj�g8,�v�d^��[��f���g���(�8e��,p���w³+T�1^����h�����/_���w����e�"#�$6ePN�E'�x�e���>�����o[��6e��&ӥ��wi����!����n$Q%ezj��ʞ� �U�SûZ:�=��[T�|�e�j���u�O�ngE��!(T1�I$ (!=��!�ZYxu��QV�`)1�� �@��\����o�D�Y��R�kN� i�a�"#��u�iR�k9�:� ���.��v�L���ө�7�u����Y��t[��� $�%N�����Ը�t�r�넷כ�7!Rc�P��&c4�K)O���X[���[[���v�+g0��2�ѡx2�2��OFL�;�^5�M�}EW��)�~�>g��Yѷ3h�4��d�ϧ{u�痽}fN~B^N����oI�I����Ehͪ��uw��M�����_~�O��w����O?������������x��_��b@��g�0?Lxǀ�]���YxW=tC�l#�I�3��1Ӫ<f!�(&����ɵ��N)�Y?q��`7J�&("�����c�`����<;2�[��a�3�)@̐o�c� ��#�1�12n �D8���tH�cF���F<�bƃo�2�����Jv����}m=袕pp�L�х���:ꌍ���3 ���B��qK&�����V�� R�_�?р�_~����GDž�;)�8�+2�fL���RV��T�*��=�1cb���\`戣B+Sj���o<�0�,s�釡4;�B���s)�"e��?'dL�������������o;`���� ��#*�QJw�jy��}�������Y�}�� F�۶�`�v|o� ���$��St ���{-�)v7w's{���vE��|{&w���3җ>���i��%e= ��Ǵ�ɼ��'�k'��5��������?�g%�p�i�47�^�6iQ���J����|/�+|��L.SA���k@����9��;p�o�?����$��ݟNj���x���s��1?>b��{���52 .��.��������H��SY�q�,�#�?+��N����f��l�'�v S���F��Ǽ�"Gb�;�v�a���;��+��^��t��`g�Xq@�.ķLW5�#�&$2��;��}.������g,L� (p���T��k��eZ]X7m u�þ�S�Լ��̃�I� :��(�g,���%;��,f�\�G���~�nRưsH5����T>�:<��l��1h����Xr�R�4�FA����P&�Q�fezLE+:���VX�î�Tmoe���9��� ���قrg�ħPs�y!��1�衼��w���n�_a+�����n�='�O+��(V�6��z����B�oߦ;i$���`f8F��k� �]��Ix���8c=�&$�&�������??��u>Y�������t'Cۦ��t���둳�Q������D�4�n��{��tf+�ؤ�)��C�V��M١N�u���CiDe�6)r�G����w?�o���:��2�[8E/��������~̇��?�5�G�m�4cz����Y����`���4�r]��Uʬl�F6�#O������(������kS�C���~Ŕ���8���Iل8}��,�pD��8�$�"�U,x>�C(cśX�V� !c�B�;(D̜�3�hSp���;����C��x��X��aG[9l;�pQ'��jy�9�D8�Raq晶��Ɓ�i��V�H�y��o�B�7��X���Z�C+d�z~�g��ӟ������ʊ"e`Ίl@Ά����k�iF�B��%"Y����1�;X�i@F�z��T����`X�$���L�&q2�#�ڥM0 :a����4s�V���svfPE�B,TJуZ�!�$>�H��f^��U��2N�>}�?/��]��>���d<�+.�le�15R�g�6Q�7������ ��]��gř�t��hW�� X}!};�|_�� n��� �Y�s� ~�ʶ���gNǷ�Y��W��Ƽ���PU6��zH���{ O1]Q��B�4�G����@Z�u���S��|�t�������7�Yz�T��}����>�7�#�ͫ��������_�9�&<��/a�q��p�=50��<��j�iTl$����6�.Ş��s�Y�b��Zw��3��#�M�]�~��8#����K�B��3D���s!sN� ���������� ^'|���~��D��F*!�y�,7�Icv��`�iE�� E��ҝZ�W:����mB (?0Z��0ԋ��\i�2� |�K������㐱�cav�)8R����"��i@���n%�: c���Y �D�5"�5�bo��[[�sY�+�n!�P������ٽd!�T�[˔m^�sʁ��*�O� w-9�6B*Řeط]�ƍ�pB^2���ˑG���;ֺ����)���Q��Z�n.���9�ۨi�C�_��f�����L�����������l�O��)U��ݓ�zR�?��⌝�v���U�>�'��������J����{Nҽ&뮏��Y[���{E�*�J�V�aVY_� ���|���������S��~��W����_����v(�o��u���ҿ����(e���������w��TM��Y��a%٫B��u���D��{܌j�R��:��v.6�tE����h�R�@I�q#�*�#4].��)=v��-�b!4�pm@��y"L �%W�u�ݿx��{��������D?�\�[%�"3����B`r'a ��D�%�َ�䍁b�t�X |�5����u/�ϛ��06Q�����l.��(��}�#~����Ƅ���k�΅X�����4_CvF��5 ��<�xP� ����3 �.A<BV`�_a"��fR��.�@8q?���X�jΡur\�E'J" l���R�����r��u�^<VdzD��ȕ���֑��>��w�w���h�H���P�z���:6�|$BR�ɪ��\�Sr����g����x;+�-4�6=��B�F�;����D����`�y�d��ߝ��j�mv�O)�ۤ��1�i{8kд�xݤv�m�o�L�d�4���h�Ԥ�2�kWbYe�6�D�" {R%(��:����?���)ҿ�x����u�0C� D����g��?���#��^��Oz�x/�7&w��KY*�l�@[��m�3�3����V�xF�=P�"� �̶�ڊ��)Y���v�FN�����`�[���^�۾�x�j�q�/{("y�Z9�g�@��~����U<�������_gµ$���s��B�rsZ*��j� `��v�e?��7����e)S2 ��l#����X!��H��S�q�9G泯�����/��c����,�1:���l%b���x�e"U�h���DWH��X,���!�=�h���s���Z����9��w���&``�z�a]��q��4'��B�x�g^dm����Rm6{��7���'̈́��t:7�r�m�Ie��)_C������ɲ�NZ�Hέ�p���ۄ����vS��5�Ҷ����Ow�[W����bu�?�����I� $�������H_8���'��ԫ�������r���z�[�����=}n�au�۞�D����)r� ���m�3p�WiM�z�3���x���������|�"������?|�~�?�o>���t�A�4<.d��_� <��o�L(W��������|�=\{�G�U�J�FS7QT�>����v�)E��O.8Uτ��ل�����a+��Žns��m��VdP���@��'Z��5`�l��ήf�c�Э�M��6;gR�22n!��/�'�����ˏ�B�X�r(f��k��R�7u�I�vd��l6��3��_W�F+����L�8M��g����?L���_s���_����_��aH��1�u��8$@bq>3\D��pt��5Rͨ6 %ETG�Bȇ�${��+B0�9���I�Z�)���fm�[�D3�(]+1N���j��4����zJ�p'�f=��2�[���t;�4 �2�Z\���*q�����{�2�-���9A����^�}�a9�K���dZ�Z,���W��F� ���S�b�6E4����)ӫ�A�OJ��YC�O�ڗ3B�>�`��ׇnR�gӷ�I-�p�>���z��צo��ˀx����.��m�� �U;[:�i5��{��%��]��[��ȋ������_z�H�6�z�����������ܾ����Wl}�y~���5p� ��a��G@p��^G��#�;���G^b���'+�ư��Nrd���3Y�;�D�ykH� ���U�jaP�W�D�Me�1�X�.x�*�� �,pܰ ��_Y���x��%�V~ϱ�c���{���C_Ƈ���o��5w��<둾 ,6@�|�\ UɭZ�07������J;|��@�q-���Ģ���L�:��Q������_������ߝ���MI%j�EF'�bREJ����Q�1G,^�� ��H6\80�a�$��r�����$rV�n#�u��W�X��Qv�� u�5#��T��S*��J�Ʋ����1Y��dX� ��4Cp�����aʤ��p�s7�V�3[9)w2��N�N�3�6Ac-�u lB�u���6k�.#��]QU9�r;sԔ6�m���r[O��O�.�m������3"WB�w�k�{��y�����C�O:���Az �?ƀW����$߭H��$l+��J��_m� ?�4c����&7��O'�5I�qOlԐ�t�b̃:W����óxp������"�[��������ҿ//���?�=��ۆ�[h��E`=$���7�X�z�g��;�a&k�����5��#��=��Ʊ�fU2r�iC"�-�:n���bِ(a����SHT���v�������/b�J2��?�&uX{B�r�KQ��-���}Cd�A���5o�+ǚW1�C�|�_y ���s�|)�/�^��>d�2���-M/��b�_��H&���`���J��7�QW�`��l�4n��X��Nfsn��y>���ys�\&���h��u��(d0X0��aR�uDZct�G�� ��V�*�A1s�W���!�ԡ��#K��1,`9�(E�T�"s45ҝ�B�OĂ��L��P~N'JҸ�.p"�����U�̃�R)��s�@ݬ�&A{�0�N����@7��m���Lel͓vS^�(I�����*V"JƷ��w�LJ�����U8}��B'g���R);+��N @�)��ӤXr�� �̀�5}a�]��x2���G<i�Rf9#� d�W�>ynn�n��6C��zMv�볕-@��T]��x�lam湭Qj�ib�4�)�s�����)ҿ_��?~��������Ëvn�[~Oܯƣ��W;`7=��~��]�� �?�q��G��8y�+��|�����o��.4��%6$ȶiz�}�q��naew�IWq$)�����&��+�Q����G۳��n}��E����c֟X�Ӷu�M�`F��;g�lY�:��J��~�W��W�?8��ܾQ���& ,���wn���]\����-N���O�]�1�*�lg���_z*�1��t�Z��y8�K2c%s.���M��W|�=�>�N(��N�)4(��� �C��t���\0���(�3ue��Đf-n(�`9 �K.�u�H�2B�pw��r�@4mq�G/�Ӻt��Dh������%�&�#e�%��q�R��X�������F���Ɵթ�ikg�]!����2�3?O�&4t|�9'���-'7�O�R�O�����Ԍ�Q�����p<�Е� �|6)+�L�:�#O]g~j��$�+����ޔA��������~�ݶvӾ� C���ѯ�Ln��hz�̓�Z�����ݷ��m��wQ�����$7ֆ�nW.5253�c�@� �o��_�_�S����u���͟��ߔ�?���t��/}�s_���� vw��r��/������o�����=X�:&�����?����Ý�{K��$\� e��P���3�������n;�U9r� �{�I}w�@�P\t}�9��2:A1�ȸ�*jG-��[ NΡ҄d>�ꖶ ㈌� ������_�G^û~��q;|Gk�_��.:Ӗsa�c^��s �C�I�Q���P�o�'����u��CȤL�֚\I���4�.�hԐ�Ͽ�/)PRN&U�)E�1��,�j01�I'��rNK$+V����M��ؒ�L��0�+�$�'�����p1(Ւ�<#�T���6M(��ȉX#Q����=�03�qhPq��^���fu�� u�K`�Kv��T�8Jp:�����Q��[a����J��Q(ͪ��dmK�bW�d>�nf�]:��`l>����F#J����꼰�O�}lem��qi��g�-oQ������������'����l���^Bwl��'��?m�{n.~�=������ji�����eƯ&���ˮ\���\������ku�?��������������������ʏ|�=0���=��o��>����+N���}�֊�/^��/>��_�K�b�3v�}7v��A�_"�ש�M�y,w>��BY��mU&]�F�1�"���S�%<J����-]�=����'���L] �N�Yq!�>��D�D�2�g�RLJm��}F�5��>�}G\?��R������&r!Il7��4��"�J�\�7�O����r�#�J�O;�H�i����I)�B&�I#��"59�����o"5L�S�H2�E8@ ��^0�lq��DA3���]K(�E�#��b!4Iaj�B�Ø�9Br(��PlA=&�� �0�qa��P7>L|��44�)�Q�P���r�$��8��l���&zA2��I����)Z]VyM�n��0%��0��O���S�x%�Inųꝝ�!O ���to��"|�Da�6���ԩ1v�ZT�"� -�4�9v{ݞ��˪B� �yM��um���TK� q?��l��w���s�Έpښ�?*��7�]�Ԍ�~^�w��Hb$#�2��?��g��"y�z�Zؙ����t�S)��n����������ߙ���~�o|�+���������; x'<��テp���o� ��������B�%�7jմ��o����ă?v;��������_�d�E��`��}p���&����V3�~-e,�`&���%����X� c�Fm�ky�6�W��@��DY�6U�"m�ȈH༭�JnU!��`�̪r�B�z�2��(��_�{���k��������\�b�A�ț����NVk3�@�K]���u��bh0X�G��t�;��$�I+3��Hk2�,���� �K[B�R ��$CPǪ��!�b�Hq��@1x(�a���I7��1�(?� �qE���8C��[��n�4��>�ԉ��+�o QSJw2��<C+���� �Y���6fD�����9}��뮦'C��+)L'N>� x��*��Yj��1��6�5�SY�+��N|:`s��'o>v��� �Rs$;�l������|����]�%���L�'T�z:�+N���p�=a̟<�����{���]�V}KF��t�}�M��v��sl3��@z����}�d�|������{�@f�x*��I���F��ܯ�;b$���z�����?�����������?������� ��A���+ ~���o��F���vH�Ќ���Aڮ�x \}�kx��>� �[���/|LJ_�ܽ��ޏ���n�*!�Z�zUJ^/q���eİ��G�����Q�`�?w��.�٩����Z�Yv�$��T,� �g��q��Ɗ#V�X�re\ŋό���2>����o������Ƃ�Ԡ%Ay��8����Tb�H��}��-�"=N�s�)� �������)�����j�/G��^�U�X�@�CE��-��1�̞���,C�"��K3�@���^݁�@�x�hT���v��cD���WC�Gs���+�VjD��C�fR׆'�k�����]"#:�hgn;�V��J"h��LM� -�C�1��8Hu�:�����a��pA����̯vN���Y�IXC��Ʋ܊���{�R���|�@UN1�M�s����C����zxzy�X�=�����v��S���ˌ�d*�k�=Gǩ�i�x5 dƓr^/=A�uZ��q���t��[7R>I�!�&�I�x���q��)�L\wM0F`����ţ��"������_��/�uy���?�M1���l������������q���A�*���e��D�I7P������ ���U�b�W~�5�� �|�1�"�u8`@��%�V���eږE}�6 d�W������� H���]�ݾ�������B}�c2�'^���s�[�����%o��[�p��<;�C�O����p��W���C�锩g���^t)�s$����Y�+7aZ�"$| ��w�P�gۈ�N����� �K)�.�]�*��D3y8�0Q��I:�]�h!����u�`�iY �&$S� ��F(*�LK�0iVE��5D�5��`�Gd�И ��G`7�I�QK�Gac����p�J�x` I=0#��� �u�I "���&�!<l#Z�d���K�xkb���G�W�O|n.�U�1���H���<�9EيS�ji�1���Y� �}�SǮN7}�+RO��Cm�)Y8��{6SY���ȧ��\ϊ��MU����3� ;��yʼnNykF�xR�]v� �v�q�P����O�I_�� ?���!m��kc,+���_W��ޚE��j^�����?��wv�����'����O�{��݈��@/��C�� S|�A~v�F]Fv�B�L�C}m�<�K��0[q��ï?�[��� �+���7��%�֗�Ǚ�r�n��t�^��� 5���Ѕ;��;t�8{��4�>�p�hncզT�d�7�y�C �j��Q\� ���g�k��{A�g">�{��?����#えD���ݞT?iz+[fv1�0k�f�Dp�֚+���PݲvM>bI����9�i��Oy"�[�,�h(;i�˔�S<%�[ˀG��8�Kg7��Y*��N#�+�)bP�����A�>G\���a���M�R����0��CBW��T>��A��L@F����{Ӊ�;Ё���H���iA,X#.#�%����pW=�"��@�&$��4f+-VY�UZ�t��\\j���4\�������0�S:�<��ۮZw��܌3�k���h��9a]�O��է�M�8���+�=���z<O����p6���ճ�Oi�I�"��ՍEή;75y ��a+]��.�];$��qu��+�����JVz�KdQ��ki�lu�s*2\���ś���'?\���q^c�ښS�Q���/�g���]���S>�w�~_���x��^|����(��Ȼ�5# q���Vp�~�e' )���@ț~�������:��i<���=�������3 �u�Ͽ��~��������"��'0##2�� ��q, ��� ���ٖ=�m�]Ӡ�-H�^��&��l���4��)3�>)D��c�� �+� ŌD�p�=��w<��Gx�߂��Ŵ�c���Һ�jAkO�M���cm�FΜ����Ig����{#�DF���ؚMڵ��"����d��u�,^+��p�s\Y*�vq��%�s�Q�2]3��J�2�9�#��'=#b̊D��X Q2��p�� 4b\���<���a�[��G�&_괸c33��md��5�k�4���Z�8I�}��$m)�,|�n�Y=��GǡP�kͅ�3��!$~qZ22�s%�.���D�YR:��ub����±�:�u��^u��m==��g��+LO�)�3��S"3O�drV`+dnx2��N!��0<���Mg���N"����} �r�6�����}�v'm��,wh;��N�e��5���I6v8����,�ϟ�*+����S 庬����v���j�K���������~�7���_����e`���t��V���av�p�!�� �!��kZ���H;�wN�j��+�k~/��o�`�H&���_���*�~������.\~��0b�~�p%Ϻ��}���g>t���k�m��,�W/!m�k���d�����m� Gz�%N� �[˳o i�V�{�K���҇�|�kx�{߂큷^-���=�s�ʑ&�dv��|-�`���ކNwKa�\���=s'� �y��g�*gq��YF����� e�O^���5�Ev{�º CY��"��Lx@@�fSdS$ֱ4c�f���Rβ���7�Wه'��@V�[X�D�KL�� �lml��&JS��%��X |dԤ��1%.Z}����L�1���\������6���zbF�d5}�� 2����d��Z]k��>����U��Х&��`&t~�A��8vg��Z��߀e�Ϙ�}Le�uݻ�����`v�n��<�b6��������p������3;�?�l��~�|�Z�U��;�m<m���fR3����&�iʵףd����Z��o]��g�>��| c��(R�W~������-�n?������_����`w�E�����K�7�r�z�"�^/����K�c�� �/��Y�� ��%��ޤ9]���n�x��k���f=�_���1��c��;_�Q���3p���kL�%\|�G���H&�G��xm�#w���p�a':���m�IL髝9���q���R���2 ��O����������˸��+��2-;v��QdFW�P�hۙkShҙJ�ș�_<,Z^�#��s�#W��Z����fVopc�is)���J�˝��T��yVx�׀[Jjv*K���*�(X�!�C�H��,�_��(�8�F)SP��{Ԓ�6���#�#� �)f��ӵ�0��iVѷ��������p5��z��M��&����2��\+��x&TL�b�t��� N�^e��� ]�p�;���i�HR3�k1�,��&,ZՃ]�����WMTj �v�����U[P;�U���؇LԢ�϶wE���gS��ɜ���?����`��Ȯ�����.?m.�3;����ר�ϵ�J��h�c��uӖ�M�D�����m�+�@�/<?ݺ3��&� b� !��e�k)���xm`��p��{�ݽ��~�"��%�}���{^����_ �a��Ga�Q�.��e����/a�Wˇ�eWI �$�nWE��o�^$���2 ��W/~o��`Y�@�����M~峘^���g>������%����W������n�!�t-��b �XlCw ������*�G�mn�#$'��V�'+c7nax �$IV����#����#����C�8�G�b���+:Q'�J*ʹ܄!��&%���B$}8�����JCp%J�+��Pe��;c��"��U�[�]�r;%D+�7̛$���9�qL#�h8�`i���A �z��G���³�"��S���kZ.���a�|X1� D������-B�\ds^Еip�B�[�(��1�[���b:E�{n�H����_1�O��}�m�z�RN�k�w���U�"L��t�n��1R����6�N����@U��a_���`{%!]RZƆD��X�@?R��BR�+*��ϑ� a?q*N=����˒��[�z>��<�m{�8N�B�Y�3�[�&�|F��o3��q�é�ʤ�1����A�CTzɖv������Gd�]�%9"s{}5AM� �k㵠r-�:��(D�BU1�r����ƕ��ٸuD�܀�~��{_�o���ߌ���9������că��g0���(�C�| ���'��o6s�7F�(�P��+����;��k�{�aRڱ��4,3�?uDΏ:m?z��쀻_�8|�sЫ*��K�dAz�5B�&��q҈�6�:mD�,���#L͖�;�vѶҹ�V�Gzx��}/pL�!x�j���G��݆|���-�X��7LC��i����$�Db�!Sf�z������$��"x�e~fz�,$��$/eNl�^v���K�F� �@�����K㢰c(S�U�� �M��P&r�xٙ��� rRh4�8��h�ce��2���x��:dV�a �Ar@�J���/;WJ�E �QIbR��Č�A]�`�D#E�,4ya3��5pb����l]��{��?� r,&^'�x*;�м��N�ꮫ�z�vyn�JH��e�Ă3�ݰ�'�a���K�����s�S������������q.gE9�M��[�ij�ٳ�<�A�XN��I�������틅������!���h�N��h3�Ak�+�����Pv�g?2}v�|��b���=Q����ʽ����vy�;���靝�o���~��aL��p�ថӯb=���>D~�_�v3B�K�V}{]i�90�^"������I�("��| �bx�;~/~�G!qB�5 .���ܾ�q����%���oE�N���n��+���L��Pu����>7�Z7��v��7����,t�z�78F.HZ;u���x����>�-����w�~ƺ���r�R�<3 C2�C��P��ו����N��W�?�ڊm&��c!5š�0`��с����qG�0�7{��I�z�e���r��?�H��#�bd�⎶�LKCP 0�)k�Ӧ����I$�jP@�a0�RD���C CT䴃!a7-�q`����oc�]d� �.6��am�r�Z���{�Z8�9��R4:��p*��RA����jᅞݡ���������>��Y����%��NaU�f�rB��Fز��\�B�U#M ��n6�簅��3ȸ:��|x!8��N�O��4��qey�3H��d�Uo>���Z��m�`K ;���ꚞvĩQJ���6���^�h��\a��y��jq�B5�Y�>{�p՜q?c�熂�cLkMe��u��T�H�eZ�� ����魟���$���z�S��W��ɏ�� �y�%|�-�.�#ah.2:5⊰�x �ΰ��vK���}�J�B�De�y�(��v���#��1<��c�0\����_Ɛoƈ˯�Z`zq��5���"2�p�17Z6��x�g���dU�� �Y�M��f���;�&f�c�3�_!�ddϸ��Ũ�����x<�|���������g��|�GNe9���s��4�03yn�PQ�2xڇ���X��1h���5�r�Y�)��Q2�����Ii�/�s��%���P$q �Pr�������͠^���ZX��Q8��P)�t2��B#��P���ahrN�A��c;):�1&Sh��t��DZ�Q�z��+��V�������-���^�ܺ�����8}ڴф(�c��˭9�`��Ȅ[X*t����W�LNdr�q�Bc�Y��쇶�kZ}�8�1�����~�lgp�y��?�H�6�=<.]���zع���]���O�������3�t<pjlҳ�{�O����O�{/�ؐ� W�0�l�~�M�W�N��ճ`m�E�D@�h�J�liDV�s�!ε���&�6��'%ܿ|�~r|����;E�m��W��G���w�{�� .�i~���G�Nm��ئ�d'q���k'_�v=�y�TF�4�g�Z?af�6���goa���+��1F�|�5�~�S���ӻ_��_��+ī���#�kD�$�.#$:$D,H�Q�R-��`yK�ꑦ{aXat�p��]�k�NI�+rz^ �_��w�}�๏\�}��˸��G�Xm�8�,�;�!�|���{M��M ��p+j ^!�lM?�����œ���#�<�W�S6.A�^r�|:���XH��2��Ц�y�`�C���c5ź(bL0U̫b�B ��� �pˊ���ZR�!f�� I���`�p�.��.��& �< �c�ψ�p/���X��� ]���d(=bk�ߛZ�clII����a�FJ�*�������.9Ȓ��,�\-����8�͝?sl�身ܸMC3����@����Nu�N�@*�n�ڔJ��Γ[;ع�^�3���M���"�˶��{�����{��M�:p��g��>Xc>k.�x�3�j���@��i��iі.��EI�UO��5n��$�zCa��n#�������bi����V��5>���O���#(�׀�s7��C����;U����z��a���.b������[,�r��}�\�t�MtO��IT��TӖ�Hn�c�Ӕ�2q���1'��#`��\� ���7��e�x`G��7�'��E<�=��_�����p�����_��O��G�������{�`���w#<��q(��19��=B��I�����<�py��^��G�c�����ڧ�̸�<�@6/�ݝ�{wwߗp�c�q��[,�ӯ�����v���61sa �����n�7P�3�y�3�0����(��bau��ͯ�-���A���PU�3�� ��-��O����1���5�xs�s�HYG��a��b���H�1�Dp�2d�a��e#l�8JWC��x&�b�l�����݊;�18����0N3\�1 �gdĝ5 ®�������ހ�����l�Y�j���=VRמd?jWŻ�,vw��ZY# �jP'ޡMUuj�9�5���]� ��G��`�z����֢��ǮLq�X�F����'y;��Nmk�˶���t]�ƮH��1�d[���v������D�d�G7-W`��\}Ӡ]S�K�R�Z�2� SOͱ��H@���%������#��o��U}2Z(�6�Қ��� e��&��ʂ\�Wؠ5䦜Q�U� Lt���*R�[�-C��������<�u�����C���2$=,��������V�;렒0[)ʮ0�ܝ,�u�84���x�sFc3mH+0����M�쮖���k<?�}���^|���`����8.3��ė���)pg��{^����^��?{t�Ï�(��}�W����1��_&��<`��w����>�����.������p��+oA."��G1>��q��,X~n�k��E�.iSJd2��=J��wE��x�����Xr�����y(��H�Լ��ʺ��i% UZJrw�T����y���a0����5��X�a�ZvJ��S���d)��%8#iӽ������b�Y�ͱ$���#rp�)` �iQ�0(�jP5���e%Rވ� ������ 21(��, ��Õd�㊼��nxʘE��C���P7����K�e������?��M�uP= e*c� �;r �ԡW/uc�b��ׅ��R��B֑S�:�j���fe��SM2����{��cK)�d��2���(��#}���Y��^���'�¹i��ϊ��lQO cE���ݰ=j�٤�3�zb������E/<�M��G]���%;�0����ud�NBA�j���3ww�V�}h�*��+��<�Nڵ��ik���\Z�֛�����Bd.���n��w��1rTw嚯��5M��[���yg���7�ѻ�����qT#�z�t�3�N���i����η�d ���E�5���X��*��R��>n��ӆ2`H�^��ɏ��g���/��l+�qs� H��5ܙ��?��@�0���/a~�S�����X^�4�7#_?���}��>�/��|8"�3<����^�vϏ��������?�7���_F�3eX3��Gj�1a� ӻ�Ì���^(.���np���{z\�yG�n�2-�$�y�Nd������ ���62<Gm�p_�8�F ��ʃ8�I��H� 0p�>h9����� ��d��y�9��1JƜGL2�&Xq�\� i)O �R�Y�"�#���fV��pW̖0�b-��X,#Z��~J������E�!+�E�#�#���8.����XV����gV9-��@�fw[�b�P�\ޡ+�����&��IzG~��{LƦ+C)�`4f�>�Z!�l=� T�3�P.���]8�֜k#���=GTZu�o��L�dەj#��ژ�u� aqa��6��7=E�|.媄��l7<=yʞ�{�L�p�`��s �Ľ���i�3=��mMD%��;��Ѭe��� ���p9�m��f��V���>�t�6����K��R���G&y��֡�S��4�~��K�t�a3s H�1���ӿ����w]�S��5�f��û�5�2��[n�@�����JI��[r�~Ñ�K�Ɏ]g.Mv��xW��P��P Q$�&/Ԇ��f-���{?:��=���vx�� ן��x��;������@q���^�cߋ��3_z�����X��e|��*��7�{�q��/�o_�շ~#�[�ç~ W�����?�G��k���+p]�ƫo��͈������ C�� �w �o��Wq�� �G��\v�ʮr��΅>FCX��7j��ԩ,-MF�I2Wa�4��D^}��?��j�a�#pwj�qSgF�2����jK�"�?�rb-Mĺ��g�4r���)6� <:�'{L ��73pL@UEv��(-Į��&����3S4DĬX��s�~/��1��"�F�2��at\ń�1^�>����W�4��U ֒:��U56N��]��F�j��c�L̮��4R>��+��T�/�Q��f�fRוI�S�`��V�M���� f�A�� F�zn����·r��g��cGL��j.$��,�/�=\��Q�8�����v�K��=����"u6��0�cW���b��m�"�lo]��q z��ݲ��\I�o���r�~[��S��5N�G7|.�^"_���N��D=jN���s������p\�����ވ# ��-����9�ׯ������?���)ҼX�=y�v>8�;S{;�M��!���x���2�$P#�:����^�y�V�{��ϭ#�CY5~� ����X���wp��"}>���c�rF�˩3`e MP���u���އ�O~W�j\~�7!-ҧ>}������W~�K<~�1�c&���#�E ����ʱ����}�|�c�}���@,�e���ybA��+:�^0튋���XւX�����f1��<X�5�ah�F X�p�tD!yĖ-�j���a��kqQ�,0�2�=!��lߥ�`Ia*Z�H��J&�M*�a���q�s����c�4�J�-A%����l ���LW1�T� �<B� �b��(�!#�x@� a4� ��e5@���)�X2�k�}`���;\����D�^�4)�&��.�%�� f��A.�~��hAo��fV�����4��--`�'�IMU�����O�_�[����fl$�Jp�7�M���L�0/��*���~�yH�&���^�,g�gRg�v/��g�-u?�JpbxR_�m�Dj���;�����u%�^wƵA��5Uw���"�.��#pf{��Dnl�w��M�\�g r���@��z��U*I>F�x��#_?y3I����������/|�_���i���y9����eW�W��k!{��1�J6.�N%.�_�$(� �+�ts�!c�-(�)��(�j0zP{!�y����l�l�q8���#`_n>�n<��%�_S�s��01:±nq�+��L���y�d�!�% ���%�*��#���+��~�q�Cv�a��Bb����^`�d�dX4�Z8:����������?�i3@��3�V�1�/tG���k a�d�-��:���qRʹ%�l<�jI�N�*�Q��#���#�Vw��1/;ȴ ��sw��U��C�G�)n��d��+F(�,���P�`��!#���q�H���QVX$�.U��ðb�!�N�������*���S�T����|fG ]5�q���Z�=3�,9i��rN d���� �F�:Iz��rc��vWY��D��E�$N@���z#mi,ӕr2���| Ļ��_4E�V��Iɑ����L�,O�`�����������ڎxҫ��Hl��d�C�k75��I�m谥�E�a|�F�3.�N�UR�G<aIjޅ�T���rR�D>��Qۈw�o��}��K��������<g� ��uy�=W�ݨ��|,�?[i̍h��p�k������ѿߙ��eu`����W��2��}h���fe+ђ��5��Љ�]�V���D�� ��HS��]pJ��hm��.�Zj�U�����X������~ ��^���/܅�v��k7H��Ub/;8��#1���6�ZM4�D�d˗V�0v0Ȕ0^�a��x^�s ����K���j�)�wD8�s��V`9��~,,����m�s�E�f�͒o!l.#��CU��s%��4aa�n�Eh��ѝI6%y��a������)4)N�ginbU���#�(��F)/F>@$���'�������]��77��φ���g,��T���a,֮Z�AE � u�h�%�dD�W�CD�QG`6bҵw,d۳KR�he�V�=ե47��9 4*Id��s���#�+oh�����I�膼K ݔ{jӷ��T��__�t�a����Pצ�ZC����7-����Y�M�[�)��7��+�D���Cg�����.gҬ���I,>���~��g���8� ��v���=��S�{z����]�VJ������k,lE���:���*��<��{k ]�j���M���Щ�}��2��k��&�'����_��/�1a� �����}�<���{9��OxP�r[��;�P)�+���|W���{���;��:�@HJ���ޠR����2�8�E��a��Pn�Lfr��Q�����;�}�W�1f��7��.ao �a�8�Ȑ��I"E��EP��0RF���0g�3�̂�<�;C|O���-���X%M�%C8�#���E�#�����z�q89rF7� l$1�0| А����ך��n���� �!�3�G�u<�ka�� �M�L��$n�_��B�^�>�UFm�j>m�l���v�9;D ��G�8�U1�E���9b�RU���I�,�xCѽ 0tu�V�~p� W�>�r��@5�)"� G��,p�Hv�G:�8���1'؉<6�'`��W��R�"�v��u/h���B�r�j BhZ��t�r�G�g�����#�G��~�5�Rƶ�T�ċ6�oR����եk$|��V�֙cп<�Y����Z'U��c����:�9���B�GNͽ�jz d�O��w��.�/�+N-O�����|��1b�������������M���q��zy[>6�{��S�yަ�ȳ4�H��u��;��)2��ӵk���ėX=��k��<P���g��� ^z��ן��H�����o�����`��IJ'�Z'��ؗF���C�Ԭ�tkh�3̴�4�U�!ґ�xx�>��r��E��/rc�zdqJ��Qy`z�2��d�w_c��/�"=�X�1F��(�7o(�G�� #�" � tRHv� �}�_�+�_e��p���d�CV�8@�Db�� I:����3���6�����O�(BX4Ȑ��T�pZր� ɤ�`:�q�a S�tצ�C)b2`�|��H���[=�͚|Jc)��V����#�Hi��y�:/jB�"�H������q@�{5HP�丘"lq� ��{�0�����|0D�$nsqo���#ۊ1(rR�1!d)���ց���2�d�%"g��b�qpX; �.s1��r4^��n��89WBf\��ˊA�f���a(��a_X��s�ƕ@VC22�J�\ �K}�9��&A��-&���[�C �j�~��@e�D��X���Um��ZM��6-Z�G��|n� [� bt��s_�����]�S ��$X�,��%gR/;#��n`˩re+�5���н��>��|<C��>����)������{��DP`���#۴[eT$ ּy����I���r�A�t���'��f+M|���3-�U �D�a���Z���ǿ0_��������_�{<�������hB#�1�#����]~h��ױ�Nj�8�>��+Ӟ��I<��>�a��Zρ{o��BbT����T�03X��,�&4/^{� ��Bo2�`� vq�]���-�K -e� ��a�/l�d����:(���bf˘��l�uX���4YPtj�d���)��G�g���$q�<01�1Cl��3D�͖2���fB�>T�U�/�fN9W���s9?2���#�����ָ��j�֩�� ЭK9�w��d�( ��7!�N{P)�sp��!+\� �h�aJ��T4�d-gq�cF�#,����K�8+�P"~Ti�0��M�����}�"g�@�t�ez�d�Ty^�W�<�0$�H8���Dm�n*��� �h�85ݲ]X�Z-�fvi�p�7>�NM6��4v�Nʗ2�FG�ZѩMY�b��!d/���dm�$��`�X���t/���R�'�'r7�Zf�O�.�=Φ�>��O�bS��$mM^��2?��U�Y}}��C&�xh�"�<$,���DKMŋj���$���ѐ'�ٹk�j�]��3^Q)�L�=����SY�X���ZP��f'Z��冤T���5Z��b����_x�K�|�B ������oR�g��>��r�Cm�����l�t(7d��X6���Չ w�NY�.Jg���r��ܘ�~�{�Ns��r�T-f~�;y�Ћ�c$]�*�K�7�"�j��p<�M Gu�1"�H�"e`�D���1"��4`��r��|��c��GP���!\��i��#H�r��1c��!�07�< 3|)�ŷ� � K���`Q1i�:�� `"�v�͜����wkyVjS����r���2Nt�3kd6tUX���S��uO̙x����+�W��v�b�w���d� p�TI�:a��c�B�F\p1 ��$�:`k�8�����rv\��+�P��#��&�.K��wҖ���W���}�� �4�BT�k�x��N�L���~ex�P��䦺[�wxY����)�Q��ԗ[�2?->�����ɮ�@VD�@˭X*���!��uF]5x����W{�jQ��$~V�<�������9Լ������?[�f �5=�[���.k*1�3]�Pu��j�S���Қ���~��5ي���55r���j����ښ�x�-��^�$э0���AL�ه�i �u^H��*>��g�ƱѺ�&�K�f�?�������_�"�����w~���+<�F�ݭ�����wݵ�ί 6��Bw�v��&2�C�S�v�������#¦�dv�4��t������a��P�C�V�S��ˀ���f��7���R�\��F$�p�p�7d���r�<�_� 9#�]qֱ�2RJ���ǔ�l�Nsv�v��#�gds�D�G���C�L/{�(�B�wsL!!���w�g���5��3@B�-�8<)$Y!��S��8�$��lY$F~�5�Ψ�v����ٰ`���X���ԝ�&�*�:P3��x�bƼLq�XR��Z\�L2. �b��<�$E~�w���ҡ�#H�nî���9t(���,�aՀ8d,f�P�Vy����zXC)�+��1xSljCˉ�ܦ ����g`ڑ�z$G�[9��Dn�i �̘vUe:��Ff��E�t�[�=U��I�b�`)J�']�E��� 0蔥��+�'��'A�u0�)�'��ȡpƖ�3���I��Ls,gS��A��YAǙ�I�F����i�픃�I-v�5ݳ%����������h9�U�^�!O�QM ܙ�p#qI�#�-���GW�/s'��30@/o(W�ѵ�Q�<���NjsFT@yfT�se�.�����exK�_��n>��_����|�w~�^nq�/��]ၳ� ��]��S��m�M����x��6�v^Ǧ����?�����5h^�d�f�BB ��a,�s̔x<.�;8͐�&���V��G���THY>����a#�1��`6���rD ezK�8"0Q�)��|���hX�0�ڑV`�RpO�C�S�~�a!A�aEJ�G��`AV�Hi����;D�*��p���t�H9�Ukv�y1 �E2d�Ɋ��6Mm�ǁ����pjP��$���#� �+�'5?Í��@Z�[� ��V�� #�f��<@ %��`M� �G�!bR�N9G��0���TzȬX�0�%d*�ؐV�>]tb�b�/LS�:0gu�aJ��\�톖#����﯁�5��$ ���%k+栂���!�RK!��������p�qho�am2�0��uPǜ�Z4.�s��.�*p�Xx�Y ��}:f�v]q���+�n��˹\h� �xV(��� �����7vv6��.eg$X��ѽG��1�s�R�o�c�I����w�s� xK8��s��?�=�'7(>�L$dti=S7�@��W��U�Z���/�ޤ�Dj�9w� yVS��3�~�7��*r�U[���8��u��0��GwG�����5�����%0��{�d�>��. �~c�UO�����D@�8���A��J Ǝ,�v��9���.ͩ�(Yn1fv���l3��I%���.*Vy���T:�aj�RSM�xv����y@Na\q�iJܤ,G�{!�� !)�r��LW�0!mw4\�5��q���손�5�9<)b(��+>;F �<@��D+l�eB,F���=�0��P�z��K(I�Tr�s�ڜr�"�A�B`�j�.a6���8p$kT���)7�җ�E#ҕ�B� �Kɫ��!��Ȗ��; .�6@�`^Kŀ���DqD�sY��LY<#�#Č0$D� �Ar��L���0.Ȓ�5`?�u �dE^��{�P|��88,{ �$������>%d��e\x�qih~�c�O�~բ���3�C'���kj�eŨ�2�-^r��$/j����u��I�V�j*Ͱ̥��$�5�ط�R� �K"%\,bm���b'�j��g��>Z2w������I��`TR�I��=e��O��T�v���z�59����s� '��Z�զ�yKc�{hE �;<ыn_�漢�?B5B�����G���� O�˜�(�XXw�5,7l'ױ�A6s�\vҁV� �hSx�)��&S������;� ���O=����[�=<��ၣ�De�B�D��"�ں�1�:�Bt�<�06�J����ߏv#i�SN%{vVdpB�ajӶ�����y�K���v���k���;j��q,~u�R��1d�x ��4�1t̘��8f�c7�'9&�9���'� /��WWTa��Oȇ�tzy|3�0'H.�j��Z�8���8ڄ9;r X�A2�#�4�i�a��P��|�,�<�h� �Y���2�k�X����@�蔷uA��2���R7y��X���:-@"���P:�����A#.�Irye4SB�f�1ýh�C(�ѓO�1#F�4v�cFxΈX1dAD�8:�q�+c(~�;]G j���R�X ����G��#�hd�(S�xQ�P�&����>X�ϓ��,��,�~8�V�Ge:o�Ǻ;FW�jJ�[�/�H퐰�b���<ӱY�VF�V�&��Q��6b������@k���dq��5��Nb��r�"W��+DV�m�����rʘ>a����ԏ�� ��;�O1I!ľi�N}R'�ҳI������������٘���Vh\�51R�(��u�b���\�)4ln*���/����|y�)K�c��@U�?�m��<K��UJ��t��3���������¿��e����N�:c�ᒖq�:��C�jAC�֙[��.[�:OU��dzd8��*1b���f(�h#����0�~d͘l �@"A��{���E�U \s�ӊcY�q-��jl��w�R��I�Xհ$+J�9��#.U�1/�����5+|��,e���9�0sDW\��F�U`�@$A]�ڄ`Y22�rH���\��bdL�ꊜ�3b,�!;$�X����7kȂ�����y��Z7)�6!���&)��P�Aq�b�s!���y���aJ�b��[L�!�ஸ�#.B���-X���� �`W�� ����"D�e��;�q���:y!PE�L�_@c��Yx*��Ņ/�r�\^������z^�V5XK���\���)���B[-��3#2���TZN���6����;�N�կ�j�eQ7�8�W�t�����JHg֗�֠Ӫ̨Sp�DSz7�b�W8Z����i�99+w����$6�Xq��f��w��D�����E;�M_H���=��G[ΌM�?˝��@�>�<Udb�Ow��M���ѽ�����Ň&�ӑ���H�ї�$�j:������O��V�]Y�������D�К��Q9/tGe�%Ąy.H����w�}�S�{���|��Y<�&$u�X/�|�Ґ®A72t]�Р��sT����)�P�#��=N���:9G�k�YY��*���g��7S�u�� �cl{S1f��h���ȳ�XM�H��"f�X��B���YK����1��!�"Ōê�b���XW��u�1��a4B��jq_=c0ɘ�#X�A��P��D��N�pL4�]Ì#�lX-a7(r([�4x��b����$C�q�ǹ �fx� ?�29�@+Oʦ��%+�u�L���a����_=�� �cɎAM#��bPh�p��1�GG��q�P��qA� ��̖`a�I�ʄ�8��WHH(1��f����������~�4�H�J�>���le_�sv�O����d`G��h*I�ұ��X�t��l@�$Joo[YؘC�X܆����j��ƶ�Q��ߘ�J6o<�j��WXw1S����;-�z���Ծv�S�Lx��z+����w���M������5�Ew�nZNӴj�ߟ���kR�C;:��f"���ɲ�y�#Ӧ.d���B~ނO&�ٰXf�ʡ=7��O�f�ݝ9�T�<<�"V���_:��,;���|����_��Px�uq���1z����l7�c��e��?֗������U�7���ת��ܵ�^��A�dx{l0�*���JV�����J#�m���{��L�y��@�X����J�]���զѼM~FVd~\ �d�� ��S�b�ف<��C(�Q�1�����#�d��P�����#.ِ�� D࠰1a�sIqs,��0K����� S= P����� �����% �����=@,�R���4�܁��lHE0��rS����x� ��[�� C��U��n*s��I�t8p�]�S���m��U�����0������)�34T\�Dt& ƀ����,�Ũ�*���SVd�c�l K �vGDs$X�1�#.��� D/��ZdvÞf�R��^k�;cgi�J�,U�`T">����Q#�&_Q/\�����>N�r贬���Rjfwg�X]���x�Ÿ�w�s۴�\�S�Ob&�V��Ĭ�� ;4O�-b�C���H(yȘ��C",wE��.����c��Y_����!cs�Ю���c7@��ݝ�a#w��'� Y>���Ugm��~Z��ѡ�Tm�� ����?���g(�7�V^�]@�����8 �%-B�ک{*���A�d�X'VZ���Pdc�h��ܴԵ�r'���"m�[x��,�-��ڹ��5�N���&�����+a��Y��ͅ ����i8���ܱ�ٙnNt�td� ��D�jdj�j1�p2�b*��` ��X�20!�P���F�$�~�Pv���!�e�C`2b������*�����\�%�qT̙�d(9�&�V�p+8�a&���<"�`�AD��p# �uC���D`��|��ᒡp�+]������r��a�&H�)�� �, �U�G`J� ���L�.W$s��ϰ��mI-�:k�)��+�B��x�]��F � M�+�a)`�@�Ɂ%��j+�ɱ�cIca�f �3�-˂CL�#��h0c*yh!fd�z��\���ȏ�gg�U�樵�q���l*�JB�ra�P%����A��.�Kc!��̩�"[im�ٱ�t��qF�0�N\�&y[C�����)���R[%�-��B�i����xe�����d�4�v6-�iK�{c��*?����yߊ�\�I��~������ZWȻ �D�������n�[�s�.+}��+EPY�][hE!]�u��xfzǭ��K7$(v�l67��m�m_�v$=6�杯|��0}m8�;r�\�%s�-l��i�TMu�����w���S��|��wx ����|����E������t����Y)���+lm�\A�T���3?� �Js7�W�綳)Leq�b間==��h���ы%/�z��ă��������P��b���*��bW��weP,Y yIKXC����e-���K���ZR���X�?g+��Y����C���2ҋ;���9+�&�K�� �R!�.��S�x�y����dXE lA����.�r[PN���0:V�b.+�qh�qlSV�t�1�T��3��%R��R�2���W��a�Kg@p�.(rN𩄒������Q�Rt@ʒ0 �9�$y`v�Z.�! �� �pOWSǜ�p�S�bp,����F��S94�J&68�BƬ(���$��Vf�ԕ�V�t�-� h �<��u���&�nb����Z�\m�Z4�u���@�&�pw?�;�;<W2�� [���F^Ҏ%��ӽ�f�Y�ѹ#luQ�'��~v6͝N<���� ���ޖ�w��X)�^.���= ���څxT�`�����(*W*~na!�˾6/������ZZ�RcF����V,ҹ�m�Gu�)h�����sS�d/g�sU�J��um������{o~E���O>��>��1�A���J��&�G�c��Hhw�9G�o�/o�N*��ҁ�s#GTFhjZ�vF�d�n�H��NԜ��0�$�0Q;汹�$b��wm: }��S������/�T2�&L� *+8n�"��R�ź�"���8`UX.�pEt-����0˃�*���\�b�Y�y�h��Z&��\|�R��@V.�0/#fs̢Hd�q��KدkVp���hHXI�",;�Caz����f��r=D�ײ�.�Mw�[.I;N�L�i��}"SM@�������C���I^pRD!:�aH<W���c�`��р�U0�`1xA8�ilhR�^��i�L���d����dhп�aIW�]���z!G"ֽw.�S��H[\�7������T�.i�w�e�[U2�t�"�qj�J&eW΅�r[��ظ�p�����7�O�-w�+)�w��U�1�f�ݿ'��fkl�� ��Yl^3���^�������s����<1R��h�����CN��� xin�e����է����\������;���4��Hd�}֡��ueV9= ���}�ȥ�W� Қ�gD;�f4[Y�:_K5e��t���IV��5#a��/n�b'i�������Q�ă($���cWjSU�M�Sh*��g�_j�4T&tnf ��� ���*z��X.��P�*�Yw�B�4ݰ�2Wc�8u*7�J��Pt?�<���x�e�ZX����5&���M�%G���3v6`G4`6Zs�Ib�X s��z`�B&d�I����$;0�ŀ1���m��,���RI�)�i���p1�(\9;���3�AcF��{� U�4�� ����3�"t ���3-�#���rx��\[B�;��<9���R���!�e&�;j�9A���p/�-��Zwsp�����ֈAs�6�бJx���D��U48�z��u�z�˾,,�wB���&U�c.��w����5����R*�H�z�-�T�QW<�;�d-b�Ǵ63��Ǩ�C����5�٦��yG?;�gUmH��"�o.a67[�:�v� �mj�6�*S��D�&)�V�ȫ�ny#Q-]��vfB��.<�bv�s�u>v9tu�i�F�&���,�2��l�;!��Y�W�V'O��*L^�^3����gT������+6`�]h�\�X3?���D6�]�ث���~������=փ���}g�~,G�6-�iV��� 8�Ő%U#%r��1A������/|����]w0�f�f�4Vw"�i%��ܥ�l�4M�x=4L��cמ�6��9���a�O����U���xgYWw�Y���r^��`�L�cDN9����1�XT�! �+�4"��Rb�L@^"V�R)Ώ L��jX ��Jԥ��h'+s,K���hX�X�@ܰ��*�.@9��9�ȂaX�a�B��bBb�k�����t�s2N� ��3v6a�T dL���#�X���-�Ii6IQ�������~6Dmơ쩫t-��Œ@�h�S�N%��3Q*+��cǴ;#���.�`����d���*�ƶ��ݎ��#0]��=haZ�����c���p��s$4+ZBP]�6C(eB w^��R��{Q����3K3IKӸ���˶�MsN�~wh�-a4�XӶ�yc^��̦oX♰��Z5ϔ�7I���q���S�J�w���[A��iKm����Uтt�W���rF��8MtZq.r��'Sy��g��|a�Nd5��$�]���%��zT�鼦 nij�vV>�v�湬.e����ײ�>lj��Z]����T=�5�M�� WW�C$��+�Q�6N�Ɯ;ie^D�\+'@��ۯ�"m�;����>�A�(��ʡ��xjW�SS�j>�]��iY��,����~��;�s�Z�C ���bt�v�u�trS�N�ŝ��Ff�u9��y�F�}#�<��g̕��K�`��e(O7(.T�dL�1$�`Q p0+�hI[�h�8�U&3�:r0,�a]l��;�������\�@�C+>�j�k�kOSq5˃#Ǽ��*r��1NE/�$@m�Y���V7��S(ax�l�X&a�?S)P�(�B�u B�t���!<�zؼ� m�����K�0^%S���&+�\&�۾��Dł����UO��Ӓ���3�(G�TT+�!r�g*�F`���]�L^6�p BiX�w�㎙��M� 9d��w���П�Li��E�'Kh�B�v���ckZң��]6�ǒ{6mj����Wm��v�WiU�`�M�Su�j�J�,�j�ۢ5�'8H��^�I��+�r��'��t�8��܊l_��M�%4?�J��M�`����s���Tl,lT�a��1��SOl�D ��i��J])%P�X�"��f"��F$u:�xfP��Q_{5�ɩ(�Z?��b���f�@bs%�t��۲��Jr{�����/��S Ť�s31w��6fu�Qۛ��ͽ�0r4Ã����a� C�+�5�ۙt&��:ـw�v�:��+���J�NꝦ��֗��dm�@ Tn�<�~��d�Y(��#�2lZ�g�a�E�l�4Z��P�\�M|�����hZ�}����Ed�R�n̐E0�=_M1��`I�j��3=R�n�� p'*�(rL��Ȯ��P]�sa�Ѱ`6�"��)c2/����q�0���2��i۹�`��; ��������БRX7�G�x���O��&�S�+�A���2�����u�QV�0��;�#h*2�}�E�"QtF%v\�s�w�l��D jP%%���T�_�������[�uQ�lx.h$�Yg�N_b33�N�ye��n��lK����f�9VÉ���tҚ�o� � ��Ϥ�!�]��%�����M�S����7��~35��9�rU�l�ݼ���ZXI8E>�����uZ�Π����^a����*s�A�Q�kse]Lh�H{��h��SCL�� �j�6����S�����lr����SҪjԯ�vD1o��$�a)״� ��[ˋ�&� �h9'��&��>וIlҜ��l�;�_1E:?��wϟ���B<P�Jz�hזTc�ֶ���B"���λ�)��ȫp�`~��j팻�U�u�&ұ,��;�%�����cwٮ�n�N �@2����0�J[�-љ#�`�,iM͞.�S���j� e���Be��½��A��=b4����3$x��RI��Ny����)8٪��VW��'in�� V�rA�O�&=�a� �ce2"�b�y��"������13|���a����a�;�F+��[+�n6���7�R�+f�t�ʂ��t�ݨ֮B8x`L�(Itr����ˤ:F�j�@��L�pʏL4�eCQ���>�e���9�i���D涰`r�����u__��k�Lb�@���JS��|l��H��^�ڌMjSa�mrھ�&c��B7�"����J0�l!�F���t֖u%&c�6to��WV3���Ro2�Z(Yԫˠ/���Z\m>�"��ݚTl+���]N�f�G���}XD<�3���ڈa;�Wtd<~��:x~� dmp���_�D��K;�o]#ԏ�����6�:Z��ɴ�\V�$ݕ�.w;|�����M���Un�k�Ճ*��o�}�j�ծ<�X=h^�چJ۱o:v+�d�8v��k_E:?����O���Ԯ,(e5G�Y�+]���H�b�\��S�EY�\ ���<q��d:Hl7�ȫ���驑��a^���;������ݑL��$`�W� ���Y�����5�8��Ӕ}!3/� 9�48�;\��O��4r�s� $ �"�ap�����!� �@�� `Gc���Eh,���a�jE�a��m���4,��~��5X��N@���b�XR��h�0.�ƌ� "�e��d��A���e�� �\�W8�\G#��U�69q�f��#a�� ��Z���JQLCٹKf�"�8���$�T�A�>�Z���e��z�vƪ��'���\D�)�R�qjī8��e�h�S �b��� ��n�^C������85O��X���J��Q��^~��t�"$h�F?�z�&Dqb� rd�2eK9���������J�۽�ic�B��H4#���c�T�7�KE �9�{�fS��(��j�8���Yij`�b�&�nՆ^bp])�c����,u�m��"N��-��g'��蕝�A�tv�^3������~d�|n$.nZ�J��2� -D�3�I�����f׀I{���Cf���#�aٸe��-��MyoF7����ζR�5�P�����]<��o{v�>������*���S`�odk�r�O��I��L %�Ԁ��.ĺ�����nx���K��FJ1��DZllQ,N�D��㪇�jޙ�o�L5:��u�1]q?8�-;2�^�kv<I��1����慼 +Di!"���<#�8S y@N�F �4�Y��b5��İ0OXy��S�'�շnV���kf�J(1����7��hr����ܶ��.Eq�e�y1�����aEV���$!8�L+�"e4]y'�3�7�B��%2��< ]���}�R��-��z�a��{J��74T��P�ŕ�:hz`YcsZr��H�N�6��8�6�khf9q,l�Z\�@�.��p`1He"Ǟ�P�B䡄 1,�y�.<7Ƭ��\�|l��f�u�g��P�e(w�+���4��T�Ɩ�����LR�3K���R�9\ky�FV�y�Ubg���v����e Wmm"ǡ�mV7��N٬{�{l�pM��N'���ا})Ns�q�}�O����y)M����Um G����xk��68�T��]t8k$�����s�0���f2uMDM�xeფύ�&mU�Z�}��o^�h�*l>�<4�e]U #%T�V_Q�1R�YeX�u�נ!�����0��s��'iOq�����f<��mhW�Ӳ��@�?2z�7u�;+���r� 9�f��X�^4yn�u6yF9��t�c��������W��̍������:�oXպ7�]�uL��t<�ee-���~߫���nWB\*�$.0O���Q�I��Tn52�+��#�`Ά���{RE��Ԅ}2 {/�4Dk.��J�r�P�& `Y��!���b1M�Qq\3rh\��c(�C,���Y��!��C�D!^�\����h��R�� ��&��� iV�ɉ�.ٛq�vc;djC(u/˂\傱����,r�*�X�5&[�՛�R�T4��z�)���F�ufq]���&��,a�|�ⱴ){d��hu�F9y�t�\W��W�G���X�ʍx�g�*��\�rݼ��A�^�P�$JudӎSӠ�%�5��~9�i�+��8���04����Nm-V�>n]ڗv�.�3��r#au^�[���Ré���6�cug<�I��sFӳ����C���&:t�*ޟ�Yw:�Z=7+Κ=�D���#�uSzu3of.Uƴ �u"x^�.�MV�}n�+�Vݓ�4�����k�Ae��X��e5)ɴT��x�4'Rz���Ks���m��| <N����Nt=������ı�}���u�T � 5�L���|_)�����cz�ƞ6k��\ h�ExaU�U�;��,�:�)�a��Ò�]���]ӉL����h=$^�sv�y.7F5upZ�:ٰ��=��kH���L�d�Ҥ>G���#�1×�P)��|������H &소d�2Mgn�`�X�bP��8�0�1�`2�j��YA�h��Z�������1�=쀌�A�Y V���'����<`�#vH�)��o�!�X:6����4�02���q�4�z��u�Q�v�c���2I��-\�,4hWȸ�P)�=T$�ѣ�ȉ�p{ؓ�F��J"�#'"���&2� ����z�1��8��q� S�.ʟIݽ^� ar�X�����a&�ΊQ��\�ԛ䊓�c��مuų����N5���4�Ssw���#����읡�Ff���w��ZD�Vt:�M�i(��7���6����gG�L���6�s�(�+����[�V�cg�tf��F�n�]ۚ�J�z#��i�t������d�.��]�fR�C=j㱥�M�=1FYa�&�m�����'Ϸ7�a���;�qh�3�L:=}^˟-�CzB�W���q�xR����#�N���G�+@y������g�_��<�Gbl{-K%u�: �N��A��h���4�����G^s�!3a�������\� 72ʌ�|���� ���i#Diҍ�ix ������l/�W�������;d�JjQ�a����-S�U�]�G��K��KC������a1CS܈��0�i2��4#z1 0̈ȫa �;��W��V7�����}#+>��f��!���1s�Ć#�����TvP��a\�e���u���������%��j��.�zH�J���� ?����q�4J�����3����m[z�Z�}�1�Z{�snU�lcW��*S��]L"�D?Pb) I$!$�6���c @x�8�@�ď����bE����>��.���㜽ךs��ȏ�}��1�.S.U[::���Zk��Go�}�{�"/ ��B`88Y�5�5�������"����Cܟ��;�0xhgk�|z*0�a�S|M�)���d�.a��W ��-� =������� q���^c^1\�h�رWg�5ó�)X�$.^���B� E�B���HՇ�x��<Z��椧�ꔝX6�K�A��H�� \ ~��,r����`�3s�6o,�)�b��q�k����n����|_��z,��N���}66Չh�8��u��T��*�XWo�zL*[Q#��Ҷ��X��:������������������9���w=�ز�"?O�L�������ݾn �M�������Sm�|��ʴ)�e�\�!-�x���'���$�%d���M������5��P��M��8R.��p��;�_oF1����&c�R]t������}�,����rY���&G]D����4)RS��MVS���Me�&&E���^D��l�I?T��e�yjc��MrS�N����ؗ�H�G5i2,��10d��M6i����$�u�Ԇwϒ�"W�5��]L� �"y5��R-IYF Ek&mkb��t����\�1�f��t�R���Fᭀ���ur����KNu�$2m\W�G��� %����I�/E�Y�q 7J�(���͵����꒕F��O��D*Rӳ �(v�ԩ�D�'��ة�'��`�6�D�"�ŁMr�Lb����F�F�5��e��O��C�/��r�W�ũ�U���䳎=|��fظ.�f�}Ȱ�Y:c���A��t�� ��c�v��Wv�0]�I���i9C���D��Z�jl��@��r�����͋�$�n';�H0|մ�U0�&����cq������Q��T����-����E�[;��L�W�s����<�խ�Z(�l���ds��7�!w��H;�������E�����߶����._�sV��'�m���);�I8 �;�����#�'�Ҭ�Bb�=�{8})AO�����u�ĵW����u<�R]H)�D�� 1rq��}8)4�ɺ��_���&��2�%��L��i�]��g�y�zOҎ,�,��J�Uj1�k��ⳙ\V�{GC��L��1K�ckR�q|ED�Ť�(�jM�T6KR{�g"�r�K��L�����fYorӻ�S�-�ҭȒ��\Drˋ�֥�"K]%i���!Z��]ǥrOb�m���x�9*�+]]�q.5he�]��g��.��9�j {X�/]�u�y-0��� m�;,��ϑw���Rzf����bh."��x]��dK%L2���i�]p¥��X��W����{>��QC;�Hszq� �Y:dV=H�p�*��z�]� K��FsPw�%H�m��Τ,2r_є�m�Ħ��|�'9��Og��(��%a �(�|�}J�J~џ�ۏ� '�����HD��를��3�q���A"�T�4��1� ���+ mQ�2��{bP$u�ZE3�0��^3(% ]�([ �q�s���_q��7 ��Δ�nX^�H�b����q�ș<Of�4 7� � k�����yw���m�����o�sSN�O$�`��c|��I"V����B*�8S2�lȈ�dR���}Cm��P �G��v]�jw\>>��=��r���������X��,o�=P 3"�_���s��x�i�<+ �S�l���t�WG���e�6�,r�r$��.{kRˈM�.l�.������6�js:�4��8q,xڏ�%�6|sm0�KK��Iޓh�O�"I����&[Sy�&/2$`�<K^��z�{S1����]̒ty�K��&]EK2#f��m�(�M8ĉ}�a�D�2Q�o�v�Ա��e]V�j_�@\�O�`�C����Eu@�y����t?C�����Q0�c�Z�@$����3'�̈́8��M�Ɔ�`yv���%��uY�0~��[:��g\n Y̊$�*hʋOa�b6���b���) M�^�Ϸm�՞H ����Z/�����+�ބ�qYO�U�XW��*�>��4ua����S ��wg�K��_�S�E4b"��P�����<�Ȭn0�*�o��tƲ�Ñhh:�t�U`q�znH&����e���<�Ʌ����2���7W�t���?G��KG><��hD�� xX��{�BXebWr�Eǰ�۸oihS�t��"��h�XW���1Y��.�ݿ����W�������^���[�����+&��\�C; ŵ�$8L3��ٳ�e�Fs����3�ֶ���.K���C�X�v}���,]�c� X�]��3�9�-����%XY2p�9��[��(:�f�Y$=UQm�z�vY/�H�JUL�$5Y�H.Y���ԇ�ٚ��&��\Ĥt����^�&yi� �}7��mh�7�r����~¥�s�cs}?�}(%I/I��H�]Z[d/W�z�E�,v�R��W��_�CS����xQc���N(���խ�"rA!���Ӕ�%�\��=�A0������ܜ ��C�l�0�go �ǝ�}�6H��' ;V��K�b���ݯm~�u��i:�]���#8����*����� �� �:���F��w�K������/�앳K�����)7X�Y��jz 5o����w�Ӥ�D��wNŲ�%`s�c�~}��ۃJs-���% ŋ�i��À���; -�`��s �2L:L�� �M��Nhx��� �D-2�Ak���#w�֝cT� o�PWn�1c4�]]��h^7�:�'R�ɩPMV?�a�dS�r5/��t�Y��?7��0:�7��x,?��~���R��?%���H0������5x�%'87�7�nOOA��]�]�X^������3��zx0w�1��Y����0��~�4Q� �cR�����S�d���|@sG�N��>��9�,��g~�@�=#D��}�����*}i �$;䚚�E�X�۞���2�ܚT�gy��\,�u�Kj��D����#�5�u��I�#��`u��hSY21�&֒�c����,�ɥ������$�$y�K�.�,#W��K�7��.�v9�*y�RzM*)���� U��s�pÂ5��vr�b ˔v���4Ջ�ׄ��iMi$\]�=�3���yh�HL�����wj�wg�f~L�s�W�0a��Dz!n����¹��ߧ�&HgS&gȏ� �0"1_/q�����L�������n-�)w��nrń�^ԥ�]M�yݽ��'=�f�=�z��k4����-JmV�ճ`�xv��M����dE������Ozh�Yn���w����o�b[��ͯ��2V:l���d������5,X|��lib#���M��<�ۃ=is�so�@5H��5�V�݂���dv 7H�� >���^ѐ*ȏUݨŰ#I���$��v��;���ޥ�|�|���o����_����F�!����K��{5�ZB��< v�.��v����ل���5B�,���4tI"<R�8LLZ�����⇋EY�#��@V��}����[���-n.��k�͠�N2IxO��w�1��}8 ?)Ӷ�低H�"�i��Rd�cDA�7ҥH�.�&yWL6k��!�jM%�$K�R/01�m攚tS����ד$-�=������룠ݏᄖM�ޚ�n��6�4��eY���UJ풲�e�R�K+*9�x���A�O��fnuFw���x���c��]n�/`�b��a�N:7w}k���2"�M� �Ù^��V��;&δ�y��w�I�/��d�#��/���^60�%��S���}��N�- ��/�Y��g�_���,<w��ž��njQ�a2����ROnvA�(]E�=��V�-��S���Z�O�F���������F���&/��fI��$a� ;l�iQ�x�@2���8�ԇ�\����N�E>Ƙ�Q� ��P"e�O��d��E��yg�ʄ� t_+�ԫ�t��Ű��e@�n���%���DZ�јu�lj�4L����{�ncO.H��������1!ي�$�;y4�*���t�ͯ&�}Ϗ��ϋI����E�,�>�"�.����/:�� #�0��.)$��T���͎��:��Z0mgT����r��]V�Q�x�c�k� !Y}W>;����4��얮�@;D�o��q�dLD��?KS��a5��D�Y��;��oFa��h�bUE�V�7wO"��$�^�,���U��.�,M�4�����I�ET���d�<n����YE�EE{���䒲�oM^�"�j���%�Ю]>��dm�7�5��|��ɛ��5�hZDŤC���� #��ŢP�b$�Sx�0$�*��Q��}�;-�uThd;��S|���U�ټ��0 �+h�/�Xn0��+��:�����V��퀸�ۆB�C�������ċ�g���'�1�C��C�@HTD��u��_=L�����t�c| !e2�'����x*/�v��ɟ��"9�c)�y%X@V�`��D��K)[���6���e ���r#��X�'c=2�o�)����PD"�#�%�*� ����{���ޝ�Eg- �Q�!�'ܩ-Flt]��?��F��U�ܥ8�tB$�:��n"�2�~���ɂ��ߢ�j��s3⒩j%t�\�ke�:�Q�@|2��=�\ ���m��;����AU���%DS���"]����o�/���p�L>�`�n�G�I�����ENY���#I*��]����?Wa��#���O�"u�z����pX�^L��Owvxsm% L�c��ݔ@����ב�" nk7 E�� 5�7���V}��ؿ�6�̡����K�&�$�Ť+�!���r/"[>�֡vV5ђDդk۳hoҗ���$i�cNe)�i�\�I6�U�(���y�mX��*���s�$���<���.�z�U��ޤ[F-�K�u�S�Y8t4.����c�2���E.�>�MpSr����y�@o<��.r]|�]ah�t0���Τ����F�I�-�8�X(��a����e�J��e������v{�R/̓$�> ?��)j��H�z�tJ���2V�{u �� rP��O����=<�ٍ�d��aF&��9�uX�9�$Z�Z��ِ�Yk�+~0y�៶�[0��O���Iyi{p�Z����)����3yܕ�sS"ȭ��{�U�hܓ��ݐ\&1���+ F�N�W�^~q��gf�[����W���9 �r�/�W-��Wd�3�*4�S^�.q͗�5H��!�3��ՐR����y�h�J��]�G.�Iª��KM�<�/��"��� �wV�����/����4������= ;a&����B89����t�n-{���(�'����f~��>�oZg��=�� %\� �gKjy�=u�G~>?ors�_�,těl���cw�.�rT�0+0��tl�+HB2���"��p��oG1��a�\p��H~�y{i"�H��X:p,r�7��ɢ&��c�ъ�n�55��6�b}�UA�l&��7�Z���Aj3��Ur�R�.% []����L�t���E�.ڎA�ʇ�����Z�퐖Ҹ`�Uڄdl>���4L���,<V) �����0�"�*g��Wd�� �-c�^���O@P!A���!i�����ب9�^����"c��3��(�B1�dv� �͵��/�� �ar`�j��SJ��'�j������_�������$aR)�.�i�+8��)�dz��Ά�]5����G|o�v7c��\I��e��\�.Ɵ�7o����8�0�'`�G��Ṣv����=H�8In�;�W2b�A?=����3���>�茶�64B�I�ŪD�1zQ���[�w�� \��!�.J>GY���5�g.� ��wB�] N�rS����w����tI�O_c+�0v4�+3��13 :�����<Ȼ���:�;-V��_�����&r����_�|*��<��齊=rt~��xe[(��X���Wקr�K=b�4��i�rl�d����m��x�~�%��#K��&�-�|O �ڋ��h:dX�(�t�I׳�T@$�}�fɂ��mLB��5 �m_����@�3v��+���H�6��WY�mt�����R�.��Ķ.y벷$��UURj�T�j��M��*k�7��vY�ԛԶK���h2ɚ��$Ki5I�]ZͲ�wY�KJI����# $���e�.���C��qk�ܧ�.�6��ÑM��Xv#2r;��i��r^F8��"E���+���{�̳אsع_P�n^��a���k��;�>�mh�ݻ�-#��)�Ŏ�L�|�Y��'���テͫ��@�T��_�>gV�3vz�'����a''l ,edZ��#P���dGS>���,)g���JR����|M� ȟ�0�,����W�cm!jsN�W4&�a��>b4b����ӂPt �l>%�HK��7��/A��{Q�(�*���t�*���k���ڈ1���g�N�>}Z Ҩ殎=ļr�<!��3 H+���~\�j@�R�Bnv~���>�P��MyA�����H�s�.�o��|�}���[?�E��?��E�-�����%��Lp�`k���nQ/����[��"[of҆�N�)i v�i^@�fy?��3T\�a/Z�d�-��N{N�;N��Sr�k�� ���b�J�JO��ޮ���;0�ocw�^��s6n"rO�\vI���7�k�eۥ����fI��Cf�V�T�hysQɈyi��EMrJ�%KښT�rQ��n��eL�}�-5ٴ�S���T�ɤh�mr��U���e����RE�]T�,�E�J�U�R�E�v ���y&y�y�aGY��^qR�ۘ� A���X�@R�C3���D�����I����*��:���d��ie������(�~����0�K��7pP8������Y���>\�1��0y�6��5��w4g0$��Io3�O$B��� �x$%-]�݉|��D{`�>I�*�eB�S�=���E� y�Ym��%4L���LX�D�v�h���9�'+;ʪR0�&t�k�pVA+Xo�lA%�8��3ޫ��S�����B�8���Rp|Bn7%�%����-�`���{�!Í&[�] ��s}!Nbk7ԋ�Bxd�'w���]������!D�;�g�]Z}u���om����8��ӛ;��6y�T��/�7Ίt����o�_�;�f��9�$�Ժ��<�4t�����s���n�;�aa7��{�Cc�,a���������C�N����'�9I��Yt�7ܟX_��:fG���:� mi���W��F�!د���@��"�Eg�dY����D�XD�?�F"�U�����]>�����H�w�e�rnk��K�A��^T.EFϭ�$�&�E�uy�5i5���:0����H���!nER���"ڒ��%k�ܟ$��?�T�v�\m<�k��=I�x�W�F�x���X���&rG�\O4xq�0!�\����Pp��� �wws;���ɵ{O�H�-8kkV�p(~�c�g�z�ZD����.8��$�N`��ݝ�he�0DQ�ӥO�o�O��Y��M���Ó��~�Cu�O�0�_\��Iu>'q�I?�'0�_�g�=���ig§ ݱ�V��P|��?��r����)=��~�t��sٻ�a�r���4������LQ�0m/A�î9�@����|��}�\^=�b~���.?Kp+�0�i�57/���xȐ�mXap���8���81V'�N_pp�"�F����(��|��[�!�6�|$q�O$�Yxo-�`��H(���Fာ��������퍓��"?h�A���W������{��H�����m�u����qfԱ��[��H����s���/F��ܥ\AT��F�F�n%w���9���&��٩�3wibw�Ο��N2Xss�V�]��@��.<x�y"xswh�������y���=)�B�^��"�}���D�����Z%]���^���xW�}�c�$[���Uror��&]Wx[���6��T���1��އ�HS1+�٥�u1i�f椲��h����U鲋]vYD��&�TDU�a]��*��iI�"�������$�Co�<A' �� ��:����B�]�tn.â�����u��"r� ��j��L64���QDe)(�D�L �Z��.�&�YL����')����K�F���is?�r�t.6���4�Xﯮ��� Q��{TLB�r6טIPD��3����2�y�ܹ������w��1��]0aX ]�<]+&C�:�7��)�-k��,AZ��&j�C�����E�� �jg阄��O�JS5"~/Y(~�.�$���l�����x����nIɍ;h�!o�}w�5��J9�W����A���1<i6_�9L����^1>V����9��^_М��0���lF�F�ٹ���D�U W*RJ��k��Gc����_����@�V����87d����6��f�?�ջ�g2���U�Q�zxF�_�Ea�i)>���Aox�89N���.�"�������d��!N�E�}���|bt��Q��&;��i�� 6-ݟʀBN7�|Gc�h�K�)#M�I����9�����MZl�cWɹ�%�q����mXr&ȼ���L�}�}mb*��&_ݓl)K�CrJ�zM�h7I9I�C�5ɽ�\s��b%K=T�2�D�U�}JC�u�,�4�䷀� ���k�Z� �X�(TixX�2�+�VZH<���P3�������;�?v_]� N�� N_,���C�aR��$j-�̥d�w�"�ʚOw����UN�[�����>VT "��M/��H�d ��hF����EzK_�5�$�s��z���Ua��1�*Y Ӱ9�Q��=��ջ�̽f���!�#�M直c���@z�=}�B�ݴ=8wE��dT��w��zX���燐M� �.�g���d�q����b -�w���z�ū���4��Vޯ�0 ���n3Q�e ���Y��YN�5�����B�=y��zj0��+8$��eٳ+J�(<�%oߝ\���<��}��K����|���������o�/]��禞�D�IĒ��;�Y$�y��T@�F��$��.0<��������X_�K�$0'Z����Lbh� ��+I>I�;�6Z�nu���e8���x�����.����*-��0j ?CIM��tt�lMά�7�����_(RŤ*]L�bҒ��*��H�n��$���*&]�f�]rC�e7�=K[�l�*����J�*Y�$��"G����'$PT)�R�m�rY�md?v��f�4Y�+�2��a^�3�����_[��yπ��k*9��eĄ�=�P��1´�" �uh�A�l����t =����&o�}%4֕�vO��✉�UK��z���e2\��D�+�D��S���7����$��<�� �v�-�šW#˖���v�3���*���6Jx6�!�WLCaz����VN�h�&C��O��1��R����IFɛ�i]���Z�H*֚�8o�"�;��̉a��<$�u ��v����Ao-a����`�k�B��i�������gA=�1&q�c�'~?-��1}-�%��^�����S��{��мe����2���i7��{��6��O�g�y4D)zit��������G�� w�r1��������ۻ]o����o��b�%��:�%X�E��^q{M2�cA�%tޘ��[I��Mɓ��K��N@A���;lvh*k.�2@��݅�!jZ9��h�����l�3��!8<��ʗ���8\_�o�y���I�2���q�$��� ����(&1����l*��RE�"�%馒s�ړtUѥ�qT�>�$-r�U6)����tQ��&�jr��E[��Y�V�V�H���X5�}�^����C�%�U�UG&uncݑE��C�$(X���j����\�q(�rMaWxy���u����!�����7�S�0�2G����C��.=�I//>n%W����x�Q����Q�I� �Yu�Haʒ/����(P��3?��3��]<�~�k6�7��1�������6ړ���\f:��p�ś��聋��&�����,_=jt6���r���4^A᛬m������ώSn�LG����0���Z�� �*�L��rJA��3�[&3k^��#�'��a�#q-q w^�#��Ά��0E&���g^�U���� �R%@�m���Jl����ό�� o+"�h��n��4<3|�C�;ґ�;�`w[���k��ޛ�BE)�m���l�]�hpjt�S�}5���k֒CD�������o~�|�'�ۏ���Y���Y��YW�_d2[�H����d�(�c���U�m2|~���O�b��J#4ň2��M����~ܶ�%:i��x�H��Y 3robKء�# �G�!��D�O��l���<��0��Q|@^�B�E�O�a+6&�+�� ��>��Q��\�&KV�٤�44�EźI�&RT��-E�s��.�S��E.��**W�b�ʺyzz�}b�%wY�J^T֥J/U��l�.�UROc�Y���nih��<ՙG@�Zϻ�.��� �Vl�B�ޠox`�W$$���_�"�bA Z��TZ�b����:���I�C�����!� �Mr ���{����z�/ʰ('���;.vUO�� �ԫ_��7ZpNc�K^����'�Z���>�7'RN��z���Y��E�*2�4����PdZ�4���u�Tj�0��l2Q<�)�>��⤚B�+a*������?�VY���C �ȋ�QD�NYk �~E�Q��=C�6�ݟ+ kņ �ϊ}*hPb<���ڎf��f�ϭ�M�Ɍ�r-4��ī�B�gX=0������Mww�l���F1���d�P(���%X���gR_gL���5�{y����w=��o�$]������}t�х��9���@����H��C�;Ր�Cbٕt��ƚD ������d2< ݜ�:w�aO-W�����CX���"�� ?�)�n�*Z��Cv�"�|�Nl�S���;$~U2ס�.�OK:��� s�9����e�\S�cŃu�H[n��+��TF���:��U��$����I�O��� �tKb�XpiK�,��^�"�4I}�����.�4ݤ�*) �pm&**��r)=��Ƚ}rIȕ����Ʈ`��p��7ї���y����&�=�%u,"�+��+#^�1��~�EW��q��QQ�=�=�����hs� w���יiqBeޜM�\!1�ndO�r�.L�]Ɉp��`dr8?o�v�ӹ80��ӊ��O�!�$So���!L<�����>�t] �%2�m�ׄG����.��3���K�p|ud�z(���se5�Տ2��Ȱ�k�噧�>H���xU�:��جu *uq����و�M~p>B��1mw��L����.�Ĩ��� .�S������{�p���j9����h䢁Ӫ��V���̈v��ƹ��������3���&[D��Ȓ.~���^�b�6��>��������?�P��� t���\������e��; �� �:|%��q�;��+.��"C��?vS���<c�@��19F���D���w��\����p<ن�m旍���x?w�ɼ�����rjP{H�Q>h�Tv�����:Gopj۰Cӽ��&�nQ��G� X��["��8X�p��;~YZ�j]�5�ǀ�՚�����؆V7�J�W�]E�}���U4���7�MEj��T�)��m��Im*j]�'�:n𞊨�,����Q*hB�R�Lx��� ��i�VO�������֖� ma���<� ��f����y-?�.f�6aHp��,������Y��7δ\= <O� ]sum*��]UGq�ɡ�.��6��W�H��CȀ��e-n��\��ۉ�P�3P�z�`�vq�L��No �'�f{<P�yECLYN���d��h]�4\�θ״�����$�$��{���{�3*������KN�\�uG�߃�CZ��F9�i� 觾����������;ݾ`����?���Ǯ$v&Z ���+'�)߂̩��:���ס�%.��oA��Q4�ӭ�1=\Fֱr,��}}ź�i�RX�Es�Z�̓�8�uw��.�?�/����c�����������|.H�ф�.�_���ҳ�C+�[���M�b�ɀ7&�L{�⒄E��;i�(���ݛCi�i}��StcU]�����l�[o�?˔2B1�T�旙� WA$'�&��n��w��$�%��6�-W�7G1h�3Q}���v��:ҕ��"ҮU̺��"�Vi��&}F#+bk��VE�&�&��b���_ �ڪ��eM]d�Ek�T/"=Ki*=w�Er��T$��z�� (#�B�((o��O{��ۂ`}��֙���[_ Y�G!Y7�PL�dt+HY���BB���_�^������$o����2`?1'�M->���;�)$_[�K7Ȳ,ȉ��z�3�;v{0��k��b���,6`�58�E /�x�EƎߢ-�˴��3��-4<�v�o �g��G�G-�&��b��)AT��O��ܐd�6���[�LUo���š�~��o[�ߏ�רi����$.)�C?�| �TA@���g�|�~�ɖk��"�aA����r �ݶbũ^�llOqUrws��;�ω{��`�{� ࠓ| J�9�>��[�� �e�,�7���Q�:F�r���8*3s�q[�z�Pp���á+��������o[�.��W���ސ��k������}��zA`(��nj8�����29�3���e�#hd� ���9�5� �=�>@�ٻ\6��,x�ټط��� ���U �4�Ks��d�>�d�|�Kf��ͩ�x��T+X���b���\�X�[hflH�����c s&"���"�:��ZͲ�"�7i֤iKUr7�5I�*���K��],����-I�m�ct#kŏ����~��|Lq�묻�V@hM7��@�Z���jqʄ�xS����J"�WP+`J`��#J�:wZ�"���Q\��_ �� �l$���K�lPp��h4��}��U\��&c�>T�b� )�gy ����~�:ze�)(0�O�d�2G-옏p?���M��V�\#H���b��Vΰ5t���-\]t+�p�iR(F&�vzN��@t���aEׂc!e�qJ��@l�������0E�PP�l�}zq�딪_��%iB�`g�|��<g�5�PH��b���Y��z�h�|��"m�-4e� y� {�ib���g�Ow��{�߿_��@���*q�D��g����/o�L�x������c��۳��"���w�=y�ϗ��8����>�Z�=��r���A�W�@4�<A��� k3�K[\3�١��m���)��ԫ!_��O���� {�}\Nr�6qImQ�f��mA���D�o�&�;3�M��Ka �ox����Q��:��0]�sŅxE��}�����^>_���%��Io"�����p���ԻHU�r��M��%��*�F�P٥�.]T6��]j�R�Ȳv�|��.by�7�ȫ3���ɲ�E.O�.U�as�����$���9�����K���H������/�� �`S�ٽ����J��L���<.���оe�w�X�������k������>��nnv�y���^�(��h ��{?W�4X6��͟��C�F���%dn�,�bG8�˒�L)�s��v���LMpfZ�Ⱦr��]�$��U�O�k1hb���`_��j��5�1��'��.�����]q�g�N.��3I���:Wu��R= >�'�u$��ڹ" � >'zOX�Kv�Gz�Os"JQ��W�)m� A�"M�F��,�l�ȼ��WI4�!O"��X���'zv������ �6h����`{<��:X�Y�}� ��ߐ�滾�����wl�~�}����-�v��+�N�N3���#����}E ݐ:wn��3��L,�h�UD?u�|��Oma�%�<�e��7�"��~z�������s��E��P˾����'� -������^F��!��`&�Oe ���)�߂)>� g���!�뀸���3�Ҧh�_Eַ�l�&���k����\��֤��H����Q�R�I[���d�$[���$ou��U�nB�T�٥աJ@Q�:^������o���>�lK�^1]b�ݵ��pj�<%�*G����}W�aGyufo-�{�ij,l8�U��6��Q���[\��雒�v �4LP��gN�hZ����+#�g�m��Q�߯9L���p�7���{6���pBٔ=��A�:���EM�@�4H��9��xC�(�4JI;�+ w�m�ä���03P��=8��۸�u�'67��-�ZX�I���l|�i}`tdž�~f�Ϙ]��%�=M����d�_�٭�.}�.Qep_�mg�z��._a�T�R��;��u島�4�H�i�9�>�����܀ ������/C��X V韎s��9�� 6�-�D�*_|�Cg�ok�n���O���o���Ew���J�(�����>PBk����H ��h _ B�i�� �6���W�O1I#9�Q��5����+8�9{�Ͼ�./A��%��٩����Kב��a�0�W-� �l�ؔ$9HP��(ҙ.N���1�� 6��a.yH�*X��S8�:&�5��f IIX��#�*]���]ŊHJ*��Ķ2�����V�>�0��{�`9(�D0��t8��(��c �:���:�&uٻ'1�a������Mu�4'��ܛ��Rd�Or`��iyF�\�K��+Y���no�x�ɢ�pv�9 �}��&N�d�2m���HiQ��C��� &5���ȷ*X�ZL����H�9�V���d- ��5����mY���`02����9�@�k� P,U$�p�r#��q�t�0�p>��2��NmD�=&cD)O:M��v�E4�>������Kz6O:!�=�]I���85R����� K� v���;\zgJ.0�Q�/w�r�����gѮ��)��Y�J� ��p��(V��n��������A���8�[^>ߕr�64S?���0�Y����-�˟�����������CM��n��(�$w��[�x ����������C���q(���ՙ��|@�g��2�6,;a����5fm�������0�<>�� ��Ni�B���̫|a��b#���\�i �&*~� 6�^=�� ���3$&�����Q�wK�PG[�=T��H��Ȓ�l��Q�z���\��Eti���%�q���`Up��"�e��Y�Ӥf����]�#H��~�]d�Eڱ���y��M�C�ĵI��f�8W�'/�t����3a�/����q>g�:������Za���H �=)�lh��dF�:��ش �!&����C���\B��������/�>�TDL���x�9�4�80��"�T�JV~�BB�+ �n�@2�� V���Y8MGR�~˸O��;�^��N� �*a��.Ӝ��;�Bs1�jTb��w�W��44ZM��X�˂�h��-d(��h����#w���QF�����,�m�1��!��<��2-���!��� �"%�~�J(;��@��Y�6��͝�r���̒Mk�����)yu����PS�߱z)wW`�%�4}�b=�����������O����|�����.1B�v�Z4�۪���NC3>.D�1"͒c��HQl����$�$���؏]Pr0��%��_�g��f�f�搦��C�����'m�i����>��H��&�[�j��'�GW���`/j#$��彸Q�m��� �=}�gD.��<p�ܴ��.ۆ���Ʌ��!Q����6��٨�� +��ȕ�e$��;�?�B���qM��O�Q"����!��?G� F�7����)CB�Ɓ�j!����"�:a�����ɮ��V�'���/�冋"��w6�/���v�g7����m�[��M�%���.������[ܬB �n�V��x�tJ<�a��$O���=�^ە��$x2|E�Tk���h��lN@�t�1?���� �^S��]$�8QG���p�7}���7H�D""�@�ђ1�3h�{�|�WtH�w�=꒥�2p�2� ��p�j�j�zze`�j$�-yճ##9���{ #S��c�w@�`ʂ�Y���4hAWohH�X����a<2��d�ؘ+�ϊ/.����/�Du�g�H���_�O�g�\��LRQ�cd��,Ę.�i��Z��_��LE�a��|{Ш�R��ot�s����>��R8�lhb"�����Z��:�v�quQD9����E9\j"��w�s�,�K� pD8����b�t�a�זq���(~��a�5_Q���)��M��h��$:m�Y �Sb*c�M��H�zk"kw3~������B���h(}����@�;�CV�����3�G���\��Rq"��8ӸnuzE�E �p�k.ߍ"�D�O����˫@:���=�fw�/�iD��+�4�Z�l,���hs㕎HG�B-2I9�����Dk����N��<�-4�*~�����gވ�a5�㽠��?w�:�Ư�t�����V��u*7n�i1���>8NÆ�Ɖ�~�"�P�L�:�� �@��r�c�.�&\�����-I���<^�@d:)F���K��Xo�6��Kz��@��aE<I]v�{�נh9|�q���hH�j�s��w��$L�R��;����dO��\���� ��r��oB�A�Z����!��=�q�"i1��Y��y�+�;��w�H�_���n_2h$ �S�5��,��a��e:��}��qhu���z?�5��Q��g�[p�gҖ*.i��0D����TZM�����TbA;i��)ܧ#S끔�9<G6;�Md��.�6�m�oХ��"�q� ��U� ����~�jL��o�ܱ8^,d����}�.�ifM�`fL3��椎�ɑSB2ׄ7�:v��;o�V>���5t� ��uY�a�u��6�}̀�'��Y��k*RVw���b�x�����r��y�|� Q��KJ�!Ȃ_q�/�t##;=�����X�� �jf�������=��4��E&�&=y�� �dL�Z�"��ܴ �K�o�%eKp��F���d�Μ�N5��=xt7G���l�7�j.Ab'��:dzK�3�����0�g���p��la��1�х�+U_t�owY�����h���h�Ag8�34D�y����*�^5��-���~�<�%����0G��|3������@ԛ����Z�%����0��#4Q!+��NX��E�Due��aҀ�Q)��.R��j�:�{ṕ�T�X�a�[ދ<��_�;��j�ώ�Xy����.�o߅K���{s���+I�^�Vp ��~+c*+�0�$�&��D,��S6�Uf����u��<B�gHiIo���^�L��f5?�xt2��W&�X��,��N���2����qs��FV|�N�!��;��/ѱ���8�Ƿ\���Ix`?�D^|����@|�m��݀��-&����Au���(�{9-C��;Y�^p6v�'W�Z*rG� Y<dD�N��|���&r��c��)���t2_7L��DCwt�A��.i�tk`�77SH�S�>&���+� ��4�ϰF�a������dx�7l p.��<u�q&�^"Pc�9��nѳ�wjcO�Po�T��^���Z����e좻�F�[�d4 .��� Nyb�I��Qc�F�ԣ3`���>�Bn��9̟o�g�4?g6s�k-�N<]�+�%�_�}=�Q��8t�j�:�7�G]\j#��{<�R���R���-'F9�Y����v�n��(�Qy \�j�>����#у�����ɐ����zZ�����EX ��aA�����ߏg�`��T��j�z�3�����&x�A.Y�����#�����>I�����7�:��]�.�O��pv7�������E�{�m���",�Ä�-&�nmag����_C�)�k`�t�0^�k`ɦ�"#�eM�� ')9l��h��NcWBl_�Y�/5���*ww##���ã�� Bف�d�~�j��oU��� E��h&li� HH�S4v�+��-����0�����FQ�ͦr��"W�ę �&P\`����`�G���\���D^qB$d�:@���5���Ȉ."�3� ������T��������;��fI���l����� G7�����(�խy�#szu��p@��:�\~���,�Ӝ��(��M�B{�,m�0�а�9M>:\����pSk�����8�y�mq�,A��B$D��Ҝ(��_6���.��G-s}/��lZ��ߡ(i7':��0=G[�>[��S��3a��τ=$q�=�;E V �Wh���t9] Tt��P3Ç� �ڝlf��aNPT�~����yjh�R ���=��(MnOY�T%d��`q��.u���7���x�y)�~e���ut ��Iށu.]D����?�@�����.���o������ ��,r9�c�?���7F��-#<�?�زο �ADQ��m���j�{�L]b8��Ch����]��Q��d#��U����g� �!�!yH������)8H=��`�ɚ���U�]D����4�����m���� �:�{NlC�ڰ/�+R~B!R��o��'��W}'���fi��d6;��(���G�a걠X����S=�k�������iZ=����G�nV�p(��9Q$]\*����w���?�na���B{<��x�+��ɁxA!K�r@U��=��&�a^�&Sͥ*��O��!��mL-}Zù�$Y9��#3�#F ̰�Z�S��A���1�x���]%ؕ6�%�pS�ۍ*/�#\��m�K������I3j�5�^�B�Y�ϲ=y���� ������gy�dx��5� n��uwn��o54j��]��`�v��wͧij�:-��b��Ot1z�w�l%J��D����hp�}w��u��|N���5���o��Z0�iw�����мg���C&�����h�o�#��0�q|��͵/ۿ�/�����Sc��'�����ߔ`��`���V@��OdkwϐV����p$��.�!�Ճ/h>1NtHLRa0woa�M �" _�m�Ƃ�l�n=j�-X,��D#��?)8������'��,��zm�̖�)��R\g�)� C����.���CdyY�mLts���v��v$����M��M��Xw7� /"�+@�ˆ(&�%���*V�+��<�;��&��Iu�jrIS;@ 3��'�d�͜��ˀݵzZOtD��}��������o���芝���w�\ls�"t�"Dm@v��9�D8�Hd�FY��OώX,�$,��w��f��P��=)�M���"M�S]�X�&��t$w��ˀ*��P�.EvNI�n㩗�7x�hZ�� kC#Ħi~�]�~��%���xZ0��FJ�|$��+Ӗ����7��FV}�{��ىi-�!�jE��S@G���\�R�����h�ggj EY�:�I�c�z?P����s]a�i!6�R@�q�(�/p�8 g�'w'mNƛ��5��������r�h��Z����Q������ʪ%Wt I18��ғ3��pjX��L�M��C����/�]���o���'�y�� ��� ��`���q�t�aƜFs�CXn(ӦX��2�q��i$)��*X~��[8�G��$�z�d� ي8k��8i ��z��4���c�g���B}v�y��-��JIU[|Yp1�%�gDR��cc%��n9]=������Fa�%����~���H�Jn����B+��^����I�HA�mCγ|�SZ�,��ߞ�4��Q�j��FU�Q�(�I�hVa&��%W����jp��Bē�uOZ]&��݃�͞n!F�STzT*��GsVw���%��4�d&��u��4�`0�l VW:��)��n�¢�H��cU��|B�R#Ӏ����4��WbJI�&��w�F)��]�N��|�@?h^��@x�f!�����q��Nn��]]rG�;��T`J6QW2շH;�Cy�c$Ƚo�=���i�7���k;������½;SyN�8�y��a �A�1��K"���6�j���<k�w��h�<ˋ��LaH���M/�`(cR��͛˼¼�����Q�'���KD�3���NQ�_\?� ��[f��������� �-�4[ߝ�E����dqξGe�4=q�p��)�S[)�1oj���Xj�h{H�aJNb�[G��P��mXD�}�e�m2�OȄ�hn`i��].D��Ɔ��>��@���C� J��}�Nz�tt���t�,c��)�*�"ҟ��UG!�w��������3�=3.漋l&r���֜*�VT�K�� �D.o��� c<U 5!�`�5�/� D��q�N@��G�������5�=�$t� ��t�J��)L����*H��i4C�E�H {�⤯Z�D�$p�Qe �l�| �!Ӽ��6��$�r`w\NtcS�����m�]�Q��n�\�+A#��L��zt��!�;Zor�'pk�P����D3���K/pUN2��(u��DϮ��>��`���W���ס��Ϥ�l�zbF��BBQb�e�"�[���Q�{��r`���Df]d����wA�t�`'ÛR9d�� �x�|�g�T���� ��-����pbמ�H��F�$�W�.��:K 5f�K{� �M�l����\�A�y�y4��|�������[g����꯷U>oeL7Si�/-��x�<5�E �k�0 ��PI"�z��5��xqȦ���;�S�[�m[�����N� ���%U]�� MAz(���h��aF�ۡ^$��8�ejTw8/a�oWg�*z�y{��Q�'Y�� �k Epb]|z��D�/I7hK��q���ɍ/�IF3�\�j�/�E�l���6��u����d[�&�h"���2&tK�Vs9��h{F����_��A���6���C�� ���/ ���Q�S�$n��RH��T���ygIaә�����'��פ��;qF��N_���ҵx�Z��Ƶ�@�K�/%' ��ځ�}uhp��.~�7$pM�g(,�\��[ v� {V�ѝ�ڋK*��O��n0���,/���h�!��Գ��)�:���B� 9�5U/a���Y�J���~��˟�[ ��%L�$���'|-y���m��G�݂��a��ߚC��u��e��ZP�X;�PP�7 Lʒ�Pr�� 휯cs2^�zǠTa: �ڕSz��{XQ��;����^Dz|y��~�]��O~��5m-.�m@T��~�JϿD��E�����7t�c���KA#��gݚ�[yOa¾����4�0Ow!�((�d�Rq'G��Չ�)���p��ݜa:Z��@r bVg3�m� �LX�CJ3Eg��=�l6�&=x��C?Ipְ�Z�\��&�����j�B(��.�~Ŏ�����\F�<A��۸��)��Wp�:�5�o�yN�Ec�\/(�������ײ�.�B*�Wp��{o�-];v͘fi�����D���� ;ݒSr|���B�`����wC���bj�eEDr��}ص篙�3�n��x��E�� �Sxf�%�%�mhZ�0VB�ݟ�Di�a^��V��X+�m$�a?�a�Ŧ��7�~qDl���k����9��dh��-0ϗ��� �;M �}w�8��b�������Ȧ�� ����t�����ν?@�[`8�P��w��蟮�-��HM �ޠ���M�a}w���,t6r*po0���?�\ţ��پ�)XC�6���K-z���VN�{�X9��Z�q�����`r����N��Ҡ:b` �]r \���^��+��勯����'Sk�p��G�W�Q�|~Tϊ�t�BwX���E��s��T9�$�IH�i���C�4����X�s��;���u��h�7�)c(���1�^ß���d��a���6t�e�������2��H0Yތ�*'��@S�wx ֢�lv������� �W8\a��\�d��aOc���:�Z+��ߎ��/m]�&m����K���CcO�� �����} ��26�=6�e �,"�r�^��(�o��$B�$�<F�PMA~E?�,_�1퇻r�E�?�t��[����WSs+ab�p>�>F�K[�ݦ�i&�s�B�`m�<�r�$�b��vU�����5�SK}�nz�,>� �L? m�3�"�| ���4�O�?�y�A �$���a�-_���H�]~ 7�r'q��[r;�~s�!�c\#y]���=X� �J���|�@�������Ȩ�;��NwK��6�$�n� �0��� ����xƔ�ָ���x� (^���4�-dSO/Z���42�k0�I��3�+F�8��Q��������# ������5p��j�<� eCz�������?��"���?�_���4� ����)��-�.6;ㇽ��q���Mg��C�_¾��GlL�������K��魫�i���$ �4L��Q�q5ܴ��ut���@��]����g�v��&�F\G8�jk�Ӓ2Wy �I���y'(���tx��=���3����J�p��N�-�Q�:dÞt}F�ԎxG袅�R��'�Z��DJ�Ȼo¤��3�%mL� PT#v�t�*�n[�ޏݍ�" s�AD�Sݳ����~�0N���r,� .(��b�C~����r���w��9.LJOz{u�y�M��]�J��L�trs�ԝ:�������S�ì^�rǮ�>�*��2�OY�=��!T7??��/��^AR��� | ]�=��e���|A�&E����>�;"wn)'�,� U��oZ�3�hW/D$=uH[X9YJh ȱ�����y3��.��ҋ}q�S�{k�UA��J� !Kg��"���9��aNV;�'R#���S�(hrB ��>�hr��B�c(B��W ��"�7�?F�S6�T����)x�._|��o����?�"}����o�'������˸<�p(��ۛF��Nt�y��Jӣ]##+7w.#l�[ ����4������e?S�s0�{��,�@&�n�%3�E��:U9��%k�=�{0��ެ��p����N34&i�c+�ι� �1J�S��0��}}G�mc�Y����,LP�X�3��&5���R^���xCp��L; �r��+"�ȨV�(P�ĵ�\�4ob���D7;0��?w�RrDb���� Lq����\��>�O�=y�Ŵ�%�J�N�ZѓQV��ˈ�%��Ќ�l��UahFw�N��ӆנn�+�Sl���n����a��L�k���$s���z�Ϡr���HUۃufXWq���nZ�8+�η�2��J�8AG�o�S�4�D����pe6�5��b��;�V���d��3�8�{vN�X���^�HH��w��y�gz�S�(i�oa��g�ޜ�Ц W6�L�ȟf���?�I���^�NE M���Dׯ�QV !3ljO�C��9[hg\�c��?����ǘ�Q8<������������˯,_�L��T�K��dgVJ59y��!��Z�~�`� >�S�d�eds�|�[�).��'Hp�$+����yP����� LN8A���w�G��;�Ysؓ�n%�#����>Ȃ$����>y�8DU�P�O^$�}��:�����Y|�,���;�Y��Ѡ�K�R��;���sj��]3��w�9��Su\f�rA�寐��gt�7�,w��y��kq79��ǎ�+����v��k���e�/�[�`K�t��<He*�75J��a���&�v�l4�;\��{��%AkN�������_��ٟZ��lX˴ �Y��01�&��f� o;]�r���y�9?��^�ᐤ;fq3m����k�!�IW�L?��c�;H �>B�K��������3�������s��N����P�v�5�O�﹝�X:�tښ�� \) 7�{I.�$�܃���%��w}�C�����R|��'��l$��(S�K�u��(��i½�T�3�p�t��m��|9,�����2�?_���0W�6���M�x���������ı����T>� .(��ty�4t��r�(p��AD�p��K�h�qV���!�&�*O�|K�ׇ�58�M۽'��N{�x1a��>�b��Q�adx���ݜDkvq�]��,���ާ������@Y�}Ƥ� o��JZ�{�z̮����3|�77� Y���ހm�����Du�.�G��~�D��K�1���3W�_� ꞽ��#,��ӻ��ɇQ7�����$�Vٹ ��k�hE �g� o��x9'2u8O�8��3\�ĕ�Tuq��MJ 8����/N�I��\ݢq�W�C�>8`]��ߜ�5ɐ�aRc# &pyŹ%yN��*�yI����P��P�4�������=xً9����B �IV{H�;9���(��݃3�{4��|��~����������c̙ҽ{3 �f��Hh��a����:� ���W5�~����%�Wu��y�jzp+g��9���/(ћ��z&�1C�����1��>�<��Dd�s`�������|?�!�̀�ksIJ��͵���������gR���&��qٿ�{��7��'h��k:5Ϙf� $ٽ�؋���.O}WMM��7��f!�2M��bN���oT7$�������sBW�46!>��{��t�� �h^ a���#�1��8��R��;4��C�i�;IH�}�`����������e4Z���;#�=?�N��jE7�ψFN���чҞ�C_��L��(���D���$��ձ��p�Rʊ�YV|n˳w�Svo���F��i�V p�[68�]���.B�Ԉ��HX��M$���\��7�J�q����B�b!��&Ş�2Mh*�v���85g���Z�R��S�MO����^C��!�"h|�7�?�0��1��;�g���D�P~ V�3,m��纸�Z��v�W�֘-4�qP���}K�B��,�*���������dn�����'�6�0Hr�a���k�ռ���x K�c-��+��2S>OZ\&�v?�| �rX��x�3:bA=����-Nc�6.�Z�� �A)�g.X��Ƕ�#ؤ8+�(hB]˸���1�)�S�fg2��X5�{ ?������>���m/���w����������E���Ef��Pf�l �QH�"{v��p�X4�W���#;���$�n2���,0P����n�]x0��$��������w����|�M�w�&F�'�.�<�� eww4^>����=B2~��[��9�v���}����wJI�d�g������5�L{Z�.�j��ߥ�K<$�,) ���-+5�X�0��Z�Wt��C��+�,��������"ɑ�ǰ�� ��� �E�&�$�Z�@r���D���)Ε2�����R��|�v��9��G<��5G0bq=Y'F?�������+�0,Nf��N#�*�8tʑ�P��G0?=�C��ΰ�dt�!�HO����T�n�tW�#�P4�"��ҫp"U�҇�~*>�y�LyR/Z� a�,Y�h���wd��*�8`M��w܉�S�-@�&�W�5H[q�*Ts ��D����A8�������5���Q0p�q��@���vw�����4�F2x�(�'�|�]�H�xT�4H6%��n����Uf"X������6����*�������t�ϛ���a�yx���X4����l�d��$��HG���x4m�X��=����2� 9��C��� P�̅��+�[fF���.A!��x1��:�§q��3�g"��=���o����Ҙt����o;�逶'*�d��w~Y0f���t��Xt"d��Dg�!J���� �"�;�#�;=;�ժ�|�4 ���O6�ӵ�,o���h���E}�&%h���F}�����+�營ACc�B$�|�{ۜ>Q�����!3�=�����j���Pe�K��|E�ӧ`�ɋ<�� T��9�<�H;z��* �/��z#aT\�ݰb�J����4ıP c�f/�{�%*2rG������`J��4(,���l6�8��jJqW.A��Lr����8�ſ�T�P��i��}saL-�6�'�:��g�U���Q�Ma��Ѵ�Ź���+���m�d��YN������=Z8� "CR�,�j7�|�S�:���ƁX�o���nW|I��dw�;n@��5㵸^Z�T���!3�<�x�������%?�3-�?�t���g�5c��m5��͋"��5/#�',=j�&���X����B�:�d�͟���q���X$�E�۩9<���4K��L�^<u�1���g2M���l<h #=��a�`QwK�6Op�����I��$P����]��C�}�>V���=��a^\�&i��u'�3 ��&��TQ� �6Q�dX�ӈ#�*��E�Φ�ܦ3��5�a:m.�(X듧�X��Ȭ�F�!�B=G`��������I$W���$>�w��,&��܃z���a������!G��2zo��"����}�\��`�C�Hr=0�X�*�}X��X�n\��5|O q}hZprYϔ��֣Iv���6e�=-�]��߳'o��΅��p�t8��وh�>�O��?9k�nւ�+�l��F���X�Ȯ.�&��ɓ=�*���)H���1$K|O�!r/��9��3�a�Â�gPF��M����M�k+��9��I�m=���ens�:1πH�U���{�8{�\�=W��?�������G���G�~��'�����֮�9c�h�&��е6�ݡ�VD䫠��b�����Ըv���)0J����ž��b�����)݊�yӵ&�`�1�չ�i>�K��\F�)A"����4���4"%���@��4��3NVh>zr�8�4q�$���i�0�:�B6��U�\O�k�r�!]��2����n"�_�p�q��c}�ҙ�NXL��de��B�=����Ҁ� d��쒙p��R̀?�[�0��� ����1�j���D�(N`��pM��8��"� nG�u��6ӆ` c�OOسg'�Ht���M�dܗ������Su�m����ZH՚�`8�ٛ�4�#����Na��{���̌g��&�ֺ�죖y� �CyO4��<m��$�KZrogN�4�`>@�7���+0���L�* �8�5 gJ�����[�@ @�����ٖw!Ȣ{��ܯ�j���kX�y.�N�ոr0�wl9k�[���]#��Țn����9D��`b��o�gz�z)l�V4)����2�AK����M�,�3v^����P-ߥr��������H�ן��������]r��h �����:N K�h�Ж����W�^��Yʻ���1��|^2kx��?��� *��縋��l�I�$I�1�R�ʎ��~��d�O��1��3��� A9y�<�_8E�cM١QB֜���6��w~�����} �2��ً�;ZC�i7@�-H�X,0O���|�&&Z���c�hh���H�!!�������� A�:[��1��G��i�w���zv�^��쫳6�����`��7;0�T,���I������O�y�9�@���e�T��;��L�����#��({J�@�Y sʂ��qW����2�%�������녩��uQ>��{�X�wPw���А�K�N�y�O��,�"�|�����'����^�~��: ��s8Y��g��7�u4�e�.è�|��ҥVV+!Q�ǥ��p.�7Y�Z�b�����N��� �}x �=L���,%_�y�ȓ��g�%|=?|6�3�p��.M� ���f^�N�Z~B�D��W�o[�~��^��7��������U��O���2��a�XE���,�(�����`���_���T�a�:oE�v�m��ˮ� '�j>�1f�N�Sϭ�y�SF%�l"��Shԙ���7����MWhjo��59[�aG��"�2�QL�c� 2�E��q�099MB⤑&�d��?W�`���'�F�����<Wt� F/ Ž3��^��4?��br�s,,�f�g<�-����U�bO"�[�J�uN��I�c���DEj�mC��� �W���t��lW'�1嬩�+9�ii�k�����Ź��� P$���306��3L��0���r������K(${0���g5�gH��2f�'\Իs!N��9��n��s��{ ����AC;��$q³�bS_ ���.h�k�5��a������M����-L�;�� N����L}o:m^�~���������ս��NV���| �w�[��q��_��R����3�P�Ph���U8�n8e@�N��v^��<�kZ�N.@Ȱ��: kF�C�� ���dW�0���S��E�@qy�.��U�"���ӿ�)��O���R5��72�8�� 1�n?ʭ�w�-@Ud�IL��Z>Co�6�Lq��1�9d$➼Lʚ!=�Ɓ(B�S����ݑ(#�`|��t&����#���(sgZ���$�T/.]��9 ��+���3��3�tv��ܜj�?�P����;��-� Y�".?D��2���tfb�ó?<��lD���q�87�Qtm��\�0@>Rp�-���'�?\�k��n:�| ��>�R){���I�p6��t l�%8$Š{LhS���{�I���y@�1��l���KƉ��5��]k��Y>�-B��Ȫ���Xď���g�n83���� N$^���hNS��|tc M����Ps��c��"�|z���[}�/ۙ�2MAI�д���͟8SX���qn�V��7U%@#U�$_�I�r ITp�b��2�%��pT��Z���_��?��2x�p� b�v&��6�� ^(��#S��AUaF�;�,[ 2�� l4���_�A���2n7���z6���=���1t��eq����'?������?�H�w����2�yѩ8�a�y�9�Q��Q�O��X`r�G�'�ھ #��E8� �#�y�.e#s�+�'��s�� 2�/���`f6���5�b�X��K��`��NP��"��za�c&�D�e�B.�ܥ�z�5�հQ��l�@O��[Q�$-[��=�hޖ��- �,�pF��N��g\�N��64�ؕ_0�� N����(�H\��U��Q��~iV���{����>���0�iw �r��� S���c%B���0�����]��X�7�N�'H��@�k�G���J�\ r:N���Ƣ���X?���/>�(mN�:���a'��#�>�>O[(X�����9��<���GV�-8�i�̛K� �L��� Yp��7���<0��!�Nk�Id5��L�C�9I���%AL��o!Ӻ߁��y����(>lB3^:�-��8��bFDD���D+Ѷ��t\��K��S/�>dE�5*�ơ�F�H1orUE��/`����G�m���2J��[hn�.}y�����)���[���!�pc�'��8Bu>_�=Xla?��yXQ�[�7ό��Ǥ,v���=��� � >�1&s�����jgW���i:�n�bg�M0Z��z9w�t �� ��������;�ˀh��oMsȈ\^<e�?S�(Y�M�]uo�� J �Z �,�1�:�������^^��-�E�\���VF�\�D.��;�ŋL3�QeED���ཫ���nJ^�l?�9Bި�WOu�S6��*rtG24��c��P�g��T6�X55��[r_��p������h�/G�[>����q��.;��k)� S��Hf+����y'��8Y������$���7��ofN;=��|u1��b�IR=��"dO�9z�����;n>+�%�v6?G � {kH��h��$�@�x�@�^qW��t�����p��� h�f���\�%W���{RCTv���h5S��Z7�vqy�tC\&]�zXc�(d���".�&��#}��]�!U}��Ud[Bd.�h���^�*��l� 2�.Ҟ��:��Q3�7�����?�!���$�ڿ���U���7��c����F�iw�Ɍ�\��і�I�3TC赅)�;nB7���5;w�td1m���)�n�a��c@t-��L��&�ڇ�L?���w@~�p1Q��Vv�Bܪ��u�{�sw�"��`�ZQ��8`���`� ���g�*O�L���w�A���2 k��-W7HL�����"�� [��%^]\7�����Wv�~�Q�X���`�x���D��lC� ��P�Q�(��;_���c\\9�X37}\�z �����Ԯ~�'N,���8��H��\�";:D=���c2��#oj�O�M�:s[C$���y��w ��i�v��vxcCt�G���c;.��?�Y�-T�]vy���x%�.s���5�6�zckp��5�?G@=/]Bbs���ߝ�-������鹦���Z �Zoa��k&*����F�p՛��6��qj`�cҮ�纅5�4<�zk>�D"��4rHK`6�F���)o�=��1|������kʃ��FY&���q,ex.���&����U���'?K����t{��~��ȝ~��I�h��JF�%آ�^�8!���h��|�<���)��a_��L�oaZiv61��,f!�`���)��'�-��I�wwG����wa�h<0���|�B�2g���T�,3�O�/���TWg��R�-��U���B��%�MV��ZpG�.q���:3>[���>Ê����.���8�fX��<Ƚ�'�� �XT��ܮ�mdiZ��߷0��C��EV����I��.68 `��;�v�N�͂��r�ts�[�۔�S�A��{�B�@`�'� �)��>��럓�H��<���9-�%�K5�M�;^Hr�Ց���/{�]��̆f!�I�� �>.�jv���Ӗ&�īVzK�����]�-�F5h���>hw��l�1��-)8����*�} �t7J����a��z�&�â��x����>���X�}�D=����9W�����@� �m�� Y�3a k;{�D���V����=6���W��'[w��\a]�>��!o��3��"��*"G�/>�ſ���~�j��x�>~�� ��繻Y5o�|7�1͑ᛷ�G6æ���sL=�h~O��� ��wK������K��L�ɜp�m�ņ�q:�F��4��d��+|�S�����aӥ��o������5�3rmӛ ��V��k������'���w���n���� ��9E��@gMRP��ͽ<����� C�#X�w����{w����)9�r��\C�iF��{_[��b��3�ʫ�B���:5:r��ׂqH��Ѥ�aHa/���x�Iw?'�9�~fWGsf4�����v��gS�(�@��B�or��.X[(��5�sb���_���G�T-���̿>H�b�'y�/�|�ӿ��+&9�#)�S�C�v��<.���H$���-A1 ����1���<�I��It�$X,��D6B����U]��)���ԏ(Z��x�f,�/a����|��y���@�@ fM�s�G ��0�ϖE���Dj�M�iT��/��.y5x��&�St��-p/d��3�2�Y���q5ùe��pDÓ�;�z�\����_�"]��?��u���3���i�L����@���J�!�w�B ~�Bo�j>� ��ؙPBM��f=���<��#t�j?�R�0�h��H�Cwg>%�[��n��&ÓФ6�����"b9QG�� 9Y��+�Դ�..{�]`��T�ۋO��-$j�ŭ7gb����)i ~�貧%$wz��Y�v�R�[�� �"^g������Ӝau�Ĵ�1�|�U`́�:������2>�NB�@��b`<�t�"�*Q�����7��� ���&r|;GPT$EH;�]�N�j��}Dz��g��w4����9_k�7|�����;��v͏�%�{�<r�<��@���;��q��dU{0'�ح�vLXρT�_b�����ku(S� �q�m.Ք�N��q�ԛ<�kkN���7�����ۘ$������Np�&�������y��7\�@%b��+��^I�!��h~X�nˎj���g��m���12Z�f�� ȞN;����""w�T4 zGS������1������S����?ν��CU^�^4���MK�=$:lFl� �K�RD�8ڜ��v�<T�@�h��<�0I���������j����r�|b���ρԔ��5��Y�ݤ�qrO��i �8� �$���KK�g>=��ef���W�Y��[�/�a_Ji$D�uږ��:��;�� 2Ww�cf/kxϏpIE8�Jbs�V�J���`��������,d ����;�A���iz a't � �YJR�a��G )n�B�T��4������Dz :��V��tԊE(ʭ���V>2aG�� Xw]�$cG-,>�D�����\i�������~��B��������WX豈`��� �R? �f��I�s��&z��HLm掅�^�d$��0_��5�m�\����-�~x'�:6G��uq�f{�Fh0+arY*Џa"��k@���Kv>@�N�zh��1%����U]�Z%9�ϳ�"TobFr[?�@WLUEV8&��W����+�ed�7 yyu�#z����T$'��r�'R�|��W�̃4���t�����~�S�*`Kp� �ô�ľ�?�ը%����Zr��܃�Vx@��zsƫ�ä`.��G{r{0��L�i�j��IJC���P��r|�T�z{�&LB�}a�P�~hc��$ڊ ��/�f �m�_�l��۽����X} ���/29I�{ ������I�du�g�r]�h��7�9O����^��f�T�����=�'Zq�$5H�`Tҫ�B�E����)Iplq-���Z�2-N(��|�0�ͧ �b�Ô� IE�w��g2s��>��'�=�H�,��ϭ� �����T}�E�O�l����z~%�O���*bĔ���gN.���2��{��H$M�� �:�=��RC��H���Xc3�hΎoc11���PM�&4s'G.�s�h؏� �+���$H�qz��"r'�uEj�J�| C�-D��f*L��ܕxg�#�֠��қ?Y(k����l�;|4��ti�u�u��l�f�w�������_&O0<*�@��}O��D�{y�����#�o?�E�����o�c����,�6�CZbФ����zsy�0w�yR��B��x)c)$� ���i k�O�d�I��mw���1����bN���vz͚�c(�B53����Ƅ�K�S�g|^���MZ����s�(n�D�p������q�%���#�:e��Xv��Ђ����ǡ�}S�E�W�Vex��P8�\�����w���'�uq�@�V�8�]�������P ���H.!Ɠ O�,Q�Q�9�,�]�L��4�)Isd�'% X���K�5�/�����P0"I�T��4�~�M��RFÚ�dk�L��r*8 );i�;���_^C,���=�ɛm���2�Z �T�|��w�>Ku�:?6��,��sMŅ�����(��S_�MX�뙰.+�o)��a@ �B�dY�O���v2ϗWś�h,Wp-X��4�rOD=:N�Jw��)ʔP5P��S�[��M�'�g)jh����RE���)V�y�2l��݉c��7���4�:��)��99�-]���勧���Q� �>:I�����䗦|������1��6��N�p���0o:��=f���GN�]�-;���g �r��m��� ? ��Q���.xy�0��e�0U�a�-LB��������p�,�!�m�.C%���N �n��1�Af0w�%���n"9cy��%�O�g��w(�]����B�����Pt�"���e����k2���\�Y������!�>\_Ӏ$c�� .W3,�-�aW�B��Qr6�\%%����� ��Zݎɩ���W'��%d�3���D���E��>�Ǐ:����y~���s6��E[���ry�V�yJ9[��G�t�֧i��d�^�*B�ג3�E��G=�-.>��Cc�Y`�8Қ8��s/�7?��L\�zF=����{��5�t3�`��� �}�{F`� ���%}�S��c��P%C�p4�;�z�ln&���Wo^'A���E!�9��O7�q��=:��M�lh�4��#��'yQ��Md��w���i�x}�7�+V���5��sջ��>���"O��_����_�巣Ht�n����֞_Zm��)Τ]@��Vc�E;�)L�p,� CM�O�}�`�PCc0�T`_�8�6�����������0��%1��D�������v�Dq�Ǵ&L?���ޅ0��7��北4��F��hP^��̜�u�95 �N������s(GC��"^���$�?wK��t���4wS��!�V`�ǵ�- ���p��,�)fG�K����AJ��v��R��ԩm�aE�c,������X�!�y/{"f�U����<s=�H���?O6ߣ).��Jև ��ۏL���A��ݡw[=�� �����)� ������ĕ&�j�y)�9�����&��\pm��0���(�PR��Μ�X��x��2���� R�y���0�99��^,����Ϝf#c�.�vm����i��lR�0�j���b�-˸#lE�gب��u�J�$�ӈ$"n��<F����pU9%����F����Ȉ���zA���pB��H�+��ހѾ�5��-��lS_�����H�?������V�6��h��/�ז|����8���М1�T�������&�舳�}��a�ww#KC|�]u��)0�-z�X�� ��(�#5J6O5�0;p�PGR6��B��yR` NG�6�-�ut���s�Bs�&�#w�B�Q��Q�(��}�|u�Uy��Kh=�:�XڋOI�z��d���-�&#�9�wbp�ai:�fq���Yi�X���^ݲu��H ����Z>9�b��HO����9�榁�"F��]j�}�_�����,�s�#�gL^�å���szh*���Ș�2���X�N�\��w�vo��,�]єUG.D�XLD%"V��۶�-!��"�q:�nm9 ���H��1U�<���CE���+, | ���eƎ�Zþ?ܭD�,�b�F1!1���.�0�#ի�Y�77 �+A�d�+��+r��w��+0��|/��P��{�B�ņ�c���ggf����kL�4�G�����Dn��6s�p���4(���{�6V��1�]��~�9��<��O���$M�%�_�W�s��ݾ]E��p���/��2�-�������L��a:�����U=w�ՠ����rvɋ��|h椀����ak���w~���>4n��<�/Yrh S �)v���z�y�j4�3 �c���`��k�g+&�i�`�������q?�b��N�kA~�߄�=,D;X�t��\e�ޡ�T\h�~���m�C34&4L���O�HHMJ�'Gϙ��5��~�q��'�{3ع[�YJ0�耮���֕��t&z-�~��I�18 t��K�9�h�0ɕ���V�R�'@ և �?����<?����P����{.��ɟ+�~�'5d[P��J���?H��A%1ѣ%x;'o���IC�'������$J��KO�(r]���!�g��3;@Fj�PcABS8Kl(fa�����z�Q����c��;r�U=Ӽ� t�qo>j�Q(�m4[C�W�6�����c^v�g$�ὖ'W�����6�r+�E$�/V �Q���B�aFr��F�"�:�F�C�ʘ��pD@� �4z�=Ddk@,M��NT&%'Վ��"�)���~��6�6��`�n������� _�N=��!����egw��'��'�sw��i�!^�z;?���n`Xt¹�d��C�ٻk0��pC���Y�ć���eQC�Z�|����N�N���]'��ɹ��|`��"��6ȳ!��u�s~ Y�G�qU'�w>Qg]v�8f|�I�Y�̎2'N�&g�+@ԌNy��5:��춲��)�͢AH�c��E���߽���F��#Ā�!�HG�f�}�������y em��jo�.�8-�ϭxS��F<�����R,��|&O�.'��G_M �-!����2�O4v�sg5�S��y����\�8J�IX�"F�s���Pj�)v����J�S����;u�bo\kR�OC��R��~�4X�.�h��a/�ڤ,l���� p$^Jq��\�`��FQ�O�/�ṦgB�� ��ͱ��Q�{Zp�n��RIL܃Z�b�d����,����k��sR)9���︇}{�ry������(���͇�r�e[d��-R�˟���\�|;���t������_ջ��?ț�����2G�{�D�^N����� ��p�0"�y M6�o+$?�M{������FC��+��y���?Y��ϩ%J�T�;�v� D�1[�I4n y����$�玤�ل�O|��������$=a��p4~��9Y�SA� (As2�@;���0HW� � ��.�zr=w�,� �E���x��r�g�~����g:��������F�5�b�O03缻tM�^�4�8E�I0ىf"�n�d�������Q4�iy��?�#~��>���3OA6�^����-2��w]����6� ���A{`t?����^��G�@��^�M��W��D{ �݃�=������9�k6�C�5H�l��{jE1�TLאiP}(��e�1�tf7�a�\���"$�%q��@��>�q�xX�p�6��I]�t�2M�]1��v����45���~R�Ѝ��~�g c5 �X���hb�ϵ�70�7�#'7�Z��g ���n�{��'��u1K�*�]�?�7˷��E�����z�^i孤��l4����$��! ",sv���m���jЎrb\\�ŋM��Y���ut���G '����W�P���o�k�U��i ֥��[���F9���^�8�)�����/ yv�\��,�y�����ˀ � ����-����w�a �VZQ��y�<�n��ao���T<P��n`�'O��J����'ij�-��1����?��V�)r�e���n�a2�y9 2��_|��= f3k�NJ�ҽ���Mmǚ��]�������pQ��g�>"��ؓ��3|�jwߘDD�a�`���=~ ���h�YyhθK�3" (��]�\1ي�GK#aɂ �i���k���A�$��D;ˬ������`P�"gH�!LG�=e-M��m��x=<���}�fy��i�`�G#2������ ġ�?�y�����Ѐr8�1������'>(�|u��p�W�ժ�f���x��"r44$� �5Lۭ�;����3��Dڛ�>*���"��I��,*?��_�~�\~�|Njt?~ׯ�t��f2��(AqH��چNG�=\ɡ�����ZH)���MQ�=^@�{6��R.���'UQ<l�{,�9x����,`����eb����gZ�@^B�_p����!�:: �'�8��^$�g'&® ��Pd{B�y@va '2s3�DQ�4ejL��/�� 5�W��0�y�F������W �o�4�ܘ|T_�mZ�y�40�'qE�Jo!Ұ�&�&'��)�+r��lgM��0>����Xbfsq ���P��М>D�#����.�0�S�SDêkvy��A�ߴ�����2X��E���7�m�<Ɛ�|�����[��g���V��I�sf��\O�]0���g�-��`��yz$�)�P�����p�3��q̊�rӳ��f��B�r��ƽӿ�н�|���FD�̔E��������Ix�9��ܥ�5���Z��d���.g�]CY�Ӗ����Hl>Jpf[CV}���uSv�m�� 0�G���^w�~\����ɯ���|~��ty��R��C�/�<�����;�Y ]D�9����ټ�[ȍ������uS���������̝ ��ř��mn_� �r�iF��-^�L3��榦��%��sҸ��N6�i�$�,!�!:�/�j�n��.�E�K���j����0�;B/o��/���e@E ����Ѕ�1�`�&gg[�祛V'� ��M��lu`����NO�b�#�v,�A�5�;�?�T&̋<�`q��"�)�CdR�Ù'r iI+�GC�M̗�N|�unS{Z���l��?w?�����G`s�-n��t�D�H�|��}��֠79�L��Z�[�|(��9Cy�G���r�i���9�t�e�4z���6w�cE��v��p���EM�}��'ɪ;Z�nNj���h���RWӝCt@�-��.(���82x���аvu�;�zH�3(��bl�b�i�3�l&r吚��JD�Р�*�Bֺ�����`a�ßcr����j���*/ ���g�/h��ٰ�V�@����'9���'?�W���<�w�H��]�ֶT�H�W'�D��&��Р:$=� NL$�бe:G]�8d�L�2B�]���"i8���` �AE��Xh���G �9[��h���i�����E�DԪ ���#�G ���>�ѫ�P/v��H�9��>��3��d�{da�;+@��T�=�=�nji=$�I��/�vw���=���Ǝˣ*� �:La�>����]0�����b���K����4k���P�UD�~A4�5�ۃt)4�r pi:�,ȯ�7\���&Ϯ�/A1������v�,{~�9��$/�a����OS.�=ox���X��[�Q��l����Td<z�?J w�>����N��@@�M��tɩ/}�ϗ�ۇP���GZ���qӏ6�\���b�;�����ѩ��"��bi3�;� ��`�8�.gr#=�}�.�B�=����4=y*3ۙ�v��<����Gn�v&Bv ���2g����XP>��$�c ��~�=N��bzn`��NH}�Դ��n"�uI�U�����˟������u�����_����^�����U�h3@?�_���X���oj���E�4��b�{}��w�4L�2��;�d���1�� b��$�p���!����&��;���t���<d��Ng(� l��89��z&��9[K���@lk~y 8����cV�Й���`ӉP�0��w�=���$��<^2��$���I�:�b��v�#I��w����C#�����dst�)y8��B��$a��d��6��"������_!�y���W`$SR��s ���d�l�G����\��!����;4�t������5�1��3� M4s�5��hHâ�J��}B�&Wq�=�v���Hw�IP��8c��!Iuɰ����8��yN�-0e4Q�����E7:N���D�^;A7M�w�-�d�\&5����L�W[�r�]���6`9�lG:�2v�J�#����¤pw��x2'j���A�ǟ�`u)�ssJ�\�.e�t�����*�a���h�GWҺ���WQ�;TIՐ����"%�AVZI�����_�����/��_�"�n����H�Ur�oA�xwOB������r�@"9M��d9���3�M����;ܸd>�f�|��z0�g�m蚦�J�.vB�%\`ꅌ._�vqgg�G�I�8;�o`�vt��W��J�w�إ��&��F�A1uMf>|�O���S���� T�E�4����Z�w�^��,ԇ}oq����3bO=���4�k��� �%瘽l�gN�7e�p�!��E��$����g�֫�����V�: d�N�% 5��u�4|�W�ChZ(*�"��rf�`c{��MNQ�'ٓ�r��" k�+4�$).���^Ƅ� r�".�f'��M�a������|y���<L�9<���uis.B�y3�l �N|@�N��:�����t����S���-�;<��u_��F������a�iq4���!��e42�{�}JcG��==e�ɟ�)������3Q��s�x�L��o��k��fNg��/P��@媈쯃�r��g��TXu�-ݐA��y���]�"�h��B��*�.r��%}�/���+~��sV����Ϭ�H�ɱ|���[��:D�d����� ����{��&���3Շ$,4j��~f�)$),,��Ω��~�{���33�7�B� ��y$�ΰE{��am �xM���ڽ�5����eb�4�V[�X�[䨚�^�" �I���P�CCBr��A� �!S��2w^��B�#.����]t0X$l��ы���M��� ���%/�6�g�t L�Ӥ�������� Ύ9��A�SCѳ ��������Iʊz���ڶyO�M�/���k`D��%��)H�4Q�0QV�����-��PL��O�m�}�i��иm�-��äs�g���O�l�/�'�o�?B��?cb���ʌ�e�O�94�+��dӨ� ��p�`?�w�dr��5ݶLC�O�'͉)�t���:�{{�15�e���־�;����|E���i�vuGM��f�=�:�GsE�]}��(�ט��x����V��tz;n��H抌�k���X�[8G����z��v�허���}��Y���&��_�Q>�������p^��s'jX�K�@r,�^3����&�4p��5LԸlh.b���|:N�մlH������;���Є��qf'�i]��.|�Һ���ࢱ%軙;|�ì��I��4�.� ��� ~�G!�b��,a7nx��ȫ;=���L ��H@BZ}��ա��\>��A�(o6j����MQ�����T���7�x����=�n�����Į�矒*4�l�f�1�GJ�&���>�]�U��5hZ5�͐�r�@�g��+&~����}��s��������үj(���̜e8/�JR��2��)�����'_Y�U3�����{t�&-z�R&/��R"E�R���^��+']}��F�CvI���V����jVRT�_@إ���0�`9��~f{FNs��9A�����9�;�r6�a1��}JV�>��c�h-(և�%L�@�(�1�+��#�h�k��݉��Jɡ�4m���E�Nr-������e���f%���aaES�`u ����HnP�4��H봅}COkI���"�r��?��^���o��������վ�kz+� ������b����C7����~�I�3��%�a1���|(�vgQ_G��� �\N�����ci��4��$�/�$D��MN� d�J��k��D6�4��ݬc���7-[`@���2-N՚>�2;:��O���OQjt��;$c�Fa�����r�F�81�kΛCЫ;�o܁-N��a�F H���̧Fu����nm�j�i��|Om�U�O�]Cqkg�ļh���E��Ch ��zw��C�I�}z��II\�,�����ep�Ê�������Nu5���}�n�aq|���~���>Yn��]�����ɀh��eg&�U�����k��$�T5�[O>��k0NRt�S ^�Ka?�k�u���rJ�^ն�>W�q��u`ҥK�D��Z��?���/a}r�-���%�=�XG�ȅ�w�<��b���T���h&,�H�]��Y��;�ׇ�>���CMN���1�j�^Gב���Z��#�G��n4G �v�QV�Wo!l��n8s�>�����R���i�_��s���,?�|�����?�^���E�i*�@�X*���m�orX�8�&�pO�OΜ�ٽ6m��0\����$P� .Hؚ2:d�"�%H� �/xXjР�z��vp��Ĥz�75���8Qe��?h0g3w���d4a"�����~ =%B��D��� ���Β�4/����av�0�g(�tG*cI� 76({h�4���J��{U�:[�@�J�G��1���1�MZ������rN���t�g�7W/L�y�J���͋��j�S�|��k��PG� w�h?�~������O����t�Khn�u�y�z�uqZ)_w$�3��ӄ(�D����f�DX�q�= oX_Q��B�ux'�����i~3�E�,���gM"��$�qu�%=�&�.6Ł��m������o��aER���JpŪp"cz���r�����ś"�n$���c@E���9:��c�r'���d�/ݓ�&AZ�З��� ( �w��>A�������TL���Њ��H*�$is��&G�@�ju�1�䲁STq���պ��o�����~�_�/����sZ�������%�o������B$&�"ENi?����^$ .�?h������n�5�ף�Xg����WΞ��[�nD���H��t���˕6�̬���H 0�m�]ri�⁏���c�k�"�Hǔߋ�h�+xʊh�q��w� �3�f�96w2k�v�� Կ�RH�5��~�=̈́�V9{;� 5�Z���x�c ,sB�,3�$��-H����.xv��a�'� ������ݼiФG��h\��r���/0Y�x��^������[��L]�7�[���,L�˧�Ӗ���������c�9{�SEq R16go��t�)9a������-r�%mM�x��s�:����>��|�}`����zt���a_�<��2C\� �`V[ӟ �g���]�<e���y��Wob�p;#5y_,�n���ý���cp��;+���b����5wZ_ƀs�1��G_��k��8D�2�?��@4\rp_�g҉8�U��a�NbU��ݎ�ND\i��F�A��k�C�_�J��| ��q��)e4ƽx|i�&%ي�eSY����*���7����;����<�KzY�����Qdd�� ����֠����y�}�t ���^&�]�!���]ts#���xX�]Z�v�!�ٚ�Y��S�H�Pd)�99�D��iP=&,H��ﰥ�w;���)c�K���is����p֣�t���@wV��l�J�,Z <����Q�g�*�@3h��m�oTL�ӛ<�"����������x9æS�y�p����3֊3��XXN&"Zh���g0�������EPRB2�<��l�4���X�>��>ڏ��T>v�����F<kL�*A�?]��5���y֫�O�z Q��!�����m}�3�Z�3�(� ��D��Ţ|�v����Ȉ�v�`٪�7-X���+Ѵ�ys?Q�⅟d0 ��l��6Ԡ�i��W��N������ʗ�oI����_���*��-�Q�U�ic��O �b[h�J+�>^��_�$u�N S���k����Q�Z��c�T͏-=�c�lȗg�'X��mWq�gB!��_ z��/��7���}��K>�+���H�c��4����%P��Ċ*�i�G���ljy�)�5H�p Y̩{�'��~��(t�1SZA6�k�:,�D@�rU��֒k�OZz��Y�9}��<h���Ώ��iRCa��;ݓKuf�.wp�]��� _r_����8=��?��{Ʃ�a/�s�:��l?j��g&9%HbZ`�� ]opj���B��K�����-��(�����N�+�&i��G2X �h�M@�U 9 ڃ/��Ŕ�X0�`z��E��!@3�S�<�Q����ԇ"]��y�G(�ezY�8t�F��v�d����������l"8e ;�pS4\�,d�b/� 8��)�?2��E��>��ImJ�4������78����-�N�3~/]<m-Y���m;�u ���U��M7�8�"?��M���Ёg5�4ׁ<�����rgw]��ԇ�^�:D��*���]{����V�����d�w'%�F'!�{�Výe� 7��Kj ~�fƖ�JFb`|B�H��Zi[��E���_��?t�����_C/��K���,�W) ~�!���Rocdz4t=G��=]U��QރQ'��:��%�ۺ��%��M�K�B*l���Å4s�ߗ�)���E��M��n�0Aw�����.����^�[��^���:Ή_bA'b*ku�H^�Ӻ�{�������e��d���ĉ�Mك�z�j�ؑu���'�1u��A���-h�S�Db:m�n�P���-#p@�kj�����k�'���%@���%Λ�����_�`�c�w���k=�)?]�HX¹O�G��M�rV��⸇�3��}t ������Є,g��~UL!�c�� ��=@��#�V$���M�@�P�$t��b�?���=�kBXLJ!S������uZUVmA�;*�{��Ħq�����o���B�p6���ub�`��b�p ���"fG��t*A�WG��¿�8��:<?4�P{Ъc}ՠמCG�����:j�3������M�T�eˣ)��m� �Bq��� ��ڲ�Ľ�:�o�9*����{U���n��W�������r�9�5�S��[�_'�J��3o3 ��is5�~wX�Bʄc��Y`[0ǟ�-��9�1��dZCǾs �Q���f�.h�X�$��m I09��C7M��;�#n�]��"L,Y�����3�gd^�:r�C"��{�(��^+�B�i�����HpMF3�c��b-n3�����W07�����tt��s�����!��Κ����a=�-m4!s\4ֱK`��5s7?'Ms��i���k�`��!���%�ʻ� ��irR��H~��~���� �e4v �?@�M�Q�=L�Qf���3-OL��USK���q&w�|�{���L��cy�v�xE�wp-��T��QLN�\-���i��D�5���o���B`t�l�і��]�!hHþ���y��}"��w���'�y�d=�3t��2Z���|̗�f�+fd]G/�Z[��HG���@8����N�#<�ɜ(���r��#�t^�kw�U��]�AT# ��3]��E6��F`����^Vw�c3aAΨi�K��'�(2����|�W�s�w����E�n��ޞ�t����_"Y��V�F�x8�LN !���6��뽴!�4Ȯ&;xA�*��y ��s���4�N�.�! �x��ۼڋU�,�m�ΠI���5NPx�h�H��)(m��#~�{4q/����\���\\��O��JC�+&j�)a�0��"����� av Z�@�I_�9h�ah`��c�H�t���[�6�A��"L2 �3��¿��� f6q5D����ԧl��M����G`�[(�U>�c�:[ĝ6���V<���CZiqo�j����r�slS�<h��y�g���A�,���^XU-Wh\ϊ�Ջ����]ٺK�����Y����44��- �L��'̊�s�K��a�p(��Y�^n�����g93��a��I���,�~~ dC~ ����.��-�8#rl h�A�A�0w��VY�`/ϣ����1lW����mv9�L����WMtK�@�<yC�e���t^�c0�+�"�r�� `3<r�$����{��܁j�>�Y���{���9�y�3����������/���t}���+���"?~�"]���I�ߋ.���q�8��hRA�.�s5�9�;�Gi��L:JqW�"�����!fR��k$��d#������zGj~��@�C�!�F?���v��� ��Ot�/�P$�Deqڂ.Z�삮�����I�ٜ0! �6�~w����Чm2��R�i�����{L���ϓ�2�h��1?��s�2�/���%8�m��+س�[��{e��>L�Ѯ՜,� P/A�!�@��M�rv 1��\��5�íE �@�0���<��{0/y����B*{��@��i�Ć0-a��0��.���Į�uԜ��r5�3�Mp$��$�I�_��l��i�ݥc$F�69hL�_�{�{�V]� PR�&�Np�,�(��t ��p�L[�d��V�?4c@��}�� �!�k*Z�'w�P������Q��{I�4����ͻB��n�5�9АЁ#�=2���"���ݓ�HP�Pu�g�e������k'LȅA>�c��ka�!��`�w�����4)�t�d�H�?�ŧ?�w��g��S�o���e�G�Z�ӯ��Y�@��$���al�>��S$����y��@���˹� �<j)5��dj��(��с/����a�¾|w�w�A��#�wq��)jn���?i�7�ч; ��HШr�� }��w, E���_1�>UM�����<��9O�<8oٛ�'���!�~6i��������w�%��lT^�n��ЉOV��:��G��N/�_wʅ� J�IE{0�G҆� O� ������^qƻ�3�;���ډ�����2�1�hQ��$�aI����=-������ע}dr�{f����ۇ��?�=|�8�k��b�����>Y©� D�pOW~���8��a ��Y��G�� �'���`��(���V�s�r��Y���͑o&&G&}x��ԔP�/���{BR��N�*������]��hP8,�b.O.+ ��꼒�k�Q��S�9��TXx"�يۥr�2���n 2�ݽ��J�L�>�w�C��c��Ky��ع�}_��a4�!�xѴ��7R��߱O�����ӿ*?O~ e�˿���R$/U��ws"LPU��f��x9��Eۺ�7�����1!5s8�H�Y��J!>�0 �'��;��߃5(�q�3f�85�w7�U��VƆauδ�\Ϻ�y6�VZ��z=�az�Ћ�h���L)$� ��!�2�1)6��:�\�d�����U��-���>�װc�Lz�4sh^X���fs&8~�l�9�����������eL1������\�q���q�5�z7sxmN��fz���)P�q�ϞiEW�u%�QK H�C���eV���B'�H8l>��vq��5?�Ӧ��,0�O� &:-�X��y�G�V%GQ��h`�sz-1O]�L��-�m����q������E�F~����W3H�CJ�w�}`��`��y��!N�m�QC۬��2�;QCҝf4��ᄗ��?=��n�:�Ļ�W��d#_����CӀ�+w�O�8%���|%4���bB9����C�B��G�����D�)�H���V}��d*�"�U@J;��}�@y���E�7hN�N�K�hD&����V�����믗�G���H���ҺX�bf��!t_�|H�^�$�{Щ���d���P��|���4�c����N�E4�ؽ��b:>\!���Xq�|ۂF��S�~8�@�9�����@8b�jЂ~u�"�>�I֠��$�L/m4>v��@^��1�k�H�3�� ���ܫSD�V|_y�@U�k�*dۆ�)��(?�h�3��Tdn��~uD�4D�C���3�$�>Aa����Ig��I������ ����8[�Z��P�����jN���%N�V�Ϧ��� �H}�P��-��O������|�lT�7$��r�۴ y�)��4��'�{RE�T�I�:��ug=�.-a�궬-0� ������X���,�������Zk��f���c�6'�I��6� H�� ���*U �Q��*�HU�$mI��@��JR�*�)J�hJ+�r)瘱f���x���{�����s��u=���RH���|[����^�]��s��u_���G;� Ϯz�f!��ͭ�8l���������&�y ty�+8�d&6���J�0i�UM���\ԻFO�Jͽ)���0&L��&��p�GqB������q-0#������ݾ�vy3��遐�y�|5�s����3&qݦ�ojh�.#�J?����@:;�z����x-/��I^��8�gZ@�=�b����o���Ǜ��t��j������=~hL6˸������.z��+�!��9}� �r&��Ea s" �AQJ��[#:�aub�G����AC������mRW����ٌ�}�uoָ� ^��Ⱦ�)�$�h��?[s��f��ip��x���]�I�ٽT0�fs.M�u�!9F�j����.BA\|�{61q M�Lb��R"���;�)~���l��Ցq�M�v�n�n�~���'��F| ��'�y��=捜��b�'en�%�_H�49�U�k{1{Xԣ&퉑L������Pe��$a�y�s��r3�^ Ov�١R�ks���H� 2�.f���+Pw�<W�A%����C0�s�I�>K8������INvH�H(�Ǟ<�az���3K��d���3�E>\�����"aS��+�͌U$ai����lz�ϒ�{T#��d?w[H�*�͋��`��ܽt�8V�X���>:��_�*@[�8�$��g�y��.au����*�Y5fz�d�W�j\�3�C��y�I�+�������Д{��ǎ���^>��{���֏��?��f�b�g��ɏ��rG�|~�t ���t��O�5&3��$���|���䐀�����2�ܣ�bw�̐^�k ױ��&�f�.Mޒy�M:��-�y����M�Ŋ�`#]/���`���nw! W�r4K�)Qmʇ\��C��u���w�ځN�|1H�wgm*�M<IE���[�WrD���X�0r�5k����d��sj*�$7֝S���X�xb�Q�^��8�ɚ��F��Y�$7����_�H�GX��d����Ӓ����鉁������'2z;�X*6����zϏ�8��\��>%�S�۩��8-��sO�.�P0{ y�{���l���ڄ4I��cx'��`��D��[t�x���/t��L���~��fB��m.ݐ����%�� ���s���rbD�\3�� �Ŧ�@ҖΜL� �19�;g�� w�� �d�]L�c�������;_�s�d\$���|�j߉�ؾ?e��F-Xo�m����e�m ��i�~�DZV� r>��9�iL�"P��;���^>��?���i�+�^�һ�m�#�#įC�Xȋ�_�u�=�ڦ�kSw��i{`qv�!Z��f��0a0�< �LL�i��f'wF�]��Y4�A�A-��XT��.����ɠ����$c��(�f�R��*'Ky�k4̗wj��uݱ�T+K� =i?F ��\rj�O���X�W3�P�.kK�v�եgc�j�%B�u���7`����Q�v��W!5 �P��<����,�YٍI�f><��.X��~xR0a����G'�L�;56�� �����o��˓IO�9�C ��;�U�����M��6Los��Huenb��u��t�_� ]� �M�5Z�g0;iT��@�3��y�`qk���g��4��EQ�`�b�Z�l��{��ӏet�f�c�_6����e+��}������Z�7������+��VD����ś6����^`�r`+�RIa�ī�8Yc�w��~�it�+ES�@����V�l�g&69'��F:�9+��SA�f�w�����E��72=�+���{�l�559��AV=�H!��b�?�}�募��~{<}S��X�s+oP.��V�����P.;p����/hq�U�m/�|6F�9��O��'�� �n@��N� �c{0=����7 ���lRxЄ�2��id��$�d�2ygø�ֵ�ņĔX@���.��ʻ:�#+�jTh���ͫ�~�G�f�� Кk*X@ʅ�+�Q���*)�Q�ey7w���[�֒��D[ZM*Tu����/�9]�ҵ����v5�������6�|�$�τvυg�^�8�p`c�;M���ǤłS;���./�a�T\��x�2����O��o�xx�sm�;ђ��f�[}���uM4�H�I��蚚�2�iۓM� ~P&��P���O�����J�XUDӚO�����3A�ت y��xt��J_���N��7i5�$,�S!w��9����}��N��Ş�9�Y��փ%�M�4XZ�a�o��i�d�#pVx�SV$:Ѷ��ț4���?��e��<��v{���6��������.dv&�Iƚ�F���y��r8�skJ')���hB:S�z+�O����*���T��_xy|�{~p���֟��Ez�_=��)����x��L,����� Gןbљ�(���,����@�tV�r!j����{h2���O���RJMxtZ��vRѝy:�7��ۗkN�����Ԝ��bз��i�"�l������Ba21/?I���DX��Q�p~t�"��^lz��';�@xw��GK��!�4-g�R݁8-D�>*��%/b�J� L�Q���#��Z����XÕ�╾8~�_ȣ4��a��&��O��eyd#��G|�n������|��%�ӌf�h�Ͷ�{�O���i ��w|n7��r���k��`ny�֝��&&�V9�5i7�vy�b��&6sE$��LSڸ� ������e܍��,-xb��2�lb�瘮y%"l���)Q�e���v�,I:�2��O���}N��\wӭe��m�"�xf"p+ߵ��Q��6.�·��7�ҋyV���+O��N������V8w9%���cE\XG)Df����;��9aj����Ϋ�xf+wЫT1[�CX�!�^��~/~����cY�_��PΨ�C��8`������˖dl���L�_��S�iؤ}+�,R�����f�KxƂS-�uB�.��qw�@ I�� 9�D�2t���4g �\P����v��������{)!�fK*��NYCs��� Q��!Z�.\I��$G:�e�0�G���S�� �N���W��WP�frM?b�+/z����kO��vv,������d'J`������%K>]�'J�'���v������E��:&�e��l2���1M�yb0R���t�_f��O gO�rNYEy�Dl���S<l�_N�ctY�W�;�����]��s_锻힅� bm݈a��!�Li�*2�^��p���E��M�P�H)a�D��������L�Wt��$�>��v�<�ٌ'��-�3�P3Ysv��V��0���D�d���oѾv����z7��JeKQXJ4)m�D�g�2�cg��ɳ3?!i�G�f�uf�q�G"t�}�̋��9wFI �-�F0-� ����$�a�/Cfv���G6pg ��p�[���?��_���_���:�h��|��Mo���y\pvS�h�^'��m���Zd�v���i@@\������֡s踓-|���\g�1½�D��i�35��b�ۓY����;�ޯ!�i������R'��`��L�r�#8g!黓R�v�������7��~ٍF���%�S�lF���"<0z6v�DC�4J]~ZL����[����au�:B�U��|��0����kM)H�p���'�Q�����=���ծ��{���hr��8�X���f���� ZĬGX�a�KѠ+�U�u<���OC48�(�h���1z��O=��ñ��#r1uj��V;���Pl��s��Vz�Y4}���YI���]��N��=��V��+�6Vr��X�B�_9�t���l~|��N\�I;�J799���\���{��cݽ�������Y�b�DM�_������ 3��1 � uu:���bF_0e#guM��Q��߭�-���F��[������ p�س� �[Qдr�##[W2��O͆lH�nx���ujRN�^٘���ӗ���/����?}LK���t�nb��@:���t�m@ ��Qu���l0%�oŢݚh��9�=t=]x�A;�p�Q��:�^,�$V�+ܯ�ss'�lz��2����!Ztf����0�ݿ�ԛ'��2��k�J��'�4[i���a՝3��A흯2�a��4��w�}1�E�������q���L�s��;@2�Ej .V�˾�?��j��{�}��T#�k2��AJ��X���b��scw{1'��8]����"A��?�� �4���(�nSWr�g;����Ķ��>l}25�'�<م�]9��"�eQ3y�WlD���{Y3B���v������O��b| ��b�7�NQ�&���L��xt���P�:�K����Y�D�.��5V��VB��o�2 ,������Y�xu��|_�nΆ!���J��dt�3�}�k��#Lđ^ԭþ?�j/Ƃn�|�v�S���̫�Q�+YvnY���^����D�Rj�������\��3� e��0O�[���q!xM��"�[E"ze��i�vfF��2]�h����*��z^P//�2p��į�W���� =!-�#nK�^9 ���Gr�J9fE��P�����n�f$�98lnO��b���9����ww$1i�����T�;]g˼}&Ұh�4`%���8`w��Q�m���i2�牝�(C͌vKb���X�>b� �֎yzLW���n��lnW] ��f�R�K�!&Qf)�r��n�����>p/��d���o�f7��E�G+��4OS��u��Y��~q6y�+�����U�%y�M>/Xq���gL:�j,��]+�>��W���z�Ov�O�m�lL�R579����V�Y� �M�*d�B4�i7�ʾXz�yMٴ��`�&X�dC�\��4��f���l��� eߐ�g2OM����+'������Jg����L���3%C�%ze�Za�$�n��9�/����8��՞7��0�Q��������_T�}(.}��p�/;}�s�f��f��U�l����OU�OΟ�3ڳ�3��G������h<�+�Besşgx�;��*Z�h�XwJ�v34I��alh��"��n���믧Xoߠ�_����?�ˀ����cj=F��{,h%����*��xJF!,��A�Ws���Q;�l�d6b[������C�9rPtlf��U�YS���+�NM4�{�'/����KB(���|3 Є��r%��ݸd;usD-B�ʐ�R��(�7���90(M��x��S���6�m��X&ǩ�M4V�_�gK%���{4X0(|$_̚[$D��݅K���'�[2�WaS�4�X�kΗL)�08�M�A����<Ѱ Ⱥ��Fz�r��U�6`yf5뽫�f����)V�.�"�M+OJs�L���j��M�e����@��ƯO�7^��/�2��]��:E�v1�e�cr+�5�٘��,R�Y묘�9�I�3M|`D��� ���!��.�r�X�����k4��lr�ˆ�N:�@�i_l ��I>K-����?���9�D�D��#���s\�%���3�^����VCE Ŵ��K��4�g���S�B�b��z<S��H���Wj&��|��q?w9��qF$�4�OƙI��e`Gޟ^����.���@-�'^�������?���_���C���o6��J�\�Lr�iՌ�����^u�L}+�Bk$�hƃ��^�(��V+��!.lg� l�W�Y�b�V�-bV��\؍�I֧���,��Oך�p4G�+�(N�aפ�/�D���Sú��,�U~�ͻ�u#��G�6�'�5���a��7��b�b���хD�g�M"���/ts�E��,|&�\�>��dDw;��7t�g�,zǮ��wy25/�ꉸD�|��[yh����{�e�\!�_�v�ŗ��ۓ���A�'\]�� ��]iҟ����jla�o�j�� �&."6jǯ5L$cX��I$�z�rVw�x�kO��F�,�l�y�$jՅ�h�-]��\�]8:V�� o����0�*�5N����ޟx��8����A�ӽ���� Ge��X��W��AZ`6N�gto�?�4�;�B.�9���(bQV��I*�|�JK����յ�lPk�5[�AJc�s�֨uB��;2�i�iO��s�����yt�q^o}|�tŽF`��b�o���������?t��?�[��+�v�� Bx@<���&�J��q��쁻�K�yC"��λ��Xm"h.�#��̺���f{�V��?e{��-(;j�����&i��Rl���,!��T��km�5��_!!پW��\�f^sw���tj\��B�R��=q����I�������ʯ9 4�� y��i�^��~�b��M���p��8�ye�^y9������k��~1{v�N�I�ڽ�)�����e�A<j�𥑎�I2��Ś� =+���A��l=ÿ>ف��d$�9U��N.�L�S/�����k.�]NW!�!=�P�&\�a����r��FB�s��|��=�c��zZCn.k�ũ���ޓ4Z��}bv�6�������Q�cR))��Yu��b�sw�Ɣ}R����^=����5?ձ�W\%��I��g*� ,�'�����M���/֘�4��HyW�3����Y7?�Ib�&�rq�A��0�d駱�N'ʋ������Z���d��;�鐀��q��dM��l�Fc��F��2z���y}�=ⲙ�TV�WÐk�}����_���|���)�<��r�(�xx1�j���f;-�#qB��8Y}JSr�Ӡi�Y`��/c7W-[F��B9�3��;���W;,�^��gi���R����͌Û)Ib*�]�a��$G(��]��\*7:�S�L_�49��S��E�6� � LJ.걘�xJ�XP�I����iG�v�j$:A� ��18~A�aU�ƴ���^Y���$��ԯݙ/TG�Z��s�S������ۓf����А��������g�]�ȥ<q�~���..f�G"#�ViŭWC��Оɳ����0%�8�fŅ:ܾ�@�ޭ��蝍��%g���n��"�F�mЅNMi��.��R��X0fg��gX0K3��T��ঝ]l=Rþ]�ɯV�]ϩ�FV��.=Am�[�,n�Mw���x�v�Z�+�Ћň�)�b$O�+���\�2�<t!VcsMXG�t���ܭ� ld��-H�*��N�<?���C�����g�HT�V�����(��c8�G��H��>?D�cG�P֕��CG ���b���g?��������+�q -��#��t|��O��f�7����!��`�B�7�𥤘F�E�5ٱ�%������x(3:���Z�R�g�?cX�SUq� _�E��G���c����������r��Xvd��i���e��l�;m�nx*�eSK��d<���z�D��@~��誦���oV#U�D�J1=������ ��(M8x���g����P���X�e[�\f/��P7�落ݧ�o���Y���8�ڪ(uS%t�ĥw��! ���O��}�{�{�<�,8/��+� ���&��r��n���n����j8��T�f>̲��ԦV���(yҎ�>Z����u�iʷ#^��]|���.��_����mV̵�ne|mY�v�?S�d��]ݽ�{����!0�/�tmP������q:�����VM-��c�h����+�z�����ȴL�ߝ_����G�J�P���� ��r���d8�Z��Zx���Y�w�v|�JG�Ѐ��GI?��'d%&��3"9��I-/ε��0Ix{J?!W,�o~���#�����~��+�W����7h������h�j�E�k�ߘ-�"v��≈aw�:~؋[�����z�hC�;�!��;�N�;G�r�ï)29g�l��4'���Z|�(���]X�XQzp����nN��b6-wg���EؚVzǛK{JvH��O��ޮ��=]C�p����3���mJ�&,�[VR���[�tҶ/cg�Mz�Lql]���t�z&�VWl�䮝���IRS}��w��/�z��дt���m�f�l3���99'�4���i��a�UCО�A���t��\��0�5ɻU��+�m�D�bd����W�u3��1���V�������8����w@k�}��r&�z��Y��DG�I$%w�u�+O�m������M�S7׀l��;�n0�Ly#���O�v�l%ښ��qџ3G�6���������R�A���F^��k�*��ҏI��paS5����9֓M��ۧ�#�2�;���a�i~S ��u캷{u�blD�G,�q5�,qɡm&t�~; B����1������<~"��3~����_�W��B��b�� 1<C^.�{�Η,pZ�nV���I�bD��Z�)▘���Ӕ��l�ݙ�8xɓ�"ٞ��Z����m��N�|F���M5iup�SW"�@�-D��I��V��������&�F��pm'\T�A�]���EO�HO���8�.;���&D����*Xq��tӹ�}.9DtiH��4Wg���A�g�${U�=�ҙݦDt���z�>���M��T��uCJ41�ͮ_װ�L(�6y%� x������ãr�˶n��u4ۏ�ˀ7�Ů�O'���qSW��feD���K����$6�gW��G��3-*���7��j3vy��o�f\^��L�Œ���\��+����,����R��NMu�֮�@�v���~6X�ِ��"g6�)�v�}�^����U�4�ni�|�����f�АP ٛr�h�E9�}S^}-�`�Q�N��*r��{�}QTeU>=9BRڨ(�,��Lh����y쵓#ʯ��J���)`����*)s��GS|�dJ_�rਏ&Q��Y=�Nط�xj��%�H��D�ߊ�t,����_����� �c/��>�������ӈ�����+̵ڮJ�u���I�f$��hE�Ѫ�� �/Ot��،��YV�Cg6�{�an�-6�Sfm�%4�=Q4��B�`�b��!�☥���d���0�A�o�$]��`}AN�5'|���a��L�1=�LQo�$_Jځ�}�=#)nw� �o{嘕��ˢ���Քh5'��Ovot0D����&���j��QN���3����(�9=�k_�(���.�������Q����{�<�Y9�?�~��:}\��pr�_��~Â���p;ҋ���[`PіR���Di�Z.��>�:�n�M:�N]t��~.�M�"#Ɠ)E��.hN_�'��]yD1ѓ�7D��3�83黝 �6��w?u �8H���k�kQ�$��L����5���|Zs��n�`�YQ���\�jP�N"�V �v����Hs�i�Zh)Lw���`>��h����� M"�<f��x7Jv�~'�v����nڸJ��˞�`W��k��� ���;�3����b�y����7���]�:j|�'k��8=B���lbڝ�SpA<�`B��n�`����r�qF�0�v�}M�G�(��t6s��� ɹ��N�%�Qp���A�S���`������n����5�'K(iu�Ә�Ac�NX��&��Ew�&��X҄�x0�N䜈���Rt@��Fxr�L���D!�;�!�˓��j�E����تd�7G���us��� t���4�}3>������p�e��?�yt�b$����j�5�8�8]E��2�Z=���i�a�aA�����ʝ�6���t��%qQ$F�1�H��ə6�ݭ����X�Jޭ��R�h�b�h���V�A�$�3���{�>�h,B�G:o&�� ���3�hNMm�G� G�}���o�a�}����%� iXl*n�+��^]����t���Z_�]x�v����ȳ�ׯޏx�����E.��laS^lEiB�"�T2���N�D5��j�B=�Y��3P�'%m�}�7$��oL0�ZO�[C���B���N%��z�k��l�� ���+z���_D @Z�F�������ߓ���_�"�{�n۳WH��h��8��þK%K��.i���� 3��u�b��.vj����u+�hB{1ǵ����σ+�+!'Wؼ�>�h&c��uVl��уd.S.��ഇ�A�'�N�la8�s4�9{�?m����W�b�렑t���nQ��{��r�I6��a��M���#�͈P���U�$�4�)������Tϓ�E��.�Ig7s��$*/O�D�<&�ޯ ?q�3�`1��2ĩ=�m�o��ք'R`�y���m[/�WC��4w���D;��F�nn��ܮ���0�S�B6�@8�)��_P�"��}�\��b4�#k�A���1��}����y�Ԯ;%Xp�)%��\�튉���vB��@���1�G.8�M��*��h�����B���a��������3桋%ߋ�n��Jq}pT�0")�.e"?}4xuw�� �8����nZ�R�-��r�1���T��~��9u0�'��a��X|�I��[J�"��2<�P����X��a #?�n������Cǟ��~?� ~ŔW֒�vB�����Iٟ^���l`2V��&T,a���H�7�st���v�">%�{��%�A@t�r瑄�5ۇ�RSIS�'bb2��#-��\1�W#�ąv�:H����\������TQ��p�2:������%hd��%�=�>98M�[s�����m?{8�b>\�ش6ݕ��o�����&V����fB���o�5�N� �EH��,2ݚ�~q����0�9���L�'���&+?ae��6�3d��ҕ�kh��H"U����\�;J�I�g��c�g#6���L���'. X�v&#���7�>�>�)� ��:��Ӓ�cO�]��F�s�}����u��/Ϲf��1�߸�ڣ��N�kN��W���F�J�f-��ϱy��\g��#� %�K�y��!�D�� �k3�u��TB�2{ �f�E䂜�0�9���:�lh�y�$�l6�Mў�O��`�ݗ@�A8:$�4���gg\���eL�n|�8��p?�k�;�㙭eH�DF\N�+��2 G��igۨ3��C n�B���#�x�V>���v����?���_1��-,%���ꊰ�h��< �#��`�<v3�ϋi��r\Z.n/KFx��9��3��)�ס\������^��5oq8 _�A�Qnh隰%�&�I�_�T��[�(�0�X�,<J��"V)e���7�r�g�~r�R�_yৣ���&��^G:j���������gWԢ����T����źk�}*fS!Ayϛ#�Ӈ���,�-��h6Z݂���d_����";���& �E�A�SJ����Ω�͍b�θ;�e�������L�G,B�ŒĢ���7�״a{�vo^�us��q/��W�'�95�`�����}��(T%�A��5tB�Š}��i.��r��##�3�q�W�kh��&���/�ܸ���,�ق�š,��ҩ�d��'"e� �z��v�ۃ�T�˽���8X�`j���88������%�^j��u�G����H�<W>-1��;Y=Z��r��rH�i��m�N��#fv5��� �ϚbM�ZI�y��XWrHX�dkO�j��� ����@J�C��vӉ��a��=��"W�ԁ+���\��3��c@�C������x��J�t@����i} [{��~�c��:�Ŧ�~W��͉�u��@����jM:�(�������N�)J]�ܽ��7�=_���V͌(�EwI�$�n�?g�#%#<(����K�M pS��:�k>�cS� �o&U�)AX���k��)�l���6;��^�%u�����*���l�|�kIPt��H�!�{�\s�`�w���bŁ���,��$W�L5#ԅj�?�\n%{y��{F�B(���;g��veYmz��?ޘ��y��`Kɻ�N�� ���^�L�tSc�E�"Z1����=�fEh~��5�٭��ޗ�x�1�lowyԻM�"pA�l$��6���� I�؝.�V+�o���4����6 [�.�%9�5�ք��5YB������挂T�ғ���{(4�K�"B�o�ׯ�X��������$J�K�`q�j<#�)M�t1�H�K{;[]�^y��4�R���߁�}���W�cX���E<�Ҁ�@�����8�9/���ld�c�����ny|��z�6�|F����~���������U�kxc��7�U����aC�?1�jv����2��G����4*�'�ܗ�WV~�%"�G����j�)uS�Յb]S|��|�%8�P1r5�ORf��>�������h\:YԦ���v�W�^7�wv�A����ݟ�V곻=����´��@8��KIJ@"Fl�O��l�]x9>�,kɢ���mN��n�iRq]l�BY^ӯxu���d>��3�q0�g *�o�(ڱ,�0g6#ݴ��OY�Ř�S�� ��a��|b�s�jll[�)�7�6}�p'1�28W䜫Y���?%�֔��@�5j�Ç�&c�wB�2���4ąS�t8�V������LKFo%��qB�F�*$��H�mB硴��m�m UC�(�%]���ukr�+wIJw;�\ܨ�z��%�6k~{��JdQ����x��h(O)c�,�5 �8�]�X�i5��Mm�V2���I���nڏs��"g�ĉ>23�q}�p�ଐՈڐng3����6�J�|���HӤ������`<������E�x�OG�K�B���J�(jڰ=|���#����7��?���_cHm�~�աm��-~1<��>��(�MgBQ�s/.��@u/��u�|)�)���9���IV���L� ���LDK�if�Q#�K��9AIné6�eNe'g�<D�I��Q��Z:_|,���CvwV��]��v��:yy�O����x iϝc0�P�IT;�'\��$h<T�cXkR�D��2��c���R!����PՄ��%%��m,�:z�M�arv���F?�n�lb�6��%ݚ��3g1��N�N�q5� �G�xH��T���g"Uv�/��ȕ 2�Z>s-8���,jz�/nM��sM�m� ���2M��a��-���������S��Ў�5���IZ%����������Ulݩ��Z��B���sR5m�VC!�I���Ǔ�/�6M��k&F56�MX�6�t� P3]��H��w����prl�T�M=��7@���P��y�#��e/���N��:$�9������P��HY�۱�4߳��)y������r�ť�dXG拎f��vf^-��=��t���-���R< W�������������6|����n��y��9Z>#�G��w�p�3ـ=��N{j��39P���e��$���)S��d��<K2Qo�6,�Y��|G&�&��)b(� ���՝_\xD��Py�q�u������ّ^y�:ۜear2G"��7���M[�CS`}�m9~98���0�d)@=��tx�^$�� �R����:B�48��N称�~uF.#64�џ��&�sH����9�ζ�gs��i�Ie�x� z��a�h�#��/f���i�3ӽ��+�7-n�߭�����r���g>C��gZ7ͺ��*DHAo&��S8r_x�=�� ��?�/8�u1��\1ɉ��'Q2�� �#9(�tkj��I�����>�=�sz���ԸVz��kw���7gLCSæ��2Hh��_FA8�C_�7V��i c=����鿫1��&�}i �wJ��}O4x�ٚ 5Z� %���K^�@3��4���ȁ �<����,��36?�AՅ��vu-7�K���t�=Mi���j�A��,7��H�bm���x&V&�U"k���ADX��㇀p@�p�]�ɯ�W�<(��s� 1\�].X�P�P/h�g�r��(���`�a3�/8��ϯ�n���q�Ǔ{�KBzÎ���t�ym��&&�������M���k�H\���[9���U�Y�2Ӏc���>.�CVB����;8�bw#��~q���[���,"�L���Vg�Q�Lp*�gw�r �O����2�b�Ɍ$I�2b�?�9!k�2!,����#]��!֭��kj�i��{I��z����lRJ�;@yPk�'(01�O����DW�}Z7�o^����,v��Ls���opr+iK�b%1�g�����I;}�=�B!$�Ʉ�,O�=�TN�ۗ<�{�>Q36C�z��)�]nFSl�8��PNUI3DG�p�s�k� �[e��n�t�+C��n�]�b$6�F�c��N��������߿����E��Qq���q|��&�W�η���t�� �fN���f7�&�%oLf��ΔLe���2�r�o��[����6ه�'�Ʉ�M��nF�=n=���3�FCV�(�Z�T�)�b��yÂ�Z-����V����n��/�R���J'i�_o����V��AIrx��<�s�3��2b������4�3�{Eߜf��N��L�!��� ff�gx1-e'C4�1p�Ɲ���h;!�s����y��p� ;����l2�,�q����#����r=1j��a20�C����`��+ũp��w�6�!_�"\ E k�^,`O�t������u�F�De�CH>�e����U���rBM�Սխ@�w\!&�eNXr���c{�>3�(�b���y��t��$�@�]�Aѩ�{T�f��&R/�[��5��Z�A�� �o��m�W�i�ٻ���G��%�+���rv�)�t(�z/��t猅�gc�t/�g���k}a��p0O��׳ۃ7\�4 �v���S7����z��G�x��u��ڋŪF��-��#��G"�$^�6@�� ��̔�b�<yq��bR"�q�j����m,�J� �V}El�#T��Һ��;�a��.gzRā�v���.���<�� V2�7Zw�b�ܛ�l˖��8��`L���ϔ�R�(�!�խ0��]|��3�~�� i)�KD@C� ����7����%>�y�*�5����~|���/"��G>���V�4��t`G'˾bqiN�Q��Ur���W�i�%-p>��$7w� *G��4 㣓9�g=M�z��8��d>��V�~�.k4�o�<�ʤD�o�$\�Cs���� �gDg�!ƺKʒ�w�J�̒���=�D�'zN�=�1ʣ�i�w�*�?&�Y��gg�k�������k~�ɾ�LMxh������AgW��ND�aR/�sjʗ���y��?��`>̝$�i����*�@ �YH��Y��>�O���q!�J������A\� =�� u'���5ӑ�).��H���n�&=���7��ޡ��+����`�p���0���W�$�S ��~B�f��k<c�u�f{���Se'�ۺ�+"�*�muԹ��i�m۵w��}3���,�;�(sm�(gZ5+0(ގ�W�+C -��3G2{�y!S���� �l��t�0D+�9��{9�H�zZG����������bP��#U g�a>�B�&�k�)R�)'�<=0N/��,�G�Q�O�\ֿ����7�c|������U�����h�J}����fS�I܍DSV�v{�J���4���tp�zrD/�B5ȋ�����Û�H5�K겕��:��8��Xɚ\��5�^���W�aN�np�f��4i�:y�庈����hoHf�L`zx���ư�i�� ���ݺ��#��[�B%[DMy��dDk��͡3|T��+�ŏjW�46r�9��x]smu�`փ[a�D6u���^E�k�b���]����lv��e�����ș @�L)�lu �����Ը�����[��B�I1y/1[�>�'�Eٽ��t������i��g��9f�wgPF��u�[����9�W��hj�Y8[r��r��LU�b)S�L�`�8�{k"L��P�&���<�+� �g��l4R����$�>k�8�����j�y&�3m�t�;���,�4��D�p��ϔ�ieq�~y�#�Ѷ��ϻ�1iw���Ɇ1�3����\ϐ굝��<~.�5�S3s���w�;��;�Ϧg�il4���@ jA�_@NF8��Z*.�ϿL��������9�~q�~����ۿ��}�Q[A��K;�e�mtH��Ō�c5X�C ��%:qA7�G�ޗ�]���d�N��&�S�Gv��F$Gn�V���[nZ-ι�LE&�-"Mp��6�h�d���)�Nup� ��&|鉏n��������IV#y�o#�&� D3��&.BZ#dŗ�V�!p>��f��L��iwӺX�p��fqw���d⽫�nH�ףˑ ���4���88��Ew�7����I��_�F+���0{����&>��n��\�̧����� �l�Ш頖���U>G�@l��$���T9��}���,R.1NV��%|��W)4������f"ް��Y�t��c KG[�#�+Ǯ��7q8���!P<*;a�(+g`=����Mf:��3eǖ���d]���Y�;�B�-���x c.]z�u}՛^���(�mE?Izd.vd1v�4����N�,Xy�+�B�Y�9]kڒ*�8�����y��x?��D4"9��\�ji��8� ��t���%�Xp��4ŷ�z7��|�>���C���w��#�F~ ��CoB�EVC���K�&a#�d�Gg��ϝЇޡz6B����ͦ-hv0��O�i� I�f���J�W>1f�1�N���My�����pJ��,���yaO��k�&�q��A���W�It@�tm� HQ�-p��� ��J�T��̓$(У�G��6�6�0��w��7�P,���M�� ��ƚ�֯fO��5��Ŝ��$)`���hAT��8u$#6��!?%c��O5�v��3/�ދ|�,G_&�!��r6�Š��S�up+�)�~48��n�!� ���A�҂щRF�}4� 0@�Z7l~$��X��>63����� W�|��<���s�\��L3�T�B�P�B9F>��+\��װ�!�y��W�D\._�nw�]��s{�b����Af��su�n]6�j��n�� �nu40���h<�2W')��S�k6B�G����زIB� !�L�2���YS�`%q��N�b}eh��M��L�V������lO��B���낹k7B��~D�/R�r�! >�~�#>�ٛ��߃��_���#�χ���� )E���I�@ <�N1`���867r�i�\F�©�8xK!q5��i��ET����L�1���v72S�5�ތB��"X���9�MR�{�%W�x�����2��j;;#���<\���֝Edud��dZ�˓k���܁���ip়��/&����U�&���X$)KҞ�x���- \t6��h��!R{��C>Pʶ;C�vݘ�0WHZ*���d�����hv��i���3����'W��&����Ş7e�x� ����/dr�1��������⿓���u,�2;I g�YxC;��9��3�9$�\{r�i_��Bd+�8]p�$G��0��4����_;�#[1M�5�!/+eJ��X��/��Q�>��s��2D�N�L��+ɂN&zAC��aFXv�a�y[/G���e-k=�5N�d!�|�ӳ��a'��go`�}��,���ի�X�����7� ��]W`kcʮ��U���dE1��s�M�ܓ��楝���F�ËF�VD|���^.�@}�e��������n�5W����E�-��� b�E��z�x7�%�[�[��^z�P���]��!�a�5Up���o��ٺ�r�u��2oNy�M:��(�w&!G������<�`��O�p����lšU����W�S�&�-�"eĠ=���"M�tv�Е��s��\��`��w �Eg�<�ἠ_쪘�jv�*`�;ro���u��M;G̹~�$��mu��붧� �,)kn3�ǒ�Ҁ�b�Ջ�ӨF'����p7�����'��_tJ\e�\&}��|�V��`�F�8�`�A�Pz��G���}�l%���>�g8;����HZ#}�4�s)�x*+m��U�]�'<�5�ܑ���� ��r��i�n���i��)����:)e�"V��oD�p�z�u}A�ɛ�{t�� (X�TK��p:�]���&�����ڻ��YH�����X0�e4y�2 U���-�Kˋ�D^�(��UA0=����]�~1�����E��O7�uK: K� ��Ŕ���[f�7�ė�,U�����+X��x�@o#�;��=���_�~���p���5�˸�����-bx���6������Bo��Xl�-�J3�K��x�Z��<��Q�灛�T��3���7���3>4e�5ݗ��������6���I��̮�g�9��";i�S�_nyJG����O�^��ܜ-�18�I��6c��pp{��d@$8ɥIIF��T3Q��MԔ����y�FG5&ӳW;���'k2fSq)6���2�=Ƅ$���Λ��Ԧ��x%W���Lm����:,D{0^\n칛���'�>��N������h�Oг�$�����8ֵ�f8(�Y�L"j�釞d �L4�����5���N�,���"�7�;~��e ���^U)]��=��@�5 e��~�v�;��,/�Ќ �Ivz�K{.��j(L��)hѼ�[�/r�?�p���x.f��ņ���]k��s�K1ɖ�ql�A���K �i�) ���w�y���6"X�����ى�K�k��j��}N��"�z�=�ԛ���!E�v����F�UЬ�[WkhZt��<��g���P/�0���#��7�1��g��t����~y����o ������9���7��/�wd���)=kԍ+b�RwGE� �8�04�)N��y��#l��<,�;&�b���Н>�M���\qg9��t���K��h�4-j��� �:��O��"�]%iR<#x67L��YĻ�j(Ov����x��BT�1O],�4FӦ��gjP5C�� :͵d]2��4h�\�E��视78BNv��ވ�E)A!+����Ζg� �sTX���9������8�����@{W1����\h�nL`�>��qfA�5��U�͚����muL�g�p4�T�g���JM�1��]ܵN @�sߍ8�9�w��g5���r�nە&��A�P(�yqJ��u�>v����R���J�������4��G[1���;���=�jIw�4�;7��ݫ�9��'r`���&��K�m/6���t������'�.~6ދݿ�]s$u�i�M��]�q/b7/ő�2�A�,T�0&�p��tIks:�yJ��\�o��7\\�)�T�F��Z�^���ۯjF�-b:b���/�~�|�7���������Y���g�X'䰠� ���~��1&��`��d���b�yF ��4&���d�t��STs�4��q<�D�;�PO�k N��#�)[U�8w���U�lڵ�=ڔ(�dMbW22Z��G�qۍ!���N��r1vNKn�<��.t#��A����VM����<cW�����5�C?Bu�GD;rv@?�IG��.2^sfTdrqB�3O<Y���L�y{ʊ��(������f�508�"(��PwX̜!f��� � �>?٦�D7����67���7>� ��8�W`����rV�t� �?��v���h�=���t)���k�Ѕɶ��R)>�+�D�FB����>�~��ƃ#�_l8��ģ���e��(y9��-�r�'�r?��n���ĽyM��uz�?�Y�3$O�蹎�9�ZA��4��L ���N�V��O�Mya�TyF�鋑��}4��Έf{5�B���h�nj�W#$;�����Cd��Z�E "KA�Ͽ?�^� ��h����nv�б�o��/��?y�������5�tXƏ�C�zZ�[,7�����+��!z���T�v��D<�A~�iErQj�dM���x4R����m&�]x��M-b�o|��R�F���L2�r����u�\AxѤB��W�}�)�aAh�A��H9r�!��ٮ�\ z�j�d��YQc�=#w7�,�d ;�,�^�.M�����0V�����䚲��Z�&��Vl �>�S����DX5�k�9jbT\91��˼�>����z虸ƈ�xE74d)�NX`C�^��)�oz��_�og�s�����p�>�q��h�v1�'�C4�yԂ���5 �_W���X�Nz'I�f�y��J�5��l�Q�d��-<a6x2��tl~�ս�&,p�:�֕ĽJ���q�i�g��v�}�9���4�&�|"=�;��Y,�<1�5��}�n� N��Z#S��/RWD.1�C4O<RN�P��A wDBμƇ����ˁ~��ց��L�'@~n�Ց�B2�/qВ��ll0�?��>,�a<�6�7wD8%!���o�����x����/�o}�������߄��_��>}�@ɨ�����i���\"����k���E�;_��;�<� -��;��тe*��.\b:^�)�h��颕 �m��F�LD�L}�$=]S��e$$x�qV��+�iF���b�c�>w�<�A���5��;���������1� Ɠ�B���vm=�zRǼ�$1g 2�8�e)���.�3&I/H&�z>x3�h{`⋛��0/���d_x$�\�^rT��&k���b�1i�ۓINj����\o �{2���{����t�rb�k8���E��Fӊ)WdA�φN���WQ�E��Lh�Fc}M��Ac%���7Z3�W� ܸD(��':X�h�3U˵��oք�ɜ�ٟz�?�!�Js�~��A��� �l �T�k9�]�{s��Y,`��?��\G�J0NK�4�$@^�|0�q[B����}a�&`8��x ���f{v��B^Q�NÓ�����s&r�`y��9���Fn�B>Z�L�meO��� 4��Ɓ*�7l�E0�{��|P�u�����6�� ��8���|������_n'}�z����{^�p��~���=l�[��/P������U[sV�|U��+i|'���<'w �O�<>�P���R-�:۲��D;߶�x���M�M����^'���T Mt�Q:�`���� ��顜�T�y�͎�^����{��'5���B�4N½?��Ѵ���K����X�9�D�gȰC�lmB��Ur���ju�vS�����ؤ��z��x*��}�`�*&���㫋�gunR�-��Odk�;�j���3u�7�q�!ھ5$\;�yw��r8r��s@��hX*h�� �Eg�rA����p� 56�^�#��Y]��������IO���kH��_K��K����Rr�>����_|6`��},�/F�;��"��n��Ͳv�?j ���2�ID�.#ڱ������A����{A.E/���Z����yԪ��a���)�t߉hn�L)f��J�utHT�L ��k�Ɓ�w�-������g6��a7�Dc㡦#�K���e0�ם�0Frazh�!���������p �����]���_�4�����P"��i�"����ؔAtQ�Y��9�����?M�1�.N���G��.�(���j7-6�v�k����n5M�ƙ:���������vmg~]Gxjr����ITa�N���ȟ-���X�ѻ^��W�?7X�>7 ��S�q�)r2�@����|���3����ѕ��R�8Y��w�n�h����";�(Vz06������f��4,�?^�_���Q&�����L�q�s.6}c̠P��4B�pe���*��E괐�����Τ2�.���n��/��¡Q�4���K�>5�*0�A���L�I0ҋY�|@~f�Sk�L�EAq56w?�3囃>�>�^.�����U��R8���>l������a����~U#d�!��>���vNl��<�&�ഐ�����{:�(��%o�E���\��x�9�rK"�e��VO�s���9Ev���B�C�k\��D�I"}�pڦF^�ĝJ�E���K|���H�#Ā�/���ǀtx��;z~�T?���;�� 7?{��<?��`}����7�àb�������YLr~>�w��j3��ƛ�Q���� +�C@1e����L�M@ln/������.F�?ډLƱ��)�>�+��dF�2�I���������|�Y�ʢ�\�#���^�i������O��}����&W����N�Y����Mi�+�b��3J�c,'[�1I�_lO�c7 z��l� S�6�&2��L�b�;�3Q��fҷ�P�&d-���� h�ڟ챽�(������ϲ��RY���<-�YK�u�V�#�Tc+�X0�x�b2��wwXgGt����Z�B��!bn���fW�%)�UZ��|�g����"V�55⽄�kz��2��ځ������Xo��V͗�[�E�L>%����˵�_(_w��C�����l�`u�H��]�|GF*�M�7�sX,�+��#&���*��6� �ɠ��3c�+c+<��y�gx�G\1��Zv���y`(J^-L�]�]�s��(Ϭ�/��わ�c��]��쏟C;���/��>��������P�����#BY�sBZ��l@^�Xg���' �O��b��E�B���nu��YɊ�l���U�������Z�,`�īd_o'\�Jg�i�&Yuw)�H.g5:�������B���6�������1�.[���B(f1�ѳ��S����fuc�7wȸ \�n�Mw��A��G�\иVzrD�3�����&�sVGlba͂[Z$,M������*�rB�խ,�dt�����8\��{�F�j����Sz�c^�$�ekpIX� �9�$ �ɹ���$�j��WC����k����ϩ���j#!��Z��NF�j�4"x-�R�O ~e�W��D+�3Ϝ+�ڀ��]j�����g]�1a�h��j.}�\s�q$���^ԋ5B)�w�f�Q�-/��~34�_��4&q7�a��qL��a,F�c$/%��Wz�KE�0%z"N�ȃ6Q+�:�c�h�E�D���D��������m�Bn�f��MT�$%kݍ&$3R)�[�@�,'䎐�#_x�f�~��|�募�?���ۿ�>(��E����Xp<#g��.B�E��E:~�����%2�u�Fw�t��M�9'Vo@���U�{��B�ۣ�� ᅞ��1]��&�OO��Ik\5���ˋ7�]�g�p��X���p�{�j��Kq;�ݴ�M���@_�`"F�Ƥ}�&38��tqjv]��r��� �����o�iӒL��`�x} ,%���C�k��Z�ٞ 촋�g�v4d!���ɪ��9|^��)��'��f}$1���"����}_�}�v�fL5;tN���-�'r[�N�'�D�\uc�,4�N��&�i��A�]o�,}� �qm�ƮM�)�d-�M�M _���IRX���c��v�}�Ыʦf��r5��0��k=|\�;�O6g��v��i����I5tK��zMn���ȆtN��m�K�u����"� �`���Lj�[�f�=�H���l_�ڴ(�E�A��5lQ���Ǒ�\^!T���S��� �4���ި �Cf�lN�=�xXt���,� �/��/?����c���~P��MҷC��T�\PQ��[���`۾9������<&X�d�i����b�IҨ@Fb����-��\��Gŷr�4w;��烙��퇯dS�M�+���[��]:MM�S� �?f���XO/�/8oiy?�3�Q�����g*��؛�E,Ƃ�9�� z{$l�4�8�\q> lq�b�2��v�~�*��`�A����E���� �ߣ�i�ϑ��M��~���������=f����V*s�J61+PE�O�S���g���G�q��@� t!U\������JEM�4���5YѮepq��#Y�����_�>� u��$F�v�:�fʣ rJ��h��w� Qp��D�WO�mg���+��Ei]��;'��5�"ϵ'�8�Y����� 1���*�Ff8���CS�� �nH�v�!��ә#qXt�Օ�*�P�������k�����cw�nh�C������Gf��i��O�k��2�.r&2���58�S���B��5io�����ޑBG_^���-"~�G��?|������㿋" ����~-!���[��u��}�����|��^�_�@�Re����X� K���B��x��eG6Ҟ$��);)�w/dZ���S��W�7������u�F�#��;z��;���K���x=4-H�3�o��M��m6��Gg� J.^{X�[���[�VH�>-)*�����4u�Ո|���c�[��h¨�v�I0 ��A�;e@π:3 ������?'16]�@�z��Q/.�`���e����n���|֔��X]��4mnǍ땉7���|�;*���@��M�ͮ��iV��I�s��������B�fС�[H��ty5�ͮ��Τ�"wvo���]��P<�+]`ӳSQ��>��������2��Ę���'s��*l��evD��v�� �/e�㍽穛:$��]��Z��� k�t���Ԫ�Zg��,��������(��\x6)��V,�܅(�u4���}ƛr�]%Omf�Sζ�̉�m0��<F�.B���8���o�� �>Ў9��%#=��zw@ X�_@�G�������o��������A)���I�j�~��};��b�~x@.{����#�#bkSWN�.G��ㅬܭ�F�D���O.�`��9f��� c%�GK!�G7�%#�貑�L���'�Y������Pj.b+.N��)�*�}'�%#���at��F��»�vj��4fN&gB`d�7�D8:�p73�iͩ�=�~��f���0��嵓1�y�< ��o�x�����@5 ܖ�lo�{�g��B(��٧����HQ#��y�v�tw��sv��B�CA�1�Ռz���&��C9�YCةU��(���ԯ�UI�����)��;��n~���u�z x�{�I��_�Ъ6S��^��P��d��l"���#o�<�����&��)��sJ�M-:M���������\������L�X���8 �ҙ����dk9��qR^\.� Se�2��N��h�f��?������}���(����nD��a4���i��4؇_|�5����6���M���$[�FB�\.n��AlQ�U����XUl@Oo!� {}�Rx���������~���-���$}���?�����;"6,��et�� ����Z",�_���,��+ӒR�EڍM�X���w3�(�kŋ%E���.ey�0�Ɨr1���ǃ�?:��ݘ���=� ��B=A(:�' ��=���9�-��������"5%�u7�� as0ow��k_H(r�"���uq����lŹ���#ekX�AŎ_�Q�ڀ�c'iפqN��3��_�I�څ���&�f���^��Nhy�H�)�+'�8i�1u77u�k���G����F]���ć�8g.ݣ��v A��'ֳ���$5Sؼ3��< ]��2���L����q�i<��is�����V�u����~1�x���{�Dm�Y��ִz�7~f�m���7f�3 b����[Ay~��D@��F�P����CC�4�N�C�}1��a�TH~fj$�^�6�rbn�� G�{��؉�l6��n�*��)�3����e��u0�3�Bwd5^��w��Y D��D����ﺏ��o��_1��v4,���e��q5��_�!�������7�\�a�CX�菟���g?���?g����dmwo��y ݡ��a �>��i���s��� q�I�V�3���_S���r]�@WA�d`��w'bA�<,ήP����VF�� �t8 �l�C�����<� ��OF�#�iҙ�U~���ݤ_D;�IҒ}j4�w9��7�U��^���:�q�dS��ݻ�_� ���5+S�xO��\L��v�����bV����^��� #����pQ�j�إiY��g��h~����L��\I�����v�U�����$ЋM�Jcj�����g�+�j�� -�d�P��ܭ������P�0b1e�R�s�8��2�˸���Vl�Bbw:k^��\ �: E-c��� �y��7����t��8�a`�Ն�&d?��E60)��>� ���^.��A�XP�z�rTN�"�AB��F,,F%�r�0�D w�Rb�;,i�R6����W�4�o��f|��L�kId���T�����ƭ��@�%�Ԙ�!]P[�MH����cD�*���/�w/^-?�����?�N�p�����������㠷gh�w�p�Z��Q���56��R�Z.3a <�\͔<�'�`��,��,�dN�.�'�C�ԪM/��O����ߚ��5%��>C��a�W�5�`��^��,�� ~�b���vt�Nn5�������Z�w��_�j��˃�|E0��cuջA�WngՠmA������ݾ�n_�F�!y0d��z��t��܄"%�<�����5���*g���ƌM��cq��h�ح�N}�+T� ��u;Q�� �씳t^R�t��ƃ��"�� ��2�CO"�~�8�dn+39=1eDG��QI��5�݊�oLB4�Bw�ju�Po� �4-��,8�F�R��� 8�[^� ����<,R]O�.?S�M{���2��w�hVZ�ϘI�h�tdw� �e�z�դ'�i��W F+��"H+5�s��P�j�ΰxdӞ�I/Sd4�� 1��,�H�b���cCI�z6��4��5a�[��gP�kl��o��}��?��۟?��?��������" ���;�R?&D�����&�X�-}m������p�t��^�ћ�c®2A���;\ �Xxz;�щ�z�>w7�잣M XI�by/0*;`E�)2rq���6g��%��b�X �9��+���S��=��g��ݭHN2���G��Nb$��KD���ܥZ�=�ґ�QQj���R�y��'O�Fِ$S� y��X�+9����a�b�FW� �@+4yX�� `�[�7i��DK�5�n:�5�f'��i_�A0���Q���Ӧ��d��U�6���= 'gX�N�� ������"~I���6���Z��>wr��!m6��qd�Lf�8��{q����\���`��H3� ���5�3�3�9�r� �W�`�FZ���> ������6��{#t{;�ɪ�v�P�e�X\^qͷ���@~�ǔ]�ډh[t��E1г���A�a#���N�Z��0&�r�9M���c% �vLC�6s��$�\�������?���. � $#�;J�E\��uD}a�xĀ��a�eA8�`�9��3���O�2�}Py�~������2�{{,���?��;cH@��,������ߠ"" �u� �� $��^�c�R�N�a$�%צ.��J�,�abělBA�G���z��[#!8ɖ����vW;�/wR���K��������g0!����3h��Mb:P��~�8��Ns�`�y��M\r�u6��>(�B�U6# ;��.�Y�� 7�lzXP�>�`Q����Πߑ���+�d�k/+���+zXi|�����]�F�S˭�[w�#�u�qfC**w��I�:��꒠d��Jr������y��I���f�p���!�p��/3��`��Lp��lw_0�I$��ﶋ9�����_�)��ϫ��lt���W{�N��.$�|~ rǷ�9��GF��+&����m�����H�j�硋[�vD8k����b�����Y.l���|�_O�A!:�ІƬ��I6�����:"�(F��*�T��/�sѪa5T)tg�L��"�e;S�A�1�������6��!�3��ס���oH���O������������ꃲ��'���~�����|�+zx�#� ��-����N�� ���ʗ�>��`�� �{�c'�f�$iv�d�A�<�L�y��s��%נ��e���:J�q��v���<G�F3Fy��$�e�G���� |T�M5'��m']�\��ޔ���ES��Im&�d<s��,+��5,�B��p�#� �̓X����yh���5im�Ђ���/�w`�1,�e�T�a)"�%2����ԯ�\��4_i��2�>�_�^٘6�{߆�!�#�)�i�6i. ����=Jv��]���B]]�Is�ē+�'P>���M���M���k3 P&#��ӷ:�=R�(#���SZ1�39�H3�J�=�2σn��N�T��RX�Xn�9����7+�H������B��-��.V���.��{.�1EJ(i\��:�d����o���9"�jMW\���ːY-j7\�X@y:_I�<ϡ��d�o��<���;�1��2��U��j>q�5j��Pi�fE��HZʨ�`]3�~�^w��6B�G��(爸�������צ��Pr�*���6p��O���)f��c�y`�X/Pk@8$����F�Юz�,Q���`�d���\}vˇ��x�ŦfS+o���V����l~�-7��.�p���`�v�Gx<��t����<�L#�ői�c#�&|[�lV8�>{���I�P���nN;�lTئM!'���S�\�S��x�B/Fk&f��NM���#��f��j�y_$A�A� ���t�����ߌ�L4�=7�&Y����gs�)��R7��pp;�n��Z����Y�4%&��G+�>���<���6eib�L ��@��q幝����b!#r�KDg��X؞L�e�S=Ql�>!䤧�)��C����lH�v���#�2��i,���|q����.��E)N����쮐�l�j���z���y�;W��<f����>��9�4����&�j`ã�T+�� �j'��!h�z����Ɵ�`�O���+E&S=��Vذ���aD�A�+)��,��j�O NY\�&:3�C� �h��n��s�����H��華~�����/����������������qG�/��~�8D�����]�� ���S�9�ɑ)D��LD�]��rS��,��9�I�.�AhWd%g�ќQCs��촷��lN�Mz�2v��[��i�%>)2q�u�6����M�9-�]�B���r���.cj�.����[;U��|��ɩ�� v�*�,-49�01�oqk����M�$�L%�^��TNY�>-R����W�dj V�{5���;���A��;á+BN�{w����S�q0��$��W�B��͡Y<�HaҊ�`����3���=����&r����K�� F�f��MGԛ*�n�P�T]�]Ӛqq]�����}̟��Z��y�1�O�L��T�n����"h"�Il��j\����xg -S�[[�T��X8H)��u8�-��iZo�g���+�$��5�R��+��;�|��"$F뼅E������8w�Y$�<���ڞ^$�L�iӳ��d�@>�;p�HN���e���q=�i �m c� ����;Bx���l F��5�������yt|�����=����?�A���P��/�K?P�?�����Z��|@����~{����� �6��l�pc�c�#h=�f�jG�L�0e/>���\ *:���괜;����$ӐN�a� �vx;��CN=��}2Ѵ�dQ�F��!�(L����jZ�ل��ȇZWt?��U�~��n����� %���ń3��|&j�gt瓾q/���e�q��9�+Y�*�gC) Qr�p��mI�4�{d�:0���rPH�4�2�i4���82t9p:�#UPʓ��;�\َ|Fk'�~6-m>��s��U���FM�7�(=��SY � ��#U )Zc9�� ˃kt��$��=T���̦ew�4�$�Eq&.�E�����u��",���\��rɥ�u�*v>�!X�ty�iσ�J�z�N)������q�{��m��z��m���+qm�ӵ�^�,�k":!���3�m}0����gf5�aʜ�We�oA7g:���� �=�p�ȵQi��$�q�W t���߷?2. ��2l�)��9�pA8oHkBZV�c@I�~�G?������Ɵ����}*���~���7�xZv��xAlG���8�X�-B�A�iT�Qj����Zʑ� �l:�a��|x�g������8�pf&+k�T�B\N�H-���,�<�?Adu$����vꚨxH�����#��s��t�,�4��D�L��TuZ� G���}_iO��i��H[�f)7P$��m�q�.t>4�G���w>��]�����,�Q{|M}A{h���ˑ��F�t����Y��SM�Qd�S��VV�ת�Ls�w<�|�Հ������D�Ȧ��=�FN�nE>�pU#�2�74)�Vev�������<���,�E�HX�i����ꚲdIP�]K�f����'�|� .c��tN�IT!����g��X��!a�P�QR ��� ݳ�����8��Rk�N��F�0�2��#r2���F��e�����ly���c�{ٌ�8W,�GJ��u�-�*�L�z2ǯ����x�3/t�+�Xox�p��,�(�jԅ�6�������1d�^�a�G:\�� 5 ?Cm-���?�^V�pD���˻��;�����O}Pb�>i�H����e{���m�H�è�1b��j� ,^�bi�A����*{�~���z���"� �v�K�*8��k�%����(��Z! 듘Bwp�xF���zq{$��g)��M^����e���V�v���C7�#�t#��4d�,T7�����1ؤ&s�� ����Ԟ�J��T_m���45Jaq�>����F)j``��6����� �g��*ׁ;0�k��QN�d�m������5�ݾ���^��2I�2Y �wW����9��FD"�������ظ���\)�r�Û��W��|�3�&)�ٝW�Y`��٢0'�@m�,hEY���)���5���g�SƎ�/V$�6��{J�v���]��Le��l\�Nn/,�Jp��!>{ҘBpXL��IR�]�����0 '�����Lf$��Zd�T#�U6m�maH��7���Z���9.��D�~uc�m<�&f�k�����C�n|��9��)��±#-+��=2Z:!�[�eA�}���������|����oK��K������H/o��?���O����s >��1n�zF�/�ˉ�����%��G�}�(g8��(��EK0����^1Jy�Ҡf�%N�KU�������ʋݬ�E6��MG��89��"쒣����dU\g"����}n��m,����5Yj�)����v�����`nهv."��7��4:�0t��]af� �Y����Bڅ���'����$���'����}x@s�yu)�sL��\�S�J'�������I��=����D����zm�#c�*8Z܊���?��62�%3��y�?- �����w&9=.�gM����J^�,i'{��*�d�i���.;֧ͧr.#/"���ʢӑP�P9w%r2�gn\��GˊO7η�8��j{1.ʥ������;J��6,G{�C1n(� �w9�mƢW�U���}e��� a����m2��ܞ���b�y#B�p]2� )�q9����B�w��kJZ�c�T�33 ""ܬh�"���G���7@OH9!��p7� ����/��/������?(�?UE���ʏ�|�&��aAHo!��'�������ף�G�0^���[Q���,��Хh�$�0^���� �P��y������Y���]���V��6�m2�B��-�X�;�d]\���$y5�LM�hd$Ӟ���tO��co%��i����e3�&"1_���[7UӃ��X���]Nd�]^��f�H��uJ�����@����C�]f|@2��䞛�<��D5����M�g,�%�Qf�1��Vx��8cM�A�m�D�_s��Y4�9�Ѝz��.:���o�'s�8�j� Z�ݼv��zRe�fQ�R"U�Q�C�`\�$&��$M"��ٚ �Ȓg�:"��P�J7��T��`�4NH�U���3Z�,/�P�/nv�Xt��J��;�H�G0�.��J�<�}:�W�# ;�.�K/��&#��$Z�����?�#� ��o�G�L�D&��d�Q+��ǁ:�����k��4$]� m3�.�TFTkaHK ���F`��ȂFG�4��a���%u�(x��n������Q������������t������՟�"ӂt�i�������/"�g����P���BJ�^}i�;Y�)Z&�X� ��! y ��ӜLf���ɼ�t2Qᘽ.�(Ҭ#,Vl���U�2D��u��l:�n�C��#�F�RNq>T9���S&+��6";��9���S46� gtl�#Y�!�B�mfw7���|����B�A�jv&ڱ:��ę�J�&�N�pՋ��+��h�ٙy]m�����3ɑM�r�jLF��~�����Gg�R���o@�X�BG䠕mw-�]���4]�v�JB��q�z7b���\���4�/��Z�ܰ������-�+�<җ�����"��6Ѧ������vX��a@��s�2�q\����7�1I״�����_}3C"����N���?v�Z��5>�/OB��)3[�f���r���������a|�|�@=Ldp&��� }�'U����gZ���y�v� 87 ��З�j_^c��� �="�/�zC����AX^ ?;����͗Ǐ�w���������S\��4�+�x{���(�}L]��� Kz\��_�m�m�J�2�3��N�zG��M$H��|i�M/�=�s�>e�9Fs3)���6�e�f0����'1�N�2#3��@c0��d�^L�3wg��N��A/�נSv���nB�$�D�c����E�͗j�+ӡ��lҮ������B1W�ZH�IO"a��٤p����Sy$!�{�)�Y��)�F���zn@��M�8�bN�a�d�t`�S7cKo�I�jwY��Z�v�� ~?�O��j����-ʶ_��~:�!�b��t�k?s]��i��C�Q�p� �L{���s.S4��կZ���Rm�.M�l��f���f6Y�,�r�&��E(�g"g�p Y:���3�%Ӿ�8��9� �ߘ���#���X�+��I'���f���a(���x�Z�F����b @�c0R�.|���|�H�+}|���tҞ��� 5��,m��m�/,l�� �(��hV"߮��DŘ�������p|-D�����;��[�z���X�;B�������ߵ|��A��U���ԟ9��v�PQq������ ���)<C��|Đ�A:���&�Je��?W!�ݢ�X�e]mB~r�m�j6|2i�J��jʭ��}�� v��T�k&���"��i�E\�|E�yM�q7�T����RN&y7�U&d�C�;}��e&�Ht���i6ѭ��_��D>��\8�fMڸ�<H��u3r��}E�ZN��Ú��;�O�)���T���3ڥ]lٯ�Tёֲ�7�_�iLIQX�4]]�K���lb�! ͥHuN�^��hLw=�qu�������3���'!�!-8��6�n���!���ݥq�`5�����9�,�a���F�~\9��������|��mKq2)��hY�V����O}�c���}�I#R�ݏ� ��J�k5��V�`��ҝ���njc����P���ud���]u5�@I�.)!�Y�$D�@�#P��:�aL�NRY焼Xҙ�Ux&�#���Wٌ���u���+�^G��p�XZ\��+�� �|�M��Q��������Y����h�����_�m�p.Y�Vޠ��n�7��F�tA\��CVs��q�.�!sXuz�=�L����jB,����En�=L�@47� �iF�_pmwE�Mi�T@IL �T]N�d�Gw�g�.F�9h��9�b�T=��?[o��8�b5��#5��t���Cs���v� ���d�=�)VLm�Ȥ���l�W�p{�U�>��jv�b� ��ˡ��[�o.�b��ב�ӵ����5��J�n{^�R���O�Z����{4 �CBqh��X�@]/df;��I8�M��oL�0u�L��i4ne�S��g����+�q� �Y3��T0S�hF��t�K���b�ನ���1�m42���9�qSF�Z��(� V8ě��yn����H�� �r�fX��h*�H�╮x�ha��H�ɯ��i�۽?����kH��".�Qpۊ��@}��mM�B�<��&v=��.�%��E�0�<��Sh}C�Y��E�¶?C>~%>��y�|�����w�e�p����/�e�A=�)�eK@�E�'��=�Q�lÕ�vG�>�eA�b�\!J��=YӐ��s�ԅ���WJ:��2��"�ج�{�l�8f�������3�, G�����Ӫtj�]��(���I������MP���wکV�؞f��F1'�Y����+d٤qbW�CK�O5��=ZQ�'Ѫc�:���k���JS.�k�y�.��P�m!B����g�T�ySs�Ձ�o�,Ͽ4K\��x���a`�1�L�3�8h>���a`�[[<��jw�6��U�k����Q�} �={.Fu^Nj�/��3���Ś����A��XP��@2�h���hH~�����~o�{�D�h�!ITInV2"R�˽��v�\����,8e���-�9���#Νm>�[ί-�g���� 9��%��$���s�^̎�W���+(6��<�}��R��.��+&V�����_����~ǥ���p�i��\]��ΩFBa�{��H(܇��|�{|�g�F��r���Eo�"-ߊ��@��|���c���>����?(�?M���{��'R��O��X2b���Ӹ!��ͳ�tt��7A��w���#����#I%�����G���uʲ %&���$kDG� _O� WnK����A�W\�Xh"�כe���I.��9��$���#N���Qo�]db��f��^���7孜C+��,��������&}u���%u�K�%�_�_g�����X��2�5�LbVt������LM��,�y;3p ��L�]���ʽ� 4s���95����M�0����U+���p�$Wc�+y�Q��ƻP��������,k5�p��zoh���1�I����C���~Nn�.�j?��=us芉�A�i Wc�F�Ls�ؐR�"��d0fƷn(]k�z���ٜ�6&��4���:�r�e��Gc�W��! Xw`{�� ����N��g�1D(�+�쑟�LC��VR</7#�b糿t �8����������B;���'#���8��5g�����X�!�z{��|HF�B���!�V�������������X~���|P>i����w����G�-���o����!����J�s��(���N���Uf%�'�.a�9jU��Ne}��6�8���mwN{2!w�؛�����X�$��p%6.M�:��R��(���!���9w��u�0���\��>�p�iۓ� �d�2'Z|3��� 5 �XdM��r'�zq HwSgpMN��{�b鶦�LA}(�^T������z'���S��������H�M���#�|V�M\����5G�8� M���4˒xug<ӳ�P�4u�.�q-h?k���6�4i��Qa��Rv�=w'?�O��1[����I@dÅ͑2��9i�C���{HB��%a r� 7�f��X��&-�H�0 W��Ɨ_�m�HHי�$X�?�bZ�ɤz�8���O�Bw�&p��ʅd6��,r^�MT!����gs�.�f��ց��� ��3y��h-`���6BV��gںc] �i�ޯ.? �4bJ!$Ժ#/ X��������/��[���[ -g`���?�~��;�����J�O�" ��������?^�p����pB�!�w���!���X�굘M���'U��t�T�v���c!1�`t�Ap���g��:,�X�O�<���;��w7�^�HR�C;D�R�p#�ۯ����?8x:ڡ8�����.pf�k�n������(�&Iɻ�d"(f�"7+���d��Nj��wP�C�(�8V�Rut�49d���g:Ӹ�C�m� +�)�����MDZSL74�9ˇ��m~1��x���� ��tv��qk=�hGo2����r�i�B�rM�^�c>��i�NjhH������B�F �o>�-��̜��!I���<�\�*W'��7KV�<��o����̦����Z�?��.Wm���$N���͊.ͣ�^6N��-���(q�AIo��^�n0=�;��~C�$̓{9��R�g�V����<��@�b�f�T�o$]�(�`>��(�2n�= :�7�� '&#�)a5�y(��: �y�Z�~t���2�z; �3��)���!� ��0��-P/�鯽L_�/��˷�/?(�?ſ���o|�6��� ��W��#���!���i-H�Sh[ÒV�}�켨�+ 0]t�Ώz��b�ٝJ���CN�3Ih>7��Gŧ�gɹ�;����զeM8�q��I�3��ɨ����o�#r�lw��b�������H6�b�n���p�HP`�V§"���LD��-����yo�86]���}2�y����#�L����-1K�L�br��;{= @��y��G�9�{~�#eXH/,Ԣ9��� ��LdH�{���W-1's���Ȯ|2�R::|5���h�,�lf>6�iE��������R�7��������W���P���� 8ȆT�8�t�ZȬ��=v�ɆOjV`�h5�{9�a*}X����wl���S�@z�HSfZ�D���XC���A�|�dvT��g�d��jL�@�w��0^�Ъ6ǻS��^���z@�a��� +JhH�"�iK�?�~��hVB4[ګ5=�K�h{D�����H ��C);��6�_ �D%� �rAh?���-���^����%��W�����������q�⟽]"��Ԅ���^���Z��zD�'��j���?:�A��ԣY8�3��teJ"�����jƫ)L��l�������ظ�l܋.ݛ��'�E������O+ !��#'�Dr��ϫ&%=�P�g,�n�>0�D����m��`0넹��H�L�,֝;�-���I$�t���������t��[�KVF�)�qfB���'�f��B)�d���sQ ���HMz��3zEz�"�sk��J/��ӥeͩ��X�Ύ�����}3���W�(���;pX \\m��>u��56�{�9�Ɉf��U�裓�ţ�!�d��,Gx�0&Ю�/�k���h����Ui�P�9�*l��{��z ��P�A{P��B��lTTO.6�υ�Ts5ӢH�nq�ҥ8�=J\���Q���E6�37�v���[ .��Pd|�VM��r�}C8�rA� =���RB^���[K�&6g��sz�k�xD� ��=T��#�; ��X��ņП�ŀ���˻o�W�����ٿ�A��iw���_�g�KCHX. 1� �g�����Pۊؿ��F�:-�YҠJ�JU�Y��tR���v�������xUr,Z76�`�3�ͦ�F��� �$Oe;T%�P� ��.�(� .�Q�ރ���/%J���\���"��Y�+I#��M��|���|���ɟ�������{� �����I�dv"3h�(�}\�4U�D7�:�L� �bU�j��X�}�i�� �t�OX�j����a��|� V"`�C��I�^\І$c��vq�w�U�ȔƝ�`���贺-��@Ū�E��h ����]t<8%�3[��s����!��S���G1�$P�Kuj0C��ݸ�� ��Y��P��i55�,�N�J�N�@��$o������Է��]6m�����$�����w$�!e5�~��������D�އ<�^hQ�xl�h4��O�v!�"]ך9衐�Y�Xh�2~�F�լ� 7Ή��*ω�oz{�N@}���" ?�5� ������Ljx��o���[���1>����J�WH��� N_���t� ����=<�.�-�7 �CE:�J���{1O߰؞�֗�����������kk ��8+�Ƃ�r�����⋖��8�P��H��B0�xsP��]O6m1�Ԅ ��&y�V��+-.��p�&0�}ެ�Mל����*!0Y�ʬ��;/.�%�CS�wm���198�S��i�~9k�ukL��I�y+�%E��Qoo���/"� �;+�����M�%����� t�� Tp��@�s^�jLb{�&�i�l���vy�BL�©G6�ԱB�b�cc���h�N� S����ُ������5���{�v�����;���>��?m�6 �JRY�[\�GqM�G<�R]p|79aٍH���wN��&'!�������8�AĊ�<+�1�+<��7���Ϲ�=p���8w���qv�����M�X�u��!p�G�{'�O��+��.�"�H"%H��9��,!#����H���0rsh�ɿv6�� � G����m��� f��Q���OC��n>��.h���o���-}�����L~i�8|���l����bE\nQCB��ѷ3�r�t|9 a|lc��t��ݯ��y��E^�.7VĎƩ&7��N����,��P�,�IU.�����T�j�O���O�3���[�b1ee�1�R�T��<[����GL�+�g��dX��:Db7����y�g V���ʫ�M�ю���z6�Ws�;yIk'/�/r�V\��b�g�k������լ)R�TZbj� F��bw�g3�����Mv�^�t� ����lə��F��$��f�ڳ�j:Z�1ak41�[B�ݡ�LcNމ�E�5j&�p�dp��w�"I�ü�6u�l��KNJ"?L��@�z\ 7띤gt�Q��<���xTt��_��\iZ�ا�3}�Ay�OyŐ�p���`���fc�3�A��)Zc����;n�� ��]��KYٹ6`F9sK�saa���LXƟ����Pkޚy�g�5��)��<�퐀~D���8R��hVJ������ɕ��2�5Ԋ��(�#��t��X� �ѽ�uP�뱡����Go����M�Y}��x�m�|�ާK=�h�0BZ��m�w��������!�O|�J�������:�#s�7K�)ܱL�C��k n$H�R��ɣ�� ���}ZM�/q�^R;;N���f��,bL��ro��۷��=���N�Ŧn��jƦ�I+ͭ4�O���z��>��f���t}�go�"4:Ӗ��������b�ڵ����B��Y@�O]X�}�9ʄ\k=��#ЩKQ\�b�jSҦ�Qz��h���ڙ����������D�3I^w`� O��h�k1��H�QT!>_��]K�e�{�&�2^�$Yig2ry���g�,'Q���h��{x{�Vw�wCv� #"W<=�$�����b�y4��W��[C5��<ַi+Jװ�4�X�b#����6HVr�CX�����jJ`�w����cJ�Դf�W�:u6o�k��&�=`k� W��+Z]���zm�ӼZ\n�gK|�c ��?k�phh��h��6���/h����Nu�z~�Gn�������O~P��c�Wx�o����wc������rA9,ǁ��� ��;�����W��s�u{UA_�MI�DX��N�4��1�a�����|�Jo�������U�}p�"w���EL$��Y��|�8`!�V&���I�#�<���7�;�Qd�!w4� �`;��v��>Á <r~Ral���;��cZ����r N��J�1���V�o�fU���ŕnPd���&1�M*�ҕN!�����i:9~ �hδD�\d��{|��I���@�`���>��5aH��nĵ�^�`$�]�<�䄔�Ȝ�w`^8� H�e6��l�6����v�T!�:Y)a�b�#�$���DKz'1�w"�U���� w��=�h���}�o�؋V��D�{�=��LM�St:�au�x���u�?�M��2��J�J"� �)�)z7Y`��������ʊl�c�^�&�PV4:�u������L*�>��v)r�s��hR�h{� H !we��qY��M�xq��8�zDFB(���o���*}���+�Ư�I��w��g���?�� �����1��%����7gİ����J�P��k2c�ۨ)��a/O[-�!�4��"wچj?�q%t ��L_m�-(;�Y���������rFJf����V���<4��}0�(��ē��E\isg|���,v�u�O-B����KvA���!�B�lL���-"��X1�k���=^dXG;�v�m.:S��h.fާ{�W������F�� ]V��:��5g������b�OW5�;Wr���*K�`�I�Ң��$;�ϼ63ۭuDkg�6�;[Tf���8�A�:�G ݸz����/:-Do�۳<�`��<�3߱�[���xg;�'%���V?��wg�Q�n=Am5\DZ���~�������G�6�a����*�PڵZ����Ӥ׳�+��1]����x�����q��rmd��%���kGo�!�48'��ׂ#���pvl{D���/q�B�Elw@�ACAK��俁��=f �cY+b�[�.���/��<}������WA�������}���ˊ��GJ��q-�@�X' ?C�G�P7X�QT����^FA֞T^���s�Ռ��H��<���4 ���A$F�`BYSΌ��zN|�XRP�Y��Tq�epf�;F})�}O%�LB���aL19}����K���N8YLp@2k�l,Y�d��,��X擠���\���ljD�/W��q�ҵʄ��A�ecѤ&z�m�����?WKN��O�$ӊ�9�`��d�Y6+��&�g+������bk�.�<����N-��˿����ձ�e \��L+�`_�=@�;�\�ZƄ�����7D�lwr.�S.g6.�L�f&#��Dv�bc�0Q46T�Y���q���J�=�l|.\=�3py�|���ꈐz�����Wk�BO=���cs� �6�\���w���}��L�j,�(� �+E;�j��lC��V����w.��~J |�:��ж0��e�nc_�I�mT��pD쇡����/@?����"�;���[@HH�+ ���-�������_��#����%�H��k��ozY�G�p�Z;"n��{�}ElyYQ��r����#9QW �V�#w\�X����N�:�m��XH���5��~�~�����b�b�w6��>�͚�$]�q���Q��O�����jM�8�1u�1�Θ�0��O��d�3�~j�Y�z�_�~X�@$ol���]��y�i���7��$�����t�:^�ٛ��\hu��4Dϐ���~����kLc �bJ+�� :9�$b3��b:}1���B@@����d�#�^�D��|����YQ�g�s���������if��]q�V�{��L�����{����|� l���{X"��X���A��Q�}ZC�jY�E��0���G���<���3P ����D+ �a���J/p�g1 bL�y�Ɏ�� c��!�g���M��米����ɑ`�nMK����9N�A �_2b�I��6Wf:cy:bHh�*�~%%T��ȯ=���� --�#��Y��3Hdž�c@��6��o�{H���O ߽y�}����|�r�UV���c������d��R��l@�C_�F��c]>��>�^�!.4Fcx�B&,�������X����/�8�/H^��!��f�P�~��@4���7�yW~�m����ťz-��SГ��^�g,t�:�GMT�o{�/&�F[�RS�kqeR/O&�fl��WT����CN��X�$�E�V�_���HO�\1�w'9�2�X���QI��>�=��l�'�Q�|�t5p*f!�gA�D�>�)�յ\��5l2d��&=����1����کA��7h}�����gp��`&�@s���=����*%�a�=���?���9�ohk�UZ9�@%Y�V-�������v7y��H�h��Hױ�,����\�q�G#�����>{!�K$+P�,s���s%�|�ϖLv�'�}$'���er���Q���Qm�^�C�J��uH�ptR�HD���-T���08�X�ӯ$��3���BL�L��!���~ �1"��#�6 ��O��x���?�#����~�����c>l��#�%�xB��}G�+B>���Sh�!�9��h}���햃��3e���!� ���5�<�Ң̃1$3��Nu0+�/��A�]�:l��v���v�_����io�)��N�Z��ک9���@�/tW��]hB�"�����4%)�);2^���s\���5��`d9}��&�ne($)�ط�,k?�?���Xt<�]���FM���~�Ŧ��>�A�0���q�ld��Ջٛ�k���9=�EP�!�"��ou��n�[���M�z�=�Dմ�l7.�Z7����x}C�`d�z�i����?�ϰP�DB��BIS�Ih;e�dT�:"J������W�@[�m|�L��ր�|O��Fr�z����D���hbu���՜�"�Z}������}��@"d/��,������d��ϯd��̀��F�18���bk�~":� i���x\�Vg'��`��h���ᰘ�W���K~����?CHb��O����o��Ow�/>��_��nh��?��y��w��b�.ň�= 6 �A�M~܃�4��[�+0i����̃�P��, F��"���x^�� ��F�eञ;8[��U�H�����Ws��g 2�(�v�i����&5�xm�̓N���#��L/��X��+���K0����E�t�T!�6(H`1�@Q��횪�V�����u��+��X�*��`?����ٗF3�f�n}�9}�X v�+"!��ȜJ9نf�FS��BM���:�դލhVB��1 v}D��vi��Y׆`��ĤX�"��'1�y�/b�Ҽb��uO���߷������-I���S�U,��.rz���T�=3��o��B�2�Xc�%�(���2��LT5@{c����A��,]K�Y�3w��6���5����R�>(.�\�wCv&��\����6,I�d VR:�jAB"Y�#��(����7�_v����$ӝ�ՐB:��=-@��� �������|��Bx-�q��/��?��8~�������$ �ˇ�k1_����@��iPc ~���Q��r@� ->GË1M�ֳ�A���[4��$-|�[6�w����*(QP���=w���͡Jҩ�tϠ�W��\gE��϶>>� �Iʙv�b#�O���O�����0�l+I��WTr��}�|�D�3�W��f�g����Hv�bg�ں�o��_�d3;#yBO�v0 .dݪL�]���Vvӯ#q Bhs6]2qQ����`���=r,�I-�\�����v���!{W=~����i��v�Ӿ�'[�,m��� $h���䋑�U�~�z�����>���φs��j��kS='��L�"}����X�8L�,Äd�������s$XI�%��}3?�%���BȒG�,�1e76ky5� JHf��w'|]��+��b u��S?�R�! �hϟl)| Q����w��5M�+��If��y<�=� �P��h�Ҋ�>C��5^�:V� ������!�e�C�!�p\P�n�ݿ���p8�1��� ���������?v����?�A��*�����~?����]P��;h{��3bZ�.���g��1�1*���� W�N(�v�l�}�s����wb���)v�}s�d��L?��V���g$�0D��ȵ���8L�2Iv\��Uv��̌u���;:r/%rX��GD<����+.1��Ä�k ���,�;�&{���u�0�/ڴ�������3F���LzV/u ��X>�s�]�b���В���ı���u*�;�����Г�<O02NfsU�����Z�n���,�k��3M��n�y}���ŗ�nc�vN��Z�>��o*�� % r��.�nv��qa���>�e1���3���Xha�ͦ��Հ��0�R�J�_zԊ�.���UL0H�����;�ii�L�W�(�$�����u�$��3�����{L�ՓY�n��M+�`L�a�D�uE\��7h���92�kEN����[���6ηe !U���t�CB���!��x��勨iGk?���3�{�k�y��郲��X�����`����#��o� �G���)���?���1Q�쌎C�6��09���ň����ۀ���;��ZƤ��/n ����9P�S�9cbg+��w �M�~M�&��b�ӟ`f��I�8����e�?n���m��]q��DL�حx"<ao�w�+N4��,h�1U��jh���0�g�v0e2la�vq�Н��<��{���)K�3��M�b)K/�5��|����E��ޛ٧V�@��)���P��Pգ��Y�$5���JU�me�J^���<[_/�4��x�`hN������dh]���hI"������`��A���'ذ�}p��l��MTe~�ZG Gݾ�(���-��L���a�?��ى:up�q���:�����2�!��(�[B��R��d��DF<6�����TEA+���{D�/@�:�ˆ�]��>P��:���D��Z�Q���m}{9��?"�{�"֎xܐ� !ޢ�~=z�P�����ߺ|�����������B��������KDGBO��"��P�GƧ�z��C@�e�y�iJ�<�C1bV�6A)��{��b;��Y�����N׳�E7*z/4�=�ܥ�����+���d�� �gp�^4��:2����an_��K�<��t� T9��Q�hiG�k������.=7vw���g�����B�]\�e���m��v��=�`9~AׂS�O����Ϋ;�t�~�����M����w��9����Aʒ��!�aw ��Vl�M�=�b5T%��Y�f������`�T�Ѹ��H(�~&����!�=+bW��隧��t-�J��b8�x�hH��w/S�T^ �8�!eZ��k�3Y�.A�m|���Ⲏ�Ra�=PF�$�M�[7u:�{��ȷ���8/fl��<��{�͗:w�"=&r$� ���`��"� 5���C�xW��E���{/H�� �oH��ۂ�r7�\툼�W?���w����>���Z�� ��K����{�}[vׇ}Ƙs���>���Z����%d(# T��/����cS��8��p�Pc� G V�U~��������ԒZ�o�{��<���|�9��*vŀ��tVխ����s�^k�����}<��SsD�%����ʼno\�(��v�qSFÞT\c�*�&)� 9�y�7O�;������#o�A`VdK8�!��ܵ[�N���Ie�ڗ6�~Հ��VV�`�鲧ok���j�B���.>&0u8���}�},觟�M��G3m�(�lj�p�h��ϩc�j�L�i��L>��L�]�c:��W e��bz�rj�!8zq��s�a�'��|����s%��iQ'���v��P�q¢�ӵDߏ/'�qr*��n=��m��I_�.��ob;�.�3��q���8������\�1K1�q���<H��ƍ�7m��M��fm&�]'���v�ҥDG��;ijmz��ђ�Hߏ�E���veY�4��h<�Ã=>������:Y��q,\��{�A���nS�=;y�� ��m�}�^��ޛ����ªݟ�v�!Xld�l�sw^�� ���ܣ�W��Y[�m+�`k7���,*�R�Po��s�*�����]������}����[x�����鶾��?������ѐ��m(��"��z�*� ���<S�k��QN���IF�&bٶ� �L�f��!�&�TN4�����وM@��^�?:#��I�8�Zѐ�N�ғHG�G�d7�c��FD�����̻�s����i9��N����Pֱוֹ��'��q�������x����Lھk;���5ݕ�&H=a� V�p�0�r2�wF���tYR7��'�E}�[W�.���*6�4���Ik�Q�79�|�H��f� >и`��~�f�q 9�m��:<�Q��'^k0���U����E�F"/��K�j2����kȲA����!.���p�=z�L�8�$���2Y��A���� �U�k,�M϶�%$���۳��M������@�:����L��^�d$�рzL��}���d��$�s����r �g'~S;��}Ug<?\ �����=����nnI!����kRԪ�eO�����D��`�.[�����z�N��� u���HTm�B �����y���?����e��+�� ������?�i��5.(%zjޘA�CD)qF���[1\lw�� '{���+=I�Ou8d�A��a��}Y�d#FJ�F�<�`g�XZF�Zvd�5�13�Ԉ'�:.�dr�'1�F\S5����Ś��<�'�a '0voJ:IGF`ĩ�h�?)c�9�s>�Z�W��p���2�Ώ]�(B���G����{P�q���a'f��Xw$1���8��������ؽ�՛�BT�`�h�$��V���ɤ�MC�$��C���v'{�8�Q��Bʉ�z�DV�� ��r����{��<'�V�<���JO9������W���$���x%�.m,4�6c��:�Ɲxٛ�zm�4�%�� m�C�Ϣ�Az��/��4�z�hZp�M�FNs��vkk�.A���v��;g�Im����0��g�v�EmM�����Y1P�9�y���[�Yѝk�01X�� �=I^����ۓւ� R=y�7����i~H)��d2B�q��q�Qs��73�?��o���n����&�V};I�wM�����7�C�P�Dn{MM_¹h��0S���Euj�=�W{g���g1�N��ZT�I�F5�4t�5vo�f�Z�'�����Z��4O�"0��l;2{(k2����s9}��~|�ԛR��w��^�L��Sʉ��q�p�u��^ż����c]>� Zt6��T|t��'��������s��$�xN��[�����C面oȂ�ѧ�>)wy��c�ﶋGB���d(F��]���4��s�\�jhL���v�7Q�u�,'�{k9�=���ދW�a�i4\�5�N�s�|>"��7 jU��O�(����م���Cw� W���Lf۩��j1d�?�ڠ�,h"#4��t�A��H���=fu����.��&�+ ����6��2��3K������p���jަz�kV���a��շ�v�{(M 5�&LѦ����O�4 �W`* �:!nO�'876mA]�~��)��k4<h�C���p�4�5��+8���*��������̈́j"��{^���6?����=n���4�����Q��S庍��BDBwI�Dꌟ���w,��=f�U%ctz�Z�eRA��_��d���~�ٮ1�Q;:�8%C3��V��=�=��<�8��4!��*opl] ��px�Ot��S-��4�9����z��C�C{�0�gN-��ۛ��ڃrr�^Σ�����8�}/�q�R�i���{��ޒ����d�O�����T��Mp��c��1�G��};7߳�kۏ��k�1-U+��UOӲ����쾱��Z��nH����R�澳����>�w��cV�d��>�#?����r�/lo{�H+����k�|55�~�1ģ4o�t�&�P6��A͓9������F�I�N���7���=e�.���}.ծ����T-���w������L����(�gF}�&+\��*ޘ~����&c�����Q�X��^��o�4u�3���>Zs2���.M�]eX�R�{Y�wus��e�9c�M!?q�$�^��5�*[���p���fI��ek�W���-n�&�4�s�.o>�}�����k�gߖ��"����~�gu��T�����a��{�������&�J���C�4���#,��=�h�a��=�s8�A��eȥr'�ݘGp:j���fcm{#�i�Iۓlr1�ZdH���{)�}�)%��@��� 9!_YA�=j��.Cj�I��`& ~DH�8��yI=�[��lߣ�k9?&�t��!Ǽ�<dBř�m��]�z�pDN�3�}�S��~] ��eD[���I���t��Q��mN���4Na:�#\?�UM��tC_��$S;�x����O�'�n��c}w~;���&�������d�o;Q �,�8��耔{ܩ�D��橷����uf}�G�m,W�B�5S�a�z��X�av2�}���-���h�h�(���_%��C�Z�` O�'���]-�Uv�` � ��AМ��a :[S�a0�egS g3$)Vd}#��m2>ڇFsAT#��֔$@����R��Y�m�:��g�D=)��C��.�C��H��挰�5V�D�,�[�G�i}L]�zt��������q[�n����c��_��j��I��Z��xԇ���;���_����lt�d.Cj2�����6Du�F(��>�ѠU����eQ��/�Z�xحV�������� k5�[�K�I�I��Aw[���.��[����!n{P�p�*_��rk( �z�ñ������ ���4*�=��+��JCfu$~u�Ec@�d�K��4��#��ó:�����dW�F��;���ZFb��3Tf��^��IJ�������Cיuk���� ��'[1�]�fs�'d��c�@w��֧V�ɵ[�JC�ԏj�!:���&�Q[��}�=~rn$����ѴΧ��b�Ԧ�j���ջ!�R�r��M&����`��o���¸�&_J��~��e�s����u�2��r�#��^���/�4h �F���P������[\j���Nr��Z����LS��A���4�f"����P�������Q��i�҆۾n�{���!�1D����� �?��u3��_����09��h�P�I6�|` e�J��/ ��G����^}�_���rvK�냽�](/(�?�*|�Ȇ�w�-T�ԴC���+\�Y�L�t@Kj2�#Y�2��bRo0��#���=XQ�lT��%/u2�S�j��$�`;���yL�jZތA��^G�G�T��v��ᤦK��&��Q��D���� {���;A�'��>ɘ��~:&{0��C�]�!)�$"����X�]��,�B�geg��/��}��"���ߞ��e��k{�N��S\gW[�;ێ��c��I\�{��y�3��v8��ڤ�sto��Z:���S�<G|Cd�YaR��w� cj/':�Rl�:�أ�,�4@�둪��җ���0���6�k���D��Q��[Q�j���^�j_� ���uŚ�:��0$�ڊ�?���w726��;�����A$��w'}�8<�s;k��;3D����RLV�� �(\�~醾�Z��m�v՚��nk*�=\9� !qڴ�Q�Ù�r�w���#�"�-��{����>�C�_�rea�_"�%ŝ��%E�6���{t��~�_�����'���v��#�}կ�.�}��L��my��|���0g�w(��]�xf�w|X�o0fF���b�*ؔbz�dSm �#�B�(��=Jk����!��5�h��K/FbJ� -�5ݸ�O#���kؔK] Z��P���Å�5�ަ��M7�Hy�i�DW:ۭC�q<쏙�ih_;�u�S�Q��wu2�ʩ�{s�zu�]�Tt̛�EGOn�tB���K~�Y�4����ܴ�Ų�u�gXS��[d>�]N��u3&��ҍs�d�ݍU�NkapDq��R��ce!��n� N<̫�o�a�8)�'lt�m*>��J���Q������� �.+�}7ݣA��E��4\�@�<�M�O�:�bz�e��v�cp4E9;YC��X �dw���iW7���O�o�!�ڽ� ���L�bf�F��uWxsn+ھ'�5;�l�W4 ���J�R�R*��RR�n�,�Z���O�7��v�m�(��Yp���z���#��y�y�G�פ�(Z���_{��������'K�T�-c�E�o�����_��|�� Ȟ5+Uկԃ��c]��6�P5�?�s��-B�m��Mf0[@D''ɘ��a�k}w�lB�e�?c�?#1H�D����]�l����biSp\��AN'>�:�X�|ţAgނ��(�5�a��Ů�6�4�4�۾����ml���I6��~:�}����=���{����Y�>�aIy���q�Ơ=J���w4��B�8�'�^�擛s:���~�6������ ��Ś�$�ZN�����d��#�B�I�Agbsj�i��qǞN���T�R�@t�k��,�\7uB�k�̀���0�IK��]�����pӝ֠��dȯ���M��fC�b���G��lF6�z���9-F&��}?��ZT�&�������7Kw=�YO�|�EFJ����}Z����e�s�;�D~��)Q����#Y.p0��1G@���D�_�ͩ�Ћh/ ^���1��^������;)]7�}��cǂ�]¼Cp�\�' ���=���}���Gg����� ��ߖ�[���;�ky���?y����"�WDW�Z ����]J���-5J>4�Ri�<����Ot�s�=��E�bunE1��aЖ��z�m����w�S��9����=`�X�bћb~�}���!�����zt�p}�+�� ��]�M�t�MuL]n�]r%�xv��N���d��d*w�v���a���ԍe� O�!�]���{�;�|ߘ��~�=�9/���9��OCC��{7��E��>:!��d��R���6ǫN�s�M�G�$'V��,sb�i֓G[[�ii6�]�=�������w�p6�OwsF���X�j���>TF��q��1��ޚ�bD(�i�u��`s�I�s.es��R�r�-�s%���lٚGk�B�ˉ�.�f�O�9Zv|7py>� �w���^���d�tg��=r�ھ���8�ᾦF?!CJ4D�x/�#Y�s�1t�.�FV�+� m��T�Gq�oSYQq8u�� ���2�X�D�wq�!�T�^A>#���O�>���y����ܖ��8��Z��������Q��Nt�k+�����\S�g��D���J��o�uf]/��_F��nm P������j�%n�tII2�g�igz�l{@�v�>�}��fg��<j!���+eě�o�X�B��L���؛�.���L�L��lƶ�`�7�I��VY��AH�ld5�⇞�pba�$5�P5����#C{*O���J�Ѯ6)�!Jb�7�8��,ަ�n�j�z3xl��/F��g1g���'9٩��0�B�4�.��y�%�k_6�����N��ڵe2&o��\U3�HՂGN���}&q��q����Ke��x���?_�]��N'�us�%����w���븋>3�_g�[S�ڵ��}�!��EM���U���/�M��}d���y��9��ɹ0V�!M=�=�^;�V���hʪ�|g�w��o��n���Z�+ƒ�;�sC����m�����h�:؊h�j[9��z(��r�^��#�.���)�t������V�a"O������z@�=T?J��2��C>���k���k�����g�y[�n��%�����U�^�Fc�����v���8S�ঊ��ZU�w�_"7T��ܪ�`��d�p�AԮ����F�K��=���e0�� j���٧|��r�k F�Y�$љ��&�#T�YXN�!�_�픣=l6��[W�O�H����Kc��}�>��bq��Smr7r��O���ezk�18��F�ͦ[,:� ��2�/�Zޏ��T�W4#5�5�b�yW��)bj�=j��ڊ~NV��)I�nk2|'��ml�+�!�!��p�a�u�%n�����s�k��c2�l ����$*.��Zl�P:����z3�;��V���,+��H�*�>q2�5c�tcqK��gv~Vĺf��v8Ƕ����lI�3�V�|�{n�;o$��@yjl� �f֙"��_~]�ؚ/��-n6��5���{�˷��;7O�5(ɍ�y�͟Zp��D��_��~&�P-��m~ وu5�z�X�ސ5�!�DaK/q���*�Z^"�{�i�*�kn0����$��^���gO���P���h{q���Oy�o�-���vd� N/�_�?�S��d��RsK�PG#F����a�R =��=��Ѡ=���e@���~7 b)5�j�cB��d_�X��U�c�F��L �K�CS�M��Bь3�A���c���i1����f����ah�=uģl�*�j��e��y�lP�4�uM�8w����a.'�9�;=�����ttj�ALL�����$���p��eL�� �%ٲ�À��q��F�M$P���κ���ɿ{���t�S�iLg?o�;�4R�z�S�AO�<G�p�P-U��I�I6�ζRI��/Zq��&cU�X���s,��;SȒڔ�5�}�.]�l��d�� 5ހ3�&�;X��6k;_���kj����N;��.���X����� �x�Z|g1?wo�~O��v�u��O:a,�[�����I�6yo���]�&�{����sg�ױ�(j����'ts7)�^�O3n[P=#Gy���cK�C�x�Z'�3�����R�#��/>r���/�_��~��qn��"��rl�}ݗI_:_��U����L� �%�dJN�_q�%�nA�����X�Ō!�Y+�0���A͒G�q�sK�¾!�I�=,���f&�l$ ~5#�U�����, �P�G,����c{ ��X�`'XuC?v���CX� ���>������7-�=�F77��.�J=�3UM|iӐ��G��������6L.���V��)��r"=�]��a�:�K}w�����%���/a@��t����-V7�r� k���2�9u�;I��2�zu ���5��h=��v�O��|�R��Ƃ$���À�KV���H�����]�b ����=�-Fv2�<��v_����6C7�'f:�BM0Mr�v��g�'��;����f��]�oٚ�j.�N��do�X�]ά�5�X7�)ˈ��������0�jDoX�j�G�e�d�vM��{����ɐzv�� PG匚�k�9O��%*+Z��ǜ�B���|�� a��Wp���)��Ry�h���wL��#��L���������o/�>��#�]����x�BZ�(Zɇ'P^GCF����-��c* F��9/ �*�����)��-lK��Z mm���8`����Ool�R����ݣ?w';ml��s���x���A������g� R��Wm�0���{Ȅ���.�:��*�ی�26��o�;3�ʽ��mǫά[�A�k�\�<�0-�����V��M)ǜ�:�\��s�z�I:�O�����3�Mc}L���>ݛQ@�$��4:��i�'����R;��}B��=���Px�����Jn�oГB�w�F�f��r���*:v�ԥ�}fޮC��������;�/�D���o��!����4ekԼl����p5�5�JcT��FHԋ�a���:b�#n��D�{�����wھy ���Қ�m���&�7XvZ�5Sm<�*m�0�ʩLv^�{��)�kZ���g�;��Zn����|�_�O��N�d���H��p��9�&[��7H�O���?_.���m��=��ċ�}�w��½gEn�rF�;Й�|�u�n�'���o nF��}�$�R��7 ?vʜ�*��ӽ�{*R��Cn�����+��C�Ӊ�g�"�c�{�2�b�V�r�:t�j��.9r6u�vM�뮓�$h%��Ej ���~i?�쵲�� T� �Wnn�� ,��vc���ug��ޣZ�0�1�$<�MNT��0��[N���d����d{�������V���+���|&~��*��kjm�*')QȎ�:�n���8-�X�-�B�v�s'�8=lDR3�q�e[��s�Л���Dd�.u���G�=v�dU�d�}'����X����5l�Z�X�F���=�{��5$�! �%�aQ�=���/�<,��h�tYS����ټ��ɜ����)l�v�ncŵ'���ږ���Hg{�7��خ���5���?�8�n�s���x � � �&\��CH�Ȝ�/_���V�������K$�� �L�-n�G� W����pC�?������|�Ӟ���}{������@�����O�J���n�(���a���"R��kD����5��kiE�ﱨ͑��_V=�VmZ$[�1X�H�n<!#T�?�S5���X{���=��d�2�ɦڄS-_�P��@�F*�듎)�7��%�O�I\n�E��9�,��~<������6e�*��t�&BN#�"�W0x^��4���{D`'O���E�Ү���Ӣ;E*z8�w;Y�g g�h�3V����=�C�˘�K�O��6�i��=P$�9+����� W�E�`����`��A�ś�{�2�������=Z����[�t�Q9�~m�~3�Dz�N�֘M�A�)���f�v�Z�a�ZH��l}�mF�}�,�2�e��4��:#~4O~2�~jsI�X%9��_~k��C3�߇m��2 �R�.�x}��̛l/�n��8�R-�������%"N�q�fސ��J��c�dJ~I�-2y�߀���Gk"��+����Q������|�w��#����=��i�m?�������̤���%O�����托��~��z����=��0�/ђ����uv��!�+5���h��0��v��/|߇J�G�Ni�6oICլI{�}'#u+�^�4�؋ڞ.X�W���`ґN��pn̓ћN2����pT$��Ɯ���d �!kĢ���iqf'�D�a��\�\d��|ג2BI�Ih��wF��Z`k���D�~�@M��ɮԼΏ6��d�l��q�l�R=�9#'��r�Ч*#duI���oL'l�M91�)����wMa4>r�"�c�28�>=� �K/�]-��f�5EC/NL �/����I�I��Z��Z{��)��}u�����#�~m�ߖ��Y:�'�>�q.�#YS�W#W� D��_��,���>��t��Χ�ᴆk��wIm��D��$D�P�,��ktRJ��3�E��&�T�qR�Uy����W�귤���^G}s:�rj�o�D�����;���?�GoK���S��@��>[�����_g�o���(yC��ՙ���nKl���Mbc;���6-���J�C_�֯�/�v�Bۗ�0���MN�#����ݘl���i� V1����y������I�X�W�~N+6�;7<�K�"b;<�3T/d�����d���k'&�A�r]���i줝���d7rh=�Y,�Zs�r����b����:�Ö��Lսɻ�JR�{\ �w&�'z����z3s�n{�c��V,�9��P��n�P�a�"֔����2� �>̃��-,�����X�8K�����ܠ����C���wI`���`�m���鋳 �[}�ig��h�5Q�|�j���'ͅ���ݑ��`W��(����'h�ఱ�VZ�b\�����u�Xx�9�u�y����zy���b|��SJ{�"}�Qq������� �ȗ��5�M�{|�B*�ej�F�{�W�ӂm�}����Gr��?����9������+g'}z��m�?����[ʴ�m���W��gG��i��ʎ\��Da3���HS�|��m������n;G��'����ec{m{�tIV��ZQ�qU�>���{����Pˏ. �k����6T�I����"5Y��\������d7HG;�d�'�k9 N�{�Z����CNη�)6��$%��o�K�Ե1�|�YaSn�CɃܓ,��_r7��\X�/nH�RwW�B{SYl�+�eC2�2�:�$x����aڙd����k�.�:�u�r',��c)w�u��u۶"9<�B�5��ᡝ�� ס��L�m�>F�.'Q�:V)�W8������j��g|j�'�� �+�W��gep� ��0;3��fR̹,9�[�κ;��sk��àH������)��A��U���o�������{H�� Vw�8�K� kR\�c��������w;dw�\vT�!���f�� �=���|�z����>�m?B)+��� >,�×�����~��������]�V���+�H�����"χo�t�T�JZZ��t=���r�q���������&ͩ��� l'���f)g{�b,�bVj�n��a�ZN��LN���n�p��:d(j���`���Hu�������A�HY*�j�8�.���fj�z�C�%�hb0��SX�����[[��^�k��e�P�~���ҍeJ�������Ö�f嬢�=l\L&fO<��Q�]ǵS��V[����jץ#.�V��aCIO^3�q>��������#5��j��i���$�4d�f��Ot�jM�zb媆���ȵv�0��Yȇ�Aݜ��1 {�i͡�I��a:��}�1�b|�#�ӽ�;���������[�ΐ_�ĩ�{{mg���h�m/��k�v�U�ldNnUSʍ�V̎�)r�ħěآ/MV�-S��I})�1P��g����|���0���)I�!�f�n���:9=iM��8)���O_F�����$��~��}���c��?�;�m �=��4����}����ܤ���T���P�j���љ�7�t��)��yBXYE��z�)읅q�yrW�9˻��d��Y�ɪ��J�b�X{��0��C��`nV�� ��kp7�Y]b����zL����D��V��N�#%*��/}?j�Kb�5h߫:3-��<����%K-H����<�;���2R���(�dӚ51k'�����=��c�jD(o��T�+�O�6}�4���y���9���c�ߴk1�/���t������Ş�H)����M�6��_��F���Jj���Ƣ�uS�LN�Y ��i��ڄYm�%E�l6��hj1�q���f)���$ �3�y]�����^��R�]U��1�3)H!&��|b�c����S B;��Z�G��`���M�4&�F�3�V�!!F���i7��06�@^�Y�"���j'ޭ��1���E��LP���5��Q܄�����Yw��P����_�g�E{�5Q�9� RV$}������n���Ov~��ܖ���+~'��B�0�櫿'��Ͽ���gT*����[H��f�@���q/��ݍ�J8yF}c�vFt0R���2��n����~<���{RT�PY��� �+�#�I��m�I��Y���cq��5����Mo�0�n'�wӒFZёP�s�uh�뉡H�&�!m��d��0�$���d^�&㲟��M�9YFu'���Z�n�l������Б��I��5-b7�q��r(c�[]x���Ħ����>���'��.���o2����u4��mE,r���Z��ANR�;�fl�N|�+��<�;���3��_w�f�ٯuO�2�vg�W?�b� Ӆ��pl��j���o�T/2��akMV��G��<�Y��P^�w�ʘn{���wG��C����}�-\P��Bzv �?Z�:;�c�l���P7V=G�n���dy�������.��s(ae�Ϙ�ʄ�3�&�x�/����.Iw��H}�h��o�������x[vn��E��y�������2���H)�PU=Y�NT�A�q;r<Ps�T-+�ޑ�6�i�������LVʰ]�&�N�kXw�5BV�O찛�A�hƾӌ�/���>AA%�Ȋ�1ZK1 �=D%� �h�ig�����l�َ\���-2�4��N��^���4B5:#~�p����ھp�"j�C�sg3{�3�ĭ���Y��>�F��e�yO*�'�?1��Q�\��T.�BA$�3���'t9Z�?���&������'�`�!5�DG�.2�t5���;,�m��d�Q�IC��阊W����Z��$������ڦP��"����Ԫ�X���6 ��>y��Mޥ��r�ko�W��v�f�ɸEA�XC\�X�t�����4��B��9��p�51^Sn���d+��r���ꗢ�p��rM>�� "�0�] ӎR�PYP�E�S��!8\}�pC�����Ā�����������gܽ_��oK���c�H����ɕ�2�����XUIiE��|st��(���-R6�)������Hm;�Y���9�����us�3�d��=�zjS)#[Vs�ri7�u�c$�S�;�XbW�ԃ0�b/��F�S|bcz~8 � �����>ڟNcܓ����}!��d�Z�Yw�R�}y���Sm�,���;|��m�~l�.�M�/@�Q K�.}��T('��GYhL�6�Y�a�a��c�(���=w�Lxk`��M5RY�A�:�0 P5k�����b��rе����P��Y:;�P���rӠ��mŠ���v?��5d]��ZSd�m�:����x9���q��5_���5�݊��9�:�8e��Ng��Nc�%��v�wR�{L����tF5P�pE�j�{ڙ���Ս��eF�R۲)*�^#�U�O������-O��P��dv��H��Rb �J��/���£�k�����{�]��t[nn����+R5���5r���/���2�/Pmxfb��ZS+���t�4? ��o?���R��G'�h���l��R<�69:3���k7X��a�H=ZZ R4S~���d��\����>5�(opzO���"m�v�|]lٵxF���٠Ǎ�=u����l�E�����o����'*� � �n�"ƖM'NUbyg@��a�_���xKɲ]�1,��X�&3Ѱ�;���w��aH�I�>�Ƥ$�uLb��dFK���u<�{����)/�b͌����>��l��&�ÈX5��㣙�4V]z��T�}��lL�����q��f5�-q'и5a�$S�Ѻ�n�f��%p׃�_�p~h滽��X��0H�ǦCM�l;�do���*�<�s'k��n���V����7�Suº���a�{�������˦�|��/)j���*��92͔$�\��6�W��7P�nn�2#�%�wp�Ea�%⫒�KK�z���=�.��;~�������?�&��;�����97��kߘ������� ����+d�0�:D�@�-��/G��#\�d�,�(g��V��x��]ɂ::����&��G]�Q��LT���l2�R��T^�hV���2һ������!�$о[����[-�MX��e]}��>tv�X���^���:���o�ڴʕ������'�c�m��E�v�9�A�nmiױ��x�pGk�$>ekLl��S��\-��&�'��}�`���8�X���Ge������ ����{�'��.�:��=�����\�2����\ތ����VkX�5��Hl��rc���xͲ6�{0��z���/��0�ٟX��4��yo�MNX���2Q�z��&#t��dL�����p�k�EO��\4o/���k���^B�����an�L�I�@t��d��2)��t��p�pyA�[���� %E8<��3j](̨T�*�;0��yB�w@�y����|�_�����/ܖ����m��?����^O��z��~ j���*8�ά/3e�bsY�k"/d� �� nӦ�dİ������#�'ك��h�W�;�{�<NC��XF��>�=Ư��y��M�$YN2����c��wK4�`j�6Y����?J��.���8����w�N"u�� b��ݟ���v����tf��&]� �Qa��a�f�4�º g5�Ko������v: �^�z�d5u�ak ���ug��'у.�8���&�px��Wf#�I[, ��7餽��ݛ�<x���]�$���f�a&}zs��vO���MD{~�����.7ٮ�~�?��]�d���2qԕ;�5u���W�ֈ�%:jқ�l��ݲ�o�lf�^b���#c���i� �CE)Ea�癶���5aw��|C�z�����&3*��Wy�M���)\PKE|$�-�����0"��3��<���R#,_��"g�m�i���h�P'R~��P}g�����?�{�mq�=~i������.�~��3;qo|B]��U3��q:7��fr�B�>��R^Wi�n���l�o���}�i��c\����0�H�Ҿg�R�������ISz��=�zJ�tX����N �>x�If��5鬓��k�9%c��θ�]��+�M���$`��01ر���1 .�Pq��ax;��}��ݥU>ËNZK�ަ/w�} 5(]N�}x�*û���5�8�c�G7�XGXJI�L���*G`��Cn��W����uDG�yp���'��`�3B\6��s�3�ܦNf|�[1*����4��D�n�95����g�Q��0��� ���q�d-d{�br�2�x��!iT#(��p�K�1�ߙ'~���q@��驭>p ��s�O�s��F�������������pqY3ۭ�R�p�:����q�!� ?] [�O78�my�i!�û�;נ�7�C��{��%yy�����v���Y����ߖ���'T�Ћ��=��J��9����P�9�� z K�M�R()���2.��J�;Pmzq�A�:��p��I.ޒ��yn�:�M�c����vrG�®;v�Pi�[���N�Y7:�;>�a�V�����#Y�Qh�.���c������L�q{ܾ?�d�'M���M�����ʀ�E�Gs�4�]�ZǤ�s�Sg髅�T�[�>mo����!!�v�j�|�c����v��]��!���c報]�n�"���k!'�;�ۯ�~G����l��Y�ˇ��=4W�d7�FcF�_{gX�Np����H���� p��"���v�:���&>'{O̪ �K��;S�lI���n"�:m���rcZ�ngڥ]fԬA=n*x'-�3:��i��Cq��������1�o6�1$�lZ|jZ!�� �3�oа��g�k�;E�����/h��r���j\���pr�z-�O�~���|�����������V��������l����=�I�_��q����� Ο�V�+��#����g�Z��mT��~ڑ���&��|9b��v�F�.j�ڏ8���Z���U�5OgV3V���5���v�hw*���dLh���7��ѫka1�HA��bs +�O�$FJQ�S� t� ���1��;�u[E�}|���-��a��T�}h5�WO-˥I��4�Iu�e�H��̔�Y�hf>��tfx�d=��};��]y�ӎv���d#�qj3 ~���b�������nj�I��9�r��*� �е]�@��F+~����S8ߠݸ�b�1,�;0x�G|�����B ��H�o,��6�7�-��P9�\Fc[N$Zn��yrF����}�,��Gv�gj���Ж;_��.:}�̊���_�G�.mҷ�W5O�NV��*��)h�r�H`a�]�vd(T\p��3D���֫����*�8�*U/qzA)�H)=r�?�w��������-%��O�"� ��}���o�B��~}q��JB��dF�@&R�e9�O ��3y���u�FrL8���J>��њ�I���h:&��<�Bj&0����H�H�rV�z�e�:`�G��ɣ�k��α��Vlj��4NJ#�k �$�pM��i�3fo5������6 {���M�5��W���z3[9ȴ7�\Z���A���K�[���]MF�k��t�>�Ěd�A�2R��ҙJħe���L�^&;��-0���7����r�}k�ʉ�lb�5�#�p��q���Mr��[�lyq�]s��2���6f�d�����Ĭ���=�����!X��Z3t�?ъ�9�0�Y���w��������#���6I���@[TkZ�Uqg��zX >��<C�}�9�����Kax d xAq�p��#� -��o�an�N�ip˼A�̗���hz�� �^AukA4P�J^��#q������M�����13o���H���[~@����������K_|�6F�,�U2�~{�pII��;���|�r�O�j�Rw�(ƅ��J.u'J��iZ���� �CTl���NP�ġ�{>��#�i}n;�0�R�i�'s�)&���`��:��AgM����[�v���!�P�}`��,fU*V�A��f+=�٘��yI�պ�LOXꑐr��5���.�.au$���l�M�4�W�LfJ�V>r^�u�2�,zh���b�,��/c�UQ�� }�tMf�Mm�ܸ =�+���a�ҭ6�m��i�C�K��^=�I���Ա�vƧ�=tn�N}��i��_���v�un��wۧp�u�FwB|�?/a���Q���g����'��������b7 �|���B��5�n���Mm w�hjt�W����9���Q�GjZ��W�τ���9ܡ��H7?BZ�� %���s��.�Q_z���=v��?�m����-��m���+��ϼ����:��S�j�?Y�:ϔ�(����1�������E-�Ƚ�\�q7d�T]�4BPW�z���M��*�Ѷ�&i��ڔ��Eɹ�i�gJ[�!��V��bu��т����η[��xj>Am0g� �4�(�YN�6���θH��k:�3�C{��l��<��v�'+�%�,�.��<Żk��F!��v�L�R��nF RF6p��YA��={�y��=������I�IN���_�'lu���4H9/���¨�v�y$�aSa��{�tKUiSg�M�,'&3�=?j�{����;c�gk�����eW�<��h���i�q����^lWk��A�p�K�v�J�u��\,�Y�3Z����'��L��b���>���S��,{j\۵�&C7ƪ���p�����8��\����������/�}��`��X�oWX� 3.lI����>�|���������B"n��"�^�7�x�7���r�G�Z���,�=)~;#Փm���r� L��P�D��q��|[�#�?�c������pN�-j{�}s���լ0O��W��Ar�MP}�R��lg��'6eMn����F��Ĝm�Z�4�j0�M(��_�O�"���id��Ӣ���D�F���qN=�k�s�ꤦlq�� _-z�˘��{d3�A��iLO ��t���Kw��[�W��;w����fxT�r�0�z6fy4�!m� �w}rž��^u�H1��-iuH��>��bg�� ���N ��M�x֥j�3у"��$=�7���~Wm+���@�k�@s:��w�aG�,�ٙO����t(���y#p�� m��nx���V���4q{�z�,im ��25M �D �Ww��=�k-2�N�.#aO��p�5D��i%��ą3tz�*/����+��)�|n{����g~�����d��kݏ�7�w����������f�Q&j̈.�Z���.n{��g�%��%�t�-=Hu�T���^��s��8���]�(5j�cH�3s���lP.I9ZP�f����F�O1i��={�д��~��A��r�'���#�@wk��I1S5�rIc���V��M�ޠRo������P�yؕ�7�#�m;�PN���0L=T���s�_�����{u��^���$ ���O����c��[׳cR�nh��o�^-9�������l�`�F�2+��M�x6 w5"b:7��F�{g������ �k{��H]�����h���D���uLW�(�HH�M��k�]�i�uԭ5V�5ֈm.M��g�Ɏ�"�c��<�=�.�T<Y���M��(��p��G����[�Җ൞��{8�R��f,#+�d6g�p�� �MOA�)RzLJo�3r�,�>���G���������?s[*n��"�7z��3}͟�'��W}��/~W� �ʆp1��r�9� !d�_ ��D4���)�\~�$�!EG*����jA� N�)6�Ѕ'xm�f]ʅ�M��әu�iСYK�&�p���ܒ��HN������s�x�+�?-�Q���ͺ��5i��Lj.+��~��6���7L��$����i*E+Ѕc�T��nĂy��J+0�� y�k�U��D/m�*���bc�Bh R�R+�53�m���4���.�l���ٴ>N6��ݵ��j�z�ih�/�Ɩ�[���%e1ba�B����l�.�I��d^}z���#�A�{�f5�p�ҩ�\��C��2�����4\h{���V�����<�K;?6����(I��c��lw[<��w�S���w�IJ�6֬B�������S���~�b8X��!�� јz��$ɔ��3��0!L��̏q��l��PC�H��L�{X�W,�V�����g��^� �{�w�Op����L��p���!"�{��Okz���?R��ת�G�L͗7Q�S��L#zE���Ef�-�ip�-^�!rF��wg�C�;mҎ:�\�֣�pÕ%)!��teD'+�^�d��$�HVΦ�.��}��&��L�Ov�Պ���8jd�nXыQgqWs;d��x�u�`�82�5�b�%9�����ht��v��GƎ:�A��N벵�)C����풳]�Ե�q�Ǫ�����m5^�1I]l?j��xm9�OǞ+f�� �d�e�Y�ȩ�}�����t���6�ױ_�ia��0��n�bY�%��>�b�Yj�������kj �tR�M�r���+ΐ��Љgo�A�}�'1��[����5G�C�o�y��>{����:&;_�k#q�5�Ბo�A�#7 L���:�^����PqSj�` wQ���⦌�K�W�^R�������)�/]�鞅�\=�}����Oq��mb���Q��Q����(O��o�����i��_���d&��[S&O]f4<%���w��ԈF/`��� �Ԛ)钜_ nF�S��K��q�˸�d�StFh�c��msD���0�ɏX�PgW#�(m���`.��Ҧ�\ڳ������$~n�+��J�$�N��Q�`����� Tڛ'�k�پӬ=��v�]�M�ei�B��TK!��j��N��nSp�8f$��+Y�-:�(Kh�Im$��M}�o��.�k��Ⲝ4 �X�MS�Gu�����b����n�MԢ)%�5J����w�5O!����[,�Z�A��E�Oӓ�.�r����䯶�IX� ��p9�Uál��ݼB��?Y�cGq'�i�P���2��H�Z4��L3y��ɋ�H�}(;+�f��%g��tx<U��.p�HN�����:��� 9E�3jޢ�m�9!�����-k9g��Zo�5��;����H��|���|���_��_��o���q[��u��v�/���~����韫k�tE�PeC9,�)��=r�9| 1 >��J%.�Wghu�́�K4����(��(��s����"�S�K�����5l!/��#ۄf&��>�d�6}vc �D*�mr6��M���L� ,4�n��I�#;;C��/٪\����GO=7�`�E#���p�� �k#.m8��2b#��g�y8��xڎ�t6<^�֨t�,��.f�i1�5v���G�L/��DLV��T�gM�$�!�����$]h�F'���Π�+��Zc�c Y c�~5���a���C�(UQ���7�1�m[EhO�2f��W�;!��8r�ٽ��kO;�P�k��d�i q]�'�#!� j�Ժg}rC�6�ȵ"���M���k�������E��%\x���_��Y{o��f5+��!R�"l�-�Ҟa2}Q�V�y�S��w��>5�Yj@c�"���G��?��O�����rp{�鿝�:]q��?��d���n~���$��/��C�B*W����D��JZ��ww�����B��w��B�=�P� ?�Ą�;3�3��h�2i���r�qI�]ic�$��$c'���-�і��&�ҵ������V���`�r"�*��W�*�M"cWg#�0�d��X�IH�M|raSX>y�����@�-�=��8z�D�G[��x�'�&i�]f#;�h�L�5ݑ��akZ\��22�]0�Ƒ��IZ�O�:�_;Y�[�J\�09k3�ݳ���KhEy1�#f�L���k��{�e��+m��ﴂ�^�ԝ�Ұ-��� ,brcl��>���$j��-c-��� lM��BQ�O�����{p���C:��ru {��=� �����넍���O�x�B��wp�11 Z<��Ǽ�.��"8ݰ�=n�1����{DU/�����ˤ��Mg(9����S\=<����L��~�l��p[ n�����C'½��Azw��;�t�5%9Pi��Ji�G�r��3Oq�����<N&D�P���ˮY��7J5�V��j3$���rnS��Le�=��y�5))D�����=*ݘ�����%Ƃ>&>Y�T�����cPHhpoݷ���ݫ�]��N)C�I��M�a5��i謏iRʕ=����2�1�Yt�i��"B��R,��ՃK�iэl��:{NPƞ�뉥k��8D��j�!iHG�6�:#Ɲ긝���m����e����e@��l1Wk��4ݵb��p�˾5B]�������~8�u���0$|-��AvT_��lO'��5XRвE�k��2u���������oR��H8�R[���3��U�t\آz�I[#,;(K�Q���ɮ$PYq�G}AU��:q��.�7"�_ɤ�-��G(��9��H��;}���#�_�0ݖ���v��;|�'��7�'��7�V����x�Ը������5�% ��S���rd��A}l�k���&l���9���E��C�]�XQ�CpO�qK�[JN��b$��=��t��u�Sg6u�n�%�.���[·�G��|�����Vd;��Ӷr'<��Vйn`��nWkK۪�X-�B�=x���}��u� �0� �Z�p�s���I�pu2ݮ8�컑����b{{F�5Ѥ>b����َي�z���L�MK�%�!�+�d�ύ���{�g�N�Ԥ�C�#����k�Ļh�d�V�5ؾ:�@�r4k�ېb;n�yg�PN,c�������{��x^��as!>�� M�ph�oY,������;����)qFy�jE� 7���I�f�J�����K��/�C��A�H�S�a�������:dvHv�s��#h}�D%�<���k&˛�������}�#��߸}���E�+�Hﰾ������__�˜�SR���,/�uw)�gh�&fG���5R�P�1y=��n>��C�a�VErA�1�_@L�����<Z�D* �����j[��j�!��z���,KS���~ד$5]��-��w�9��eMW����F+��'�$��`�NN겫��;��F#UaLhٶ�KC݉#��}r-m��a��X�=�&Èb`E� �x� �Ŕ�_=_�t�ɭ���3_���k�+�|�m/�,'d9���l����d��j�B��n3$��z��m��Gg��b2��3Y���`|��jO�ӵ���bMH/�i�gF#��4�@t��3�fy�2�gΊ��P��*�I!���z��qĉ�`�yK5�sc���h���z�����S�I��d�xw��}�u��|���2�u�N��\C)h�@v�3�����Q��͎�9G�SJ��ޥ�w��+��F�)I�#���������O���H%����E�'��\���Lɂ���8(���q.�����&q��������!)6��\@|/!�@^zv�T���D�ZgJyB�g0���9~{Ųh�qAY_6�N��):��FB���Y�Y�d�0s�r�Q�:��g)��}�aY{�#�E�bK��A+�(��`#9��,�������0�6cL�S��m�,rc]�?\N&���������~��<N��۾�Ҧv�5BU�v�y,�Z��fkv�H�) �����<�5�����5io�-�+�Қ'w�5��ҙ��M��Z� n|�ݾ�.m3�]�o��A�m=��V�7�����7�h[��ܥ5�7��dhB�7��b �7[Ҙ���)�T���K�iC� �� �1R�G�/���� ��� �:��$���7�[*�.�ٞ��J �?u}$w>�?���Bw?��n��Ǐ���D;a}��k����w}�7�ԜDw�҉�f��*�zOb�RIk$�n[)iC�[�tE��\W�&ԟ��C�����GI�*?�Z�y��*�Or����8p��h����^"^(���;xY�t"S�M.�<�M�T�jt��p��jSf�$5{�4�Iz�Ե�&Z�<��x#�cjA��λ�Tc��|dq�-ԯF �1i��#��\r�e�w��F?1�оG�;k� ����̜��l)_ ^���k�!{C *Ⱦ�bl��nn�Zl��4�ʸ4���~n�5�6��3�womgml��5�X�^�}�C2��<��1�1�բ$ǣ�8�-�=���/�ћ�|�a̒�eL���L:&�+m-1o�����MYd^�|��3��?��V�ey���[�1yV�I��Kr������?�7X����z�Ȃ�'�t@������Rӻ�t����o�{���n���$�c�/�����+���o�0Q����1��3ʲ'���L�Whu�Rm>�Y��r��-�r�N��")�DM�� �c���P�`M�ހ�\���gL�X�DgKs�����1�Դ���K,^R�}�yz��/� �g��Y�]�o����G�3�ERMK����&��]-c�̶3=o�d�eϱ�ͰP���ncwom[��ԊFZ�ߟ���.��% �%����i��$N��^��ߘ�=j�v�����d[[�QH��C,�m�4�$��ŨO��96 �s�n�S�ĵ��0��g,�v��:�0�ޯ3�y1/u=��b�u'%���&"��YޜY#�R]s*�L�/�5fx��Ԧ���3L{�:r�Q��Y:O$yF���z��/��-���dn܈�ņ��P�k\�R�Z R7���wV��֙Ro�r@cl�������!��n��g���������q[�����~ϯ�"E��_�'��XQ�����+j:�uK�{�ϐ���<����!\AyN͎��C�F��K�?g]Ϙj��q��Q�@��%P�c���=�-x���^��4��>z�ˤT�.P�`D�i�-M�M�=�BW��:C\O�[�Ϯ��\�v�:fm����n}Vە��$m�&�z�&���כL[Mj�B� _l'ݙ�=�8�Iw-�϶Қ�dEz� W6-�4��4��P}�q��������w�|��ֶk?�s:��;˪6�QY ��m���-�.-z2f���_�6�B� �PR=Z��^�ߴN&�%RT�nG����w��u�'�n*S�,����ro�[&�z�p��� �Pw�p�3t~�����x�R3��%����_&�=�>w�m�w(�9i���3�wpsĉ���f����f�ݐ9�O^_�����}� ���C����r�X�=n��#=%}��;k��o��k����\�$⪧�Ⱥ���YIu�_f�8j��|���e˿͊��*-u���/A�����*a�/C9#T}�0�ML{R��8y�X5�@��;�|M��і{�6瓸�T�#�����6��nS��T�=Ż���=�m��~�����6��G��+�:X�=�җVD�t����=�C�#�� f�lڽ�9�����_I̴���?�Vym$�d�,�ӛ�ɕfzC1X�ھ7���bd;C$�y�]3=�}�nm'�������V#�'��u'�|�5j��[�$��ssg�J �� �=w��!��u��Ĵ��;;��7Y�_4�����xV����9ih���:A�o�Ö��U��!""���3����RY_~)HWoG���nSIuG�ϑ�!b�P�Ĵ��I��K���~�h}�z�h}F�>c��~�����k����Wo�e�Ǐ��ǭN��oQ�E���?�"���_�J�^��7���68I�jTĵ@y�����OԵ�jF�Բ!G��:���d7S� uEtG^'\�P�3ʺ"��u�@�����2퀽"�8O�GFXQT����4�n�Mт+��v �,bl�:��}�-� Wo{��ݵ�ҝ�LZԙ��g#s��1cNh�&�l6'����D��/���m����GU�(H� THfXr��,�V�K#G+�8\�ɾ����K=���:�ҲZ�I�d6��t�$�,�䊷���7#��)U�b��"3Hm��8�R�Gz�T+�|X�-��2�rA�»��i�P�W�'_����� ������0Uw�i�I)��G ��7����k����h$�,h������|>��Cj8�&��K�Ф���y+8�������uWH:�����y ����/���O�g��?��9�}�����O�c}������NW?�q����Cg�w����ԁր+���� ^�o2:=A�3���� []����-i��]ӽ.���;��?B�3�)�Gd%g����?N�^�?��H��3�5�)�B|mpx��m��ъj�:nV��� أ��1��~�z��V�M���Q��S�<�͋���]���K�A�]��m.{�A�=�+ד�e�o�oQ���i�=�R=����e$�cvfJf6W�����5nM ݁,�r���\h��zm��s��۵4�_8���IӰ�A�dMhy��{����=��mɼ��f'� ��/�7�*�Ұ~�Oɋ�����u#���L�6�����2�A�U�+�zF<��t���9���� 8_X35t�8�2y=#�z�4)���>�Q9�����[�<GjF݂��R�.�,��èޡ�g���Jƻ����������7>ukDr{�韰����������L��Z_�9u=G}�)��34�����=tjL,�R����QuOI��(��;-y%�k�ߐ��7� r~F�^�!��C���j~��R=Z�G���l�=��5A�Rr�H�Z��&A�`Э�iT+��w�������WAJ�E,Φ��M"��Уt�.ۣ&c{�W�8�;�������eR)ߣ �6�(�ζ?���ɚV8km0۔�M�2ͤ�� �$j���~��'�����n��z_�(H8_#��T�u�+�s#�� y7)J�N�}� 9���@��l`y�<Y7�ϔq�3HxWTwA�Io%��;C|���dMum �op|���sP�#���zU)���pJ����CRqLӞBӌ��+��W�l��q �z� <C�=t����@�K���W�J�?Sˁpv�R7�*���P)� N��5�� ϩ5 �����/�c����[��f�}B��E����'ķ~�o�7�;�ط�(D���D�zݞ�yE���Dq�T%r}7�H� �WT2%�ȇR�Pk�ׇ����}�OXy�L��C�dO��)\�@�K�+r<P�C��Hp�Z(��r���i�m��̵ �Z�>U9m�]���ܲ��T�MAnsB`�f�a��Ѩۆ��V�'�\�Ԋo5 �dSo1����]e�`�C'��"f��,b����4қ:��M��9)�г�낫�;S�6�F�A�[�+�6��z��#^��1����<,3�]7]��K\�T���ר�'�S�sC��Q�P��N�u�HFX@R�����~��",K����K���2٘��C�������$�l�O������ �u�r���UT����r���V,�#�*iI$S�a�q/�q�!<&�=�?�k"l���L���hVj� ���5�M���t��}�_�������t{�������/�˯_����x�u/_��Zvd�R⊺�\�t]��y��D�JY��R^B�!ك�"5�@h �)�QM� �'��Gg���k�D�:R����yNɯ�uA�$��4#���7��2�s*���c cl�k��!9��?���� �M�l7��8ߦ�B#�E+�����MϤ��5��g�q��̞c�Tw�B[XRČ6h�J+2˪� ^rs�2�o��T���d+9ইԜ(z����Z(k�eG�o�9� ,ϑ�`��%I;�T�G�SJ*��|ޒ�8�hh>���R��:�<"^ݴ"j ���_���`O�������k��q�?�h%�9��A���V�CU`ݛ��ƂN����@�;ʲ!��"��Ndw���L:�~���v�nF�'�k��Gq��h�a�/Q*�y���)D��,<�Uj� -�� �ː��DQw�W���+���|�q{����H�~�[����?�+�T��_XKE��rݑ�J��ѩ�-�Hj.��P�Q2yy�x[���)�W/(�����钼>F� L�#�>5�)Q(�U�i�&�+��-[�ڴ�^���H]XkeF�nYJe�3�, ��f��\���/�4)�x�om�{U����e�-ְڦ�X�VRນ|�MX&,�s��|�l��t5ou .���P�{p(:�65[���#(l�O��'��kd���.�x�wn�,���̡��|G�y�n_�@��߿��+ԽO��0�#��H����Hz�t���Ѡ�d��dR2-��3tw��w���xE(�L[�yKí_��k���Ann�����&C��� �����T���W�gh��*�_��u�Y����?���� �O8�!���_��7��n^�$E�q�J-;�s�)B�H�B H�~���=���~֟v�w���>z�й=n��m���<�c����&_��WB���;P���-2i��@�Kr��H�1}K�L>����c���/)�@z��%���e����>�}@M_��K �V�1 "/ ���91�]P����5&��TO�7�7Mb�BTM���UZ`2+�Clĭ�gz��j.-Ŧ<C+��K��Ҋ+~��r���+����}�6/�n�ɺ!Ո�fV�ʈ�L� �&1(҄�%GJPf_Z� �^S���������Q��}��7�v���D����P��#���3��M���R��QjD,�� ��5f�lpO�*��yr��O=����Ԧ^Ⱦs����J*m�G�7Mwx� ��.��D@����ŧ��ߞ��*��7�� ��� ��@�+��%��N)8�E��Sl���/��� ����a�q�tR��9�l�e%�����:���^�{w~�oջ�������s���=n����Qn�����o�������ܚ'�x�ߒ�+|}�m(�!�.�6e�� r}���R�C��z�"�ֶx /Ѳ�١�#�� r�Z�����w7��=�?P������k�����=�H��I��M�Xq8��Ɯ��Ĥ���e�Qpg�b�S+��B�0bK9�n��D�k��;��N��c��|����� �3���h������w�o��+��H����W��G�� ��������6ί��ND<H��uO�J`"�L�e�y<��", ޯ�y�7�6ss���-��ֆ>���L��<��R�l@����s�,���?`� �=Aّ׃Y�5���P��"�`�2A�6qg�����U�~F/�'�HZ"rh�'l�T=�Be�N'� ^���;�T�vC^��^a�8�,�p\�D�!��H�J�<��5?rw>�H�~��ݽ�/�^��������-��#���7��˿��;��ݧ�U�XH� ��J\�P�ȣ�@*�q|�X�~�8k��)U�!r�R� �5��ȧ��1e�pv���P��#̞P���Kz�����B�P�x�hD�B���(�W�\�ꁣ�W2�ViNWR�1��(%.d7��&�j�ecH{pvga纅z�,'eG-/(��E�����i�Dw�m¦�n�=m��_= .Hs� ������Z�B/��*�\���r3#�=�e��J�Ɨ�B�P~]��sn�w�����sӄ�K�����]̞u=77���i �R3EkK��������\�Hp�5NKcj���r�2��(��4���N���%y���� �_!�n��)�o�D܁����V {��G�'�{��JN��a�t�B�茓����;��,����劢��#n9�Pdz�Yw�3��]�#�7}��S�sIo�����-��P���K���U�}�C*��i�?��s�+��>�B�jA��z��jf�g�\ɲaV�I��9�?7Y�%��CI��^��1X�=���<1N�;���)�qz <A� �o����)6e�@�R<@����s�[1��K�V�����v[4\#l9ܬ �v�'/�R2���q 9GX+N���L�5�M=j�K2�ntb�-�QTJۑ�77�3�9� eF�%�ޡ���8�7�p:�iҞ��xyI����{���%B�(�"rI�V�{�>���&���_@q,)�bk�NG��[ym��La,����q�x������� 7�ާ�� KC��������o�Qi�m^C ,�m\xڠ�,��Pk��/� ���@&���#/�+J�KM{�������%��fj����5�맘�JJW���C������?�U���|�_�}j���m���{�D|�[u}��~iT>��t�v{N���u%V�ʊF��B��^��@y������|��M[l���@I{TW�tq���"����wдc��/�ix�E/�����4�n�Y[x����-ej=c]��]�\�dJRTK�;���rs?}�ɟ,#�'>���%)���!X�����Q\s�rVx;�ˤ��Q(�Bz��[cae�gR�IX�� � ��O��\�A-����RH�������݅�."��隲�м!��|&�5�6PtB]��+*B)M��oS}�R�Bk*�1��k���?�+\��������|��+&�&���*��5�p�CC��bGw�G^Z�_��V�����*��U�y���Ij�"�r��;8}���oP���+{���Z�5w��|"^�@��ݏ~A�~�w˽��r������q{����z!>���2]�W?��?=�s�7(yO.���Zw�9����1� U�ǔ�H�HuO�]��������� ��e}�N�RZ�� ��EbzF��[4>��~:����ut~L�W��?!$R��o�G�=:%�\�����?(;r�i���;�^e^=J+��QI�2��}t�6�kym_]�䣬=�x�,k��Z�35�(Q�e�K����PV�_8H�(������u"�7xt�jhMմi�tr�7)����}���2��7(*�DP_Z��^P�4��r���8�1��: ~K�7TQ�e�M�=ʡ����R+��Ί�����eb�&S[v�a�����Z`�i$��r�ch��nc���V(�3(J���8�F�uJy��� �ٚ�kҒ�q�����k>[������k�����υ����-�_YGM+������ts�E�n{r*%+N���I�)O�?���Q�9��+�~qo���O��t�n�1f���� ��_6��5�]�x4�����,o���n)��hy�R��\S��.[�G�� -K��%Q�aׂ�y���W2�P��57'�)�zɺ��nH���B ��@�w�kt�*����C���]n�A����Dl�R��/��*w=C6�'G�fO�tM�;������(;ԽG��UR|�������3OJ�'�'4<!Ƕ?wޓ��h���$�g��j�Y���m�O��l�2mo���zuծ��Z�����;�Eo�o�s54 �F]��VW8�� ���i^���b7� �.n��'7,K���L�J��{��I��0�g�o�s��?����_���1p{��E�+�(�������_JM>���T���J��ɰDܼAk"�H~� g}��kJ��0���K��3���H LW��A7������5�.���p� ���|r�N���X_k�z���U�6��21�R�9f��,/,&��aC����D��z���27�����f�2�ඤ��"LA�1�������Y�V'�Z@�uy��N_@���QxJq��x|b)�^�HeON��e9�O�Vj��]���� � Y 2�����0���Wȱ�D4m�;P���P�������o�� D?��$����#���»�f�/Ϙ6y����M[=L�Y�~[-'�������@��§�{mo����¹�c�&E}E�3��(2ύϐ"���w)r@�7�T} ���<���t>��W�wL������/��q{���źP�Ƿ���U�o�.z��|�]�D � �a�LO)��)k&.J8��)�'���r���T�@�A�B\��RV������b@�C �e�N���V��Sjރ�9����Z����5���*1��ψV�����D=��C<���"�e�.��)_�}��Ӽ����n%�<��8<W)�Z4f<�;Ou�Q�[h�"E�w;{H��p�=ν�n+iLJHE)��i� �\�3R�A��#� �c�*en�cS}��z��7��R9����/B�K�1P)���<�A�L��}��Q� �%�B]���1�Mo� �B�_[D��A$�6I���n��J��[����5W\}�VSD�Ô�wv�z��S�K�|���T.!��af=\��&(�����3�;��M��^���k�&���q{���0x���;z��O�����|���y�!E�3��1/x���=��Z.�އ�ER�\x��;ī/��႘Ϩ�˴����+J��&��P+1^�)���P��R_��wQY'D���� ~O���_�./��o(� ��E�_��E��u}�$O�p����;RQ����:S�!�uk�f����:ݡ�=� �-ZvHxNf��k��H=�Q�ʎ�,��ˋ����|�W��J�F��7!o!ݣ��T^�ʂ�KJxъbu��-�W�ub�wH�T��|���m�Q3nsF^ ԧhY�5PdFْ�GP����GE�\�Mb��M3C��6��p" iљ/���y����<���Ci+d"��E��.�k�l}�̯P�����9��R#�U�R}\���5�����.?������ί�N�u�=n��"��z�����g�V������懧m�9�]�x �+�ߥ�3j~���Ee�����%_����[3s�"3" �g�+8����@��[D��KDsMTw��������T�Q�=������n)uBZ�"�9Z?��e��f��H8#�;�A�/�^�A(\�2 �%Z�C�g��n�ȁ�^A��r�/�%��%ν�Is�ZJ���~�%���>���p��C��5,�r�ww��K�pE><h�ۍ��[P(w(nOe9��u\���O�X���y��e����/pe�-ׄਫc��q�.��6�M��{f�e�4�@�K��pg��n��m^kռ�(+�]j|�T���UA/�m�z�:o�zC��.���_�|�tU������שE(5#��̗_�ݫ|�M���~��Y�O9����V�|{��E�'V�>�I~�~u���=5��:��Շx��Ϩ� ^�,ĵ���=%�(�Vʚ�dA&�zN"Qp�Z�6b����w�*��ϩ�ԬPq���#����7�鋭��^�P��.I�-�=��:}ꇑ�7��Za����� "7,�52fn�9��7�Tu��@��_R����*�5�͔���W���x�R�%տ������+�34q��S(P�]T�/���g�գ�+���-�b�h�*��,G�Ml2?��W!���+Dn��\��M;�B)-��Hnޫ� �W�߅��� �M��:�ۂO}W��s�T)�5��Z=�w)��l��_Ň�X O���&���$�L�"���>�l�g�~�!-�W�����ߣ������۾O������=n��Ot,��?����?�G����{*�g�������9R���+ʴmn#�����.d�6��� �S�a��@�JՌ��H�G�Z���y�A��-Zn����Rnn���tko�)�-Zг���R��A�/>E�V�$��dz��I���nX�^�qu}��k��i;h6�z <��OS�oS�����a�L!�������M/m�D�4��yJ�h-2U\��,(�-Z4�K̅��.�>c].�Xp���y���"��hyJ\�1���� ey��Լ�m�yCՂ�W�w�_)q��wQ�K)_��=R=1]����wn?�ee~�w���w������k�{�948`�!x�$�@7&$F����H��Af�J����A:�=�=�U�U���k���o�Q#��?P�|_~{������l�!)f������o��Y���~B�u��S��%<F}J�=G��f�� �`��2F��^J�'�ƿ�����? �|[���_ʁ�!��#ڟ����>c�o��m~��(�eR����Gty��S\�^�� XׂJF1C,���he��9Pt�;�['ZA��R:��;,;1U�u�����p�jE����,{3D�Ee��:�v M"�(v����sh�ץ�Io s�e�� �Fߠ�:�Nz�1�u�����̕@�����Io� S�<K��Y�;���ؐ����K�T{����6�MI��~�,��o @� ��0��:� R8��SrsèR@��pF�yw��#���ӄѐ�F�=�[b�Q�k���3о��-�Q��Qv7�u�uk���p�� �����xa�����[����ް����-�譿��o���I�xU�g×o``���u��7��s��� �f�/[�c��C���� ZM0�u��%+�9��ҫ��&�"� vFV���>(,G��V�tA�hV���2� c�v\.��ﻚm��1���P�A����JD���9Y/�0������1Q�6wh�#r �B�=���W��u�t��1�MP��O0�Nn�T�A��퐪z���:��$����릐 #DA� l�ĩ�Qv��5+HWI��)�\�Bl���3G�#z� Y(��rޢr�_��U(-����l��~(0��I~]�Iz�h-��U�0�@��?M{�B�R�Y�*���ճ�=������W���?�����y``���mx�(��|��>�i�/~�Jʕ�F����d�70�C\�M������|�Ƽ�4N��z'vs��Bz����l��0k�8G�� �\`��t�XO�;�x��G`{8s�� M���b�L�!/{�Uw��*J9K�>��Q�(�A}L�,�B����!���%�:���P�m�F��3vE��ݹ�q V�#��d�1y kG��u�9����ʼ79����{��i,_ �A� el0���\�� � �k�1�[\�h��lE�=G������ f[��)��/3�G�o�E/��Wz1��@߀f�>d v�� y��hz�w���q��?��'_����M���쁁!���N�y�W_d��Pv�ކu1h���rA��2��!a�r�b��ʐn ��4h�)]��5���P��.I��d��������]Ay�0#rN6!����� �A>*Tf}������Y��6���qI��臫"�.�Z�M���Eк���r3���s�?�j��]�cH;\W�l�|�����H|�����q��9��x�T<.p�?FuK��д@��� e}FJ@�,��9'ƫN��;B=B^����#Ю`�E��M�er�Tr���>���St�ʚ�N{1�� avA�d���C���}�2~����ïI��v��!=�Ol�֯��_v?x��>H�����BF�4!{$j�K;�4�c$JY�![6Ú�j��}J(�lk� �%rH(�����Ȫ-�$<m�,!�%gx\��v�H ���V�� �ҝ��H�vBӶ-8�{�4Ś@Lwim���M��1:�t��Q�G�>V%��Pa�2�^GtKA��I�bv��c��av��T�@"]����&���4TxhQ�At�ƀ�o�e0��V�1 �y��B#�OhZ�sᐒd�fC��Wm�}�X��W(Vᢿ5�;Y���j�w�?���>�%������_���yUv_�x���G����{7��wi�t�#���p��=�X�L����{k [�ϡ� M���~�K'd؞�i���lh��k1���+��o��~\ ���nG� aԀ��Ihۂ���qAi��o z��ϠvLю��:������a㧠١1���\�c��|I����EJ�zq��Ԯ����C�'�amB= 'h]�e�5 �D�_�y^�THaK.K"�4�ғ��9� ķ@�)��y��S��0��u?@i��)� qٹ#s��O}1�}������×```�_�C���ҋ�ɗ?N��'E60�<z9ī�بo�r��r�����C@:�( ��´��N�`��A�pG��r dT��|�iM��a��0_�8n��cB8�<ĎXv��q�(��aW����_���Bx�����;��Sp%�Ӷ��F���븞�-1!�а 7��c4l@����� ���po�q�1?@�M�5:.��io:K�O��F�0�~���!TdQ�&�'P������܉��Y���ka��?���a�O������WB�}�7�|;����v���țOw�����(�o�bvN��k+�0��Vc�@�� ,c� �z�Tl���M��x��R��Xb�%T�܄��0]�a��!P�#Z�O�eIVGڈŶ�i[GvC�Bi����Hs(7�["��@Vh������O >@�fN���.o^>��l�#�_An�>�Z �NP��(� ��3$$��� 1�>FC��V�����c��A�@��0�,��ڱ�_���w��b��_��|�sL��d�����CH�?�����o���˯}����D��,�7��-�^��<B\�>9Z)�`%����ϴ�"�.+�*J�*�_u7}����v��TƓ�tY� �e���V��O�\%�(�.�.��B �z8$��� �.��$������j�8,�t$�[�cLB�#�Bt��T?C��c�뾿[�@x~�=�Ghz��*r1"k�s,� �=H-t�(�1v���05w<�v�0�з�,���kF���݆�����N>������6��-�_�(���t�Qɏ^2O��Q���6�٠i�ƪ��, ���XM{�&g$�y��"�t�)i4q<� ^�k��Z�-�q�u�� E��i���8R,�z�r�&��K�� �M?P�֝�io�-!*J�u��X�#PC����-�t�X)jS�t˟@��*�Bi��z����(����X���5���1D�� q���o��-^�z�|������Bz�r��^��?�����_���5k��|ɯ�S�[�u�}�[j-�P<���$�#�s� �:�a��uL�P���m�'�� %�a� Z��=B�XomRw��n��#�Ї%�6� 8��Ļ�;���r@yӟa��z�v+LW���5�*�-��K~E��k�熾������zo����� ��w���oP�5ҳwe��ץV�����xK��x�*�n��kc�c�~�y��U�g���]�_��-#A�h�6����] � �L.{x�Գ�vd4mQ*��P&h�Vh�a/�+�Gd� �Bc �B���o��P��φi�K�p�T��V���w��2�`�h}�2ل�G6z�~H��R�����!�~���75u���v�Y��}��j^)���x����+�,Ǡo<m�u�I������'��e�(L7��L��w��RT15r,� �C��H��Vj�z���"�l%��)��$T-r㡥��at�!aq!�8=\Q�>Ɂ���_ �6��B;#% ����IEND�B`���(uuay)pixbufs/��^�������Z���7��������������1�������background.jpg���V�����������JFIF��H�H�����Created with The GIMP���C� $.' ",#(7),01444'9=82<.342���C 2!!22222222222222222222222222222222222222222222222222�����"��������������������8��!1AQ"a2q�#B�R�3��r���b��C��������������������������������1�����?���T[C �GzF��h ʎ�^��<M�i��p�IЯ;�椑!w�{رP�I���[�l���G�"!t�I<�T$�ߚY>�h��|�l��F�T�{��(�v�4�TQ��|Q �¡KH��yl�m�Uw$���"G�4��d�vEL� C1���H����2;�ށ�Y $�=���3Y�4��p����V�M��'�UD�kYR#���B@X�㘧�X"A�8�$�rB���� K���иd��֩�1`N���p˛�MTDL��~)��oϊ%�%�FQ"�-�ó��<���P �\���(��@E/�z��g[}�ST���������-��Ɍ���p��D�*���$��E��V�$~�7U �`�{�U-yZ�Tꍻ��k� :ԃD!7@`5�{~(1`v��ֲ0���ݤ}�N�[��ͰP�b"7"���1��� ��rf�V���$O���o~�P�e�5'�H��q����Tf��ڠ������XE�g���U27�?��)�7��f�W�]ۉ?���mos9���� �hb$��C��YQ����G���-3�]��:�sRH��;ս�X�f$�}�Y�ڶB[P���r$�G� N���,�T4hx>i���FE�R*@=�sb;k�|�*(�O>(���P���$S� ��a<�t�6��*��D�S �ߚT��@;"��\�!���S@E���@�G����d�Ս�q��`s�@@�ݫJ&��ƪ�~���)��E! ,X��S��, ̉Su�!`�TɅ%�B{R�\2FDkT��'DQ�l�e��&� �&E�w?��T������(�L��a�ق�ME!G*@u&c�e�mT,H�恀~(E��9#Q@ f�l��=��! �Ȭ��-�#(�2�!I�@�� �V0� ����n` 9��ɍ� ��Ѣ��[��{K�H���B��O�K���[�p+���[`WE�-��Y- H�[�ުb���DI;&�Q��EQ�(�t钺��9��q�ɨ�C*�W�s�Ҫ"�c7�,D������@���@r�Lh �@] L�Q�X���dP��,<�����P ��B&� Z ��P& �<���c�1#S��?S�$�Tlf4c�'ЅTnH�rŦ8�)�D �sF%x"Gs����q����� �c���5�*���0#t��r?�b�3*���J����k� �n��'��{B��%��*�}�FG��6"���H����,@-�8��F�<R�ym V0�3۰�C\�D[���2P��5�{��Q饦��{��4����#�"j��9�w.-�g��r<�ʹt�z����KmB�0���H���A�l=v�N.Y��,�%�c�\�w�==�Vf� ��Hr�Q2f8�[v�Bā̞h�$YS�"5��n��1��Sܼ�Q܊�o"��2��*��4m��!c Ь������l�<������� �y��� ��!\�D����n%�W�0Ŷt^�rٸ�Ւ�ԉ%���&*,�D��jE�UH��GN�+�>��N<��2�UpX�<M*� 3y��L�[m���ld,Tƀ��d���i�/q��E !�����L�QK���@� R`�i���E�Q�b`�y��?��&<P�5=�*C�=�L �UF�cF<�}UA��ȂX���U����qS����w�z.$̝D� ;� ��T� d|v�Y�XA'�asAX�y4��L��ֹ~���!�|S�P�Y��TdA����>�K�&��v^*�����=�F��se�{���]��t߭�e�-胯�We���q�M�@��~�t�{�����u-��ҳ��qm����A��j�X��&O�5�@W ڝy����p*ʾ;�hrI =�C!���9��g(ǚ���3X:4���6P�c���h46�P�1:��H�d{ ED�n���H������:�X�E�; P�n-�� ��O����Zx���B�2Ց1��#����>H�����1Hӏ���(3b]�0�H��:T�ɽԶ(L��#ɥ���Z��ù��a�{im-ZKP�m?��.u�c��ʁ��RK��T-[�n�pX3 �k�-�9\x��C�Sn�D�S��ڣNr�Q��(�~(`K ���UuQv��)�aseT�I�2)e��+��a�{$�W>;U ���ߎi�+�P��꣰t�=� :{p8��UL���Z*k�$M�y� N�_q����&�^MF��y:N�嶽������Ř0P���tUBu�H=��Y�w�z�̈%��)�P�z�p<A�gyw��L��@��(w�S@0���ځd�aL����`��-2jwZ�����@� q�OyBYg/�Q��?¬�]/�P��x�����t�ҵ͖-�#�Iw���~���Է���]���Oh=�97�k���m�\\}�,j*wGQԶ�[D?J��W5ŷlJ��]��ck��>X�!\\'jt9�W�\�*��i��$����'�� W���Ohl/K{@�`��d~h`�@2�y�)��K,-���UB����} ��)�� c梳�gd��b�DH�)B�����@M>G�Yh ��-剃<���^�e{�Zg�Mm�-�HU��'�Pfh �P����#��9��g��; �'G�H����؊��e]���V�.�_���%Dk����T��o��b��vh:��`� ��c�Ms\`Ph99�� ~ᕰ@=����A[%�Ǹ:�*)��>�cE��lF܍�����H2�'�4�l��<�:+^%m9ƷL�t�U@����QI����J)����� ���r?��=���{.� ��?[�����p��9�-�7��Mmn:�b�]�.ۻ�Y�!�wU�� �˃�<������]��z�Fڤ�*�2'B���2cn����Rދ9b7��ⅲ}���H��=�sx�s�@m*-�W[;��1 ���~���p��� *�Ή�h���X�悳�75,�4�$��x5F���������Pg11��4��1ދLS����.��:����> Pˤvu9"t4Od��|ċi������,�H��"��=��1K��2R{ο�Xu�2�O��Ğ>k)!8�w�TPdyb`�5�����^���S[r�q�gg����4�[CkԎ2���v�ڨ�+dL�� FKb*�=�v*�YXD ��I~��@�A��}R����V��٠��m�Ȃ�b���5�q�U@}����5��V���cځl�lK��x�����@U��@-�r7'�g$h?5 ˘���S���\z����x�x���s�3���U��hQDe&vf�1(H�C��l6Si�@8�("��o[�캤�Kx�Un��[Sy�`椷�K=5���%�pv�h�n�Udh�B �Ts�Z�+'.40L�c���wGq�j����ȝ �,�nط�[����>ª���b�uA��ඡ@�&;P"���1P@��*�"I<����,CL~��G����uIn��k���F���-����S)wü ��zf�ڵ�Zv ?W����0�X�b��}؏h�I�KV���Г�6>�dO��l�@#��Ku�h�?{�HDH #���E@*�K 11A��s� �����Y�� v,���V��m��P� �����f�l(��]�*�?o�\[}:� P�;�-�����KK�A�?�;��eF�Iր�Im�RAPǽrݫC�I~������5p�Y�e��K�}�g�@ v � �ӕB�$�w��!| ��e�� r1���S����1v�3�(* �#�=���b'KS�Ir�N���K�y��T�n�ތ�fU"u:��~(��[�H�/��RI2I3�17)�ڏ��b�Oo��`L��{�(�i3�tkJ�+�;�!Ҵ��q���*!yـL�B�+��c�ڟ#&�c*&Р����GQ@�B����'��Q�a�0�=�I6t&�d� �䊨,�nط�[����>ª���b�uA��ඡ@�&;TR*�I����$���)}2�1d��y��~���T��>6�:�Tkx0���`��2�|;� ~��n�ͫ]5�`��p>jL�n����&*)�݈��D�T�o�� 0+0#c�D��H6̴9��P̶���aT�@D� �9� �T�x��[�;b��N���e���Jb�`v�lU2�~Oj�n��b�q��۲�3�1F�5ŷӮ��ð�^�� �j�����A��s�z�FThĝh ���E${� -ڴ?���`�q?�Q� ��6^��'��{�b ���9T,��NZ�qoj����X��ֹ��`�m����< v!m�+�;�z�m�w$���UX��Ș�R[{� i���.9�Z:��n��a��p�+���q���#K�G���d�x�^=EИT�\����q������z{N����xa��ڼ�u�ze6Ŷ�q֦��� �rO��*�q���le5��\���(UQ��u��|Q���K\r} �A�(8������3,��g[�;��G�ޑW��ӑ�8��=�=��:�M$����GP��)v�(�@s�����W�S�G��$�=�C1�ԁ$��fi_��U�M��m���V��D��Ӻgp-�dDk��5�' A��(=����Tq�Y���$ַm����3�����U��fv�"�q�S���*`��B�ݏ?����Oy�ZP=�c�&���g3��h�� �LE�Ŏ�,��s��1�kY� �N�(6*<�� 7�X sO���>ɓ�'�A-�� �EIv o�+ D�L�bk�7S 3�LA�QL�W�itτ����!>aI��ڃ*�����=�T5�[�?��K����(�[��f{�P�)9���?j���ֹ��`�m����< v!m�+�;�z�m�w$���U�)����%�������[`�5������ȗ b�z_{���4��x���N�����] ��O��m�z����hy�W����W����]g�Sl[i'jj*^� �w$���)�|��G�k�0�Pc\P��͜}Q��U�h0']η��=�\@T�� G�42����;��A�2Ɍ�u���HKaTx�q�M9�P���܃ڭc���J <l�QTu�m)�D=��Y�˥p�?�y�bI3�t3�]HOqA�-�f��P��.��x�i dO�;�w��DF��#\�r�ޢ�����ޡԨ{J�81�{��'���k*CNF ��ξ�c�ܚ��A$�F��5��U��F����p�X�7�H�����f���\6�v�Kq>)��A ��m>����P f� �{�(��^�>��PH�>)L��<����9ղX�A�Y��E_V��I�T�T̘��biQQ=��z���|,��2P��*�P\dR[����y$N��⢂(Y$�q�v��E-?6�n\�8���}^��w�o�m�c���Ѵ��{y1<��M;���_��K�L�5�P�q��`���5_�?���[=Kt�t2���D ��E�H/��H�UIpI9�h,�s�h���O$ Fd��储���iB��Kez��C�)l/��'~)S�|��^a��?��_Af�n���^'�.���Qq�%�\T����2n�{�8�Wu���2B�|Wu�t"��S�w��1I�T�DF��b�'��S�ڠc1.f��x&w1@'���O`)�Ƃ�#��$d���ij�Oon襋E����٥�F;$�I��1_vY�<�E8d��Go�#31>ո�u��=�O4����ޡԨ{J�81�{��'���k*CNF ��ξ�c�ܚ��A$�F��5��U��F����p�X�7�H�����f���\6�v�Kq>)��A ��m>����P f� �{�(��^�>��PH�>)L��<����9ղX�A�Y��E_V��I�T�T̘��biQQ=��z���|,��2P��*�P\dR[����y$N��⢂(Y$�q�v��E-?6�n\�8���}^��w�o�m�c���Ѵ��{y1<��M;���_��K�L�5�P�q��`���5_�?���[=Kt�t2���D ��E�H/��H�UP�����w-��P!�QC��ʢ���f3T���@ʎ�!W��wH#d+]c�@|�\� !Gj[��S��A����'#�D�~�P/�(� �ɥ�����H�;�P�A�F�`Z vyjp�l�|ВN�)I�v�6�cm:Z`B��&Zy���t/���?w拐Yic�&cUq?���<��)mۋ��6�����1Qd%N4gL)��c�h�u g�P�:~���2xd�F�A{�Qw�|W�$����5�g���E3��� � �^�#�F�&Y��ZG�V�'�]�4:� *��n�Ւ��7s&�����-��+��{Vo]{���"c���z��tjFڿU��>�\���Et�on��s�E���Z�����*?�UG���lb��R��.w :��W%���D&�1Q{�z����MH��w�w�n8^Z��� l��)�$����5������� �Z|S�?��4�!-+���V��( \�ĉ�1Y%�w�i�-��A���LU]�ax��X�-���+�r}6UO�j�� ���R�Vi��a*�J�ݲ�OrP%� Yై�5@팪b;H@2\" ��e�(PH�zWp"ډ1��t8;�,�++\�c5O�4���t�6B��:4�U�rv����(qU<�-� �r>;Q�M�'������<�_I�Ϩ�������l���g����(��� $��ncof6ӥ���*�e����B��^��~h���P:f5Qq����S�����ݸ�.3l ��QBT�sFt f9�WP�y�E�k���:�'�&Omt��z��y�L��X�z��S>�N������;�iRe��U�q/En�~�ہ�@����үQ����Y-qL3q�2k�/�\��Aw�f���q�&8�9�3,H���R��g�,4�UWP\��P@B2b`���KF_o��im�P�/к���#g�A�USX�<�Es9'lR3��) ?{xȀ��mƧE�6#�7XZ.���V���@���`'#�jn���j�i��:&���,�/��@~�шP�-�d�O4�����4�h#z�}��A�R�c� ��VP�$��@ĒG�i�� �X���M��0VGe���G����g�+�u b��00��y�Д��kpu'c�Eܐ�n� �=��v�́�dm�'�M�̖2<�\!-���_NB+� ��&����/e��'`+�&5��f"�� *T���[i��;�=�C�HT�s�7qbX[>�ˀ<�8fŲI�&g�j��Gڎ0YV ����U���P{��2a�汶2y ��5T[]?��L�L��3��$����r����; j95P��P�X2�������Z��3q��'�PҰ�i��R/�{�{@Ы@H���9�l*� �@��T��fX� ��!e)��ɢ2ϘX�i������@���*d��1YP��0,�����>�f_�u��$#F��`����y���rN>ؤg%�R~��)�U 2ۍN�PlG n��2,]���V!���)R�.NG~� �G:��ɊtLk�Y�_$����*��[v��$�h a�=�i��F�.��������� @'����02IcX��$�ӥ�@��?j�5�`���AN��y�����W���Ǹ`a��-�)�����N�⋹!�f{M�#�x�۞Oڛ�,dy��B[9?4���WrA�#�T#�����[��<�I,���ֲ�&�k]��@����o��56b`l�zir�AT��" Wm ��)eT�{ ��]����P. D��� �ߵ�Y`ix� ���kB�h�H�H����a�H��BC.91<�)�"<Oz'lZ �b�3>M*�n@�)��Ҥ���:I�����vs�)��P'F�b�Φ�˾���D�.8�Խ���hD��T)���O�HKA����Ɲ���L|Q���=��*i�0�vMf���[������4����" ��Eb�qT,��,x��b!�x�[a�<�D2'�(#��%�3��eZݫa�S'D�̙�4f���}ǹ?��%����u�q��ٝS\Ȑ���4���)��j���S����J�B���$�~ kL=b#@�H��9";�$�m��7���w+�"������کa�����<��{UC2~iY��.O������/�m�ݐ�~�+���� y��p�QqN�)�ٶ��U���0SW����%܄ɀ�'�QXH���zGf|m'���4RK62B�5��E{�I���aU�[k�����وe��=�� P���%]��@j(��ESxI삋�v�J�@�|��+L6�~� 1e���6( � � " owh<恇�I#� ����@���,@�=蝰Yh'�����4��e���*�J����$�j+_s����Tt{�@���:��.��Q����R�nn��>�P��;%?�!-RO��v�'�1�G0�����Y���/i�5��nF�g��#G�_ �@'��zk�����2V���6��;��_�@�a�,kĚ/̷Qw�7�&��Z� FFPA������b�-��j�4@��<S���EL�tl�uA��L��si�&y�g{,΅Tf[h3����y�AC}P8�<Q��vǝV��V��@�E)ar�d}���5�D���1��%�tLm����S��UEz���Ţ��g0&�l�6P�@��`�ѡ۟���(���S2H��/��z�܋�a�S����k-i�r�8 TV�Bځɚ{��zc�{���,6�M��H��E���x��P\.H�E:��|�0@�27KP'�2v�������{ճ|�g�h#��ˉh3$j�&�L9��&���I �����L���zP�� n����Nl�@@4w�6ǓH����L� �� �3U�s#=��su-�vl��X��P�"��#���f0�H�;���zt鬄����y5a�@g=��L���6q�[s�OڧZཆ��ݴ���!Chy�z^��29HPݣ�2�#���E��t�Ț!qg_�2d��3��I��Ћ�����c7``�-�鮇��Ҩ�Xv��ۯ��@\DB%~M]�P��h�2�EE�����.k�X�UA3s?5���1�4�I�@��L��=2�=ѳ��#m3�ͦ�慜-�/:Q�m����~�� �@���G�q�uZwQZ{����ˍ��'�4��W�{ԗ���1����N��U�_�{�z{�O�����p�=C��?Sq�{F�n|�@��Gl]L�#�T�ӭ�7r.��N�*+�����f��t)Q[-j&i�M�I�+�����4[�"�1�_)�tApH�#���`���L�-@���RE��S6;�L������YmHb9"(���y�ʶ�v5����b�vɣ�k:���oK������^��(\�S�Z�5R�+z1�e�H$�(_[�m��p���ԫ���QU˄%�c@td]��2ם�����W+Y��qU{�ޙPl,k�6M` $���q��P`Is�"��r�k�o������}@��z�'�dZ�|f~j�ii.u���M�L��5酏L ��^x�>b;��^�f��1V�jj�l�^^� ~��s��E�GӴ�0���R�:��q�:�W�����L¬��2 �X7�fA�jı8�v���b��n����ԅ�!�5�3��ж���"�<�RT�� �Umo6c��ڵ��7o�V`��|��d�f"�džM�J9 �Ub9��=�-r֡�)�`)0&55��<5���@]�D�=�kp��l?� -rZ��D��RPpuUM�#��`�l���s���k� m��7�ʆk����V@5��HΪ1�<����$P"��LGv�(�Iv��,�<�� 2+9l�ڊ>�p�����@WC)"�Kh�����w�U��Ik,��1���s��e[P; ��K��K��;d�� 5�U��7��L[NA��^�.L)��G��i����2�$p/����A����U�E�(���ñ�:2.���k���v�R����f������L�6��&��I�X8���0$�ʑWE�۷�Qvy[i����Q�Ӳ-[>3?5Q4��:�v�&�&A|���Ǧ�O��<d1��u/T3Fl�N55qԶF//s?Q���ǣ��{�yo�uC�t+��sCrw��aVB���@\����� �۵bX� `;T�]1pp7AF�?�jB���k��]�[UvȀxM+IbA��.��zk�I$��N�U�*�w1$�ދ���P�x�*�бh[���ʨ����=M����P$���t�SӶn�8���7Yԋ�u���Q�5����xS��.9��ʬ�I933��m�{n�U���<�X!k�-�N�SJ"����Z۳�è� U@E�ٰĘ���d~ X2vkd��Xk����Ee8.���h<�4-�Sq����M�|,�����m��UL�� �S%˶��s$�W����$��I��N����Qb<��g)�� ��'0inam@v��z �,�I8�8���vZE��;�A��-�"g敭��T(�����x2���, �������9�i�پ5���me"ک�&(�$�ܑ@E�,�1 2�)%�v����P͍�$���P�����}@�Wd����|G�X<)<��O��@eT�l�T%����f�pҫ�H+���U�N���#_z|����K���HhC⢕Ifo�G�����m�b�� V�ă�][2����H�&&����U��bI���ԡ���UG�bзeU-�P#3��z��e�-��Ic�V鮧�l�rq��n����~E��k�ob���\sm �Y��rff� �d ��>�5�y"�B�0[ĝ���Egk�P�����a�1�+{��� �d���s ��i�����p]�GT�y�>h[L��i���(�~�Y'�Tq���588*��4H>�K�mq@�I��3?PI���i�8�Qd���y�D�S"*+��N"`���ڀ$����YĒq$qYR촋k�w����n�x �NLDOsA*\��'��)�Bv��QJ��}(�h�B/;$�@ؖh��l@�$�a@@UB�<��h�T@����@��P(>A����k-솝���"�c�(�arF����B���{&�rV�:�QHR�n�(�2�N���5�飻!Mh@�q�A����D�1}o�` ��������4$R��]N���d�n>*_��=���'��@J;�gm7�53i�k�Ǔ�������iDYL�fO}TS�n�B!N���к��!bL�;U�wp�K�i�P�����h��j`c��hT�A �r��A�>�&Ic�j��}GC�@�#���7sN�� s���^�bm��#gt��1��O4����T�aʏ$UC�V䝘�nР�(9:�8��Q�.���oL�s�����!�Ar#u�%d���V��wOg�7�����ٮ{6���L�Y�()�.ZN����4��&����>*a��� ��梪���O4 +��@Y?��]��#H��b�&!'��F��n�x �NLDOsA*\��'��)�Bv��QJ��}(�h�B/;$�@ؖh��l@�$�a@@UB�<��h�T@����@��P(>A����k-솝���"�c�(�arF����B���{&�rV�:�QHR�n�(�2�N���5�飻!Mh@�q�A����D�1}o�` ��������4$R��]N���d�n>*_��=���'��@J;�gm7�53i�k�Ǔ�������iDYL�fO}TS�n�B!N���к��!bL�;U�wp�K�i�P��PKr@�����:��p��f}ܓM���)�w�A;�m��-�#tm#(w{xp o\��ޟ����fw'@�*�S6��[�����ޙ����Y\���E(�U��TJ�2�D�i�����46��{UF����V �ʼn��f�*:I��HM�1�gGu�5l"���FB����0�Ŷ8�&�Gb�PJj&fh��vb��p5�!*���1���\���C�R}G$�t<R���8���Rw�Pvcb���"���i����T�j���%�cT�@1�H-bCxm�+q��9��f����2|�g�b���RhX p�Yⰸ.g���T0�0N�L�s�$A��C؈05��-�ğ���x���Qu�E��f�{�Yn3�f�](��Р�ӧ�_���K6�Ð"MTYz+�Ǧ�K�h�LA���w���d��"�ɮ�q��h�{�v�Qn�Am��|���ڢ���O1��hf-�0�?�V���mq���T�ڸV�t�\��T��Nɉ���<w�l���p)+�@%T rE_��$ 8����̡WlVg��4ت���4���*"�7F�2�w��@�a&�˭-��@�MP)�vgrt�3`H ���H]l��߯�i�e���TR�aUQ���5A�3/�O&�8�HȃCm!@��T`���`��X�>fi�� �d��4��c�ftwQMsV�)9�d*��N�c [c�M2l4v ��4��ff�H`�'f)��\R���n���0=�y4='�rI'C�+��c�jq�'z��'f6'��>")[�;���i[eN�� "-�y1bF����T�T�3DA&h��}��CB(�aR5�������k�V�`���~�$�$p?4PY�̃����f��P�T��!��Ʃ`"�>hYsm4I��Od�I�X���?zP$ � �(�ղ@��?�+*�Ǚ��Q2�i~�4V�.C\=�D*#@1�X��;k"�2mРF̬�@S}���SNŷ1�ʠP�"a@�;�a������.���M�*���b��?�ZկF�%}��d����ɬ�TO �������H*���, !�j�����'S��L��>���#ǓAm��E��QZi�K*�O>�!mL �D�l(���S�:קҪ����ɮ�v�Mr?���y�u�����O�&�uC�7�a��A�z�t�-x�������dž�����2-��4M����%3yk��V��}�DZ��If �9KjGj�q�p��8�xJ)�L��Auv�"~��yn(����#{��e*P�*O�� �4~�X��k�� �Z������`����+h�jS�B?P`8� �,�fA�����Ld(A�fc��rcT�H�4,��� $�觲O$��I����(��f�cj� �L��Ic��j(��b4�H�����!�݀�� Ѭ[L��5�I6�hP#fVw�)����S��bۈ��YeP(|���@��LD�\|z��Y�QJ�&��P�D±f�ڭjףh����Hvv�q��o�'��QmD�9�a#q�+*;��z��4Ŧp��9'B�椑!w�{رP�I���[�l���G�"!t�I<�T$�ߚY>�h��|�l��F�T�{��(�v�4�TQ��|Q �¡KH��yl�m�Uw$���"G�4��d�vEL� C1���H����2;�ށ�Y $�=���3Y�4��p����V�M��'�UD�kYR#���B@X�㘧�X"A�8�$�rB���� K���иd��֩�1`N���p˛�MTDL��~)��oϊ%�%�FQ"�-�ó��<���P �\���(��@E/�z��g[}�ST���������-��Ɍ���p��D�*���$��E��V�$~�7U �`�{�U-yZ�Tꍻ��k� :ԃD!7@`5�{~(1`v��ֲ0���ݤ}�N�[��ͰP�b"7"���1��� ��rf�V���$O���o~�P�e�5'�H��q����Tf��ڠ������XE�g���U27�?��)�7��f�W�]ۉ?���mos9���� �hb$��C��YQ����G���-3�]��:�sRH��;ս�X�f$�}�Y�ڶB[P���r$�G� N���,�T4hx>i���FE�R*@=�sb;k�|�*(�O>(���P���$S� ��a<�t�6��*��D�S �ߚT��@;"��\�!���S@E���@�G����d�Ս�q��`s�@@�ݫJ&��ƪ�~���)��E! ,X��S��, ̉Su�!`�TɅ%�B{R�\2FDkT��'DQ�l�e��&� �&E�w?��T������(�L��a�ق�ME!G*@u&c�e�mT,H�恀~(E��9#Q@ f�l��=��! �Ȭ��-�#(�2�!I�@�� �V0� ����n` 9��ɍ� ��Ѣ��[��{K�H���B��O�K���[�p+���[`WE�-��Y- H�[�ުb���DI;&�Q��EQ�(�t钺��9��q�ɨ�C*�W�s�Ҫ"�c7�,D������@���@r�Lh �@] L�Q�X���dP��,<�����P ��B&� Z ��P& �<���c�1#S��?S�$�Tlf4c�'ЅTnH�rŦ8�)�D �sF%x"Gs����q����� �c���5�*���0#t��r?�b�3*���J����k� �n��'��{B��%��*�}�FG��6"���H����,@-�8��F�<R�ym V0�3۰�C\�D[���2P��5�{��Q饦��{��4����#�"j��9�w.-�g��r<�ʹt�z����KmB�0���H���A�l=v�N.Y��,�%�c�\�w�==�Vf� ��Hr�Q2f8�[v�Bā̞h�$YS�"5��n��1��Sܼ�Q܊�o"��2��*��4m��!c Ь������l�<������� �y��� ��!\�D����n%�W�0Ŷt^�rٸ�Ւ�ԉ%���&*,�D��jE�UH��GN�+�>��N<��2�UpX�<M*� 3y��L�[m���ld,Tƀ��d���i�/q��E !�����L�QK���@� R`�i���E�Q�b`�y��?��&<P�5=�*C�=�L �UF�cF<�}UA��ȂX���U����qS����w�z.$̝D� ;� ��T� d|v�Y�XA'�asAX�y4��L��ֹ~���!�|S�P�Y��TdA����>�K�&��v^*�����=�F��se�{���]��t߭�e�-胯�We���q�M�@��~�t�{�����u-��ҳ��qm����A��j�X��&O�5�@W ڝy����p*ʾ;�hrI =�C!���9��g(ǚ���3X:4���6P�c���h46�P�1:��H�d{ ED�n���H������:�X�E�; P�n-�� ��O����Zx���B�2Ց1��#����>H�����1Hӏ���(3b]�0�H��:T�ɽԶ(L��#ɥ���Z��ù��a�{im-ZKP�m?��.u�c��ʁ��RK��T-[�n�pX3 �k�-�9\x��C�Sn�D�S��ڣNr�Q��(�~(`K ���UuQv��)�aseT�I�2)e��+��a�{$�W>;U ���ߎi�+�P��꣰t�=� :{p8��UL���Z*k�$M�y� N�_q����&�^MF��y:N�嶽������Ř0P���tUBu�H=��Y�w�z�̈%��)�P�z�p<A�gyw��L��@��(w�S@0���ځd�aL����`��-2jwZ�����@� q�OyBYg/�Q��?¬�]/�P��x�����t�ҵ͖-�#�Iw���~���Է���]���Oh=�97�k���m�\\}�,j*wGQԶ�[D?J��W5ŷlJ��]��ck��>X�!\\'jt9�W�\�*��i��$����'�� W���Ohl/K{@�`��d~h`�@2�y�)��K,-���UB����} ��)�� c梳�gd��b�DH�)B�����@M>G�Yh ��-剃<���^�e{�Zg�Mm�-�HU��'�Pfh �P����#��9��g��; �'G�H����؊��e]���V�.�_���%Dk����T��o��b��vh:��`� ��c�Ms\`Ph99�� ~ᕰ@=����A[%�Ǹ:�*)��>�cE��lF܍�����H2�'�4�l��<�:+^%m9ƷL�t�U@����QI����J)����� ���r?��=���{.� ��?[�����p��9�-�7��Mmn:�b�]�.ۻ�Y�!�wU�� �˃�<������]��z�Fڤ�*�2'B���2cn����Rދ9b7��ⅲ}���H��=�sx�s�@m*-�W[;��1 ���~���p��� *�Ή�h���X�悳�75,�4�$��x5F���������Pg11��4��1ދLS����.��:����> Pˤvu9"t4Od��|ċi������,�H��"��=��1K��2R{ο�Xu�2�O��Ğ>k)!8�w�TPdyb`�5�����^���S[r�q�gg����4�[CkԎ2���v�ڨ�+dL�� FKb*�=�v*�YXD ��I~��@�A��}R����V��٠��m�Ȃ�b���5�q�U@}����5��V���cځl�lK��x�����@U��@-�r7'�g$h?5 ˘���S���\z����x�x���s�3���U��hQDe&vf�1(H�C��l6Si�@8�("��o[�캤�Kx�Un��[Sy�`椷�K=5���%�pv�h�n�Udh�B �Ts�Z�+'.40L�c���wGq�j����ȝ �,�nط�[����>ª���b�uA��ඡ@�&;P"���1P@��*�"I<����,CL~��G����uIn��k���F���-����S)wü ��zf�ڵ�Zv ?W����0�X�b��}؏h�I�KV���Г�6>�dO��l�@#��Ku�h�?{�HDH #���E@*�K 11A��s� �����Y�� v,���V��m��P� �����f�l(��]�*�?o�\[}:� P�;�-�����KK�A�?�;��eF�Iր�Im�RAPǽrݫC�I~������5p�Y�e��K�}�g�@ v � �ӕB�$�w��!| ��e�� r1���S����1v�3�(* �#�=���b'KS�Ir�N���K�y��T�n�ތ�fU"u:��~(��[�H�/��RI2I3�17)�ڏ��b�Oo��`L��{�(�i3�tkJ�+�;�!Ҵ��q���*!yـL�B�+��c�ڟ#&�c*&Р����GQ@�B����'��Q�a�0�=�I6t&�d� �䊨,�nط�[����>ª���b�uA��ඡ@�&;TR*�I����$���)}2�1d��y��~���T��>6�:�Tkx0���`��2�|;� ~��n�ͫ]5�`��p>jL�n����&*)�݈��D�T�o�� 0+0#c�D��H6̴9��P̶���aT�@D� �9� �T�x��[�;b��N���e���Jb�`v�lU2�~Oj�n��b�q��۲�3�1F�5ŷӮ��ð�^�� �j�����A��s�z�FThĝh ���E${� -ڴ?���`�q?�Q� ��6^��'��{�b ���9T,��NZ�qoj����X��ֹ��`�m����< v!m�+�;�z�m�w$���UX��Ș�R[{� i���.9�Z:��n��a��p�+���q���#K�G���d�x�^=EИT�\����q������z{N����xa��ڼ�u�ze6Ŷ�q֦��� �rO��*�q���le5��\���(UQ��u��|Q���K\r} �A�(8������3,��g[�;��G�ޑW��ӑ�8��=�=��:�M$����GP��)v�(�@s�����W�S�G��$�=�C1�ԁ$��fi_��U�M��m���V��D��Ӻgp-�dDk��5�' A��(=����Tq�Y���$ַm����3�����U��fv�"�q�S���*`��B�ݏ?����Oy�ZP=�c�&���g3��h�� �LE�Ŏ�,��s��1�kY� �N�(6*<�� 7�X sO���>ɓ�'�A-�� �EIv o�+ D�L�bk�7S 3�LA�QL�W�itτ����!>aI��ڃ*�����=�T5�[�?��K����(�[��f{�P�)9���?j���ֹ��`�m����< v!m�+�;�z�m�w$���U�)����%�������[`�5������ȗ b�z_{���4��x���N�����] ��O��m�z����hy�W����W����]g�Sl[i'jj*^� �w$���)�|��G�k�0�Pc\P��͜}Q��U�h0']η��=�\@T�� G�42����;��A�2Ɍ�u���HKaTx�q�M9�P���܃ڭc���J <l�QTu�m)�D=��Y�˥p�?�y�bI3�t3�]HOqA�-�f��P��.��x�i dO�;�w��DF��#\�r�ޢ�����ޡԨ{J�81�{��'���k*CNF ��ξ�c�ܚ��A$�F��5��U��F����p�X�7�H�����f���\6�v�Kq>)��A ��m>����P f� �{�(��^�>��PH�>)L��<����9ղX�A�Y��E_V��I�T�T̘��biQQ=��z���|,��2P��*�P\dR[����y$N��⢂(Y$�q�v��E-?6�n\�8���}^��w�o�m�c���Ѵ��{y1<��M;���_��K�L�5�P�q��`���5_�?���[=Kt�t2���D ��E�H/��H�UIpI9�h,�s�h���O$ Fd��储���iB��Kez��C�)l/��'~)S�|��^a��?��_Af�n���^'�.���Qq�%�\T����2n�{�8�Wu���2B�|Wu�t"��S�w��1I�T�DF��b�'��S�ڠc1.f��x&w1@'���O`)�Ƃ�#��$d���ij�Oon襋E����٥�F;$�I��1_vY�<�E8d��Go�#31>ո�u��=�O4����ޡԨ{J�81�{��'���k*CNF ��ξ�c�ܚ��A$�F��5��U��F����p�X�7�H�����f���\6�v�Kq>)��A ��m>����P f� �{�(��^�>��PH�>)L��<����9ղX�A�Y��E_V��I�T�T̘��biQQ=��z���|,��2P��*�P\dR[����y$N��⢂(Y$�q�v��E-?6�n\�8���}^��w�o�m�c���Ѵ��{y1<��M;���_��K�L�5�P�q��`���5_�?���[=Kt�t2���D ��E�H/��H�UP�����w-��P!�QC��ʢ���f3T���@ʎ�!W��wH#d+]c�@|�\� !Gj[��S��A����'#�D�~�P/�(� �ɥ�����H�;�P�A�F�`Z vyjp�l�|ВN�)I�v�6�cm:Z`B��&Zy���t/���?w拐Yic�&cUq?���<��)mۋ��6�����1Qd%N4gL)��c�h�u g�P�:~���2xd�F�A{�Qw�|W�$����5�g���E3��� � �^�#�F�&Y��ZG�V�'�]�4:� *��n�Ւ��7s&�����-��+��{Vo]{���"c���z��tjFڿU��>�\���Et�on��s�E���Z�����*?�UG���lb��R��.w :��W%���D&�1Q{�z����MH��w�w�n8^Z��� l��)�$����5������� �Z|S�?��4�!-+���V��( \�ĉ�1Y%�w�i�-��A���LU]�ax��X�-���+�r}6UO�j�� ���R�Vi��a*�J�ݲ�OrP%� Yై�5@팪b;H@2\" ��e�(PH�zWp"ډ1��t8;�,�++\�c5O�4���t�6B��:4�U�rv����(qU<�-� �r>;Q�M�'������<�_I�Ϩ�������l���g����(��� $��ncof6ӥ���*�e����B��^��~h���P:f5Qq����S�����ݸ�.3l ��QBT�sFt f9�WP�y�E�k���:�'�&Omt��z��y�L��X�z��S>�N������;�iRe��U�q/En�~�ہ�@����үQ����Y-qL3q�2k�/�\��Aw�f���q�&8�9�3,H���R��g�,4�UWP\��P@B2b`���KF_o��im�P�/к���#g�A�USX�<�Es9'lR3��) ?{xȀ��mƧE�6#�7XZ.���V���@���`'#�jn���j�i��:&���,�/��@~�шP�-�d�O4�����4�h#z�}��A�R�c� ��VP�$��@ĒG�i�� �X���M��0VGe���G����g�+�u b��00��y�Д��kpu'c�Eܐ�n� �=��v�́�dm�'�M�̖2<�\!-���_NB+� ��&����/e��'`+�&5��f"�� *T���[i��;�=�C�HT�s�7qbX[>�ˀ<�8fŲI�&g�j��Gڎ0YV ����U���P{��2a�汶2y ��5T[]?��L�L��3��$����r����; j95P��P�X2�������Z��3q��'�PҰ�i��R/�{�{@Ы@H���9�l*� �@��T��fX� ��!e)��ɢ2ϘX�i������@���*d��1YP��0,�����>�f_�u��$#F��`����y���rN>ؤg%�R~��)�U 2ۍN�PlG n��2,]���V!���)R�.NG~� �G:��ɊtLk�Y�_$����*��[v��$�h a�=�i��F�.��������� @'����02IcX��$�ӥ�@��?j�5�`���AN��y�����W���Ǹ`a��-�)�����N�⋹!�f{M�#�x�۞Oڛ�,dy��B[9?4���WrA�#�T����(uuay)modelbutton/�����tree_store.c�A������/* Tree View/Tree Store * * The GtkTreeStore is used to store data in tree form, to be * used later on by a GtkTreeView to display it. This demo builds * a simple GtkTreeStore and displays it. If you're new to the * GtkTreeView widgets and associates, look into the GtkListStore * example first. * */ #include <gtk/gtk.h> /* TreeItem structure */ typedef struct _TreeItem TreeItem; struct _TreeItem { const gchar *label; gboolean alex; gboolean havoc; gboolean tim; gboolean owen; gboolean dave; gboolean world_holiday; /* shared by the European hackers */ TreeItem *children; }; /* columns */ enum { HOLIDAY_NAME_COLUMN = 0, ALEX_COLUMN, HAVOC_COLUMN, TIM_COLUMN, OWEN_COLUMN, DAVE_COLUMN, VISIBLE_COLUMN, WORLD_COLUMN, NUM_COLUMNS }; /* tree data */ static TreeItem january[] = { {"New Years Day", TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, NULL }, {"Presidential Inauguration", FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, NULL }, {"Martin Luther King Jr. day", FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, NULL }, { NULL } }; static TreeItem february[] = { { "Presidents' Day", FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, NULL }, { "Groundhog Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Valentine's Day", FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, NULL }, { NULL } }; static TreeItem march[] = { { "National Tree Planting Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "St Patrick's Day", FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, NULL }, { NULL } }; static TreeItem april[] = { { "April Fools' Day", FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, NULL }, { "Army Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Earth Day", FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, NULL }, { "Administrative Professionals' Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { NULL } }; static TreeItem may[] = { { "Nurses' Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "National Day of Prayer", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Mothers' Day", FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, NULL }, { "Armed Forces Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Memorial Day", TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, NULL }, { NULL } }; static TreeItem june[] = { { "June Fathers' Day", FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, NULL }, { "Juneteenth (Liberation of Slaves)", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Flag Day", FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, NULL }, { NULL } }; static TreeItem july[] = { { "Parents' Day", FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, NULL }, { "Independence Day", FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, NULL }, { NULL } }; static TreeItem august[] = { { "Air Force Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Coast Guard Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Friendship Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { NULL } }; static TreeItem september[] = { { "Grandparents' Day", FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, NULL }, { "Citizenship Day or Constitution Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Labor Day", TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, NULL }, { NULL } }; static TreeItem october[] = { { "National Children's Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Bosses' Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Sweetest Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Mother-in-Law's Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Navy Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Columbus Day", FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, NULL }, { "Halloween", FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, NULL }, { NULL } }; static TreeItem november[] = { { "Marine Corps Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Veterans' Day", TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, NULL }, { "Thanksgiving", FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, NULL }, { NULL } }; static TreeItem december[] = { { "Pearl Harbor Remembrance Day", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { "Christmas", TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, NULL }, { "Kwanzaa", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, { NULL } }; static TreeItem toplevel[] = { {"January", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, january}, {"February", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, february}, {"March", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, march}, {"April", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, april}, {"May", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, may}, {"June", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, june}, {"July", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, july}, {"August", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, august}, {"September", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, september}, {"October", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, october}, {"November", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, november}, {"December", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, december}, {NULL} }; static GtkTreeModel * create_model (void) { GtkTreeStore *model; GtkTreeIter iter; TreeItem *month = toplevel; /* create tree store */ model = gtk_tree_store_new (NUM_COLUMNS, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN); /* add data to the tree store */ while (month->label) { TreeItem *holiday = month->children; gtk_tree_store_append (model, &iter, NULL); gtk_tree_store_set (model, &iter, HOLIDAY_NAME_COLUMN, month->label, ALEX_COLUMN, FALSE, HAVOC_COLUMN, FALSE, TIM_COLUMN, FALSE, OWEN_COLUMN, FALSE, DAVE_COLUMN, FALSE, VISIBLE_COLUMN, FALSE, WORLD_COLUMN, FALSE, -1); /* add children */ while (holiday->label) { GtkTreeIter child_iter; gtk_tree_store_append (model, &child_iter, &iter); gtk_tree_store_set (model, &child_iter, HOLIDAY_NAME_COLUMN, holiday->label, ALEX_COLUMN, holiday->alex, HAVOC_COLUMN, holiday->havoc, TIM_COLUMN, holiday->tim, OWEN_COLUMN, holiday->owen, DAVE_COLUMN, holiday->dave, VISIBLE_COLUMN, TRUE, WORLD_COLUMN, holiday->world_holiday, -1); holiday++; } month++; } return GTK_TREE_MODEL (model); } static void item_toggled (GtkCellRendererToggle *cell, gchar *path_str, gpointer data) { GtkTreeModel *model = (GtkTreeModel *)data; GtkTreePath *path = gtk_tree_path_new_from_string (path_str); GtkTreeIter iter; gboolean toggle_item; gint *column; column = g_object_get_data (G_OBJECT (cell), "column"); /* get toggled iter */ gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (model, &iter, column, &toggle_item, -1); /* do something with the value */ toggle_item ^= 1; /* set new value */ gtk_tree_store_set (GTK_TREE_STORE (model), &iter, column, toggle_item, -1); /* clean up */ gtk_tree_path_free (path); } static void add_columns (GtkTreeView *treeview) { gint col_offset; GtkCellRenderer *renderer; GtkTreeViewColumn *column; GtkTreeModel *model = gtk_tree_view_get_model (treeview); /* column for holiday names */ renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "xalign", 0.0, NULL); col_offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, "Holiday", renderer, "text", HOLIDAY_NAME_COLUMN, NULL); column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); /* alex column */ renderer = gtk_cell_renderer_toggle_new (); g_object_set (renderer, "xalign", 0.0, NULL); g_object_set_data (G_OBJECT (renderer), "column", (gint *)ALEX_COLUMN); g_signal_connect (renderer, "toggled", G_CALLBACK (item_toggled), model); col_offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, "Alex", renderer, "active", ALEX_COLUMN, "visible", VISIBLE_COLUMN, "activatable", WORLD_COLUMN, NULL); column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); /* havoc column */ renderer = gtk_cell_renderer_toggle_new (); g_object_set (renderer, "xalign", 0.0, NULL); g_object_set_data (G_OBJECT (renderer), "column", (gint *)HAVOC_COLUMN); g_signal_connect (renderer, "toggled", G_CALLBACK (item_toggled), model); col_offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, "Havoc", renderer, "active", HAVOC_COLUMN, "visible", VISIBLE_COLUMN, NULL); column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); /* tim column */ renderer = gtk_cell_renderer_toggle_new (); g_object_set (renderer, "xalign", 0.0, NULL); g_object_set_data (G_OBJECT (renderer), "column", (gint *)TIM_COLUMN); g_signal_connect (renderer, "toggled", G_CALLBACK (item_toggled), model); col_offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, "Tim", renderer, "active", TIM_COLUMN, "visible", VISIBLE_COLUMN, "activatable", WORLD_COLUMN, NULL); column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); /* owen column */ renderer = gtk_cell_renderer_toggle_new (); g_object_set (renderer, "xalign", 0.0, NULL); g_object_set_data (G_OBJECT (renderer), "column", (gint *)OWEN_COLUMN); g_signal_connect (renderer, "toggled", G_CALLBACK (item_toggled), model); col_offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, "Owen", renderer, "active", OWEN_COLUMN, "visible", VISIBLE_COLUMN, NULL); column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); /* dave column */ renderer = gtk_cell_renderer_toggle_new (); g_object_set (renderer, "xalign", 0.0, NULL); g_object_set_data (G_OBJECT (renderer), "column", (gint *)DAVE_COLUMN); g_signal_connect (renderer, "toggled", G_CALLBACK (item_toggled), model); col_offset = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), -1, "Dave", renderer, "active", DAVE_COLUMN, "visible", VISIBLE_COLUMN, NULL); column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1); gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column), GTK_TREE_VIEW_COLUMN_FIXED); gtk_tree_view_column_set_clickable (GTK_TREE_VIEW_COLUMN (column), TRUE); } GtkWidget * do_tree_store (GtkWidget *do_widget) { static GtkWidget *window = NULL; if (!window) { GtkWidget *vbox; GtkWidget *sw; GtkWidget *treeview; GtkTreeModel *model; /* create window, etc */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Tree Store"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8); gtk_container_set_border_width (GTK_CONTAINER (vbox), 8); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_box_pack_start (GTK_BOX (vbox), gtk_label_new ("Jonathan's Holiday Card Planning Sheet"), FALSE, FALSE, 0); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start (GTK_BOX (vbox), sw, TRUE, TRUE, 0); /* create model */ model = create_model (); /* create tree view */ treeview = gtk_tree_view_new_with_model (model); g_object_unref (model); gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)), GTK_SELECTION_MULTIPLE); add_columns (GTK_TREE_VIEW (treeview)); gtk_container_add (GTK_CONTAINER (sw), treeview); /* expand all rows after the treeview widget has been realized */ g_signal_connect (treeview, "realize", G_CALLBACK (gtk_tree_view_expand_all), NULL); gtk_window_set_default_size (GTK_WINDOW (window), 650, 400); } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else gtk_widget_destroy (window); return window; } ��(uuay)cursors/0������j������.��� ��� ������p�������������������������F�������w�������+��������������&���_�������g���G���)����������W������:���5�������messages.txt��������1|GTK+ and friends|GTKtoolkit|@breizhodrome yeah, that's for the OpenGL support that has been added recently|1416751697|0||2|1 2|Emmanuele Bassi|ebassi|RT @ebassi: embloggeration happened: http://t.co/9ukkNuSzuc — help out supporting GL on windows and macos in GTK+ 3.16.|1416086824|0|GTKtoolkit|0|9 3|Matthew Waters|ystreet00|RT @ystreet00: .@GTKtoolkit + @gstreamer integration using the new #gtk #opengl support https://t.co/IeBpFjbjes http://t.co/WptPHCfFIb|1416086780|0|GTKtoolkit|0|13 4|Emmanuele Bassi|ebassi|RT @ebassi: embloggeration happened — OpenGL integration lands in GTK+ — http://t.co/sUGwcvZhRg|1413214719|0|GTKtoolkit|0|8 5|Allan Day|allanday|RT @allanday: New Human Interface Guidelines coming for @gnome and @GTKtoolkit . http://t.co/SMNndyo6rl|1408615736|0|GTKtoolkit|0|12 6|Christian Hergert|hergertme|RT @hergertme: being able to set opacity on an individual widget in gtk ... you've come a long way since 2.x days.|1408601183|0|GTKtoolkit|0|2 7|Richard Brown|sysrich|RT @sysrich: hmm, good thing Iike eating with chopsticks #GUADEC http://t.co/7aG9CYpdZg|1406543731|0|GTKtoolkit|0|82 8|Javier Jardón|jjardon|RT @jjardon: #GNOME 3.13.4 has just been released from Strasbourg, this year #GUADEC city. Enjoy! https://t.co/hgHDVOWvRC|1406303072|0|GTKtoolkit|0|6 9|GNOME|gnome|RT @gnome: This year's @guadec schedule has been published. Lots of great talks on there, as usual. https://t.co/rpGPxIRCuB|1405929795|0|GTKtoolkit|0|20 10|GTK+ and friends|GTKtoolkit|New features of GtkInspector : http://t.co/EOgcv1lh8D #gtk #gtk3|1402076874|0||2|3 11|The Valeyard|breizhodrome|RT @breizhodrome: @GTKtoolkit and his multipoint gesture, good thing for mobile applications :) #Gtk|1402076810|0|GTKtoolkit|0|1 12|GTK+ and friends|GTKtoolkit|@Gin_Cheng sorry about that, should be fixed now|1402076785|0||0|0 13|GTK+ and friends|GTKtoolkit|@teadriven sorry about that, should be fixed now|1402076751|0||0|0 14|Javier Jardón|jjardon|RT @jjardon: #GNOME 3.13.2 (developer version) released! Try it, brake it, file bugs! https://t.co/cyCLBCtqKo|1401318926|0|GTKtoolkit|0|2 15|GTK+ and friends|GTKtoolkit|Gtkparasite has been integrated in #GTK+: Introducing gtkinspector: http://t.co/dP3DzgPNM3 #gtk3|1400231807|0||8|11 16|GTK+ and friends|GTKtoolkit|GTK+ 3.12 released! Improvements in Wayland, Broadway, OSX ... New widgets: GtkFlowBox,GtkActionBar and GtkPopover: https://t.co/5hBIlfrxc3|1395842503|0||5|8 17|Javier Jardón|jjardon|RT @jjardon: Second beta of #GNOME 3.12 just released! https://t.co/8oTfZaatVr|1394147916|0|GTKtoolkit|0|3 18|Javier Jardón|jjardon|RT @jjardon: First beta of GNOME 3.12 (3.11.90) has just been released. Enjoy! https://t.co/d5wzYWXUnv #gnome|1393006697|0|GTKtoolkit|0|4 19|GTK+ and friends|GTKtoolkit|Some thoughts on portability by @desrt : http://t.co/zyFT6i4we3 #glib|1392903834|0||1|0 20|GTK+ and friends|GTKtoolkit|Popovers support merged in master: http://t.co/5JE0RLhEDo Thanks @garnacho for getting this done! #gtk3|1390500627|0||5|7 21|GTK+ and friends|GTKtoolkit|The continuous build environment now generates 64-bit #GTK+ Windows bundles! Read the announcement from @tarnyko : https://t.co/wXVOAzCYTt|1386169565|0||6|10 22|GTK+ and friends|GTKtoolkit|GTK+ 3 packages for Windows available! Thanks for the hard work of @tarnyko to make this possible!\nhttp://t.co/U9JgsGoBLm|1382633636|0||7|23 23|GTK+ and friends|GTKtoolkit|Status of support of high resolution displays in #GTK+ (and #GNOME ) http://t.co/SPQN2E6Qxo Thanks to Brion Vibber for the donation!|1372531560|0||2|3 24|Javier Jardón|jjardon|RT @jjardon: Firefox GTK+3 port ready for testing https://t.co/onpxJaTKO5 #gtk #gtk3|1371557291|0|GTKtoolkit|0|22 25|GTK+ and friends|GTKtoolkit|GTK+ 3.8.0 (STABLE) released: wayland, Multi-application Broadway, improved CSS support and more ... http://t.co/RlLmrNPyYs #gtk #gtk3|1364435230|0||0|5 26|Daniel Svensson|dsvensson|RT @dsvensson: Bringing an application up to the new features in GTK 3.x = tons of negative diffs, awesome work by @GTKtoolkit devs <3|1352906611|0|GTKtoolkit|0|3 27|GTK+ and friends|GTKtoolkit|GLib status update and a warning: http://t.co/quQP8dLf #glib|1352905826|0||1|1 28|GTK+ and friends|GTKtoolkit|GProperty status: http://t.co/Nk28V2Rh #glib|1352905797|0||1|1 29|GTK+ and friends|GTKtoolkit|GTK+ 3.6.2 (STABLE) available: http://t.co/ah87o7cC #gtk #gtk3|1352905768|0||1|2 30|GTK+ and friends|GTKtoolkit|GLib 2.34.2 (STABLE) available: http://t.co/yavkTJwr #glib|1352905722|0||2|1 31|GTK+ and friends|GTKtoolkit|GTK+ 3.6.0 (STABLE) released: http://t.co/3NDAT5K9 #gtk #gtk3|1350075620|0||0|4 32|GTK+ and friends|GTKtoolkit|GLib 2.34.0 (STABLE) released: http://t.co/eWRD7hNy #glib|1350075583|0||0|6 33|GTK+ and friends|GTKtoolkit|GLib 2.33.10 (UNSTABLE) released: http://t.co/3BCdOPDy #glib|1347299317|0||2|2 34|Javier Jardón|jjardon|RT @jjardon: GnomeGoals status update: https://t.co/q5j7mJ1c #gnome|1342143404|0|GTKtoolkit|0|1 35|Emmanuele Bassi|ebassi|RT @ebassi: Saturday, 28/07, 11:45 - I'll be talking about Rainbows and Unicorns @ GUADEC https://t.co/WOiF6QU6|1341984820|0|GTKtoolkit|0|2 36|Harvey|cd0|RT @cd0: According to the sourcecode zipball the browser in the samsung smart tvs (UNxxES8xxx) is webkit-gtk 20120109. Not bad. @GTKtoolkit|1341712733|0|GTKtoolkit|0|3 37|Claudio Saavedra|csaavedra|RT @csaavedra: Accelerated compositing in WebKitGTK+: http://t.co/yxl0BooF #webkit #gnome|1341712291|0|GTKtoolkit|0|2 38|GTK+ and friends|GTKtoolkit|GTK+ 3.5.6 (UNSTABLE) released, now featuring GtkSearchEntry and GtkMenuButton http://t.co/adHtm2OA #gtk #gtk3|1341689740|0||0|3 39|GTK+ and friends|GTKtoolkit|GTK+ 3.4.0 (STABLE) released: http://t.co/KPSfJQSg #gtk #gtk3|1332870781|0||0|17 40|Javier Jardón|jjardon|RT @jjardon: GTK+ 2.24.9 (STABLE) released: https://t.co/OgcL5jnR #gtk|1327437929|0|GTKtoolkit|0|2 41|GTK+ and friends|GTKtoolkit|Multitouch is near… by @garnacho http://t.co/68iK8m9S #gtk #gtk3|1327090575|0||1|7 42|GTK+ and friends|GTKtoolkit|@dylanmccall Follow this bug: https://t.co/9vCpBVSm|1326802580|0||0|0 43|GTK+ and friends|GTKtoolkit|@cd0 Nice. Please, report any issue next time ;)|1326802460|0||0|0 44|GTK+ and friends|GTKtoolkit|RFC: new features http://t.co/uiqYWx4O #gtk #gtk3|1326802266|0||1|2 45|GTK+ and friends|GTKtoolkit|@cd0 Did you file a bug?|1326776652|0||0|0 46|GTK+ and friends|GTKtoolkit|@dylanmccall You mean this? http://t.co/BXbocqE9|1326776459|0||0|0 47|GTK+ and friends|GTKtoolkit|@trufae https://t.co/xlq75hDL|1326776153|0||0|0 48|GTK+ and friends|GTKtoolkit|RFC: UI design: http://t.co/Lu8Gnnfg #gtk #gtk3|1326305191|0||2|2 49|GTK+ and friends|GTKtoolkit|#win32 users: GTK+ 2.24.8 bundles available here: http://t.co/WhuY2XoN It not needed to use 2.16 anymore #gtk|1323190462|0||1|4 50|GTK+ and friends|GTKtoolkit|RFC: Model-View-Controller http://t.co/Lmw4lW9V #gtk #gtk3|1321546108|0||1|1 51|GTK+ and friends|GTKtoolkit|RFC:boxes http://t.co/eZABFgTp #gtk #gtk3|1321546061|0||2|1 52|GTK+ and friends|GTKtoolkit|GTK+ 2.24.8 (stable) released: update of the win32 backend, it now works at least as well as the old 2.16.x http://t.co/6wrhs7hm #gtk|1321297367|0||0|2 53|GTK+ and friends|GTKtoolkit|GTK + #Clutter next step(s): http://t.co/UDIezbyW #gtk #gtk4|1318265984|0||3|4 54|GTK+ and friends|GTKtoolkit|Tutorial for #Python, #GStreamer and #GTK 3: http://t.co/hvfRx18E #gtk3|1317781925|0||5|0 55|GTK+ and friends|GTKtoolkit|@jonobacon nice, but pyGTK is deprecated, use pygobject instead|1317353873|0||1|0 56|GTK+ and friends|GTKtoolkit|GTK+ 3.2 (STABLE) released: http://t.co/EqHjTmol #gtk #gtk3|1317043650|0||0|11 57|GTK+ and friends|GTKtoolkit|New D-Bus features in GLib 2.30: http://t.co/rzHui2Q2 #gtk #glib|1316732697|0||3|4 58|Lanedo GmbH|LanedoTweets|RT @TimJanik: New #GTK+ building instructions for #Mac OS X now up in the #GNOME wiki: http://t.co/lLt2fb1B|1316646621|0|GTKtoolkit|0|3 59|GTK+ and friends|GTKtoolkit|GTK+ 3.1.90 (UNSTABLE) released: http://t.co/KRz34jp #gtk #gtk3|1315961535|0||0|3 60|Lanedo GmbH|LanedoTweets|RT @TimJanik: There's a Win32 security advisory for Gtk+, it's recommended to upgrade to latest Gtk+ (2.24.6) if you haven't yet: http:/ ...|1315914861|0|GTKtoolkit|0|5 61|GTK+ and friends|GTKtoolkit|GTK+ 4.0 and #Clutter 2.0: rainbows and unicorns: http://t.co/SKbl0vQ #gtk #gtk4|1314883483|0||2|14 62|GTK+ and friends|GTKtoolkit|Some #Glib plans for the next cycle: http://t.co/a6YybK0 #gtk|1314883427|0||0|3 63|Nat Friedman|natfriedman|RT @natfriedman: Any Gtk+ experts who want to make some consulting money fixing bugs in Gtk/Mac, email me: nat@xamarin.com.|1314355269|0|GTKtoolkit|0|28 64|Kristian Rietveld|krietvel|RT @krietvel: Blog post: 'Merged “treemodel-fix” branch into GTK+: call for testing, blog post series' http://t.co/yAUnneo #gtk|1314096198|0|GTKtoolkit|0|2 65|GTK+ and friends|GTKtoolkit|@ArcherSeven Help improving the patch here: http://t.co/r74hP79|1313493595|0||0|0 66|GTK+ and friends|GTKtoolkit|GTK+ 3.1.12 (UNSTABLE) released: http://t.co/3iPAlNq Try the new Font Dialog! #gtk #gtk3|1313493256|0||0|4 67|GTK+ and friends|GTKtoolkit|@cimi @DanielFore Patches always welcomed!|1313493010|0||0|0 68|GTK+ and friends|GTKtoolkit|a11y branch was merged into master: http://mail.gnome.org/archives/gtk-devel-list/2011-July/msg00004.html #gtk #gtk3|1309962425|0||0|2 69|GTK+ and friends|GTKtoolkit|Another update in the effort to improve #a11y in #gtk: http://mail.gnome.org/archives/gtk-devel-list/2011-June/msg00057.html #gtk3|1309606597|0||0|0 70|GTK+ and friends|GTKtoolkit|@cd0 What is wrong in that page? freetype already appears as a required dependency. Anyway patches always welcomed ;)|1307359139|0||0|0 71|GTK+ and friends|GTKtoolkit|Of course, everyone is welcomed to improve the #gtk website. git repo: http://ur1.ca/4bwbw bugzilla: http://ur1.ca/4bwc1|1307038767|0||0|1 72|GTK+ and friends|GTKtoolkit|Check out the new #gtk website!!: www.gtk.org|1307036644|0||0|4 73|GTK+ and friends|GTKtoolkit|@jikri Take a look to http://live.gnome.org/action/login/GTK+/Roadmap and http://developer.gnome.org/gtk3/stable/gtk-migrating-2-to-3.html|1306673774|0||0|0 74|GTK+ and friends|GTKtoolkit|Introducing Cossa, a GTK+ theme previewer for gedit, by @garnacho http://ur1.ca/4ate8 #gtk #gtk3|1306672611|0||1|5 75|GTK+ and friends|GTKtoolkit|#GProperty, new API for Property and Accessor declaration, by @ebassi : http://ur1.ca/47lgk #gtk #glib|1305717028|0||0|2 76|GTK+ and friends|GTKtoolkit|GLib 2.29.4 (UNSTABLE) released: http://mail.gnome.org/archives/gtk-devel-list/2011-May/msg00012.html #gtk #glib|1304593138|0||0|2 77|GTK+ and friends|GTKtoolkit|RT @acruiz: Gtk+ FontSelection progress http://bit.ly/iikP2f #gtk #gtk3|1303089979|0||0|1 78|GTK+ and friends|GTKtoolkit|RT @krietvel: New blog post: CoreText backend now in Pango master http://bit.ly/dTE0a1 #gtk #pango #osx|1303089938|0||0|0 79|GTK+ and friends|GTKtoolkit|GTK+ 3.0.9 (STABLE) released: http://mail.gnome.org/archives/gtk-devel-list/2011-April/msg00087.html #gtk #gtk3|1302883958|0||0|0 80|GTK+ and friends|GTKtoolkit|GLib 2.28.6 (STABLE) released: http://mail.gnome.org/archives/gtk-devel-list/2011-April/msg00074.html #gtk #glib|1302780112|0||0|3 81|GTK+ and friends|GTKtoolkit|GTK+ 3.1.2 (UNSTABLE) released: http://mail.gnome.org/archives/gtk-devel-list/2011-April/msg00072.html #gtk #gtk3|1302737279|0||0|2 82|GTK+ and friends|GTKtoolkit|GLib 2.29.2 (UNSTABLE) released: http://mail.gnome.org/archives/gtk-devel-list/2011-April/msg00071.html #gtk #glib|1302702936|0||0|3 83|Kristian Høgsberg|hoegsberg|RT @hoegsberg: yay, merged the Wayland GTK+ backend to the master branch - no, it's still not compete.|1302621000|0|GTKtoolkit|0|9 84|GTK+ and friends|GTKtoolkit|Someone willing to help with the client side decorations branch? http://git.gnome.org/browse/gtk+/log/?h=client-side-decorations #gtk #gtk3|1302620918|0||1|1 85|GTK+ and friends|GTKtoolkit|#Wayland GTK+ backend merged in master: http://git.gnome.org/browse/gtk+/commit/?id=c7514e8f0d19a833257497caff413bb4dfae6eb4 #gtk #gtk3|1302620838|0||1|9 86|GTK+ and friends|GTKtoolkit|gtkmm 3.0.0 (STABLE) released: http://mail.gnome.org/archives/gtkmm-list/2011-April/msg00025.html #gtk #cpp|1302355894|0||0|3 87|GTK+ and friends|GTKtoolkit|RT @alex_igalia: WebKit2 MiniBrowser for the GTK+ port running! http://ur1.ca/3t3ov #gtk #webkit|1302261488|0||1|0 88|GTK+ and friends|GTKtoolkit|#GNOME3 is out, using all the power of #gtk3 , congrats everyone! #gtk #gnome|1302219444|0||0|2 89|GTK+ and friends|GTKtoolkit|HTML5 backend update, now with real toplevel windows!! http://blogs.gnome.org/alexl/2011/04/07/broadway-update-2/ #gtk #gtk3|1302218981|0||2|10 90|GTK+ and friends|GTKtoolkit|Glade 3.10 (STABLE) released: With support for GTK+3, pygobject and all the new stuff: http://ur1.ca/3s8wk #rad #gtk|1302032523|0||0|6 91|GTK+ and friends|GTKtoolkit|GTK+ 3.0.8 (STABLE) released: http://mail.gnome.org/archives/gtk-devel-list/2011-April/msg00009.html #gtk #gtk3|1301878240|0||0|4 92|GTK+ and friends|GTKtoolkit|GTK+ latest performance improvements (with video): http://blogs.gnome.org/otte/2011/03/30/the-book-was-better/ #gtk #gtk3|1301594293|0||1|6 93|GTK+ and friends|GTKtoolkit|Benjamin Otte is improving GTK+ performance with some impressive results, check latest commits #gtk #gtk3|1301409776|0||1|2 94|Javier Jardón|jjardon|RT @jjardon: Also nice to see that a firefox GTK+3 port was started: https://bugzilla.mozilla.org/show_bug.cgi?id=627699 #gtk #gtk3 #fi ...|1301166992|0|GTKtoolkit|0|8 95|GTK+ and friends|GTKtoolkit|RT @krietvel: Oh yea, I still have to upstream the CoreText backend I wrote for Pango. Completely forgot about that. #gtk|1301149034|0||0|0 96|GTK+ and friends|GTKtoolkit|GTK+ 3.0.5 (STABLE) released: http://mail.gnome.org/archives/gtk-devel-list/2011-March/msg00099.html #gtk #gtk3|1300925808|0||0|1 97|GTK+ and friends|GTKtoolkit|Nice article of @cgwalters about analyzing memory use in #glib with #SystemTap: http://ur1.ca/3m0ak #gtk|1300672197|0||2|1 98|GTK+ and friends|GTKtoolkit|GLib 2.28.3 (STABLE) released: http://mail.gnome.org/archives/gtk-devel-list/2011-March/msg00065.html #gtk #glib|1300374677|0||0|2 99|GTK+ and friends|GTKtoolkit|GTK+ HTML backend merged: http://blogs.gnome.org/alexl/2011/03/15/gtk-html-backend-update/ #gtk #gtk3|1300334447|0||3|4 100|GTK+ and friends|GTKtoolkit|GTK+ 3.0.3 (STABLE) released: http://mail.gnome.org/archives/gtk-devel-list/2011-March/msg00059.html #gtk #gtk3|1300151113|0||0|5 101|GTK+ and friends|GTKtoolkit|PyGObject (new gobject introspection-based bindings) 2.28.0 (STABLE) released: http://ur1.ca/3fcsp #python #gtk|1299620983|0||0|1 102|GTK+ and friends|GTKtoolkit|GTK+ team meeting now in #gtk-devel on irc.gimp.net #gtk|1299615099|0||0|1 103|GTK+ and friends|GTKtoolkit|REMINDER: GTK+ Team IRC Meeting - 2011-03-08 at 20:00 UTC: http://ur1.ca/3ezpn Agenda: http://ur1.ca/3ezpp #gtk|1299517986|0||0|0 104|GTK+ and friends|GTKtoolkit|GTK+ 3.0.2 (STABLE) released: http://mail.gnome.org/archives/gtk-devel-list/2011-March/msg00010.html #gtk|1299517909|0||1|3 105|GTK+ and friends|GTKtoolkit|PyGObject, the new Python introspection based bindings almost ready for the 2.28 stable release: http://ur1.ca/3dfaj #python #gtk|1299081554|0||0|5 106|GTK+ and friends|GTKtoolkit|GTK+ 3.0.1 (STABLE) released: http://mail.gnome.org/archives/gtk-devel-list/2011-February/msg00088.html #gtk|1298379744|0||0|4 107|GTK+ and friends|GTKtoolkit|More features/ideas for gtk+ 3.2: pictures: https://mail.gnome.org/archives/gtk-devel-list/2011-February/msg00038.html #gtk|1297815657|0||1|2 108|GTK+ and friends|GTKtoolkit|New features/ideas for gtk+ 3.2: Translucent TextViews : http://blogs.gnome.org/tvb/2011/02/14/translucent-textviews/ #gtk|1297707521|0||1|2 109|GTK+ and friends|GTKtoolkit|Blog post of our tireless maintainer, Matthias Clasen: http://blogs.fedoraproject.org/wp/mclasen/2011/02/10/gtk-3-is-here/ #gtk #gtk3|1297378021|0||0|5 110|GTK+ and friends|GTKtoolkit|Highlights: Cairo-based, XI2, new theming API, Flexible geometry management, Multiple backend support for GDK, easy application support ...|1297373117|0||0|3 111|GTK+ and friends|GTKtoolkit|GTK+ 3.0 released!! : http://mail.gnome.org/archives/gtk-devel-list/2011-February/msg00020.html gtk!|1297372977|0||1|20 112|GTK+ and friends|GTKtoolkit|GLib 2.28.0 (stable) released: https://mail.gnome.org/archives/gtk-devel-list/2011-February/msg00014.html #gtk #glib|1297196093|0||0|2 113|GTK+ and friends|GTKtoolkit|GTK+ 2.99.3 released: latest beta before GTK+3 http://mail.gnome.org/archives/gtk-devel-list/2011-February/msg00004.html #gtk|1296609072|0||1|1 114|GTK+ and friends|GTKtoolkit|Glade 3.9.2 released: off screen, workspace new look, GtkComboBoxText, GtkFileFilter, GtkApplication and more! http://ur1.ca/335is #gtk #rad|1296608221|0||1|0 115|GTK+ and friends|GTKtoolkit|GTK+ 2.24 ( STABLE ) released: This will be the latest 2.x release. http://ur1.ca/32cft #gtk|1296438857|0||2|0 116|GTK+ and friends|GTKtoolkit|More progress on #Glade, the GTK+ #interface #designer: http://ur1.ca/2uzpa Note that Glade 3.8 -> #gtk2 and Glade 3.10-> #gtk3 #gtk|1295186227|0||0|2 117|GTK+ and friends|GTKtoolkit|RT @prcutler RT @fcrozat: First shot at GNOME3 evaluation usb stick : http://bit.ly/i1wM8X #gnome #gnome3 #gnome-shell #opensuse #gnome|1295186033|0||1|0 118|GTK+ and friends|GTKtoolkit|If you want to try the #wayland backend, checkout this branch: http://git.gnome.org/browse/gtk+/log/?h=gdk-backend-wayland #gtk|1294739562|0||1|5 119|GTK+ and friends|GTKtoolkit|GTK+ 2.99.1 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2011-January/msg00005.html #gtk|1294738413|0||0|0 120|GTK+ and friends|GTKtoolkit|GTK+ 2.99: It is now possible to include multiple GDK backends in a single library. Use --enable-{x11,win32,quartz}-backend #gtk|1294344201|0||0|0 121|GTK+ and friends|GTKtoolkit|GTK+ 2.99: The removal of GSEALEd struct members has been completed in this release #gtk|1294344070|0||0|1 122|GTK+ and friends|GTKtoolkit|GTK+ 2.99.0 (unstable) released http://mail.gnome.org/archives/gtk-devel-list/2011-January/msg00001.html #gtk|1294344044|0||0|2 123|GTK+ and friends|GTKtoolkit|GLib 2.27.90 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2011-January/msg00000.html #glib|1294343933|0||0|0 124|GTK+ and friends|GTKtoolkit|Glade 3.9.0 (unstalbe) released: snapshot leading up to Glade 3.10 that will depend on GTK+3 http://ur1.ca/2rir0 #gtk #rad|1294343894|0||0|1 125|GTK+ and friends|GTKtoolkit|Glade 3.7.3 (unstable) released: snapshot leading up to Glade 3.8 that\nwill depend on GTK+ 2.24 http://ur1.ca/2riqg #gtk|1294343835|0||0|0 126|GTK+ and friends|GTKtoolkit|RT @hoegsberg: Multi-backend support in GTK+: http://bit.ly/gDwugJ - switch between #Wayland and X11 by setting GDK_BACKEND #gtk|1294201849|0||0|0 127|GTK+ and friends|GTKtoolkit|RT @krietvel Blog post \"GDK 3.0 on Mac OS X\" http://bit.ly/ihr9kH or how GDK became awesome in GTK+ 3.0. #gtk #osx|1293728637|0||0|1 128|GTK+ and friends|GTKtoolkit|RT @krietvel Blog post \"Refactoring GtkTreeView using GtkCellArea\" http://bit.ly/g9aArE #gtk|1293728607|0||0|0 129|GTK+ and friends|GTKtoolkit|Also, the treeview-refactor branch has been merged too|1293036166|0||1|0 130|GTK+ and friends|GTKtoolkit|New in GTK+ 2.91.7: gdk-backend branch have been merged: the goal is allowing to build a single gdk library that contains multiple backends|1293036118|0||0|0 131|GTK+ and friends|GTKtoolkit|GTK+ 2.91.7 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-December/msg00155.html #gtk|1293035980|0||1|2 132|GTK+ and friends|GTKtoolkit|GTK+ 2.23.3 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-December/msg00156.html #gtk|1293035865|0||0|2 133|GTK+ and friends|GTKtoolkit|GLib 2.27.5 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-December/msg00152.html #gtk #glib|1293035786|0||0|0 134|GTK+ and friends|GTKtoolkit|Glade 3.7.2 (unstable) released: http://lists.ximian.com/pipermail/glade-devel/2010-December/001853.html #gtk #RAD|1292589571|0||0|0 135|Andrea Cimitan|cimi|RT @cimi: reading migration docs, later Murrine will start to be ported over GtkStyleContext (so CSS fun :))|1291813590|0|GTKtoolkit|0|1 136|GTK+ and friends|GTKtoolkit|Work to building multiple backends on the same system started: http://ur1.ca/2ieid #gtk|1291614285|0||0|2 137|GTK+ and friends|GTKtoolkit|RT @garnacho : gtk-style-context landed in GTK+ master, if gnome3 looks temporarily uglier that was me :) #gtk #gnome|1291613819|0||0|0 138|Stormy|storming|RT @storming: Anyone know of any call centers that use GNOME? Potential funding for a11y work if we do ...|1291387291|0|GTKtoolkit|0|4 139|GTK+ and friends|GTKtoolkit|Final part of the Benjamin Otte GTK3 rendering\ncleanup has landed: http://ur1.ca/2hrc9 #gtk|1291375493|0||0|0 140|GTK+ and friends|GTKtoolkit|ANNOUNCE: gtkmm 2.91.5 (unstable) released: http://mail.gnome.org/archives/gtkmm-list/2010-December/msg00000.html #gtk #bindings #cplusplus|1291212942|0||0|0 141|GTK+ and friends|GTKtoolkit|ANNOUNCE: glibmm 2.27.4 (unstable) released: http://ur1.ca/2h77z #glib #bindings #cplusplus|1291212883|0||0|0 142|GTK+ and friends|GTKtoolkit|GtkAppChooser landed in master: https://bugzilla.gnome.org/show_bug.cgi?id=582557#c10 #gtk|1291212784|0||0|0 143|GTK+ and friends|GTKtoolkit|larger changes in GTK+ soon: GtkStyleContext, rendering-cleanup, app-chooser branch, GtkRadioGroup branch, http://ur1.ca/2gs5u #gtk|1291211812|0||2|0 144|GTK+ and friends|GTKtoolkit|New widget: GtkSwitch http://blogs.fedoraproject.org/wp/mclasen/2010/11/29/onoff/ thanks to @ebassi and Matthias Clasen for the review #gtk|1291211711|0||2|1 145|GTK+ and friends|GTKtoolkit|GTK+ html backend (broadway branch) landed: http://mail.gnome.org/archives/gtk-devel-list/2010-November/msg00103.html #gtk|1291211452|0||0|1 146|GTK+ and friends|GTKtoolkit|GTK+ 2.91.5 (unstalbe) released: http://mail.gnome.org/archives/gtk-devel-list/2010-November/msg00109.html #gtk|1291211337|0||0|1 147|GTK+ and friends|GTKtoolkit|GLib 2.27.4 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-November/msg00108.html #gtk #glib|1291211331|0||0|0 148|GTK+ and friends|GTKtoolkit|ANNOUNCE: gtkmm 2.91.4 released: http://mail.gnome.org/archives/gtkmm-list/2010-November/msg00095.html #gtk #cplusplus #bindings|1290451737|0||0|0 149|GTK+ and friends|GTKtoolkit|Introducing GtkCellArea: height-for-width geometry management for GtkTreeViews http://ur1.ca/2e5pe #gtk|1290310899|0||1|2 150|Javier Jardón|jjardon|RT @jjardon: gtk+3 packages landed in #Debian experimental: http://packages.debian.org/experimental/libgtk3.0-0 #gtk|1290036413|0|GTKtoolkit|0|2 151|GTK+ and friends|GTKtoolkit|WIP Porting guide to migrate from GTK+2 to GTK+3: http://ur1.ca/1xbzs #gtk #xfce #lxde #gnome|1290036396|0||4|6 152|GTK+ and friends|GTKtoolkit|#GSettings is fast (really): http://blogs.gnome.org/desrt/2010/11/15/gsettings-is-fast/ #gtk #glib|1289853926|0||1|2 153|GTK+ and friends|GTKtoolkit|Help making Glade ready for GTK+ 3: http://blogs.gnome.org/johannes/2010/11/15/help-making-glade-ready-for-3-0/ #gtk|1289853600|0||1|0 154|GTK+ and friends|GTKtoolkit|Anyone up to fix it? RT @vwduder: I wish #gtk wouldn't actually show the window until all of the contents have been rendered to the drawable|1289434823|0||0|0 155|GTK+ and friends|GTKtoolkit|PyGObject 2.27.0 (unstable) released: http://mail.gnome.org/archives/python-hackers-list/2010-November/msg00013.html #python #bindings #gtk|1289431671|0||0|0 156|GTK+ and friends|GTKtoolkit|glibmm 2.27.3 (unstable) released: http://mail.gnome.org/archives/gtkmm-list/2010-November/msg00058.html #glib #cplusplus #bindings|1289387769|0||0|0 157|GTK+ and friends|GTKtoolkit|GLib 2.27.3 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-November/msg00043.html #gtk #glib|1289322725|0||0|1 158|GTK+ and friends|GTKtoolkit|GTK+ 2.91.3 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-November/msg00010.html #gtk|1288758787|0||0|1 159|GTK+ and friends|GTKtoolkit|GLib 2.27.2 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-November/msg00002.html #gtk #glib|1288758720|0||0|0 160|GTK+ and friends|GTKtoolkit|Gtk 3.0 motto: \"We are fixing it!\"|1288630204|0||1|4 161|GTK+ and friends|GTKtoolkit|Recent Openismus contributions to @GtkToolkit http://bit.ly/amuAdX Thank you guys!|1288343314|0||0|0 162|GTK+ and friends|GTKtoolkit|ANNOUNCE: gtkmm 2.91.2 (unstable) released: http://mail.gnome.org/archives/gtkmm-list/2010-October/msg00058.html #gtk #cplusplus|1288098381|0||0|0 163|GTK+ and friends|GTKtoolkit|ANNOUNCE: glibmm (unstable) 2.27.1 released: http://mail.gnome.org/archives/gtkmm-list/2010-October/msg00059.html #gtk #cplusplus|1288098335|0||0|0 164|GTK+ and friends|GTKtoolkit|GTK+ 2.91.2 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-October/msg00230.html #gtk|1288058960|0||0|0 165|GTK+ and friends|GTKtoolkit|GLib 2.27.1 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-October/msg00222.html #gtk #glib|1288049934|0||0|1 166|GTK+ and friends|GTKtoolkit|@garnacho shows off 3.0 CSS awesomness as a result of his work at #gtkhackfest http://bit.ly/aV99F|1288015424|0||0|0 167|GTK+ and friends|GTKtoolkit|GtkGrid landed:new container similar to GtkTable without unnecessary restrictions.It does height-for-width geometry management. #gtkhackfest|1287759681|0||0|1 168|GTK+ and friends|GTKtoolkit|RT @bertogg: The GTK+ artillery: http://flic.kr/p/8M16nu http://flic.kr/p/8M16d7 #gtkhackfest #gtk|1287744902|0||0|0 169|GTK+ and friends|GTKtoolkit|GtkScrollable interface landed in master: http://git.gnome.org/browse/gtk+/commit/?id=55196a705f00564a44647bfc97981db0a783369a #gtk|1287744793|0||0|0 170|Kristian Rietveld|krietvel|RT @krietvel: Blogged on \"Optimizing legacy code\". Or \"Color space conversion is more expensive than you might think\". http://bit.ly/duA ...|1287711819|0|GTKtoolkit|0|1 171|GTK+ and friends|GTKtoolkit|Rounded corners in GtkEntry (thanks Boram Park!) http://ur1.ca/257f0 #gtk #gtkhackfest|1287711709|0||0|6 172|Berto Garcia|bertogg|RT @bertogg: Ryan and Benjamin discussing GtkStyle at the Hercules Tower #gtkhackfest http://twitgoo.com/1pw774|1287708209|0|GTKtoolkit|0|1 173|GTK+ and friends|GTKtoolkit|RT @bertogg Working late at night #gtkhackfest http://twitgoo.com/1pvw46 #gtk|1287602614|0||0|0 174|GTK+ and friends|GTKtoolkit|WIP docs of the new theme API : http://mail.gnome.org/archives/gtk-devel-list/2010-October/msg00134.html #gtkhackfest #gtk|1287564745|0||0|0 175|GTK+ and friends|GTKtoolkit|GtkApplication landed in master: http://ur1.ca/24fhe Feedback welcome #gtk #gtkhackfest|1287564609|0||0|0 176|Emmanuele Bassi|ebassi|RT @ebassi: lots of discussions at the #gtkhackfest - it's great to see the roadmap for 4.0 take shape|1287564383|0|GTKtoolkit|0|2 177|Berto Garcia|bertogg|RT @bertogg: Update from the GTK+ Hackfest 2010: http://blogs.igalia.com/berto/2010/10/19/gtk-hackfest-2010/ #gtkhackfest|1287564380|0|GTKtoolkit|0|3 178|Berto Garcia|bertogg|RT @bertogg: Photos from the #gtkhackfest in Coruña: http://www.flickr.com/photos/tags/gtkhackfest2010/ #igalia #gnome|1287564365|0|GTKtoolkit|0|2 179|GTK+ and friends|GTKtoolkit|ANNOUNCE: gtkmm 2.91.1 released: http://mail.gnome.org/archives/gtkmm-list/2010-October/msg00033.html #gtk #cplusplus|1287478956|0||1|0 180|GTK+ and friends|GTKtoolkit|The #gtkhackfest started today. Thanks a lot to the event sponsors: #igalia, #lanedo, #codethink and the #GNOME foundation.|1287447826|0||0|2 181|GTK+ and friends|GTKtoolkit|#gtkhackfest started today at the #igalia offices in A Coruña http://live.gnome.org/Hackfests/GTK2010 #gnome #gtk|1287422775|0||0|0 182|GTK+ and friends|GTKtoolkit|libnotify, gtk API changes in 2.91.1: http://mail.gnome.org/archives/desktop-devel-list/2010-October/msg00193.html #gtk #gnome #xfce #lxde|1287324866|0||0|0 183|GTK+ and friends|GTKtoolkit|GTK+ 2.91.1 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-October/msg00127.html #gtk|1287324761|0||0|1 184|GTK+ and friends|GTKtoolkit|GTK+ 2.23.0 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-October/msg00128.html #gtk|1287324697|0||0|1 185|GTK+ and friends|GTKtoolkit|RT @bratschegnome: Backported gtk window resize grips to 2.x and posted to ppa:bratsche/gtk for any #ubuntu people who want to use/test it.|1287156390|0||0|1 186|GTK+ and friends|GTKtoolkit|Resize grip in all the GtkWindows now: http://blogs.fedoraproject.org/wp/mclasen/2010/10/09/getting-a-grip/ thanks to @bratschegnome #gtk|1286600672|0||0|1 187|GTK+ and friends|GTKtoolkit|@judsontwit You have some tips for porting here: http://live.gnome.org/PyGObject/IntrospectionPorting No many changes needed #python|1286298188|0||0|0 188|GTK+ and friends|GTKtoolkit|@UstunOzgur take a look here: http://live.gnome.org/PyGTK and here: http://live.gnome.org/PyGObject|1286297979|0||0|0 189|Kristian Rietveld|krietvel|RT @krietvel: Just pushed the last patch that finishes the transition of the OS X backend to the new rendering goodness. #gtk|1286297494|0|GTKtoolkit|0|1 190|GTK+ and friends|GTKtoolkit|ANNOUNCE: gtkmm 2.91.0 (#C++ bindings) released: http://mail.gnome.org/archives/gtkmm-list/2010-October/msg00000.html #gtk|1286128646|0||0|1 191|GTK+ and friends|GTKtoolkit|GTK+ 2.91.0 (unstable) released: http://ur1.ca/1xbzr The rendering cleanup work has landed. Porting guide here: http://ur1.ca/1xbzs #gtk|1286073059|0||0|0 192|GTK+ and friends|GTKtoolkit|Anyone up to the challenge of writing a WebP gdkpixbuf loader?|1285950573|0||0|3 193|Clutter Toolkit|cluttertoolkit|RT @cluttertoolkit: Clutter 1.4.0 - new stable release! grab it while it's hot, on www.clutter-project.org|1285731448|0|GTKtoolkit|0|10 194|GTK+ and friends|GTKtoolkit|We strongly recommend not using PyGTK for new projects and to port existing applications from #PyGTK to #PyGObject #python #gtk|1285721997|0||5|39 195|GTK+ and friends|GTKtoolkit|ANNOUNCE: PyGObject 2.26.0 released:http://mail.gnome.org/archives/python-hackers-list/2010-September/msg00019.html #gtk #python #bindings|1285721968|0||0|0 196|GTK+ and friends|GTKtoolkit|ANNOUNCE: GLib 2.26.0 (STABLE) released: http://mail.gnome.org/archives/gtk-devel-list/2010-September/msg00284.html #glib #gtk|1285721379|0||0|0 197|GTK+ and friends|GTKtoolkit|ANNOUNCE: gtkmm 2.22.0 (STABLE) released: http://mail.gnome.org/archives/gtkmm-list/2010-September/msg00095.html #gtk #c++ #bindings|1285721312|0||0|0 198|GTK+ and friends|GTKtoolkit|PyGTK 2.22.0 released: http://ur1.ca/1sc2n Note that new and existing PyGtk applications are recommended to use PyGObject|1285596826|0||0|0 199|GTK+ and friends|GTKtoolkit|GTK+ 2.22.0 ( STABLE ) released: http://mail.gnome.org/archives/gtk-devel-list/2010-September/msg00263.html #gtk|1285286958|0||2|5 200|GTK+ and friends|GTKtoolkit|Last call for the people interested in attending the #GTK+ hackfest in A Coruña: Please sign up at latest tomorrow! http://ur1.ca/1r2gt|1285255897|0||0|2 201|GTK+ and friends|GTKtoolkit|#GLib status update: GLib 2.25.17 and 2.27.0 released: http://mail.gnome.org/archives/gtk-devel-list/2010-September/msg00232.html #gtk|1285245997|0||0|0 202|GTK+ and friends|GTKtoolkit|Thoughts about #GtkTreeView refactoring: http://mail.gnome.org/archives/gtk-devel-list/2010-September/msg00260.html #gtk|1285245546|0||0|1 203|GTK+ and friends|GTKtoolkit|GTK+ 2.21.8 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-September/msg00204.html #gtk|1284485086|0||0|0 204|GTK+ and friends|GTKtoolkit|New GObject API added: g_object_class_install_properties(), an efficient way to install properties: http://ur1.ca/1mh3s #gobject #glib #gtk|1284484816|0||0|0 205|GTK+ and friends|GTKtoolkit|legacy-free grid container proposed by @havocp: http://mail.gnome.org/archives/gtk-devel-list/2010-September/msg00089.html #gtk|1283965732|0||0|1 206|GTK+ and friends|GTKtoolkit|Minutes of the #GTK team meeting - 2010-09-07: http://mail.gnome.org/archives/gtk-devel-list/2010-September/msg00115.html|1283965715|0||0|0 207|GTK+ and friends|GTKtoolkit|New work to get #DirectFB backend in a good state, thanks Lionel Landwerlin! #gtk http://ur1.ca/1k0hx|1283965546|0||0|0 208|GTK+ and friends|GTKtoolkit|GTK+ 2.21.7 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-August/msg00291.html #gtk|1283198533|0||0|0 209|GTK+ and friends|GTKtoolkit|GObject Introspection status: http://mail.gnome.org/archives/gtk-devel-list/2010-August/msg00254.html #gtk #glib|1282939837|0||1|2 210|GTK+ and friends|GTKtoolkit|GDateTime, the new time & date API just landed in Glib: https://bugzilla.gnome.org/show_bug.cgi?id=50076#c85 #gtk #glib|1282699797|0||0|1 211|GTK+ and friends|GTKtoolkit|CSS-like styling for #GTK+ thanks to Carlos Garnacho: http://blogs.gnome.org/carlosg/2010/08/23/css-like-styling-for-gtk/ #gtk|1282602303|0||0|3 212|GTK+ and friends|GTKtoolkit|RT @migueldeicaza: Gtk+ getting cascading stylesheets: http://blogs.gnome.org/carlosg/2010/08/23/css-like-styling-for-gtk/|1282594548|0||0|1 213|andreasn1|andreasn1|RT @andreasn1: ♺ @hbons: thanks to gtk+ maintainer mclasen we can now ditch icon-naming-utils :)|1282356193|0|GTKtoolkit|0|2 214|GTK+ and friends|GTKtoolkit|GTK+ schedule: glib 2.26 and #gtk+ 2.22 for #GNOME 2.32 (Sep'10). glib 2.28, gtk+ 2.24 and gtk+ 3.0 for Dec'10 http://ur1.ca/16o49|1282256544|0||0|0 215|GTK+ and friends|GTKtoolkit|@thomasvs I saw someone with an N900 in my lift yesterday, had the same thought|1282217985|0||0|0 216|Simón P.|spenap|RT @spenap: GObject Introspection has landed in Grilo! http://bit.ly/9f4DAa #mswl #igalia #pygobject #gobject-introspection|1282166595|0|GTKtoolkit|0|4 217|GTK+ and friends|GTKtoolkit|Minutes of the GTK+ Team Meeting - 2010-08-17: http://mail.gnome.org/archives/gtk-devel-list/2010-August/msg00155.html #gtk|1282094165|0||0|0 218|GTK+ and friends|GTKtoolkit|GTK+ 2.90.6 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-August/msg00146.html #gtk|1282061092|0||0|0 219|Emmanuele Bassi|ebassi|RT @ebassi: http://bit.ly/9gabxR - @cluttertoolkit + gobject-introspection + pygobject. say goodbye to pyclutter!|1282043493|0|GTKtoolkit|0|3 220|GTK+ and friends|GTKtoolkit|GTK+ 2.21.6 (unstable) Relased: http://mail.gnome.org/archives/gtk-devel-list/2010-August/msg00127.html #gtk|1282006494|0||0|0 221|Stormy|storming|RT @storming: Novell is looking for a GNOME developer to work on SUSE Linux. http://linkd.in/bEAUUj|1282001084|0|GTKtoolkit|0|19 222|Tommi Komulainen|tko|RT @tko: I want my libglib-gslist.so and libglib-glist.so .. and some popcorn. maybe just popcorn|1282000936|0|GTKtoolkit|0|1 223|GTK+ and friends|GTKtoolkit|GLib 2.25.14 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-August/msg00123.html #gtk|1282000398|0||0|0 224|Emmanuele Bassi|ebassi|RT @ebassi: I'm pretty pleased with the API that landed in json-glib for 0.12|1281810990|0|GTKtoolkit|0|1 225|GTK+ and friends|GTKtoolkit|The @ebassi implementation to support common licenses in about dialog has been added to #GTK: http://ur1.ca/11u5a|1281436699|0||0|0 226|GTK+ and friends|GTKtoolkit|Web inspector support lands in #WebKitGtk+ check the screencast demo http://blog.kov.eti.br/?p=118|1281376660|0||1|0 227|GTK+ and friends|GTKtoolkit|#GTK+ #Python developers are recommended to use the\nGObject-Introspection features available in PyGObject. http://live.gnome.org/PyGObject|1281362391|0||0|0 228|GTK+ and friends|GTKtoolkit|PyGTK 2.21.0 (unstable) released: http://ur1.ca/11gse . 2.22 will be the last release in the PyGTK series.|1281362089|0||0|0 229|GTK+ and friends|GTKtoolkit|#GTK+ Hackfest, October 18-22, A Coruña, Spain. http://ur1.ca/11f6u . Add yourself if you are interested in attending http://ur1.ca/11f6v|1281350218|0||0|4 230|GTK+ and friends|GTKtoolkit|Benjamin Otte's proposal for GTK+ drawing API: gtk_widget_draw(): http://ur1.ca/11f5m #gtk|1281350013|0||2|0 231|GTK+ and friends|GTKtoolkit|Some drawing APIs have been deprecated in GTK+ 2.22. Start porting your drawing to Cairo! http://ur1.ca/11f4t|1281349855|0||0|0 232|GTK+ and friends|GTKtoolkit|GLib 2.24.2 (stable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-August/msg00057.html #gtk|1281349547|0||0|0 233|GTK+ and friends|GTKtoolkit|glib (unstable) 2.25.13 released: http://mail.gnome.org/archives/gtk-devel-list/2010-August/msg00052.html #gtk|1281201884|0||0|0 234|GTK+ and friends|GTKtoolkit|glib 2.25.12 is here! http://mail.gnome.org/archives/gtk-devel-list/2010-July/msg00052.html There have been many API changes in GDBus.|1280601329|0||0|0 235|Chema Casanova|txenoo|RT @txenoo: Dispoñible a foto de grupo de #guadeces2010 http://www.flickr.com/photos/davizin/4822344878/ gracias a David Cabrero|1280002637|0|GTKtoolkit|0|2 236|Andrea Cimitan|cimi|RT @cimi: Gtk+ 3.0 theming engines... let's start the discussion :)|1279678340|0|GTKtoolkit|0|1 237|Alberto Ruiz|acruiz|RT @acruiz: Marker support in GtkScrollbar http://bit.ly/cKUTeW|1279580539|0|GTKtoolkit|0|2 238|GTK+ and friends|GTKtoolkit|RT @ebassi: today I moved #clutter-gtk to depend on #gtk3; tomorrow w I'll fix the double-events bug; on wednesday I'll rework the API|1279561116|0||0|0 239|Sandy Armstrong|sandyarmstrong|RT @sandyarmstrong: @awafaa gconf is obsolete, fool|1279301600|0|GTKtoolkit|0|1 240|Jonh Wendell|jwendell|RT @jwendell: #vinagre ported to GtkApplication :) !gtk|1279228583|0|GTKtoolkit|0|1 241|Clutter Toolkit|cluttertoolkit|RT @cluttertoolkit: #clutter 1.3.8 is the first snapshot with cally, the accessibility library for clutter apps and toolkits|1278972910|0|GTKtoolkit|0|4 242|GTK+ and friends|GTKtoolkit|GTK+ 2.90.5 released: http://mail.gnome.org/archives/gtk-devel-list/2010-July/msg00021.html #gtk|1278952963|0||0|0 243|GTK+ and friends|GTKtoolkit|Glib 2.25.11 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-July/msg00019.html #gtk|1278952925|0||0|0 244|Johan Dahlin|johandahlin|RT @johandahlin: New blog post: Using LLVM to speed up function invocation in a dynamic language binding http://bit.ly/dA6IjH|1278620689|0|GTKtoolkit|0|4 245|GTK+ and friends|GTKtoolkit|GTK+ bindings for #Falcon announced: http://mail.gnome.org/archives/gtk-list/2010-June/msg00183.html #gtk|1278000421|0||0|0 246|GTK+ and friends|GTKtoolkit|#GSettings / #dconf is ready: http://mail.gnome.org/archives/desktop-devel-list/2010-June/msg00226.html . Please port your modules! #gtk|1277909398|0||0|1 247|GTK+ and friends|GTKtoolkit|More work in height-for-width layout system for GTK+ : http://blogs.gnome.org/tvb/2010/06/30/gtk-learns-height-for-width-episode-ii/ #gtk|1277909313|0||0|0 248|GTK+ and friends|GTKtoolkit|GLib 2.25.10 (unstable) released: http://ur1.ca/0ee7o WARNING: There have been API changes in GDBus. #gtk|1277685452|0||0|1 249|GTK+ and friends|GTKtoolkit|gdk-pixbuf is now a standalone package: http://mail.gnome.org/archives/gtk-devel-list/2010-June/msg00172.html #gtk|1277685365|0||0|1 250|GTK+ and friends|GTKtoolkit|GTK+ 2.90.4 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-June/msg00182.html #gtk|1277685274|0||0|0 251|GTK+ and friends|GTKtoolkit|GTK+ 2.21.3 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-June/msg00183.html #gtk|1277685237|0||0|0 252|GTK+ and friends|GTKtoolkit|We are open to fix API that make the life of #bindings harder but only by addition+rename, or addition+deprecation. File bugs, please #gtk|1277312749|0||0|0 253|GTK+ and friends|GTKtoolkit|Minutes of the GTK+ team IRC meeting - 2010-06-22: http://mail.gnome.org/archives/gtk-devel-list/2010-June/msg00155.html #gtk|1277312445|0||0|0 254|GTK+ and friends|GTKtoolkit|GTK+ team IRC meeting 2010-06-22. In #gtk-devel on irc.gnome.org at 20:00 UTC. Agenda: http://ur1.ca/q6jh #gtk|1277226823|0||0|0 255|Clutter Toolkit|cluttertoolkit|RT @cluttertoolkit: the new #clutter website is now live: http://www.clutter-project.org|1276948072|0|GTKtoolkit|0|5 256|GTK+ and friends|GTKtoolkit|Proposed #GNOME goal: Port your #PyGTK to the new #PyGI bindings http://bit.ly/cvfzO8|1276941335|0||1|2 257|Christian Hergert|hergertme|RT @vwduder: im sad because @ebassi doesn't like my in/out param comments :-)|1276904611|0|GTKtoolkit|0|1 258|Guillaume Mazoyer|gmazoyer|RT @gmazoyer: ♺ @GTKtoolkit: #java bindings version 4.0.16 released: http://article.gmane.org/gmane.comp.gnome.bindings.java/1796 #gtk|1276889421|0|GTKtoolkit|0|1 259|GTK+ and friends|GTKtoolkit|#java bindings version 4.0.16 released: http://article.gmane.org/gmane.comp.gnome.bindings.java/1796 #gtk|1276885917|0||0|0 260|GTK+ and friends|GTKtoolkit|RT @cwiiis: MxIconTheme and MxIcon respect system's icon theme (and changes) now in #mx master :) Made possible by @thosw's XSettings work|1276883019|0||0|0 261|GTK+ and friends|GTKtoolkit|#javascript mailing list just created. Discuss its usage in GObject libraries: GTK+, Glib ... http://ur1.ca/08lwz by @jwendell #gtk|1276842639|0||0|0 262|GTK+ and friends|GTKtoolkit|Note fot Win32 users: XP theming is back in 2.90.3 . Please test. #gtk|1276829697|0||0|0 263|GTK+ and friends|GTKtoolkit|GTK+ 2.90.3 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-June/msg00137.html #gtk|1276829633|0||0|0 264|GTK+ and friends|GTKtoolkit|GLib 2.25.9 (unstable) released: http://ur1.ca/08hrl WARNING: API changes in GDBus, GSettings and GApplication #gtk|1276829581|0||0|0 265|scaroo|scaroo|RT @scaroo: #SeedKit does RGBA window with css shadows and stuff : http://dl.dropbox.com/u/5746554/seedkit-does-rgba.png|1276734086|0|GTKtoolkit|0|1 266|scaroo|scaroo|RT @scaroo: Great #SeedKit showcase from @cldx3000 : http://bit.ly/cRDosJ :D|1276734071|0|GTKtoolkit|0|1 267|Lluis Sanchez Gual|slluis|RT @slluis: MonoDevelop 2.4 released! http://monodevelop.com/Download/MonoDevelop_2.4_Released|1276699438|0|GTKtoolkit|0|35 268|GTK+ and friends|GTKtoolkit|RT @bertogg: GNOME Developer Training at GUADEC, with Claudio Saavedra, Fernando Herrera, Dave Neary and me: http://is.gd/cPkpJ|1276687240|0||0|0 269|SparkleShare|SparkleShare|RT @sparkleshare: Let's start sparkling!|1276619215|0|GTKtoolkit|0|7 270|Haakon Sporsheim|haaspors|RT @haakonsporsheim: I built my first app for #android today using jni and #glib :P Sweet :)|1276472258|0|GTKtoolkit|0|4 271|GTK+ and friends|GTKtoolkit|Converting libraries and plugins to use GTK+3: http://mail.gnome.org/archives/desktop-devel-list/2010-June/msg00142.html #gtk|1276390360|0||1|0 272|GTK+ and friends|GTKtoolkit|Call to GNOME maintainers: #GNOME 2.31.4 to ship GTK+ 2.90: http://bit.ly/bnuk3e #gtk|1276390311|0||0|0 273|GTK+ and friends|GTKtoolkit|API changes in GLib master: http://mail.gnome.org/archives/gtk-devel-list/2010-June/msg00079.html #gtk|1276390197|0||1|0 274|GTK+ and friends|GTKtoolkit|GLib 2.25.8 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-June/msg00036.html #gtk|1276390151|0||0|0 275|Johan Dahlin|johandahlin|RT @johandahlin: is adding introspection support for GstMiniObject and other weird instantitiable GTypes. Still left: gjs/pygi support.|1276384704|0|GTKtoolkit|0|3 276|Clutter Toolkit|cluttertoolkit|RT @cluttertoolkit: So, yes: we dropped the copyright waiver on Clutter and Cogl. Contributions welcome!|1276281694|0|GTKtoolkit|0|12 277|GTK+ and friends|GTKtoolkit|ANNOUNCE: gtkmm (C++ GTK+ bindings) 2.90 (unstable) released: http://ur1.ca/06nhn #gtk|1276182909|0||0|0 278|Juanje Ojeda |juanjeojeda|RT @juanjeojeda: Progress on Gtk+ multitouch support: http://bit.ly/amIUiL #gtk #multitouch /via @garnacho|1276158728|0|GTKtoolkit|0|2 279|GTK+ and friends|GTKtoolkit|GTK+ 2.90.2 (unstable) released: http://ur1.ca/06k6o Feedback about GtkApplication apreciated #gtk|1276141907|0||0|0 280|GTK+ and friends|GTKtoolkit|Minutes of the GTK+ team IRC meeting - 2010-06-08: http://mail.gnome.org/archives/gtk-devel-list/2010-June/msg00044.html #gtk|1276040191|0||0|0 281|GTK+ and friends|GTKtoolkit|RT @bratschegnome: @federicomena http://mzl.la/9PoFhD is nice I used to have CSD whr you can drag gtk+ from anywr in a window|1276038852|0||0|0 282|GTK+ and friends|GTKtoolkit|GTK+ team IRC meeting 2010-06-08.In #gtk-devel on irc.gnome.org at 20:00 UTC.Agenda: http://ur1.ca/q6jh Everyone is invited to attend|1276010278|0||0|0 283|GTK+ and friends|GTKtoolkit|ANNOUNCE: glibmm (C++ Glib bindings) 2.25.1 (unstable) released: http://ur1.ca/067ff #gtk|1276007921|0||0|0 284|GTK+ and friends|GTKtoolkit|GLib 2.25.8 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-June/msg00036.html #gtk|1276003038|0||0|1 285|GTK+ and friends|GTKtoolkit|New version of #pygi (the new #python bindings based in #GObjectIntrospection) released: http://ur1.ca/0623c|1275945620|0||0|3 286|GTK+ and friends|GTKtoolkit|RT @ebassi: aaaand GBinding (a libexo-like binding between object properties) is mostly done: http://ur1.ca/05fz1 #gtk #glib|1275653238|0||1|0 287|GTK+ and friends|GTKtoolkit|RT @ebassi: plus, I have a GIO branch with GController and friends|1275653044|0||0|0 288|GTK+ and friends|GTKtoolkit|RT @ebassi submitted my patch for creating a GObjectController and get bulk notification #gtk|1275653008|0||0|0 289|GTK+ and friends|GTKtoolkit|GTK+ 2.21.1 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-May/msg00157.html #gtk|1275271768|0||0|0 290|GTK+ and friends|GTKtoolkit|#dtrace and #systemtap support added to #Glib. Enjoy! https://bugzilla.gnome.org/show_bug.cgi?id=606044 #gtk|1275056183|0||0|2 291|GTK+ and friends|GTKtoolkit|GTK+ 2.90.1 (unstable) released: http://ur1.ca/03hbv . Multiple input device support, flippable widgets and more ...|1274845319|0||1|0 292|GTK+ and friends|GTKtoolkit|Minutes of the GTK+ team IRC meeting - 2010-05-25: http://mail.gnome.org/archives/gtk-devel-list/2010-May/msg00147.html #gtk #meeting|1274826674|0||0|0 293|GTK+ and friends|GTKtoolkit|[REMINDER] GTK+ team IRC meeting 2010-05-25 at 20:00 UTC. Join us in #gtk-devel on irc.gnome.org. Agenda: http://ur1.ca/q6jh #gtk #meeting|1274801128|0||0|1 294|GTK+ and friends|GTKtoolkit|Gtk2Hs 0.11.0 (Haskell bindings) released: http://haskell.org/gtk2hs/archives/2010/05/25/gtk2hs-0110-released/ #gtk #haskell|1274800929|0||0|0 295|GTK+ and friends|GTKtoolkit|dconf 0.3.1 released: http://mail.gnome.org/archives/gtk-devel-list/2010-May/msg00145.html #gtk|1274800819|0||0|0 296|GTK+ and friends|GTKtoolkit|GLib 2.25.7 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-May/msg00144.html #gtk|1274800611|0||0|0 297|GTK+ and friends|GTKtoolkit|XI2 @garnacho 's branch ready for review (xi2-for-master): http://mail.gnome.org/archives/gtk-devel-list/2010-May/thread.html #gtk|1274472793|0||0|0 298|GTK+ and friends|GTKtoolkit|ANNOUNCE: gtk-doc 1.15 released: http://mail.gnome.org/archives/gtk-doc-list/2010-May/msg00000.html #gtk|1274446357|0||0|0 299|GTK+ and friends|GTKtoolkit|Ryan Lortie (@desrt) just released #dconf 0.3: http://mail.gnome.org/archives/gtk-devel-list/2010-May/msg00128.html #gtk|1274311034|0||0|0 300|GTK+ and friends|GTKtoolkit|GLib 2.25.6 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-May/msg00127.html #gtk|1274310863|0||0|0 301|GTK+ and friends|GTKtoolkit|GLib 2.25.6 (unstable) released:|1274310818|0||0|0 302|GTK+ and friends|GTKtoolkit|GLib 2.25.5 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-May/msg00078.html #gtk|1273891783|0||0|0 303|GTK+ and friends|GTKtoolkit|Glade 3.7.1 released with lot of improvements: http://ur1.ca/011bc Thanks to #Openismus who helped sponsor this release #gtk|1273885948|0||0|0 304|GTK+ and friends|GTKtoolkit|GDBus merged in Glib master http://mail.gnome.org/archives/gtk-devel-list/2010-May/msg00066.html #gtk|1273837079|0||0|1 305|GTK+ and friends|GTKtoolkit|Minutes of the GTK+ team IRC meeting - 2010-05-11 : http://mail.gnome.org/archives/gtk-devel-list/2010-May/msg00047.html #gtk|1273636581|0||0|0 306|GTK+ and friends|GTKtoolkit|[REMINDER] GTK+ team IRC meeting - 2010-05-11 at 20:00 UTC. Join us in #gtk-devel on irc.gnome.org. Agenda: http://ur1.ca/q6jh #gtk #meeting|1273606386|0||0|0 307|GTK+ and friends|GTKtoolkit|GTK+ 2.90.0 (unstable) released. This is the first development release leading toward 3.0. http://ur1.ca/006p2 #gtk #gtk3|1273553873|0||0|5 308|GTK+ and friends|GTKtoolkit|Changes in GTK+ master that affect third parties: http://mail.gnome.org/archives/devel-announce-list/2010-May/msg00001.html #gtk #gtk3|1273531549|0||0|0 309|GTK+ and friends|GTKtoolkit|Have dark themes is more easy now thanks to Bastian Nocera work: http://bit.ly/dBJzgn #gtk|1273531264|0||0|2 310|GTK+ and friends|GTKtoolkit|GTK+ 2.21.0 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-May/msg00026.html #gtk|1273285878|0||0|0 311|GTK+ and friends|GTKtoolkit|Minutes of the GTK+ IRC team meeting - 2010-05-04: http://mail.gnome.org/archives/gtk-devel-list/2010-May/msg00010.html #gtk|1273024620|0||0|0 312|GTK+ and friends|GTKtoolkit|GTK+ 2.20.1 (stable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-May/msg00004.html #gtk|1272983158|0||0|0 313|GTK+ and friends|GTKtoolkit|GLib 2.24.1 (stable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-May/msg00005.html #gtk|1272983138|0||0|0 314|GTK+ and friends|GTKtoolkit|Next GTK+ team meeting: 2010-05-04 at 20:00 UTC. More info and agenda: http://ur1.ca/q6jh . As always, everyone is invited to attend. #gtk|1272848781|0||1|0 315|GTK+ and friends|GTKtoolkit|#Perl bindings: Gtk2 1.230 (unstable) available: http://mail.gnome.org/archives/gtk-perl-list/2010-April/msg00120.html #gtk|1272341271|0||0|0 316|Emmanuele Bassi|ebassi|RT @ebassi: for the first time in ages I was able to work a bit on #gtkperl and add missing 2.16 and 2.18 wrappers|1272139155|0|GTKtoolkit|0|1 317|GTK+ and friends|GTKtoolkit|GLib 2.25.3 (unstable) released with more #GSettings fixes: http://mail.gnome.org/archives/gtk-devel-list/2010-April/msg00090.html #gtk|1272118354|0||0|1 318|GTK+ and friends|GTKtoolkit|GLib 2.25.2 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-April/msg00079.html|1272028911|0||0|0 319|GTK+ and friends|GTKtoolkit|GTK+ Learns height-for-width geometry. Thanks Tristan Van Berkom and #Openismus for sponsoring him! http://ur1.ca/wiz3 #gtk|1271969484|0||1|2 320|GTK+ and friends|GTKtoolkit|#GSettings porting guide available: http://ur1.ca/w2xl . Feedback welcomed!: http://ur1.ca/w2xn #gtk|1271777672|0||4|4 321|GTK+ and friends|GTKtoolkit|Major change in Glib 2.25.0: #GSettings framework has been merged. This provides the API to replace #GConf.|1271715090|0||0|0 322|GTK+ and friends|GTKtoolkit|GLib 2.25.0 (unstable) released: http://mail.gnome.org/archives/gtk-devel-list/2010-April/msg00066.html #gtk|1271714608|0||0|1 323|GTK+ and friends|GTKtoolkit|GSettings status update by Matthias Clasen: http://blogs.fedoraproject.org/wp/mclasen/2010/04/17/gsettings/ #gtk #gsettingshackfest|1271519572|0||0|0 324|GTK+ and friends|GTKtoolkit|GNOME Python Hackfest: Day 1 (by John (J5) Palmieri): http://www.j5live.com/2010/04/14/gnome-python-hackfest-day-1/ #python #pythonhackfest|1271291950|0||0|1 325|GTK+ and friends|GTKtoolkit|Colin Walters: PyGTK, PyGI and PyGTK-on-PyGI #python #pythonhackfest http://ur1.ca/v5kw|1271291792|0||0|0 326|GTK+ and friends|GTKtoolkit|Python Hackfest started.Ttwo concrete goals: porting PyGObject to #Python 3.x and giving a push to PyGI. http://ur1.ca/v5jc|1271291075|0||0|0 327|GTK+ and friends|GTKtoolkit|GSettings Hackfest: Day 1 (by Vincent UNTZ) http://www.vuntz.net/journal/post/2010/04/13/GSettings-Hackfest:-Day-1 #gtk|1271290824|0||0|0 328|GTK+ and friends|GTKtoolkit|GSettings Hackfest started. Thanks to #Novell for sponsoring.Also to #RedHat, #Codethink and #Lanedo for sending people! http://ur1.ca/v5i4|1271290481|0||1|0 329|GTK+ and friends|GTKtoolkit|Xan Lopez from #Igalia attends the WebKit Contribution Meeting at the Apple HQ in Cupertino http://bit.ly/bHCqcC|1271247431|0||0|2 330|GTK+ and friends|GTKtoolkit|Kristian Rietveld advances the #GTK+ Quartz/Mac OS X backend http://bit.ly/cJzV2o|1271247006|0||2|0 331|GTK+ and friends|GTKtoolkit|#Openismus sponsors Tristan Van Berkom to complete the work on #GTK+ Natural Layout http://bit.ly/9FD3JC|1271246851|0||0|1 332|GTK+ and friends|GTKtoolkit|RT @bilboed Having trouble reading GObject or GStreamer code ? Here's a small step-by-step rundown : http://is.gd/bk7mD|1270738689|0||0|1 333|GTK+ and friends|GTKtoolkit|Colin Walters shares his thoughts about the new #GTK+ application class and its relationship with #GNOME 3 http://bit.ly/cvcHIG|1270482931|0||0|0 334|Lucas Rocha|lucasratmundo|RT @lucasratmundo: GNOME Shell has been officially proposed as a GNOME module: http://bit.ly/d1yKE2|1269993362|0|GTKtoolkit|0|3 335|Johan Dahlin|johandahlin|RT @johandahlin: New blog post http://blogs.gnome.org/johan/2010/03/30/bridging-the-development-gap-between-desktop-and-web/|1269993352|0|GTKtoolkit|0|1 336|GTK+ and friends|GTKtoolkit|New Glib STABLE release: 2.24 http://mail.gnome.org/archives/gtk-devel-list/2010-March/msg00149.html #gtk|1269892314|0||0|0 337|GTK+ and friends|GTKtoolkit|Help the GNOME Foundation to hire a sysadmin for GNOME! http://www.gnome.org/friends|1269658993|0||0|1 338|GTK+ and friends|GTKtoolkit|Our friends from #Openismus sponsor #Glade 3 improvements http://bit.ly/9GqLDl|1269656334|0||0|0 339|GTK+ and friends|GTKtoolkit|♺ @johandahlin: just commited the last remaining piece for cairo support in #gjs. World domination here we come|1269646821|0||0|0 340|FedericoMenaQuintero|federicomena|RT @federicomena: Yay, the patch for glade is done - https://bugzilla.gnome.org/show_bug.cgi?id=594231|1269616128|0|GTKtoolkit|0|1 341|Jorge Castro|castrojo|RT @castrojo: Become a Friend of GNOME: http://wp.me/poAPi-da|1269616083|0|GTKtoolkit|0|2 342|Johan Dahlin|johandahlin|RT @johandahlin: just commited the last remaining piece for cairo support in #gjs. World domination here we come|1269616001|0|GTKtoolkit|0|2 343|Jono Bacon|jonobacon|RT @jonobacon: New Acire and Python Snippets website! http://is.gd/aZGnF - still a work in progress, working on it as we speak! #pythons ...|1269615964|0|GTKtoolkit|0|5 344|GTK+ and friends|GTKtoolkit|Python Snippets: project to gather an archive of simple Python (with GTK+) examples http://ur1.ca/rru1 !gtk @jonobacon|1269555086|0||0|2 345|GTK+ and friends|GTKtoolkit|#yorbafoundation is hiring #Vala/#Gtk+ developers and summer interns in California to create multimedia apps http://yorba.org/jobs|1269479714|0||0|1 346|GTK+ and friends|GTKtoolkit|♺ @ploum: now that I have to use Qt and Qt documentation, I've only one word : #gtk rocks ! ( yeah for #gnome people)|1269441827|0||0|2 347|GTK+ and friends|GTKtoolkit|Minutes of the GTK+ Team Meeting: http://mail.gnome.org/archives/gtk-devel-list/2010-March/msg00134.html #gtk|1269391167|0||0|0 348|GTK+ and friends|GTKtoolkit|New GTK+ STABLE release: 2.20 http://mail.gnome.org/archives/gtk-devel-list/2010-March/msg00132.html #gtk|1269374138|0||1|1 349|GTK+ and friends|GTKtoolkit|Reminder: GTK+ meeting today at 20:00 UTC. Where: #gtk-devel on irc.gnome.orgAgenda: http://live.gnome.org/GTK+/Meetings|1269358583|0||0|0 350|GTK+ and friends|GTKtoolkit|GLib 2.23.6 (development branch) released: http://mail.gnome.org/archives/gtk-devel-list/2010-March/msg00131.html #gtk|1269264623|0||0|0 351|GNOME|gnome|RT @gnome: RT @rubenv GNOME was accepted for Google Summer of Code 2010! Looking for an IT student job that earns a lot? http://bit.ly/c ...|1269106193|0|GTKtoolkit|0|5 352|FedericoMenaQuintero|federicomena|RT @federicomena: Untested code is broken code, even if it compiles. #yay #me|1269106077|0|GTKtoolkit|0|1 353|Summer of Code|gsoc|RT @gsoc: Mentor organizations for #GSoC have been announced! http://bit.ly/bVMPWe|1268956782|0|GTKtoolkit|0|31 354|Clutter Toolkit|cluttertoolkit|RT @cluttertoolkit: just released clutter-gtk 0.10.4 - depending on clutter 1.2 and gtk+ 2.19|1268956726|0|GTKtoolkit|0|1 355|GTK+ and friends|GTKtoolkit|Support for Class private data will be available in Glib 2.24: https://bugzilla.gnome.org/show_bug.cgi?id=521707|1268848373|0||0|2 356|GTK+ and friends|GTKtoolkit|GTK+ team IRC meeting: March 23, at 20:00. http://ur1.ca/q6jg . Agenda: http://ur1.ca/q6jh #gtk|1268845861|0||0|1 357|GTK+ and friends|GTKtoolkit|GTK+ 2.18.9 (stable branch) released: http://mail.gnome.org/archives/gtk-devel-list/2010-March/msg00115.html #gtk|1268844918|0||0|0 358|GTK+ and friends|GTKtoolkit|GLib 2.22.5 released: http://mail.gnome.org/archives/gtk-devel-list/2010-March/thread.html #gtk|1268748183|0||0|0 359|GTK+ and friends|GTKtoolkit|GTK+ 2.18.8 released: http://mail.gnome.org/archives/gtk-devel-list/2010-March/msg00078.html #gtk|1268700945|0||0|0 360|GTK+ and friends|GTKtoolkit|@chrisblizzard There's a .zip bundle indeed http://bit.ly/9ZkQCM|1268698714|0||0|0 361|Alberto Ruiz|acruiz|RT @acruiz: libmodel and GTK+ from Codethink Labs! http://aruiz.synaptia.net/siliconisland/2010/03/libmodel-and-gtk-from-codethink-labs.html|1268698629|0|GTKtoolkit|0|3 362|GTK+ and friends|GTKtoolkit|New version of the User Interface Designer #Glade released: 3.7.0 http://ur1.ca/phww #gtk|1268458482|0||0|0 363|GTK+ and friends|GTKtoolkit|GTK+ 2.19.7 released: http://mail.gnome.org/archives/gtk-devel-list/2010-March/msg00044.html #gtk|1268174602|0||0|0 364|GTK+ and friends|GTKtoolkit|#GTK + future idea: automatic composite widgets using #GtkBuilder under the hood http://ur1.ca/oxly|1268157762|0||0|0 365|GTK+ and friends|GTKtoolkit|GLib 2.23.5 is released, congrats to @desrt for his first release http://bit.ly/a3th6S|1268070995|0||0|1 366|GTK+ and friends|GTKtoolkit|The first #PyGTK hackfest ever has been announced, 3.0 and Introspection are the major themes http://bit.ly/9Bd31g|1267875279|0||1|1 367|GTK+ and friends|GTKtoolkit|Kristian Rietveld gives an update of the GTK+/Quartz MacOSX native port http://bit.ly/cZ84VN|1267832356|0||2|0 368|Jono Bacon|jonobacon|RT @jonobacon: Merged in more python-snippets: desktop widget, drag and open in PyGTK, GStreamer video playback, and a bunch of fixes! h ...|1267831925|0|GTKtoolkit|0|3 369|GTK+ and friends|GTKtoolkit|#Openismus is looking for C/C++ GTK+/Qt trainees http://bit.ly/c16WEp|1267831840|0||0|0 370|Clutter Toolkit|cluttertoolkit|RT @cluttertoolkit: clutter 1.2.0 - first stable release, with lots of new API - http://bit.ly/ckdS6R|1267561885|0|GTKtoolkit|0|9 371|GTK+ and friends|GTKtoolkit|#Lanedo is hiring GTK+/GNOME hackers! http://bit.ly/d6fTWQ|1267560392|0||0|1 372|GTK+ and friends|GTKtoolkit|You can help to make a difference too, help the #GTK+ maintainers to improve the documetnation infrastructure! http://bit.ly/dmJifE|1267538283|0||0|1 373|GTK+ and friends|GTKtoolkit|Designers bring back excitement around the #GNOME project http://bit.ly/9Zcx8c|1267202696|0||0|1 374|GTK+ and friends|GTKtoolkit|#webkit #gtk gets ARGB support, allowing it to set a transparent background! http://bit.ly/cBeouj|1267146282|0||0|2 375|GTK+ and friends|GTKtoolkit|Follow GNOME TV on Vimeo http://is.gd/96PlT|1267050829|0||0|1 376|GTK+ and friends|GTKtoolkit|Extensive article on the state of #WebKitGtk http://is.gd/95En2|1267031517|0||0|0 377|GTK+ and friends|GTKtoolkit|@ploum Are you hitting !PyGTK or !GTK+ bugs? Are they already reported upstream?|1267029810|0||0|0 378|GTK+ and friends|GTKtoolkit|#GNUStep gets #GTK+ theming http://is.gd/95vHl more at http://is.gd/95wt8|1267029498|0||0|1 379|GTK+ and friends|GTKtoolkit|GTK+ 2.19.6 released: http://mail.gnome.org/archives/gtk-devel-list/2010-February/msg00050.html #gtk|1266966985|0||0|0 380|GTK+ and friends|GTKtoolkit|Did you know that #GTK+ is the official toolkit for the #LiMo software stack? http://bit.ly/cuEdHx|1266925406|0||0|0 381|GTK+ and friends|GTKtoolkit|@lmedinas publishes a #javascript #example on how to put an status icon with #Gtk+ http://bit.ly/9py1uC Thanks a lot Luis!|1266886644|0||1|1 382|GTK+ and friends|GTKtoolkit|♺ @ebassi: I should really finish up the GDom API as well|1266880653|0||0|0 383|GTK+ and friends|GTKtoolkit|♺ @ebassi: I hope to work on this for the next GIO release, and the GTK+ side for 3.0|1266880641|0||0|0 384|GTK+ and friends|GTKtoolkit|♺ @ebassi: just updated the ApplicationClass design wiki page with the stuff @Cwiiis did for Mx - http://bit.ly/cfAOJk|1266880559|0||0|0 385|GTK+ and friends|GTKtoolkit|#GTK+ Kick Start tutorial for #Vala http://www.vimeo.com/9617309 OGG: http://bit.ly/czegmp|1266874471|0||0|1 386|GTK+ and friends|GTKtoolkit|@migheldeicaza shows off #monodevelop on #macosx deploying and debugging #gtk sharp apps on a #MeeGo device http://bit.ly/9XR0Pg|1266874171|0||1|1 387|GTK+ and friends|GTKtoolkit|#GTK+ is the first toolkit to expose the #Xorg multitouch stack through #XI2 http://bit.ly/9tniKu - Nice work @garnacho!|1266863259|0||0|1 388|GTK+ and friends|GTKtoolkit|This is the official GTK+ first micropost!|1266856657|0||0|1 ��(uuay)cssview.css�������/* Make the text editor has a nice style */ .view { color: #2e3436; font-family: Monospace; background-color: alpha(white, 0.30); } .view:selected { color: white; background-color: #4a90d9; } scrollbar trough, .scrollbars-junction { background-color: alpha(white, 0.80); } scrollbar slider { border-width: 3px; border-style: solid; border-radius: 10px; border-color: transparent; background-clip: padding-box; background-color: #999; } scrollbar slider:hover { background-color: #555; } paned separator { background-color: alpha(white, 0.80); background-image: linear-gradient(transparent, transparent 1px, #999 1px, #999 4px, transparent 4px); background-size: 40px auto; background-repeat: no-repeat; background-position: center; } paned separator:hover { background-image: linear-gradient(transparent, transparent 1px, #555 1px, #555 4px, transparent 4px); } ��(uuay)move_cursor.png�������A�������PNG ��� IHDR��� ��� ���szz����sBIT|d���� pHYs��t��t�fx���tEXtSoftware�www.inkscape.org��<���tEXtAuthor�Jakub Steiner���/���5tEXtDescription�Inverted variant of the DMZ cursor theme.hu[<���3tEXtSource�http://jimmac.musichall.cz/themes.php?skin=7P3����IDATX����OSgǿ���,�9d@+�!%q����b��w�q��,�b�IU�e��43lم3�fJ�^�?�T#�����@-==��J���Zh�e[<ﳋr�Rؠ�y�s��<������`S,��<o����� @y0t0ƈ1��ܹ� �7�@� v��9s��v;1�hxx�{���6m�,���ӧO�@6��c422�������T���#�ñ .��j%"������H$r�1FV��@\ή�.b�ѽ{�~P���wDD]]]+��y��)b�ɝx)@œ'O.0ƨ���?��<q�1���r�@Y�"�c�Q,��q����������O�c�FGG��!ʗ�(]A|S(꭫���<yf�&�)���?�P(������ܠ-� ��ׯ�(����v��N'.^�����(�n�I�σ�Xy�(�_�l6@��x&��`���ԣ�x���8�w��<wpp��PGGI�Dn���r�(YZ�(�v�F�yOOΟ?�b��@��B�������0����������+Wp��Q�t�=O�mXf&8��SSS=�1���yC500���; g{{;I��<� �*�ܼx���dg}}����^�={6�:���Z����r���&� ۷o�ۏD"��~�ڑ#Gp��5�z���t�����@ ��0���˗W}ՊM��ADD����� � �N�E�n6�����6L�����ɤ��s����T�翹��������lV2���>z���={&�|��R�����+����ł�����Х�7o6:t�d����&�P'ﵴ��֭[,��-�D�W�������3��555o���G�LFjmm}i0�J�����`uuu�&�[�(�p�� @&�<�FǝN'3�9�"|�`0����lzz:d�X���< �aG\�J�j�y~,�NK�g�3011A�LF*++?�&�W��.���Y��4:��KZ�vO___�7�������� 8p��d2���J��ԉ�5�9x3��d4Wu�R�����c�����μ���D� �9i�+�755Q2��|>_h��%^��T*�~�,�N/�{�nJ$R ����O�hڋ/�P�T&��?>77'���,��ڵ���$BD�Vм^�j��-xggg%��@ ��$A�;v�8�-��)��xDCCþ`0����H�x\���������F�/��lll�/�b G�ZmѕC)���^�---��r�B�"�9��U��XQ��ϫ������d�`�^\�5�?:!�o �!����IEND�B`���(uuay)blends.png������������PNG ��� IHDR������������/����bKGD������������� pHYs����������tIME�$�}T���iTXtComment�����Created with GIMPd.e��xIDATx���� � D�=c�_�-�-�!��L$/$�������������������,�f�I�z�{��ux+ ��@@ @ ��@@ @ ��@@ �@@ ��@@ �@@ ��@���@@ ��@���@@ ����@@ ����@@ �����@@ ���I甩�@@ �@@ ��@@ �@@ ��@���@��������������������������������������������������������������������������������������������������Ce���t[awj��=���@@ ��@@ ��@@ ��@@ ��@@ ��@@ ��@@ ��@@ ��@@ � @ ��@@ �@@ �������������������`cF��s�����IEND�B`���(uuay)���� SW�@PW�(@�Unknown error���_matherr(): %s in %s(%g, %g) (retval=%g) ��Argument domain error (DOMAIN)�Argument singularity (SIGN)��Overflow range error (OVERFLOW)�The result is too small to be represented (UNDERFLOW)���Total loss of significance (TLOSS)��Partial loss of significance (PLOSS)�����;W��;W��;W��;W�<W�@<W�Mingw-w64 runtime failure: �Address %p has no image-section� VirtualQuery failed for %d bytes at address %p���� VirtualProtect failed with code 0x%x�� Unknown pseudo relocation protocol version %d. ��� Unknown pseudo relocation bit size %d. ���GCC: (GNU) 5.3.1 20151207���GCC: (GNU) 5.3.1 20160211���GCC: (GNU) 5.3.1 20160211���GCC: (GNU) 5.3.1 20160211���GCC: (GNU) 5.3.1 20151207���GCC: (GNU) 5.3.1 20151207���GCC: (GNU) 5.3.1 20151207���GCC: (GNU) 5.3.1 20151207���GCC: (GNU) 5.3.1 20151207���GCC: (GNU) 5.3.1 20151207���GCC: (GNU) 5.3.1 20151207���GCC: (GNU) 5.3.1 20151207���GCC: (GNU) 5.3.1 20151207���GCC: (GNU) 5.3.1 20151207���GCC: (GNU) 5.3.1 20151207���GCC: (GNU) 5.3.1 20151207���GCC: (GNU) 5.3.1 20151207���GCC: (GNU) 5.3.1 20151207���GCC: (GNU) 5.3.1 20151207���GCC: (GNU) 5.3.1 20151207���GCC: (GNU) 5.3.1 20151207���GCC: (GNU) 5.3.1 20151207���GCC: (GNU) 5.3.1 20151207���GCC: (GNU) 5.3.1 20151207���GCC: (GNU) 5.3.1 20160211���GCC: (GNU) 5.3.1 20151207���GCC: (GNU) 5.3.1 20151207���GCC: (GNU) 5.3.1 20160211��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������`����������p��b�8a����������p�Lc��a��������� q��c��a���������\q��c��a����������q��c�0b���������Dr�Dd����������������������d��d��d�e�0e�Te�te��e��e��e��e��e�f�(f�@f�\f�|f��f��f��f��f�g�g�0g�Tg�tg��g��g��g��g� h�Lh�|h��h��h��h��h��h�i� i�8i�Xi������i��i��i��i��i�j� j�8j�Tj�hj��j��j��j��j��j��k�$k�����@k�Pk�\k�xk��k��k��k��k��k��k�����l�$l�4l�Dl�Tl�pl��l��l��l��l������m�m�0m�Dm�Zm�pm��m��m��m��m��m��m��m�n�0n�Nn�Vn�jn�xn��n��n������n��n��n��n��n�o�o� o�.o�8o�Bo�No�Vo�^o�ho�ro�zo��o��o��o��o��o��o��o��o��o��o������d��d��d�e�0e�Te�te��e��e��e��e��e�f�(f�@f�\f�|f��f��f��f��f�g�g�0g�Tg�tg��g��g��g��g� h�Lh�|h��h��h��h��h��h�i� i�8i�Xi������i��i��i��i��i�j� j�8j�Tj�hj��j��j��j��j��j��k�$k�����@k�Pk�\k�xk��k��k��k��k��k��k�����l�$l�4l�Dl�Tl�pl��l��l��l��l������m�m�0m�Dm�Zm�pm��m��m��m��m��m��m��m�n�0n�Nn�Vn�jn�xn��n��n������n��n��n��n��n�o�o� o�.o�8o�Bo�No�Vo�^o�ho�ro�zo��o��o��o��o��o��o��o��o��o��o�������gtk_application_get_type����gtk_application_get_windows�����gtk_application_set_app_menu����gtk_application_set_menubar���gtk_application_window_get_type���bgtk_builder_add_from_resource�ngtk_builder_get_object����tgtk_builder_new���Agtk_file_chooser_get_file�Xgtk_file_chooser_native_new���6gtk_get_major_version�7gtk_get_micro_version�8gtk_get_minor_version��gtk_label_set_text�����gtk_menu_new_from_model����gtk_menu_tool_button_set_menu��gtk_message_dialog_new�����gtk_native_dialog_destroy��gtk_native_dialog_show����� gtk_settings_get_default��� gtk_show_about_dialog�dgtk_statusbar_pop�egtk_statusbar_push����3gtk_text_buffer_get_char_count����8gtk_text_buffer_get_insert����=gtk_text_buffer_get_iter_at_mark��fgtk_text_buffer_set_text���gtk_text_iter_get_line�����gtk_text_iter_get_line_offset��gtk_widget_class_bind_template_callback_full���gtk_widget_class_bind_template_child_full��gtk_widget_class_set_template_from_resource����gtk_widget_destroy�����gtk_widget_hide����gtk_widget_init_template���gtk_widget_show����gtk_window_fullscreen��gtk_window_get_size����gtk_window_maximize����gtk_window_present�����gtk_window_set_default_size���gtk_window_set_hide_titlebar_when_maximized����g_action_change_state��g_action_get_name��g_action_get_state�����g_action_map_add_action����g_action_map_add_action_entries���u�g_application_run�g_file_load_contents��/g_settings_create_action��1g_settings_get����2g_settings_get_boolean����Ig_settings_new����kg_settings_set����lg_settings_set_boolean�����g_simple_action_set_state�@g_static_resource_fini����Ag_static_resource_get_resource����Bg_static_resource_init����fg_error_free���g_free�����g_intern_static_string����g_once_init_enter�g_once_init_leave��g_strdup_printf����g_variant_get_boolean��g_variant_get_string��g_variant_new_boolean�lg_variant_unref���|�g_object_get_data���g_object_new����g_object_ref����g_object_set����g_object_set_data_full������g_object_unref������g_signal_connect_data�g_type_class_adjust_private_offset����g_type_class_peek_parent��Og_type_register_static_simple���DeleteCriticalSection���EnterCriticalSection���GetCurrentProcess��GetCurrentProcessId��GetCurrentThreadId��GetLastError��GetModuleHandleA��EGetProcAddress��dGetStartupInfoA�{GetSystemTimeAsFileTime��GetTickCount���InitializeCriticalSection�&LeaveCriticalSection���QueryPerformanceCounter�gSetUnhandledExceptionFilter�tSleep��TerminateProcess���TlsGetValue��UnhandledExceptionFilter���VirtualProtect���VirtualQuery��7�__dllonexit�:�__getmainargs�;�__initenv�D�__lconv_init��h�__set_app_type��k�__setusermatherr��y�_acmdln���_amsg_exit����_cexit����_fmode��0_initterm�4_iob���_lock�2_onexit�Fcalloc��Pexit��`fprintf�gfree��rfwrite���malloc���memcpy���signal���strlen���strncmp��_unlock�;abort�Wvfprintf�����`��`��`��`��`��`��`��`��`��`��`��`��`��`��`��`��`��`��`��`��`��`��`��`��`��`��`��`��`��`��`��`��`��`��`��`��`��`��`��`��`��`�libgtk-3-0.dll��`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�`�libgio-2.0-0.dll����(`�(`�(`�(`�(`�(`�(`�(`�(`�(`�libglib-2.0-0.dll���<`�<`�<`�<`�<`�<`�<`�<`�<`�<`�libgobject-2.0-0.dll����P`�P`�P`�P`�P`�P`�P`�P`�P`�P`�P`�P`�P`�P`�P`�P`�P`�P`�P`�P`�P`�KERNEL32.dll����d`�d`�d`�d`�d`�d`�d`�d`�d`�d`�d`�d`�d`�d`�d`�d`�d`�d`�d`�d`�d`�d`�d`�d`�d`�d`�d`�msvcrt.dll������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������0@���������@�`&@���������(@��'@�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������W��W��SW� �W���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@������������$����"�������p@�����6@�]�����������,����N��������@"@�����7@���� 7@����������������i���������$@���������������������������%@�����������������?��������������������r��������������������8��������`&@������������������������p&@��������������������������&@�7���������������������������������������������'@������������������������������������������������(@�����������������t��������`)@����������������8��������p)@��������������������������)@�K��������������(������������������������������-@�������������������������/@�j��������������$���������������������������������������������1@����������������d������������������A�������6@������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ "�������GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/crtexe.c��@��������char�size_t�%����unsigned int�int�uintptr_t�M����wchar_t�b����short unsigned int�long int�long long int���������sizetype�long unsigned int�unsigned char�o��_EXCEPTION_RECORD�P� ��ExceptionCode�� ����ExceptionFlags�� ���H��� i��ExceptionAddress�� N��NumberParameters�� ���ExceptionInformation�� S���!�� _CONTEXT�����ContextFlags�����Dr0����Dr1� ���Dr2� ���Dr3����Dr6����Dr7� ���FloatSave����SegGs�����SegFs�����SegEs�����SegDs�����Edi�����Esi�����Ebx�����Edx�����Ecx�����Eax�����Ebp�����Eip�����SegCs�����EFlags�����Esp�����SegSs�����ExtendedRegisters� ����WINBOOL�����BYTE��X��WORD������DWORD��C��float����LPBYTE�����signed char�short int�long long unsigned int�LONG_PTR�6��ULONG_PTR�7C��PVOID���� CHAR����� LONG���[�� LPSTR�Iu�� PLONG�����h�� HANDLE���� ULONGLONG���� EXCEPTION_ROUTINE������������i��N����N��� PEXCEPTION_ROUTINE�������_FLOATING_SAVE_AREA�p����ControlWord������StatusWord�����TagWord�����ErrorOffset�����ErrorSelector�����DataOffset�����DataSelector�����RegisterArea�����Cr0NpxState����l� ������7��O� FLOATING_SAVE_AREA��� ���,��7���� CONTEXT�!!�� PCONTEXT�#M��,�� =��c��7��� EXCEPTION_RECORD�� o�� PEXCEPTION_RECORD�� ���c��_EXCEPTION_POINTERS�� ���H��� |���ContextRecord�� <���������Next��=��prev��=���_EXCEPTION_REGISTRATION_RECORD��=������C������m��Handler�����handler����������FiberData��N��Version������_NT_TIB��1��ExceptionList��=���StackBase��N��StackLimit��N��SubSystemTib��N��m��ArbitraryUserPointer��N��Self��1������ NT_TIB����� PNT_TIB��V��7��_IMAGE_DOS_HEADER�@�� ��e_magic������e_cblp�����e_cp�����e_crlc�����e_cparhdr�����e_minalloc����� e_maxalloc�����e_ss�����e_sp�����e_csum�����e_ip�����e_cs�����e_lfarlc�����e_ovno�����e_res��� ��e_oemid�����$e_oeminfo�����&e_res2��� ��(e_lfanew��h��<� ���� ��7��� ���� ��7�� � IMAGE_DOS_HEADER��\�� PIMAGE_DOS_HEADER�� ��\��_IMAGE_FILE_HEADER�&� ��Machine�'����NumberOfSections�(���TimeDateStamp�)���PointerToSymbolTable�*���NumberOfSymbols�+���SizeOfOptionalHeader�,���Characteristics�-���� IMAGE_FILE_HEADER�. ��_IMAGE_DATA_DIRECTORY�b7��VirtualAddress�c����Size�d���� IMAGE_DATA_DIRECTORY�e� ��_IMAGE_OPTIONAL_HEADER��i ��Magic�k��������l���y��m�������n������o������p������q���B���r���BaseOfData�s�������t���p���u��� &��v���$ ��w���(}��x���*���y���,k��z���.���{���0����|���2���}���46���~���8������<�������@�������DX������FU������H��������L������Ph������T�������X4������\����� ��`� 7��! ��7��� IMAGE_OPTIONAL_HEADER32��T�� PIMAGE_OPTIONAL_HEADER32��b ��T��_IMAGE_OPTIONAL_HEADER64�����Magic��������������y�����������������������������������B���������������p������� &������$ ������(}������*�������,k������.�������0��������2�������46�������8�������<�������@�������DX������FU������H��������P������Xh������`�������h4������l����� ��p� PIMAGE_OPTIONAL_HEADER64��4��h ��_IMAGE_NT_HEADERS������Signature������FileHeader��� ��OptionalHeader��! ��� PIMAGE_NT_HEADERS32�����:�� PIMAGE_NT_HEADERS����� PIMAGE_TLS_CALLBACK���������N�����N�����h��������HINSTANCE__��A��unused��������HINSTANCE��R����PTOP_LEVEL_EXCEPTION_FILTER���LPTOP_LEVEL_EXCEPTION_FILTER�X��_STARTUPINFOA�D���cb� ����lpReserved�!{��lpDesktop�"{��lpTitle�#{��dwX�$���dwY�%���dwXSize�&���dwYSize�'���dwXCountChars�(��� dwYCountChars�)���$dwFillAttribute�*���(dwFlags�+���,wShowWindow�,���0cbReserved2�-���2lpReserved2�.���4hStdInput�/���8hStdOutput�0���<hStdError�1���@�STARTUPINFOA�2���STARTUPINFO�I���+��(������double�long double�L��S������tagCOINITBASE����� ����COINITBASE_MULTITHREADED���VARENUM����� ���VT_EMPTY��VT_NULL�VT_I2�VT_I4�VT_R4�VT_R8�VT_CY�VT_DATE�VT_BSTR�VT_DISPATCH� VT_ERROR� VT_BOOL�VT_VARIANT�VT_UNKNOWN� VT_DECIMAL�VT_I1�VT_UI1�VT_UI2�VT_UI4�VT_I8�VT_UI8�VT_INT�VT_UINT�VT_VOID�VT_HRESULT�VT_PTR�VT_SAFEARRAY�VT_CARRAY�VT_USERDEFINED�VT_LPSTR�VT_LPWSTR�VT_RECORD�$VT_INT_PTR�%VT_UINT_PTR�&VT_FILETIME�@VT_BLOB�AVT_STREAM�BVT_STORAGE�CVT_STREAMED_OBJECT�DVT_STORED_OBJECT�EVT_BLOB_OBJECT�FVT_CF�GVT_CLSID�HVT_VERSIONED_STREAM�IVT_BSTR_BLOB��VT_VECTOR��VT_ARRAY�� VT_BYREF��@VT_RESERVED���VT_ILLEGAL���VT_ILLEGALMASKED��VT_TYPEMASK���_PVFV�F��_PIFV�"���K��newmode��������_startupinfo��2�������������__uninitialized��__initializing�__initialized������_�� _TCHAR������ __readfsdword�DC�����!Offset�DC��"ret�DC��� _InterlockedExchange����4��!Target��4��!Value�����:��#�� _InterlockedCompareExchange�������$�����4��!ExChange����$��������%_TEB�&NtCurrentTeb��������'InterlockedCompareExchange� )InterlockedCompareExchange@12�h�� ��(���� ) ��)Exchange� )h��(���� )h���&��#h��'InterlockedExchange� #InterlockedExchange@8�h��}��)Target� # ��)Value� #h���*duplicate_ppstrings�����!ac������!av�����"avl����"i������"n����+"l����������,__mingw_invalidParameterHandler�q�@�����o��-expression�qM����-function�rM���-file�sM���-line�t�����-pReserved�u������.check_managed_app�]�������"pDOSHeader�_� ��"pPEHeader�`���"pNTHeader32�aA ��"pNTHeader64�b���/pre_c_init�~����@�������0o��@������6��1����2���3�������3������3���@�����4b@�%!��J��5t�2�4n@�0!��_��5t� ��6�@�;!��4�@�%!��|��5t�1�7@�F!��8t���,pre_cpp_init��0@�>�������7j@�Q!��5t�PW�5tPW�5tPW�5t�PW���/__tmainCRTStartup������p@�C������9lpszCommandLine�����U���:StartupInfo�� ����9inDoubleQuote��������; ������9lock_free��������9fiberid������9nested������"��<����@��������=����@�����>���c��?�@����2������0����@�@���� ��>��w��>�����@���A?���@�@��� *>���w��>t�����@h����B}��=@�X���C���>������>������1X���3������3�����3���[��;p������3������6o@�\!��4z@�m!�����5t�w��7�@�!��5tw���7O@�m!��5t�v�2$#���C+��d@�������>o�����@a��D���d@���� $>%�����@����E@���5t� ��Ev@�0��5t�v�5t25tv��6~@��!��E�@�G��8t��4�@��!��_��5t��@��6�@��!��6�@��!��6�@��!��6@��!��40@��!�����5t�O�4R@��!�����8t�8t�4�@��!�����8t�8t�6�@��!���Fy@�5t�u������GWinMainCRTStartup�������@�����(��Hret�������6�@�"��I�@�����GmainCRTStartup�������@�����k��Hret�������6�@�"��I�@�����:argc�K����PW�:argv�Q��PW�:envp�R��PW�Jargret�U����:mainret�V����PW�:managedapp�W����PW�:has_cctor�X����PW�:startinfo�YK���PW�K__globallocalestatus�L����K_imp___fmode�-1��K_dowildcard�4����K_newmode�n����K_imp____initenv�v���K_imp___acmdln�{��K__native_startup_state�����#���K__native_startup_lock��������LK_image_base__�'� ��K_imp___commode�21��K_fmode�1���� %����M�K__xi_a�: ��K__xi_z�; �� ��;��M�K__xc_a�<0��K__xc_z�=0��K__dyn_tls_init_callback�@v�����K__onexitbegin�B�����K__onexitend�C���Kmingw_app_type�E����N__mingw_winmain_hInstance�GA���SW�N__mingw_winmain_lpCmdLine�H����SW�N__mingw_winmain_nShowCmd�I����@@�K__mingw_oldexcpt_handler�Z{��Nmingw_pcinit�f%���W�Nmingw_pcppinit�g���W�K_MINGW_INSTALL_DEBUG_MATHERR�i����Omingw_initltsdrot_force�W����Omingw_initltsdyn_force�X����Omingw_initltssuo_force�Y����Omingw_initcharmax�Z����P���������P�������Pg���g����P�������P2��2���Qstrlen�strlen�6Rmalloc�malloc��Smemcpy�memcpy�PM���M���\P�����P��������)Q__main�__main�LQmain�main��Q_cexit�_cexit�9P@��@���PK��K��6Rexit�exit�2P������t�<����A��GNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden�application.c�/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.12/demos/gtk-demo���������T��char�unsigned int�int�short unsigned int�long int�long long int���������sizetype�long unsigned int�unsigned char�long double�gint8����signed char�guint8�Z��gint16� ���short int�guint16�!����guint32�&����gint64�,��guint64�-���long long unsigned int�gsize�;����gchar�.����gshort�/���glong�0��gint�1����gboolean�2K��gulong�6E��guint�7����gfloat�9���float�gdouble�:���double�gpointer�M!������������������#��GPtrArray�'��� _GPtrArray�5"�� pdata�7(��� len�8u���#�����GQuark�$���GError�)J�� _GError�+��� domain�-.��� code�.K�� message�/"������GData�$���_GData�GList�%��� _GList�'��� data�)���� next�*��� prev�+�������GSList� %��� _GSList� '&�� data� )���� next� *&������K��8��<��GVariantType� )R��_GVariantType�GVariant�"q��_GVariant� �����9���GVariantBuilder�)���_GVariantBuilder�@*���u�4����@.���� ��/���X��0���y�1������>�� ����9�� �@,2��s�2���x�3|���GVariantDict��G��_GVariantDict�@�j��u�������@����asv������� �����y�����a��@����s��j��x��|������"��������2��GType�~��GValue����� _GValue� j%�� g_type� m���� data� z����GTypeClass��8��_GTypeClass��^��g_type�������GTypeInstance��t��_GTypeInstance�����g_class�������%��GClassInitFunc�n���GInstanceInitFunc������������������^�������3��G_TYPE_FLAG_ABSTRACT�G_TYPE_FLAG_VALUE_ABSTRACT� �GTypeFlags��������R����� p���v_int� qK��v_uint� ru��v_long� s>��v_ulong� tg��v_int64� u���v_uint64� v���v_float� w���v_double� x���v_pointer� y���� W�����9�������� ��G_PARAM_READABLE�G_PARAM_WRITABLE�G_PARAM_READWRITE�G_PARAM_CONSTRUCT�G_PARAM_CONSTRUCT_ONLY�G_PARAM_LAX_VALIDATION�G_PARAM_STATIC_NAME� G_PARAM_PRIVATE� G_PARAM_STATIC_NICK�@G_PARAM_STATIC_BLURB��G_PARAM_EXPLICIT_NOTIFY����@G_PARAM_DEPRECATED�����x�GParamFlags�����GParamSpec��4 �� _GParamSpec�(�� ������^���e������ flags�� �� value_type����� owner_type����� _nick��"�� _blurb��"�� qdata�ݽ�� ���u�� param_id��u��$�" ��GCallback�V���u�������, ��G_CONNECT_AFTER�G_CONNECT_SWAPPED��GConnectFlags��� ��GObject��P �� _GObject��� ������^��� ���� �� qdata������GObjectClass��� ��_GObjectClass�D<���g_type_class�>%���construct_properties�A&��constructor�E���set_property�In��get_property�MH��dispose�Q���finalize�R���dispatch_properties_changed�T���notify�X��� constructed�\���$flags�_��(pdummy�b���,�GInitiallyUnowned��P ��GInitiallyUnownedClass��� ��GObjectConstructParam�� ��_GObjectConstructParam�mH��pspec�o� ���value�pF���N��h��h��u��F��� ���A ��t�����h��u��L��� ���������h���h��������u���������������h��u������� ��������h��� ������ ��� ��9�������� ��G_APPLICATION_FLAGS_NONE��G_APPLICATION_IS_SERVICE�G_APPLICATION_IS_LAUNCHER�G_APPLICATION_HANDLES_OPEN�G_APPLICATION_HANDLES_COMMAND_LINE�G_APPLICATION_SEND_ENVIRONMENT�G_APPLICATION_NON_UNIQUE� G_APPLICATION_CAN_OVERRIDE_APP_ID�@�GActionMap�4��_GActionMap�GSimpleAction�7A��_GSimpleAction�GAction�8`��_GAction�GApplication�9~�� _GApplication�,���7��/A ������1/���GApplicationCommandLine�:��� _GApplicationCommandLine�2��7��5A ������7����GSettings�<�� _GSettings�?C��7��AA ������B����GMenuModel�?U�� _GMenuModel�����7���A ����������GFile�T���_GFile��������GDBusConnection�!���_GDBusConnection�Q��W��GActionEntry�)��� _GActionEntry� 7_��e��9����s��;z�� parameter_type�?���p��A��� change_state�Cz�����H����t��t���������,��_�� �����9���GApplicationPrivate�)���_GApplicationPrivate�GApplicationClass�*��� _GApplicationClass��4/�����7� ��� startup�;F��Ds��=F��H open�?r��L command_line�D���P local_command_line�\���T before_emit�`���X after_emit�b���\ add_platform_data�d���` quit_mainloop�fF��d run_mainloop�gF��h shutdown�hF��l dbus_register�j ��p dbus_unregister�n(��t handle_local_options�qB��x���uH��|����@��@���j��5��f��@��f��K������l�����L���������@���������x��W�����@�����3������������@������������@���������W����@�������2���������(��@����������K��B��@������.�� ���X��9���GApplicationCommandLinePrivate�/~��_GApplicationCommandLinePrivate�X��-��GSettingsPrivate�*���_GSettingsPrivate������ ������9���GMenuModelPrivate�}��_GMenuModelPrivate����C��cairo_t�|:��_cairo�_cairo_rectangle_int�����x�������y������width������I ��������cairo_rectangle_int_t��B��+��cairo_region_t�����_cairo_region�GdkRectangle�]���GdkAtom�f�����_GdkAtom�GdkDevice��!��_GdkDevice�GdkDragContext��C��_GdkDragContext�GdkScreen��e��_GdkScreen�GdkWindow�����_GdkWindow�����-Y��GDK_AXIS_IGNORE��GDK_AXIS_X�GDK_AXIS_Y�GDK_AXIS_PRESSURE�GDK_AXIS_XTILT�GDK_AXIS_YTILT�GDK_AXIS_WHEEL�GDK_AXIS_DISTANCE�GDK_AXIS_ROTATION�GDK_AXIS_SLIDER� GDK_AXIS_LAST� �GdkEventAny�|l��_GdkEventAny�E���X��G�+������Hg0��t��Iz���GdkEventExpose�}���_GdkEventExpose�$[.��X��]�+������^g0��t��_z��area�`���region�am0��count�bK�� �GdkEventVisibility�~H��_GdkEventVisibility�t���X��v�+������wg0��t��xz��p��y,���GdkEventMotion����_GdkEventMotion�@�g��X����+�������g0��t���z��@ ������x�����y�����axes��s0�� p���u��$is_hint�����(w���y0��,������0�������8�GdkEventButton��}��_GdkEventButton�@�0��X����+�������g0��t���z��@ ������x�����y�����axes��s0�� p���u��$"���u��(w���y0��,������0�������8�GdkEventTouch��E��_GdkEventTouch�H��X���+������g0��t��z��@ �����x����y����axes�s0�� p��u��$sequence�0��(emulating_pointer�W��,w��y0��0�����8������@�GdkEventScroll��-��_GdkEventScroll�X@��X��B�+������Cg0��t��Dz��@ ��E���x�F���y�G���p��Hu�� direction�I�,��$w��Jy0��(��K���0���K���8delta_x�L���@delta_y�M���H is_stop�Nu��P�GdkEventKey��!��_GdkEventKey�(p���X��r�+������sg0��t��tz��@ ��u���p��vu��keyval�wu��length�xK��string�y"��hardware_keycode�z��� j��{���" is_modifier�|u��$�GdkEventFocus�����_GdkEventFocus��I��X����+�������g0��t���z��in����� �GdkEventCrossing��a��_GdkEventCrossing�H�.��X����+�������g0��t���z��subwindow��g0��@ ������x�����y����� ������(�������0mode��D.��8detail��@-��<focus��W��@p���u��D�GdkEventConfigure��G��_GdkEventConfigure�����X����+�������g0��t���z��x��K��y��K��width��K��I ���K���GdkEventProperty�����_GdkEventProperty��@��X����+�������g0��t���z��atom�����@ ������p���u���GdkEventSelection��Y��_GdkEventSelection� ����X����+�������g0��t���z���������target�����v������@ ������requestor��g0���GdkEventOwnerChange����_GdkEventOwnerChange� ���X���+������g0��t��z��owner�g0��reason�P0��������@ �����selection_time�����GdkEventProximity�����_GdkEventProximity�4 ��X��6�+������7g0��t��8z��@ ��9���w��:y0���GdkEventDND��# ��_GdkEventDND��� ��X����+�������g0��t���z��context���0��@ ���������0������0���GdkEventWindowState��� ��_GdkEventWindowState�\*!��X��^�+������_g0��t��`z��changed_mask�a`/��new_window_state�b`/���GdkEventSetting��A!��_GdkEventSetting�H�!��X��J�+������Kg0��t��Lz�����M�/��e��N-���GdkEventGrabBroken���!��_GdkEventGrabBroken�z5"��X��{�+������|g0��t��}z��keyboard�~W��implicit�W��grab_window��g0���GdkEventTouchpadSwipe��R"��_GdkEventTouchpadSwipe�H�#��X����+�������g0��t���z��phase��z�� N���z�� @ ������x�����y�����dx����� dy�����(������0�������8p���u��@�GdkEventTouchpadPinch��5#��_GdkEventTouchpadPinch�X�$��X����+�������g0��t���z��phase��z�� N���z�� @ ������x�����y�����dx����� dy�����(angle_delta�����0scale�����8������@�������Hp���u��P�GdkEventPadButton��8$��_GdkEventPadButton���$��X����+�������g0��t���z��@ �����j��u��"��u��mode�u���GdkEventPadAxis���$��_GdkEventPadAxis�(P%��X���+������g0��t��z��@ �����j��u��index�u��mode� u��value�!��� �GdkEventPadGroupMode��l%��_GdkEventPadGroupMode�4�%��X��5�+������6g0��t��7z��@ ��8���j��9u��mode�:u���GdkEventSequence���%��_GdkEventSequence�GdkEvent��&��!_GdkEvent�Xx�'��"X��z�+��any�{Y��expose�|���visibility�}.��motion�~���""��g��touch��0��scroll����key����crossing��I��focus_change�����configure��.��"v������"����@��owner_change�����proximity�����dnd�� ��window_state��� ��setting��*!��grab_broken���!��touchpad_swipe��5"��touchpad_pinch��#��pad_button��$��pad_axis���$��pad_group_mode��P%���&������6�+��GDK_NOTHING�GDK_DELETE��GDK_DESTROY�GDK_EXPOSE�GDK_MOTION_NOTIFY�GDK_BUTTON_PRESS�GDK_2BUTTON_PRESS�GDK_DOUBLE_BUTTON_PRESS�GDK_3BUTTON_PRESS�GDK_TRIPLE_BUTTON_PRESS�GDK_BUTTON_RELEASE�GDK_KEY_PRESS�GDK_KEY_RELEASE� GDK_ENTER_NOTIFY� GDK_LEAVE_NOTIFY�GDK_FOCUS_CHANGE�GDK_CONFIGURE� GDK_MAP�GDK_UNMAP�GDK_PROPERTY_NOTIFY�GDK_SELECTION_CLEAR�GDK_SELECTION_REQUEST�GDK_SELECTION_NOTIFY�GDK_PROXIMITY_IN�GDK_PROXIMITY_OUT�GDK_DRAG_ENTER�GDK_DRAG_LEAVE�GDK_DRAG_MOTION�GDK_DRAG_STATUS�GDK_DROP_START�GDK_DROP_FINISHED�GDK_CLIENT_EVENT�GDK_VISIBILITY_NOTIFY�GDK_SCROLL�GDK_WINDOW_STATE� GDK_SETTING�!GDK_OWNER_CHANGE�"GDK_GRAB_BROKEN�#GDK_DAMAGE�$GDK_TOUCH_BEGIN�%GDK_TOUCH_UPDATE�&GDK_TOUCH_END�'GDK_TOUCH_CANCEL�(GDK_TOUCHPAD_SWIPE�)GDK_TOUCHPAD_PINCH�*GDK_PAD_BUTTON_PRESS�+GDK_PAD_BUTTON_RELEASE�,GDK_PAD_RING�-GDK_PAD_STRIP�.GDK_PAD_GROUP_MODE�/GDK_EVENT_LAST�0�GdkEventType�j�'������u,��GDK_VISIBILITY_UNOBSCURED��GDK_VISIBILITY_PARTIAL�GDK_VISIBILITY_FULLY_OBSCURED��GdkVisibilityState�y�+��������,��GDK_SCROLL_UP��GDK_SCROLL_DOWN�GDK_SCROLL_LEFT�GDK_SCROLL_RIGHT�GDK_SCROLL_SMOOTH��GdkScrollDirection��",�������@-��GDK_NOTIFY_ANCESTOR��GDK_NOTIFY_VIRTUAL�GDK_NOTIFY_INFERIOR�GDK_NOTIFY_NONLINEAR�GDK_NOTIFY_NONLINEAR_VIRTUAL�GDK_NOTIFY_UNKNOWN��GdkNotifyType���,�������D.��GDK_CROSSING_NORMAL��GDK_CROSSING_GRAB�GDK_CROSSING_UNGRAB�GDK_CROSSING_GTK_GRAB�GDK_CROSSING_GTK_UNGRAB�GDK_CROSSING_STATE_CHANGED�GDK_CROSSING_TOUCH_BEGIN�GDK_CROSSING_TOUCH_END�GDK_CROSSING_DEVICE_SWITCH��GdkCrossingMode��V-������`/��GDK_WINDOW_STATE_WITHDRAWN�GDK_WINDOW_STATE_ICONIFIED�GDK_WINDOW_STATE_MAXIMIZED�GDK_WINDOW_STATE_STICKY�GDK_WINDOW_STATE_FULLSCREEN�GDK_WINDOW_STATE_ABOVE� GDK_WINDOW_STATE_BELOW�@GDK_WINDOW_STATE_FOCUSED��#GDK_WINDOW_STATE_TILED���GdkWindowState�\.������&�/��GDK_SETTING_ACTION_NEW��GDK_SETTING_ACTION_CHANGED�GDK_SETTING_ACTION_DELETED��GdkSettingAction�*w/������5P0��GDK_OWNER_CHANGE_NEW_OWNER��GDK_OWNER_CHANGE_DESTROY�GDK_OWNER_CHANGE_CLOSE��GdkOwnerChange�9�/��q�����������%��-��T�������1��GTK_DIR_TAB_FORWARD��GTK_DIR_TAB_BACKWARD�GTK_DIR_UP�GTK_DIR_DOWN�GTK_DIR_LEFT�GTK_DIR_RIGHT��GtkDirectionType���0�������e1��GTK_TEXT_DIR_NONE��GTK_TEXT_DIR_LTR�GTK_TEXT_DIR_RTL��GtkTextDirection��1�������1��GTK_MESSAGE_INFO��GTK_MESSAGE_WARNING�GTK_MESSAGE_QUESTION�GTK_MESSAGE_ERROR�GTK_MESSAGE_OTHER������V92��GTK_ORIENTATION_HORIZONTAL��GTK_ORIENTATION_VERTICAL��GtkOrientation�Y�1��������2��GTK_STATE_NORMAL��GTK_STATE_ACTIVE�GTK_STATE_PRELIGHT�GTK_STATE_SELECTED�GTK_STATE_INSENSITIVE�GTK_STATE_INCONSISTENT�GTK_STATE_FOCUSED��GtkStateType�P2�������3��GTK_DRAG_RESULT_SUCCESS��GTK_DRAG_RESULT_NO_TARGET�GTK_DRAG_RESULT_USER_CANCELLED�GTK_DRAG_RESULT_TIMEOUT_EXPIRED�GTK_DRAG_RESULT_GRAB_BROKEN�GTK_DRAG_RESULT_ERROR��GtkDragResult�3������9R4��GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH��GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT�GTK_SIZE_REQUEST_CONSTANT_SIZE��GtkSizeRequestMode�=�3������c�5��GTK_STATE_FLAG_NORMAL��GTK_STATE_FLAG_ACTIVE�GTK_STATE_FLAG_PRELIGHT�GTK_STATE_FLAG_SELECTED�GTK_STATE_FLAG_INSENSITIVE�GTK_STATE_FLAG_INCONSISTENT�GTK_STATE_FLAG_FOCUSED� GTK_STATE_FLAG_BACKDROP�@GTK_STATE_FLAG_DIR_LTR��#GTK_STATE_FLAG_DIR_RTL��#GTK_STATE_FLAG_LINK��#GTK_STATE_FLAG_VISITED��#GTK_STATE_FLAG_CHECKED��#GTK_STATE_FLAG_DROP_ACTIVE���GtkStateFlags�rm4��GtkBuilder�#6�� _GtkBuilder�]>6��7��_A ������a3`���GtkSelectionData�)V6��_GtkSelectionData�GtkSettings�*|6�� _GtkSettings�/�6��7��1A ������4�c���GtkStyle�+�6��_GtkStyle�GtkTooltip�-�6��_GtkTooltip�GtkWidget�.�6�� _GtkWidget� �!7��7�� �������� �FM���GtkWidgetPath�/67��_GtkWidgetPath�GtkWindow�0W7�� _GtkWindow�!5�7�� bin�!7�W������!9�Y����5������"��A��ATK_ROLE_INVALID��ATK_ROLE_ACCEL_LABEL�ATK_ROLE_ALERT�ATK_ROLE_ANIMATION�ATK_ROLE_ARROW�ATK_ROLE_CALENDAR�ATK_ROLE_CANVAS�ATK_ROLE_CHECK_BOX�ATK_ROLE_CHECK_MENU_ITEM�ATK_ROLE_COLOR_CHOOSER� ATK_ROLE_COLUMN_HEADER� ATK_ROLE_COMBO_BOX�ATK_ROLE_DATE_EDITOR�ATK_ROLE_DESKTOP_ICON� ATK_ROLE_DESKTOP_FRAME�ATK_ROLE_DIAL�ATK_ROLE_DIALOG�ATK_ROLE_DIRECTORY_PANE�ATK_ROLE_DRAWING_AREA�ATK_ROLE_FILE_CHOOSER�ATK_ROLE_FILLER�ATK_ROLE_FONT_CHOOSER�ATK_ROLE_FRAME�ATK_ROLE_GLASS_PANE�ATK_ROLE_HTML_CONTAINER�ATK_ROLE_ICON�ATK_ROLE_IMAGE�ATK_ROLE_INTERNAL_FRAME�ATK_ROLE_LABEL�ATK_ROLE_LAYERED_PANE�ATK_ROLE_LIST�ATK_ROLE_LIST_ITEM�ATK_ROLE_MENU� ATK_ROLE_MENU_BAR�!ATK_ROLE_MENU_ITEM�"ATK_ROLE_OPTION_PANE�#ATK_ROLE_PAGE_TAB�$ATK_ROLE_PAGE_TAB_LIST�%ATK_ROLE_PANEL�&ATK_ROLE_PASSWORD_TEXT�'ATK_ROLE_POPUP_MENU�(ATK_ROLE_PROGRESS_BAR�)ATK_ROLE_PUSH_BUTTON�*ATK_ROLE_RADIO_BUTTON�+ATK_ROLE_RADIO_MENU_ITEM�,ATK_ROLE_ROOT_PANE�-ATK_ROLE_ROW_HEADER�.ATK_ROLE_SCROLL_BAR�/ATK_ROLE_SCROLL_PANE�0ATK_ROLE_SEPARATOR�1ATK_ROLE_SLIDER�2ATK_ROLE_SPLIT_PANE�3ATK_ROLE_SPIN_BUTTON�4ATK_ROLE_STATUSBAR�5ATK_ROLE_TABLE�6ATK_ROLE_TABLE_CELL�7ATK_ROLE_TABLE_COLUMN_HEADER�8ATK_ROLE_TABLE_ROW_HEADER�9ATK_ROLE_TEAR_OFF_MENU_ITEM�:ATK_ROLE_TERMINAL�;ATK_ROLE_TEXT�<ATK_ROLE_TOGGLE_BUTTON�=ATK_ROLE_TOOL_BAR�>ATK_ROLE_TOOL_TIP�?ATK_ROLE_TREE�@ATK_ROLE_TREE_TABLE�AATK_ROLE_UNKNOWN�BATK_ROLE_VIEWPORT�CATK_ROLE_WINDOW�DATK_ROLE_HEADER�EATK_ROLE_FOOTER�FATK_ROLE_PARAGRAPH�GATK_ROLE_RULER�HATK_ROLE_APPLICATION�IATK_ROLE_AUTOCOMPLETE�JATK_ROLE_EDITBAR�KATK_ROLE_EMBEDDED�LATK_ROLE_ENTRY�MATK_ROLE_CHART�NATK_ROLE_CAPTION�OATK_ROLE_DOCUMENT_FRAME�PATK_ROLE_HEADING�QATK_ROLE_PAGE�RATK_ROLE_SECTION�SATK_ROLE_REDUNDANT_OBJECT�TATK_ROLE_FORM�UATK_ROLE_LINK�VATK_ROLE_INPUT_METHOD_WINDOW�WATK_ROLE_TABLE_ROW�XATK_ROLE_TREE_ITEM�YATK_ROLE_DOCUMENT_SPREADSHEET�ZATK_ROLE_DOCUMENT_PRESENTATION�[ATK_ROLE_DOCUMENT_TEXT�\ATK_ROLE_DOCUMENT_WEB�]ATK_ROLE_DOCUMENT_EMAIL�^ATK_ROLE_COMMENT�_ATK_ROLE_LIST_BOX�`ATK_ROLE_GROUPING�aATK_ROLE_IMAGE_MAP�bATK_ROLE_NOTIFICATION�cATK_ROLE_INFO_BAR�dATK_ROLE_LEVEL_BAR�eATK_ROLE_TITLE_BAR�fATK_ROLE_BLOCK_QUOTE�gATK_ROLE_AUDIO�hATK_ROLE_VIDEO�iATK_ROLE_DEFINITION�jATK_ROLE_ARTICLE�kATK_ROLE_LANDMARK�lATK_ROLE_LOG�mATK_ROLE_MARQUEE�nATK_ROLE_MATH�oATK_ROLE_RATING�pATK_ROLE_TIMER�qATK_ROLE_DESCRIPTION_LIST�rATK_ROLE_DESCRIPTION_TERM�sATK_ROLE_DESCRIPTION_VALUE�tATK_ROLE_STATIC�uATK_ROLE_MATH_FRACTION�vATK_ROLE_MATH_ROOT�wATK_ROLE_SUBSCRIPT�xATK_ROLE_SUPERSCRIPT�yATK_ROLE_LAST_DEFINED�z�AtkRole�"e�7������"y�B��ATK_LAYER_INVALID��ATK_LAYER_BACKGROUND�ATK_LAYER_CANVAS�ATK_LAYER_WIDGET�ATK_LAYER_MDI�ATK_LAYER_POPUP�ATK_LAYER_OVERLAY�ATK_LAYER_WINDOW��AtkLayer�"��A��AtkObject�"��B��_AtkObject�$"�MC����"�A ���description�"�"��e��"�"��accessible_parent�"��C��role�"��A��relation_set�"��C��layer�"��B�� �AtkRelationSet�"�dC�� _AtkRelationSet�#+�C����#-A ��� relations�#/�����B��MC������ 1�C��GTK_WIDGET_HELP_TOOLTIP��GTK_WIDGET_HELP_WHATS_THIS��GtkWidgetHelpType� 4�C��GtkWidgetPrivate� BD��_GtkWidgetPrivate�GtkWidgetClass� CED��$_GtkWidgetClass�� j�L����� l����activate_signal� pu��Ddispatch_child_properties_changed� saM��Hdestroy� xrM��Lshow� yrM��Pshow_all� zrM��Thide� {rM��Xmap� |rM��\unmap� }rM��`realize� ~rM��dunrealize� rM��hsize_allocate� ��M��lstate_changed� ��M��pstate_flags_changed� ��M��tparent_set� ��M��xhierarchy_changed� ��M��|style_set� ��M���direction_changed� �N���grab_notify� �N���child_notify� �.N���draw� �HN���get_request_mode� �]N���get_preferred_height� �xN���get_preferred_width_for_height� ��N���get_preferred_width� �xN���get_preferred_height_for_width� ��N���mnemonic_activate� ��N���grab_focus� �rM���focus� ��N���move_focus� ��N���keynav_failed� ��N���event� ��N���button_press_event� �O���button_release_event� �O���scroll_event� �<O���motion_notify_event� �\O���delete_event� �|O���destroy_event� �|O���key_press_event� ��O���key_release_event� ��O���enter_notify_event� ��O���leave_notify_event� ��O���configure_event� ��O���focus_in_event� ��O���focus_out_event� ��O���map_event� �|O���unmap_event� �|O���property_notify_event� �P���%selection_clear_event� �<P���%selection_request_event� �<P��%selection_notify_event� �<P��%proximity_in_event� �\P��%proximity_out_event� �\P��%visibility_notify_event� �|P��%window_state_event� ��P��%damage_event� ��P��%grab_broken_event� ��P�� %selection_get� �Q��$%selection_received� �Q��(%drag_begin� �3Q��,%drag_end� �3Q��0%drag_data_get� �XQ��4%drag_data_delete� �3Q��8%drag_leave� sQ��<%drag_motion� �Q��@%drag_drop� �Q��D%drag_data_received� �Q��H%drag_failed� �Q��L%popup_menu� �Q��P%show_help� #R��T%get_accessible� (.R��X%screen_changed� *DR��\%can_activate_accel� ,^R��`%composited_changed� 0rM��d%query_tooltip� 2�R��h%compute_expand� 8�R��l%adjust_size_request� <�R��p%adjust_size_allocation� @�R��t%style_updated� GrM��x%touch_event� IS��|%get_preferred_height_and_baseline_for_width� L<S���%adjust_baseline_request� RxN���%adjust_baseline_allocation� URS���%queue_draw_region� WsS���&��� \yS���&^�� _����&m�� `�����GtkWidgetClassPrivate� D�L��_GtkWidgetClassPrivate�GtkAllocation� S���GtkCallback� ]*M��0M��@M��@M�������6��D��aM��@M��u������LM��rM��@M���gM���M��@M���M���M��xM���M��@M���2����M���M��@M���5����M���M��@M��@M����M���M��@M���M����6���M��N��@M��e1����M��N��@M��W���N��.N��@M��� ���N��W��HN��@M������4N��R4��]N��@M���NN��xN��@M��,��,���cN���N��@M��K��,��,���~N��W���N��@M��W����N��W���N��@M��1����N���N��@M��1����N��W���N��@M���'����N��W��O��@M��O���g��O��W��6O��@M��6O�����"O��W��VO��@M��VO������BO��W��vO��@M��vO���Y��bO��W���O��@M���O������O��W���O��@M���O���I���O��W���O��@M���O���.���O��W���O��@M���O�������O��W��P��@M��P������P��W��6P��@M��6P���@��"P��W��VP��@M��VP������BP��W��vP��@M��vP���.��bP��W���P��@M���P���� ���P��W���P��@M���P�������P��W���P��@M���P����!���P���P��@M���P��u��u���>6���P��Q��@M���P��u���Q��3Q��@M���0���#Q��XQ��@M���0���P��u��u���9Q��sQ��@M���0��u���^Q��W���Q��@M���0��K��K��u���yQ���Q��@M���0��K��K���P��u��u����Q��W���Q��@M���0���3����Q��W���Q��@M����Q��W��R��@M���C���R���C��.R��@M���R��DR��@M���0���4R��W��^R��@M��u���JR��W���R��@M��K��K��W���R����6��dR���R��@M����������R���R��@M��92��,��,����R���R��@M��92��,��,��,��,����R��W��S��@M��S���0���R��<S��@M��K��,��,��,��,���S��RS��@M��,���BS��hS��@M��hS���nS�����XS���L��GtkApplication�$'�S�� _GtkApplication�$+�S����$-j������$0xT���GtkApplicationClass�$(�S�� _GtkApplicationClass��$<CT�����$>���� window_added�$B�T��� window_removed�$D�T������$H�����GtkApplicationPrivate�$)`T��_GtkApplicationPrivate�CT���T���T���T���S��F7��~T��GtkContainer�%-�T�� _GtkContainer�%1�T��P ��%3�6������%6�V���GtkContainerPrivate�%.�T��_GtkContainerPrivate�GtkContainerClass�%/-U��'_GtkContainerClass��%J�V�����%L/D���(add�%P�V���(remove�%R�V���(check_resize�%T�V���(forall�%UW���(set_focus_child�%Y�V���(child_type�%[3W���(composite_name�%\MW���(set_child_property�%^rW���(get_child_property�%c�W���(get_path_for_child�%h�W���)_handle_border_width�%n�����*��%q����*.��%r����*=��%s����*)��%t����(_gtk_reserved5�%u����*^��%v����*m��%w����(_gtk_reserved8�%x������T���V���V��@M����T���V���V���V����V��W���V��W��M������W�����3W���V���$W��"��MW���V��@M���9W��rW���V��@M��u��L��� ���SW���W���V��@M��u��F��� ���xW���W���W���V��@M���!7���W��GtkBin�&-�W�� _GtkBin�&1�W�����&3�T������&6�X���GtkBinPrivate�&. X��_GtkBinPrivate�GtkBinClass�&/,X��'_GtkBinClass��&=�X�����&?U���*��&D����*.��&E����*=��&F����*)��&G������W��GtkWindowPrivate�!.�X��_GtkWindowPrivate�GtkWindowClass�!/�X��'_GtkWindowClass�!G�Y�����!IX���(set_focus�!M�Y���(activate_focus�!R�Y���(activate_default�!S�Y���(keys_changed�!T�Y��(enable_debugging�!U�Y��*��![���*.��!\���*=��!]�����X���Y���T��@M����Y���Y���T����Y��W���Y���T��W����Y������'00Z��GTK_DIALOG_MODAL�GTK_DIALOG_DESTROY_WITH_PARENT�GTK_DIALOG_USE_HEADER_BAR������'J$[��GTK_RESPONSE_NONE�GTK_RESPONSE_REJECT�~GTK_RESPONSE_ACCEPT�}GTK_RESPONSE_DELETE_EVENT�|GTK_RESPONSE_OK�{GTK_RESPONSE_CANCEL�zGTK_RESPONSE_CLOSE�yGTK_RESPONSE_YES�xGTK_RESPONSE_NO�wGTK_RESPONSE_APPLY�vGTK_RESPONSE_HELP�u�����(Ez\��GTK_LICENSE_UNKNOWN��GTK_LICENSE_CUSTOM�GTK_LICENSE_GPL_2_0�GTK_LICENSE_GPL_3_0�GTK_LICENSE_LGPL_2_1�GTK_LICENSE_LGPL_3_0�GTK_LICENSE_BSD�GTK_LICENSE_MIT_X11�GTK_LICENSE_ARTISTIC�GTK_LICENSE_GPL_2_0_ONLY� GTK_LICENSE_GPL_3_0_ONLY� GTK_LICENSE_LGPL_2_1_ONLY�GTK_LICENSE_LGPL_3_0_ONLY�GTK_LICENSE_AGPL_3_0� �GtkMisc�).�\�� _GtkMisc�)2�\��P ��)4�6������)7�\���GtkMiscPrivate�)/�\��_GtkMiscPrivate��\��GtkLabel�*.�\�� _GtkLabel�*4]�� misc�*6z\������*9E]���GtkLabelPrivate�*/3]��_GtkLabelPrivate�]��GtkBox�+/Y]�� _GtkBox�+3�]�����+5�T������+8�]���GtkBoxPrivate�+0�]��_GtkBoxPrivate��]��GtkTextIter�,@�]�� _GtkTextIter�8-F�^�� dummy1�-L���� dummy2�-M��� dummy3�-NK�� dummy4�-OK�� dummy5�-PK�� dummy6�-QK�� dummy7�-RK�� dummy8�-SK�� dummy9�-T��� dummy10�-U���$ dummy11�-VK��( dummy12�-WK��, dummy13�-YK��0 dummy14�-Z���4��^���]��GtkTextBuffer�-B�^�� _GtkTextBuffer�.N�^��7��.PA ������.R�d���GtkApplicationWindowPrivate�/, _��_GtkApplicationWindowPrivate�GtkApplicationWindowClass�/-__��'_GtkApplicationWindowClass�P/<�_�����/>�X���*���/A�_���GtkApplicationWindow�/.�_�� _GtkApplicationWindow� /0�_��7��/2F7������/5�_����^�� ���`��9�� �GtkBuilderPrivate�)`��_GtkBuilderPrivate�`��GtkFileChooser�0#O`��_GtkFileChooser�����07�`��GTK_FILE_CHOOSER_ACTION_OPEN��GTK_FILE_CHOOSER_ACTION_SAVE�GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER�GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER��GtkNativeDialog�1!a�� _GtkNativeDialog�1!8a��7��1!A �����`��GtkFileChooserNative�2"Za��_GtkFileChooserNative�>a��GtkToolItem�3)�a�� _GtkToolItem�3-�a����3/�W������32�a���GtkToolItemPrivate�3+�a��_GtkToolItemPrivate��a��GtkToolButton�4'b�� _GtkToolButton� 4+2b����4-wa������40eb���GtkToolButtonPrivate�4)Nb��_GtkToolButtonPrivate�2b��GtkMenuToolButton�5(�b�� _GtkMenuToolButton�$5+�b����5-�a������50�b�� �GtkMenuToolButtonPrivate�5)�b��_GtkMenuToolButtonPrivate��b������6V�c��GTK_BUTTONS_NONE��GTK_BUTTONS_OK�GTK_BUTTONS_CLOSE�GTK_BUTTONS_CANCEL�GTK_BUTTONS_YES_NO�GTK_BUTTONS_OK_CANCEL��GtkSettingsPrivate�)�c��_GtkSettingsPrivate��c��GtkStatusbar�7-�c�� _GtkStatusbar�71d�� parent_widget�73K]������763d���GtkStatusbarPrivate�7.d��_GtkStatusbarPrivate�d��GtkTextMark�8;Ld�� _GtkTextMark�8E~d��7��8GA ��� segment�8J����GtkTextBufferPrivate�.K�d��_GtkTextBufferPrivate�~d���^��9d��i6��DemoApplication�S��DemoApplicationClass��S��+H�e��7���_��� message�@M�� infobar�@M��$ status�@M��( menutool�@M��, toolmenu�%��0 ���d��4 width�����8I ������< maximized�W��@ fullscreen�W��D�DemoApplicationWindow��d��DemoApplicationWindowClass�>_��,GTK_NATIVE_DIALOG�1!8a��f��-ptr�1!����.demo_application_class_init��\f��/class��\f��0app_class��bf����d�����.demo_application_window_size_allocate���f��1P ���@M��/allocation���M��2�����f����e��3demo_application_window_state_event��W��p@�D����Xg��4P ���@M����5event���P���6�����f�����7res��W�����8�@�9t�s�9tv���:demo_application_init�~�@�]����1h��5app�~1h����6|���������6�������)��;�@�ۂ���g��9t�$P@��;�@�����g��9t�s�9t�@@�9t69ts��;@����h��9t�v�9t1P@��;@�����'h��9t�s��<@������d��:change_theme_state� @�L�����h��4���t����4p������4 ������6|���d��<��=3@����;=@�����h��9t�s��;Y@�*����h��9t�w�9t8P@�9t0�<l@�6����:change_radio_state�4p@�����Si��4���4t����4p��5����4 ��6����>u@�6���9����9����?show_action_dialog�!�@�{����4j��@���!t��Z��Ae��#���{��Bdialog�$@M�����;�@�A����i��9t��P�;�@�L����i��9t�09t29t09t29tZP@��;�@�W���"j��9t�s�9tuP@�Ct9t09t09t0�D�@�c���9t�s���?activate_toggle���@�L�����j��E����t����E6 �������E �������Ap���������;@�Si���j��9Ps��;@�o����j��9t�s��;"@�����j��9t�v��=2@�z���;>@������j��9t�s��<L@������?activate_action�JP@� ����Qk��E���Jt����E6 ��K����E ��L����>Y@�Si��9P����?activate_quit��`@�6�����k��E����t����E6 ��ޙ���E ��߲���Fapp��T���Bwin��@M�����Blist��������Bnext�������;p@������k��9t���=�@������?activate_open���@������m��E����t����E6 �������E �������Bapp��@��%��Bnative��qa��D��;�@������l��9t��P@�9t09t09t�P@�9t~P@��;�@������l��9t�v��;�@�Ƀ���l��9t�s�9t�P@�Ct�;'@�W��� m��9t�s�9tuP@�9t�!@�9ts�9t09t0�<5@�Ճ���?demo_application_class_intern_init� @@�A�����m��Gklass� �����Hf��n@���� �m��I;f��n��Jn@����KIf�������;P@������m��9t�s��Dn@����9t�s�9t,PW���:startup�T�@�������n��5app�T@����7builder�V�7�����7appmenu�W%�����7menubar�X%�����L�@�2n��9t�v��=�@�����;�@����`n��9t�s�9t�P@�9t0�;�@����n��9t�s�9t�P@��;�@�����n��9t�s�9t�P@��;�@�����n��9t�v�9tu��;@�$����n��9t�v�9tw��<@�����:demo_application_window_init�� @�g����o��4�����f����7menu��@M����;L@�/���Do��9t�s��=W@�;���=f@�F���D�@����9t�s�9t @@�9t69ts���?activate_about���@�S���q��E����t����E6 �������E �������M����@M���Fauthors��q���HFdocumentors��q���\=�@�Q���=�@�\���=@�g���;'@�r���Jp��9t�HQ@�9t=Q@�9ts�9tv��D�@�}���9t��9tJR@�9t:R@�9t2R@�9t(R@�9tR@�9t�Q@�9t 49t$�Q@�9t(�Q@�9t,�Q@�9t0�Q@�9t4�Q@�9t8�H9t<�Q@�9t���\9t���Q@�9t���Q@�9t���Q@�9t��jQ@�9t��0�� ���-q��9���Nshow_action_infobar�6�q��O���6t��O6 ��7���-data�8���P���:�f��Qtext�;"��Pe��<���Qvalue�=����?activate_radio���@�y�����r��E����t����E6 �������E �������H-q��@�R�����r��I_q��%��ITq��8��IIq��K��J@�R���Kkq��^��Kvq��}��K�q�����K�q�����;@�A���Ur��9t�s��;@�����pr��9t�v�9t0�;1@�r����r��9t�XR@�9tw��;B@������r��9tw��=M@�c���DU@�����9t�w����<i@������:change_titlebar_state�'p@�9����cs��4���'t����4p��(����4 ��)����6���+�T�����;�@����Ds��9t�s��;�@�����Ys��9t�w��<�@�6����.demo_application_window_class_init���s��/class���s��0object_class���s��0widget_class��s����e��� ��/D��?demo_application_window_class_intern_init��@�j���-v��Gklass������Hcs���@�7���u��I�s�����J�@�7��K�s�����K�s�����; @�����{t��9t�s�9t�R@��;-@�Ƅ���t��9t�s�9t�R@�9t09t �;M@�Ƅ���t��9t�s�9t�R@�9t09t$�;m@�Ƅ���t��9t�s�9t�R@�9t09t(�;�@�Ƅ��+u��9t�s�9t�R@�9t09t4�;�@�Ƅ��Wu��9t�s�9t�R@�9t09t,�;�@�Ƅ���u��9t�s�9t�R@�9t09t0�;�@�҄���u��9t�s�9t�R@�9t�@��;�@�҄���u��9t�s�9t�R@�9t @��D@�҄��9t�s�9t�R@�9t�@����;�@�����v��9t�s��D�@����9t�s�9t$PW���?update_statusbar�� @�������w��E ���d����E�����f���Bmsg��"����Brow��K��;��Bcol��K��Y��Bcount��K��l��Fiter���]����;F@�ބ���v��9t0�;N@�����v��9t�v��;X@�����v��9t�v��;h@�����w��9t�v�9ts��;p@����(w��9t�s��;z@����=w��9t�s��;�@�r���cw��9t�S@�9tv�9tu��;�@�"���~w��9t09ts��D�@�����9t�s���:mark_set_callback��@� ����x��4 ���d����Rnew_location��^�����5mark��d���4����f���>�@�-v��9����9����:clicked_cb�N�@�����\x��SP ��N@M�����4���N�f���<�@�-����.demo_application_window_store_state���x��/win���f��2|�������Tdemo_application_window_destroy���@�������y��4P ���@M����6�����f�����U\x���@�j����I�x�����J�@�j���K�x�����;�@�ۂ��6y��9t�$P@��;@�9���_y��9t�v�9tCS@�9t>S@��;4@�D���~y��9t�v�9tOS@��;K@�D����y��9t�v�9tYS@��DS@����9t�v�����.demo_application_window_load_state���y��/win���f��2|�������Tdemo_application_window_constructed��p@������Y{��5object��h����6�����f����V�y��y@�b����{��I�y��,��Jy@�b���K�y��?��;�@�ۂ���z��9t�$P@��;�@�O����z��9t�v�9tCS@�9t>S@�9ts89ts<�;�@�Z����z��9t�v�9tOS@��;�@�Z��� {��9t�v�9tYS@��D�@����9t�v����;�@�e���2{��9t�s��;@�q���G{��9t�s��D(@�}���9t�s���Whf��0@�K�����{��X�f����X�f���K�f��]��Y`@�����{��X�f���I�f�����J`@����Z�f��Dv@�����9t�s�9ts89ts<���8K@�9t�s�9t���[demo_application_get_type� ����@�������|��M �� �|�� PW�\����O|��]�@����D�@�����9t� PW���J�@�W���A��� ������Y�@�����|��D�@�����9t� PW���;�@������|��9t�dS@��=�@�����D�@�����9ts�9t�9t@@�9tD9t�@�9t0�����[demo_application_window_get_type���� @�������}��M ���|��PW�\����W}��] @����D0 @�����9t�PW���J4 @�W���A���������Y{ @�����}��D� @�����9t�PW���;@ @������}��9t�tS@��=G @�ͅ��D{ @�����9ts�9t P9t�@�9tH9t @�9t0���:create_window�i� @�U�����~��Rapp�i@�����Rcontent�j�����6���l�f��0��=� @��|��;� @���p~��9t�S@�9ts�9t0�;� @�����~��9tv�9t ��D� @����9t�s���?open_response_cb�\�!@� �������Gdialog�\8a����Gresponse_id�]K���E ��^����Bnative�`qa��N��Bapp�a@��x��Bmessage_dialog�b@M�����Bfile�cl�����Fcontents�d-���hFerror�e8���l;!@��������9t�s�9t�P@��;0!@�������9t�s��;8!@�������9t�s��;J!@�������9t�s��;z!@�������9t09t�h9t09t09t�l�;�!@�L������9t�09t29t39t29t�S@��;�!@�W���T���9t�v�9tuP@�Ct9t09t09t0�;�!@�c���i���9t�v��=�!@�)���;"@��}������9Pv��="@������?activate_new�R "@���������E���Rt����E6 ��S����E ��T����Fapp�V@���>+"@��}��9P�9R0��^s��x0"@�����9���5app�x@����>;"@��}��9P��9R0��_main������6@�]����܁��5argc�������5argv�����7app��T�����=�6@��{��;�6@���Ł��9t�S@�9t�S@�9t�S@�9t49t0�D�6@�4���9t09t0��Fdemo_application_parent_class� ���0PW�FDemoApplication_private_offset� K��,PW�Fdemo_application_window_parent_class����(PW�FDemoApplicationWindow_private_offset�K��$PW� �������9���`app_entries�;�����@@�`win_entries�D���� @@�a������NaJ��J��Xb����Na� ��� ��Rbe��e���a� ��� ��[a]��]���b=��=���a� ��� ��96ag ��g ��:?a������6cb�������bW ��W �� ra �� ��:Ja������Qa������:Ma7��7��;a������$Zb������ ka������2%b�������bE ��E ��.a����15b�����b� ��� ��a������yat��t���a�����a������$_a����$eb6��6�� �a������;�a� ��� ��5RaO��O��<Ka8��8��<Ia������<Ga �� ��=�a^��^��(}a4 ��4 ���a*��*��*_cg_free�g_free�@Ga������!�b���� �b\ ��\ �� �b~��~�� �a������7^a������.�b����.Ab������.�a������-yaG��G��-{aO��O��7Zb������ ta������yaG��G���a� ��� ��~a� ��� ���b����!�b������!�b� ��� ��!b� ��� ��!�aL��L��>�a������>�a|��|��@ay ��y ��$Lb�������a������/Eb�������a6��6��.�b# ��# ��!rb������'a������19a����0�b� ��� ��?�aj��j��Ca���������� ��GNU C11 5.3.1 20160211 -mms-bitfields -mtune=generic -march=pentiumpro -g -O2 -fvisibility=hidden�demo_resources.c�/home/vagrant/ruby-gnome2.win32/gdk3/tmp/windows/gtk+/gtk+-3.22.12/demos/gtk-demo���������w��char�unsigned int�int�short unsigned int�long int�long long int�sizetype�long unsigned int�unsigned char�long double�signed char�guint8�Q��short int�long long unsigned int�gsize�;����gint�1����float�double�gpointer�M���GResource����_GResource������GStaticResource�32��_GStaticResource�5��� data�7��� data_len�8��� resource�9��� next�:��� padding�;��������� ��� ���data� ���alignment� ���ptr� ��������� 0���������������demo_get_resource�������@"@�����9��O"@����t��A@���resource_constructor�z���7@�����w��7@���t��A@���resource_destructor��� 7@��������/7@���t��A@���demo_resource_data� ���@T@����static_resource�������A@�������~y��y��zb��b��|�P���� ��GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/atonexit.c��$@��������char�unsigned int�int�short unsigned int�long int�long long int�sizetype�long unsigned int�unsigned char�float�signed char�short int�long long unsigned int�_onexit_t�(����������double�long double����tagCOINITBASE���������COINITBASE_MULTITHREADED��� VARENUM������l��VT_EMPTY��VT_NULL�VT_I2�VT_I4�VT_R4�VT_R8�VT_CY�VT_DATE�VT_BSTR�VT_DISPATCH� VT_ERROR� VT_BOOL�VT_VARIANT�VT_UNKNOWN� VT_DECIMAL�VT_I1�VT_UI1�VT_UI2�VT_UI4�VT_I8�VT_UI8�VT_INT�VT_UINT�VT_VOID�VT_HRESULT�VT_PTR�VT_SAFEARRAY�VT_CARRAY�VT_USERDEFINED�VT_LPSTR�VT_LPWSTR�VT_RECORD�$VT_INT_PTR�%VT_UINT_PTR�&VT_FILETIME�@VT_BLOB�AVT_STREAM�BVT_STORAGE�CVT_STREAMED_OBJECT�DVT_STORED_OBJECT�EVT_BLOB_OBJECT�FVT_CF�GVT_CLSID�HVT_VERSIONED_STREAM�I VT_BSTR_BLOB�� VT_VECTOR�� VT_ARRAY�� VT_BYREF��@ VT_RESERVED��� VT_ILLEGAL��� VT_ILLEGALMASKED�� VT_TYPEMASK���_PVFV����mingw_onexit�!p���$@������n��func�!p���� onexitbegin�#n���h onexitend�$n���lretval�%p������$@��� %@�����t�8�%@���(%@���H%@�*��9��t���t�ht�l�V%@�5��g%@�5��x%@�@��_��t�8��%@�t�����l��atexit�8�����%@��������func�8l�����%@�y��t�����__onexitbegin�n���SW�__onexitend�n���SW�p�����p���_imp___onexit� ������������_lock�_lock��������������_unlock�_unlock��~�����GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/gccmain.c��%@�����L��char�unsigned int�int�ptrdiff_t�Z����short unsigned int�long int�long long int�sizetype�long unsigned int�unsigned char�float�signed char�short int�long long unsigned int�double�long double�tagCOINITBASE���������COINITBASE_MULTITHREADED���VARENUM������Y��VT_EMPTY��VT_NULL�VT_I2�VT_I4�VT_R4�VT_R8�VT_CY�VT_DATE�VT_BSTR�VT_DISPATCH� VT_ERROR� VT_BOOL�VT_VARIANT�VT_UNKNOWN� VT_DECIMAL�VT_I1�VT_UI1�VT_UI2�VT_UI4�VT_I8�VT_UI8�VT_INT�VT_UINT�VT_VOID�VT_HRESULT�VT_PTR�VT_SAFEARRAY�VT_CARRAY�VT_USERDEFINED�VT_LPSTR�VT_LPWSTR�VT_RECORD�$VT_INT_PTR�%VT_UINT_PTR�&VT_FILETIME�@VT_BLOB�AVT_STREAM�BVT_STORAGE�CVT_STREAMED_OBJECT�DVT_STORED_OBJECT�EVT_BLOB_OBJECT�FVT_CF�GVT_CLSID�HVT_VERSIONED_STREAM�IVT_BSTR_BLOB��VT_VECTOR��VT_ARRAY�� VT_BYREF��@VT_RESERVED���VT_ILLEGAL���VT_ILLEGALMASKED��VT_TYPEMASK���func_ptr�i��o�� __do_global_dtors��%@�,�������p�����A@��Y�� __do_global_ctors� �%@�F�������nptrs�"�� ��i�#��B �� &@�o��t��%@���__main�5@&@�����!��\&@�����initialized�2����4PW�Y��E���__CTOR_LIST__�:��__DTOR_LIST__� :��atexit�atexit�T�/��� ��GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/natstart.c�q��char�unsigned int�int�short unsigned int�long int�long long int�sizetype�long unsigned int�unsigned char�float�signed char�short int�long long unsigned int�double�long double�tagCOINITBASE���������COINITBASE_MULTITHREADED���VARENUM������A��VT_EMPTY��VT_NULL�VT_I2�VT_I4�VT_R4�VT_R8�VT_CY�VT_DATE�VT_BSTR�VT_DISPATCH� VT_ERROR� VT_BOOL�VT_VARIANT�VT_UNKNOWN� VT_DECIMAL�VT_I1�VT_UI1�VT_UI2�VT_UI4�VT_I8�VT_UI8�VT_INT�VT_UINT�VT_VOID�VT_HRESULT�VT_PTR�VT_SAFEARRAY�VT_CARRAY�VT_USERDEFINED�VT_LPSTR�VT_LPWSTR�VT_RECORD�$VT_INT_PTR�%VT_UINT_PTR�&VT_FILETIME�@VT_BLOB�AVT_STREAM�BVT_STORAGE�CVT_STREAMED_OBJECT�DVT_STORED_OBJECT�EVT_BLOB_OBJECT�FVT_CF�GVT_CLSID�HVT_VERSIONED_STREAM�IVT_BSTR_BLOB��VT_VECTOR��VT_ARRAY�� VT_BYREF��@VT_RESERVED���VT_ILLEGAL���VT_ILLEGALMASKED��VT_TYPEMASK��������������__uninitialized��__initializing�__initialized������A�� __native_startup_state� ����SW� ��� __native_startup_lock�����SW���� __native_dllmain_reason����A@� ���� __native_vcclrit_reason����A@�������� ��GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/wildcard.c����_dowildcard� ����8PW�int������� ��GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/charmax.c�`&@�������char�unsigned int�int�short unsigned int�long int�long long int�sizetype�long unsigned int�unsigned char�float�signed char�short int�long long unsigned int�u������double�long double�tagCOINITBASE���������COINITBASE_MULTITHREADED���VARENUM������S��VT_EMPTY��VT_NULL�VT_I2�VT_I4�VT_R4�VT_R8�VT_CY�VT_DATE�VT_BSTR�VT_DISPATCH� VT_ERROR� VT_BOOL�VT_VARIANT�VT_UNKNOWN� VT_DECIMAL�VT_I1�VT_UI1�VT_UI2�VT_UI4�VT_I8�VT_UI8�VT_INT�VT_UINT�VT_VOID�VT_HRESULT�VT_PTR�VT_SAFEARRAY�VT_CARRAY�VT_USERDEFINED�VT_LPSTR�VT_LPWSTR�VT_RECORD�$VT_INT_PTR�%VT_UINT_PTR�&VT_FILETIME�@VT_BLOB�AVT_STREAM�BVT_STORAGE�CVT_STREAMED_OBJECT�DVT_STORED_OBJECT�EVT_BLOB_OBJECT�FVT_CF�GVT_CLSID�HVT_VERSIONED_STREAM�IVT_BSTR_BLOB��VT_VECTOR��VT_ARRAY�� VT_BYREF��@VT_RESERVED���VT_ILLEGAL���VT_ILLEGALMASKED��VT_TYPEMASK��� _PIFV�o�� my_lconv_init�����`&@�����mingw_initcharmax�����<PW�_charmax������A@�__mingw_pinit�S���W������g��GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/dllargv.c�p&@������char�unsigned int�int�short unsigned int�long int�long long int�sizetype�long unsigned int�unsigned char�float�signed char�short int�long long unsigned int�double�long double�_setargv�����p&@������ ������GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/gs_support.c��&@�7�����char�unsigned int�int�short unsigned int�long int�long long int�sizetype�long unsigned int�unsigned char�double�float�long double�[��_EXCEPTION_RECORD�P� ��ExceptionCode�� ����ExceptionFlags�� ������� U��ExceptionAddress�� ���NumberParameters�� ���ExceptionInformation�� ���_CONTEXT�����ContextFlags�����Dr0����Dr1� ���Dr2� ���Dr3����Dr6����Dr7� ���FloatSave����SegGs�����SegFs�����SegEs�����SegDs�����Edi�����Esi�����Ebx�����Edx�����Ecx�����Eax�����Ebp�����Eip�����SegCs�����EFlags�����Esp�����SegSs�����ExtendedRegisters� ����� BYTE��"�� DWORD�� ��signed char�short int�long long unsigned int� UINT_PTR�5���� ULONG_PTR�7 �� PVOID���� LONG����� LONGLONG�������O��LowPart��������� ����w��LowPart��������� ���_LARGE_INTEGER����� '��u��O��QuadPart����� LARGE_INTEGER��w��_FLOATING_SAVE_AREA�p����ControlWord������StatusWord�����TagWord�����ErrorOffset�����ErrorSelector�����DataOffset�����DataSelector�����RegisterArea�����Cr0NpxState����l���������O� FLOATING_SAVE_AREA�������������� CONTEXT�!�� PCONTEXT�#�������������� EXCEPTION_RECORD�� [�� PEXCEPTION_RECORD�� E����_EXCEPTION_POINTERS�� ������� +���ContextRecord�� ���� EXCEPTION_POINTERS�� K��_FILETIME�����dwLowDateTime�ߘ���dwHighDateTime������ FILETIME���� NTSTATUS� ��3��ft_scalar�!���ft_struct�"���� FT�#��__security_init_cookie�2�&@���������cookie�4���m ��systime�53���Pperfctr�6����X�&@����t��P��&@�t��X��__report_gsfailure�g0'@������H��StackCookie�g�����cookie�iX���h�'@���t�0��'@�)��t�@;W���'@�>��t����|��'@� ������X�����H��GS_ExceptionRecord�%�� SW�GS_ContextRecord�&���@PW�GS_ExceptionPointers�(���@;W� ���!__security_cookie�,����A@�!__security_cookie_complement�-����A@�"abort�abort�@������c��GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/_newmode.c����_newmode������SW�int��V������GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/tlssup.c��'@�����#��char�unsigned int�int�uintptr_t�M����short unsigned int�long int�long long int�����sizetype�long unsigned int�unsigned char�ULONG� ��BOOL������DWORD�� ��float�LPVOID��F��signed char�short int�long long unsigned int�ULONG_PTR�7 ��PVOID��F��HANDLE��F��PIMAGE_TLS_CALLBACK��� �������a������ _IMAGE_TLS_DIRECTORY32� ��� StartAddressOfRawData�!a��� EndAddressOfRawData�"a�� AddressOfIndex�#a�� AddressOfCallBacks�$a�� SizeOfZeroFill�%a�� Characteristics�&a���IMAGE_TLS_DIRECTORY32�'��IMAGE_TLS_DIRECTORY�8���_PVFV�(��.��__dyn_tls_init�R��U����� '��R��� ��Ra�� 2��Rw��pfunc�T���ps�U�������__dyn_tls_dtor��U���'@�C�������'�����������a���2���w����'@�N��t���t�t���/����(@�~�������N����Y���d���o��|��A(@�"���|��d��� ��Y��� ��N��� ��A(@�"���o��� ��|�� �����(@�N��t���t1t���__tlregdtor�s�����(@��������func�s�����__xd_a�E��,�W�__xd_z�F��0�W�_tls_index�)H���SW�_tls_start�/����W�_tls_end�0���W�__xl_a�2����W�__xl_z�3���(�W�_tls_used�5{���W����_CRT_MT�M����__dyn_tls_init_callback�m���H;W����__xl_c�n��� �W�__xl_d�����$�W�mingw_initltsdrot_force�������SW�mingw_initltsdyn_force�������SW�mingw_initltssuo_force�������SW� =��=�������8��GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/cinitexe.c�B��char�unsigned int�int�short unsigned int�long int�long long int�sizetype�long unsigned int�unsigned char�_PVFV�6��<��)��M��������__xi_a� =���W�__xi_z�=���W�__xc_a�=����W�__xc_z� =���W���������GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/merr.c��(@��������char�unsigned int�int�short unsigned int�long int�long long int�����sizetype�long unsigned int�unsigned char�float�signed char�short int�long long unsigned int�double�long double�tagCOINITBASE���������COINITBASE_MULTITHREADED���VARENUM������K��VT_EMPTY��VT_NULL�VT_I2�VT_I4�VT_R4�VT_R8�VT_CY�VT_DATE�VT_BSTR�VT_DISPATCH� VT_ERROR� VT_BOOL�VT_VARIANT�VT_UNKNOWN� VT_DECIMAL�VT_I1�VT_UI1�VT_UI2�VT_UI4�VT_I8�VT_UI8�VT_INT�VT_UINT�VT_VOID�VT_HRESULT�VT_PTR�VT_SAFEARRAY�VT_CARRAY�VT_USERDEFINED�VT_LPSTR�VT_LPWSTR�VT_RECORD�$VT_INT_PTR�%VT_UINT_PTR�&VT_FILETIME�@VT_BLOB�AVT_STREAM�BVT_STORAGE�CVT_STREAMED_OBJECT�DVT_STORED_OBJECT�EVT_BLOB_OBJECT�FVT_CF�GVT_CLSID�HVT_VERSIONED_STREAM�IVT_BSTR_BLOB��VT_VECTOR��VT_ARRAY�� VT_BYREF��@VT_RESERVED���VT_ILLEGAL���VT_ILLEGALMASKED��VT_TYPEMASK���_iobuf� X��� _ptr�Y����� _cnt�Z���� _base�[���� _flag�\���� _file�]���� _charbuf�^���� _bufsiz�_���� _tmpfname�`����� FILE�bK��_exception� �5�� type������� name��5�� arg1��r�� arg2��r�� retval��r���;������ fUserMathErr�T��Z������i�� i������__mingw_raise_matherr���(@�K�������typ�������name�5���a1�r���a2�r���rslt�r���ex�����P�(@�t��P��__mingw_setusermatherr���(@�����>��f�T�����(@����������_matherr������)@�[�������pexcept�%i����type�'5��7 ��U)@����t\;W���stUserMathErr�@���SW��������_imp___iob�[������Q��Q���fprintf�fprintf�y��������GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/CRT_fp10.c�`)@�������_fpreset� `)@����������+��GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/mingw_helpers.c�p)@����u��char�unsigned int�int�short unsigned int�long int�long long int�sizetype�long unsigned int�unsigned char�float�signed char�short int�long long unsigned int�double�long double�tagCOINITBASE���������COINITBASE_MULTITHREADED���VARENUM������P��VT_EMPTY��VT_NULL�VT_I2�VT_I4�VT_R4�VT_R8�VT_CY�VT_DATE�VT_BSTR�VT_DISPATCH� VT_ERROR� VT_BOOL�VT_VARIANT�VT_UNKNOWN� VT_DECIMAL�VT_I1�VT_UI1�VT_UI2�VT_UI4�VT_I8�VT_UI8�VT_INT�VT_UINT�VT_VOID�VT_HRESULT�VT_PTR�VT_SAFEARRAY�VT_CARRAY�VT_USERDEFINED�VT_LPSTR�VT_LPWSTR�VT_RECORD�$VT_INT_PTR�%VT_UINT_PTR�&VT_FILETIME�@VT_BLOB�AVT_STREAM�BVT_STORAGE�CVT_STREAMED_OBJECT�DVT_STORED_OBJECT�EVT_BLOB_OBJECT�FVT_CF�GVT_CLSID�HVT_VERSIONED_STREAM�IVT_BSTR_BLOB��VT_VECTOR��VT_ARRAY�� VT_BYREF��@VT_RESERVED���VT_ILLEGAL���VT_ILLEGALMASKED��VT_TYPEMASK���_encode_pointer�6��x�� ptr�6��� P���)@��������l�����mingw_app_type������SW��;������GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/pseudo-reloc.c��)@�K��[��__gnuc_va_list�����__builtin_va_list�����char�va_list�����size_t�%��unsigned int�int�ptrdiff_t�Z��short unsigned int�long int�long long int�����sizetype�long unsigned int�unsigned char�BYTE�����WORD��,��DWORD��q��float�PBYTE��������LPBYTE�����LPVOID��������signed char�short int�long long unsigned int�ULONG_PTR�7q��SIZE_T��3��PVOID�����_MEMORY_BASIC_INFORMATION� �� BaseAddress�!R��� AllocationBase�"R�� AllocationProtect�#��� RegionSize�$D�� State�%��� Protect�&��� Type�'���� MEMORY_BASIC_INFORMATION�(_�����>��e��� At��PhysicalAddress�B���VirtualSize�C����_IMAGE_SECTION_HEADER�(?��� Name�@.��� Misc�D>�� VirtualAddress�E��� SizeOfRawData�F��� PointerToRawData�G��� PointerToRelocations�H��� PointerToLinenumbers�I��� NumberOfRelocations�J��� NumberOfLinenumbers�K���" Characteristics�L���$� PIMAGE_SECTION_HEADER�M���t��double�long double�tagCOINITBASE�������COINITBASE_MULTITHREADED���VARENUM�������VT_EMPTY��VT_NULL�VT_I2�VT_I4�VT_R4�VT_R8�VT_CY�VT_DATE�VT_BSTR�VT_DISPATCH� VT_ERROR� VT_BOOL�VT_VARIANT�VT_UNKNOWN� VT_DECIMAL�VT_I1�VT_UI1�VT_UI2�VT_UI4�VT_I8�VT_UI8�VT_INT�VT_UINT�VT_VOID�VT_HRESULT�VT_PTR�VT_SAFEARRAY�VT_CARRAY�VT_USERDEFINED�VT_LPSTR�VT_LPWSTR�VT_RECORD�$VT_INT_PTR�%VT_UINT_PTR�&VT_FILETIME�@VT_BLOB�AVT_STREAM�BVT_STORAGE�CVT_STREAMED_OBJECT�DVT_STORED_OBJECT�EVT_BLOB_OBJECT�FVT_CF�GVT_CLSID�HVT_VERSIONED_STREAM�IVT_BSTR_BLOB��VT_VECTOR��VT_ARRAY�� VT_BYREF��@VT_RESERVED���VT_ILLEGAL���VT_ILLEGALMASKED��VT_TYPEMASK���_iobuf� ��_ptr� _���_cnt� ��_base� _��_flag� ��_file� ��_charbuf� ��_bufsiz� !��_tmpfname� "_���FILE� $���;?��addend�<����target�=����runtime_pseudo_reloc_item_v1�>��F���sym�G����target�H���flags�I����runtime_pseudo_reloc_item_v2�Jc��L���magic1�M����magic2�N���version�O����runtime_pseudo_reloc_v2�P�������O ��old_protect������sec_start�����hash���������� ��__write_memory�� ��addr����src����len������do_pseudo_reloc�3E ��start�3���end�3���base�3���addr_imp�5��reldata�5��reloc_target�6��v2_hdr�7E ��r�8K ��o�hQ ��newval�m������������?��__report_error�S�)@�Q����� ��msg�S� ����argp������S �)@����� ��!t��<W�!t1!tK� �)@���� ��!t��!ts��"�)@� ���� ��#����$mark_section_writable���)@�:������%addr�����J ��b�� ���T&h������ ��&i����� �� 8*@���\��!t�s��"^*@�(��'�*@�|��!t�T!tL�'�*@����!t@!ts�� �*@�W �����!t��<W�� +@�W �����!t��<W��(*+@�W ��!t��<W�!ts���)restore_modified_sections��$��*i����*b�� ��*oldprot�����+_pei386_runtime_relocator��0+@�����$��,was_init�����SW�-mSecs������.� ���+@���������/� ��/� ��/� ��0����1� ����2� ���D1� �����1 �����1 ����3@,@�<���M ��1( ��)��0��13 ��T��4Z ��d,@�8��p5� ��g��5 ��{��5r �����08��5� ��g��5 ��{��5r �����(i,@�� ��6P�����7Z ��B-@������ ��5� �����5 �����5r �����8B-@����5� �����5 �����5r �����(I-@�� ��!Pv����7Z ���-@�������5� �����5 �����5r �� ��8�-@����5� �����5 �����5r �� ��(�-@�� ��!Pv����7Z ���-@�����|��5� �� ��5 ��2 ��5r ��G ��8�-@����5� �� ��5 ��2 ��5r ��G ��(�-@�� ��!Pv���� 3,@�W �����!t�L=W��(�-@�W ��!t�=W����.���|,@�P�����0P��1��Z ��2���D2���@'�,@����!t�D!tL�'�,@���!t�@�(�-@�W ��!t��<W����"X+@�3���the_secs��:���SW�O ��maxSections�����SW���d��9�:_imp___iob� [v��Y��:__RUNTIME_PSEUDO_RELOC_LIST__�0����:__RUNTIME_PSEUDO_RELOC_LIST_END__�1����:_image_base__�2����;fwrite�__builtin_fwrite� �fwrite�<r��r�� }=abort�abort�@>�������>b��b���>{��{������������GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/xtxtmode.c����_fmode������SW�int�����%��GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/crt_handler.c��-@�������char�unsigned int�int�short unsigned int�long int�long long int�sizetype�long unsigned int�unsigned char�:��_EXCEPTION_RECORD�P� ���ExceptionCode�� w���ExceptionFlags�� w������ 4��ExceptionAddress�� ���NumberParameters�� w��ExceptionInformation�� *���_CONTEXT��k��ContextFlags�w���Dr0�w��Dr1� w��Dr2� w��Dr3�w��Dr6�w��Dr7� w��FloatSave����SegGs�w���SegFs�w���SegEs�w���SegDs�w���Edi�w���Esi�w���Ebx�w���Edx�w���Ecx�w���Eax�w���Ebp�w���Eip�w���SegCs�w���EFlags�w���Esp�w���SegSs�w���ExtendedRegisters� ����� BYTE��#�� DWORD����float�signed char�short int�long long unsigned int� ULONG_PTR�7�� PVOID����� LONG�����_FLOATING_SAVE_AREA�p����ControlWord��w���StatusWord��w��TagWord��w��ErrorOffset��w��ErrorSelector��w��DataOffset��w��DataSelector��w��RegisterArea�����Cr0NpxState�w��l�k�������O� FLOATING_SAVE_AREA����k���� ���� CONTEXT�!��� PCONTEXT�#$�������:����� EXCEPTION_RECORD�� :�� PEXCEPTION_RECORD�� m��:��_EXCEPTION_POINTERS�� ������� S���ContextRecord�� ��� EXCEPTION_POINTERS�� s��s��������������� PTOP_LEVEL_EXCEPTION_FILTER���� LPTOP_LEVEL_EXCEPTION_FILTER����double�long double�tagCOINITBASE���������COINITBASE_MULTITHREADED���VARENUM������ ��VT_EMPTY��VT_NULL�VT_I2�VT_I4�VT_R4�VT_R8�VT_CY�VT_DATE�VT_BSTR�VT_DISPATCH� VT_ERROR� VT_BOOL�VT_VARIANT�VT_UNKNOWN� VT_DECIMAL�VT_I1�VT_UI1�VT_UI2�VT_UI4�VT_I8�VT_UI8�VT_INT�VT_UINT�VT_VOID�VT_HRESULT�VT_PTR�VT_SAFEARRAY�VT_CARRAY�VT_USERDEFINED�VT_LPSTR�VT_LPWSTR�VT_RECORD�$VT_INT_PTR�%VT_UINT_PTR�&VT_FILETIME�@VT_BLOB�AVT_STREAM�BVT_STORAGE�CVT_STREAMED_OBJECT�DVT_STORED_OBJECT�EVT_BLOB_OBJECT�FVT_CF�GVT_CLSID�HVT_VERSIONED_STREAM�IVT_BSTR_BLOB��VT_VECTOR��VT_ARRAY�� VT_BYREF��@VT_RESERVED���VT_ILLEGAL���VT_ILLEGALMASKED��VT_TYPEMASK��� __p_sig_fn_t�0 ��% ��0 �������_gnu_exception_handler��_gnu_exception_handler@4������-@������ ��exception_data��� ��� ��old_handler�� ��� ��action��������reset_fpu���������.@�� ��� ��t�;t0�5.@�� ��t�;��.@�� �� ��t�8t0��.@�! ��t�8��.@�� ��; ��t�8t0��.@�� ��U ��t�8t1��.@���/@�� ��x ��t�4t0�/@�� ��t�4�4/@�� ��� ��t�8t1�T/@�� ��� ��t�;t1�t/@�� ��t�4t1�����__mingw_oldexcpt_handler�����SW�signal�signal�<������)�������GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/tlsthrd.c��/@�j��W��char�unsigned int�int�short unsigned int�long int�long long int�sizetype�long unsigned int�unsigned char�WINBOOL�����WORD������DWORD�� ��float�LPVOID��0��signed char�short int�long long unsigned int�ULONG_PTR�7 ��LONG�����HANDLE��0��_LIST_ENTRY�]��Flink�^���Blink�_������LIST_ENTRY�`���_RTL_CRITICAL_SECTION_DEBUG� Z��Type�[A���CreatorBackTraceIndex�\A��CriticalSection�]���ProcessLocksList�^��EntryCount�_M��ContentionCount�`M��Flags�aM��CreatorBackTraceIndexHigh�bA��SpareWORD�cA���_RTL_CRITICAL_SECTION�u���DebugInfo�v����LockCount�w���RecursionCount�x���OwningThread�y���LockSemaphore�z���SpinCount�{������PRTL_CRITICAL_SECTION_DEBUG�d���!��RTL_CRITICAL_SECTION�|��CRITICAL_SECTION�����double�long double�__mingwthr_key_t�M�� __mingwthr_key���� key� M��� dtor�!��� next�"�������0��������� 5��__mingwthr_run_key_dtors�b���keyp�d���value�lc��������/@�m����I���������/@�!���$���������/@�t�v����/@�8��t��SW���/@�t��SW���___w64_mingwthr_add_key_dtor�)�����/@�w�������key�)M����dtor�)����new_key�+�����0@�������t�1t<�80@����t��SW��V0@�t��SW���5��___w64_mingwthr_remove_key_dtor�@����p0@���������key�@M����prev_key�B���?��cur_key�C���u���0@�n��t��SW���0@����t��SW���0@����0@�t��SW���__mingw_TLScallback�y2��1@���������hDllHandle�y�����reason�zM���reserved�{c������(1@�h���&��h������1@���������@1@�����N���������1@������W1@�I������keyp��������t��������k1@����1@�t��SW����1@�t��SW���__mingwthr_cs����SW�__mingwthr_cs_init�����SW� ����key_dtor_list�&����SW� calloc�calloc�� free�free��������L��GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/tlsmcrt.c����_CRT_MT������A@�int�� ���v��GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/pseudo-reloc-list.c�9��__RUNTIME_PSEUDO_RELOC_LIST_END__������SW�char�__RUNTIME_PSEUDO_RELOC_LIST__������SW��j������GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt/pesect.c��1@�������char�size_t�%����unsigned int�int�short unsigned int�long int�long long int�sizetype�long unsigned int�unsigned char�WINBOOL�����BYTE��,��WORD������DWORD����float�PBYTE�����N��LPVOID��=��signed char�short int�long long unsigned int�ULONG_PTR�7��DWORD_PTR�����LONG�����N������� _IMAGE_DOS_HEADER�@�g�� e_magic��Z��� e_cblp��Z�� e_cp��Z�� e_crlc��Z�� e_cparhdr��Z�� e_minalloc��Z�� e_maxalloc��Z�� e_ss��Z�� e_sp��Z�� e_csum��Z�� e_ip��Z�� e_cs��Z�� e_lfarlc��Z�� e_ovno��Z�� e_res��g�� e_oemid��Z��$ e_oeminfo��Z��& e_res2��w��( e_lfanew�����<�Z��w�����Z������� �IMAGE_DOS_HEADER����PIMAGE_DOS_HEADER������� _IMAGE_FILE_HEADER�&w�� Machine�'Z��� NumberOfSections�(Z�����)f�� PointerToSymbolTable�*f�� NumberOfSymbols�+f�� SizeOfOptionalHeader�,Z�����-Z���IMAGE_FILE_HEADER�.��� _IMAGE_DATA_DIRECTORY�b��� ��cf��� Size�df���IMAGE_DATA_DIRECTORY�e��� _IMAGE_OPTIONAL_HEADER��i)�� Magic�kZ��� MajorLinkerVersion�lN�� MinorLinkerVersion�mN�� SizeOfCode�nf�� SizeOfInitializedData�of�� SizeOfUninitializedData�pf�� AddressOfEntryPoint�qf�� BaseOfCode�rf�� BaseOfData�sf�� ImageBase�tf�� SectionAlignment�uf�� FileAlignment�vf��$ MajorOperatingSystemVersion�wZ��( MinorOperatingSystemVersion�xZ��* MajorImageVersion�yZ��, MinorImageVersion�zZ��. MajorSubsystemVersion�{Z��0 MinorSubsystemVersion�|Z��2 Win32VersionValue�}f��4 SizeOfImage�~f��8 SizeOfHeaders�f��< CheckSum��f��@ Subsystem��Z��D DllCharacteristics��Z��F SizeOfStackReserve��f��H SizeOfStackCommit��f��L SizeOfHeapReserve��f��P SizeOfHeapCommit��f��T LoaderFlags��f��X NumberOfRvaAndSizes��f��\ DataDirectory��)��`����9�����IMAGE_OPTIONAL_HEADER32�����PIMAGE_OPTIONAL_HEADER32��z�����PIMAGE_OPTIONAL_HEADER��Y�� _IMAGE_NT_HEADERS������ Signature��f��� FileHeader��w�� OptionalHeader��9���PIMAGE_NT_HEADERS32�� �����PIMAGE_NT_HEADERS�����Al �� PhysicalAddress�Bf�� VirtualSize�Cf��� _IMAGE_SECTION_HEADER�(?i �� Name�@��� Misc�D6 �� ��Ef�� SizeOfRawData�Ff�� PointerToRawData�Gf�� PointerToRelocations�Hf�� PointerToLinenumbers�If�� NumberOfRelocations�JZ�� NumberOfLinenumbers�KZ��"���Lf��$�PIMAGE_SECTION_HEADER�M� ��l ��=� �����>f�� OriginalFirstThunk�?f��� _IMAGE_IMPORT_DESCRIPTOR�<.��� ������Af�� ForwarderChain�Cf�� Name�Df�� FirstThunk�Ef���IMAGE_IMPORT_DESCRIPTOR�F� ��PIMAGE_IMPORT_DESCRIPTOR�Go��.��double�long double�_ValidateImageBase�?����� ��|��pDOSHeader������� ��pOptHeader�����_FindPESection�-i ��;�� ��-|��rva�-������/ �����0i �� ��1���������1@�����o�������������������d������2@��������������������������"2@�;������02@�=��������������������$��9��/��L���_FindPESectionByName�Ci ��p2@������� ��pName�C� ���� ��E|�����F ��k�����Gi ��~�� ��H�����������2@����O� ����� ������������!�2@�;��"P���#�2@�I��� ��$t�w��!�2@�Z��$t�s�$tw�$t8��� ��%����__mingw_GetSectionForAddress�bi ��3@�w�������p�b����� ��d|��&rva�e���������3@����hg����� ������������!,3@�;��"P���'���03@����l������� ��������$����/�� �����__mingw_GetSectionCount�p�����3@�+����"�� ��r|�����s ��'����3@����v��� ������������!�3@�;��"P����_FindPESectionExec��i ���3@�w�������(eNo������J�� ���|������ ���������i ����� ����������'����3@������� �����������!�3@�;��"P����_GetPEImageBase��|��@4@�'����1�� ���|��'���B4@�(������ (�����������!Z4@�;��"P����_IsNonwritableInCurrentImage��?��p4@�|������pTarget��|���� ���|��&rvaTarget������������i �����r4@�@��������� @�����������!�4@�;��"P���'����4@�X���������� X������$����/��'�����__mingw_enum_import_library_names��� ���4@������4��(i������F�� ���|������ ��|��&importDesc��N���������i ��&importsStartRVA��f���������4@�x��������� x�����������!5@�;��"P���)���35@�(�����������*35@�(��������$�����/��������+_image_base__����,strlen�strlen�6,strncmp�strncmp�L���������GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/misc/mingw_matherr.c�� ��_MINGW_INSTALL_DEBUG_MATHERR������A@�int���������GNU C99 5.3.1 20151207 -m32 -mtune=generic -march=pentiumpro -g -O2 -std=gnu99�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/misc/invalid_parameter_handler.c��6@����2!��char�unsigned int�int�uintptr_t�M����wchar_t�b����short unsigned int�long int�long long int�sizetype�long unsigned int�unsigned char�float�signed char�short int�long long unsigned int�LONG_PTR�6��PVOID��c��LONG���PLONG��������double�long double��� �� �� �� �����������&�� ���� tagCOINITBASE������a��COINITBASE_MULTITHREADED���VARENUM���������VT_EMPTY��VT_NULL�VT_I2�VT_I4�VT_R4�VT_R8�VT_CY�VT_DATE�VT_BSTR�VT_DISPATCH� VT_ERROR� VT_BOOL�VT_VARIANT�VT_UNKNOWN� VT_DECIMAL�VT_I1�VT_UI1�VT_UI2�VT_UI4�VT_I8�VT_UI8�VT_INT�VT_UINT�VT_VOID�VT_HRESULT�VT_PTR�VT_SAFEARRAY�VT_CARRAY�VT_USERDEFINED�VT_LPSTR�VT_LPWSTR�VT_RECORD�$VT_INT_PTR�%VT_UINT_PTR�&VT_FILETIME�@VT_BLOB�AVT_STREAM�BVT_STORAGE�CVT_STREAMED_OBJECT�DVT_STORED_OBJECT�EVT_BLOB_OBJECT�FVT_CF�GVT_CLSID�HVT_VERSIONED_STREAM�I VT_BSTR_BLOB�� VT_VECTOR�� VT_ARRAY�� VT_BYREF��@ VT_RESERVED��� VT_ILLEGAL��� VT_ILLEGALMASKED�� VT_TYPEMASK���_InterlockedExchange����+��Target��+��Value�����1����InterlockedExchange�#InterlockedExchange@8�������Target�#���Value�#����������mingw_get_invalid_parameter_handler�����6@�����mingw_set_invalid_parameter_handler�����6@�����]��new_handler������6���6@� ���z��;��l��O������6@� ���$��;�� ��O�����handler�����SW�����������_imp___set_invalid_parameter_handler�����A@�r�����_imp___get_invalid_parameter_handler�����A@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%��$�>���:;I���I��:;�� �:;I8�� �:;I8����� :;�� �:;I��'I���I�� I��!�I/��!�I/��:;�� �:;I�� �I8��'��:;�� �:;I8���'I���'��&�I��I:;��(���I:;��(���:;��I:;���:;I�� .?:;'I ��!�:;I��"4�:;I��#5�I��$�:;I��%�<��&.�?:;'I ��'.?:;n'I ��(�:;I��)�:;I��*.:;' ��+��,.:;'@�B��-�:;I��..:;'I ��/.:;'I@�B��01RUXY��1U��24�1��34�1��4��1��5����B��6���1��7��1��8�����94�:;I��:4�:;I��;U��<1XY��=1XY��>�1��?��@�1��A1RUXY��B1RUXY��C1XY��D1XY��E����F����G.?:;'I@�B��H4�:;I��I����B1��J4�:;I��K4�:;I?<��L5���M!���N4�:;I?��O4�:;I?<��P.�?<n:;��Q.�?<n:;��R.�?<n:;��S.�?<n���%U��$�>���I���:;I�����'���I��&�I�� :;�� �:;I8���'���<�� I��!�I/���:;I��:;�� �:;I8��:;�� �:;I8��:;�� �:;I��I:;��(���:;�� �:;I��I:;��(���(� �� �:;I8��5�I��'I�� �:;I 8��!:;��" �:;I��#(���$:;��% �:;I8��& �:;I8��':;��( �:;I8��) �:;I 8��* �:;I8��+:;��,.:;'I ��-�:;I��..:;' ��/�:;I��04�:;I��1�:;I��24�:;I��3.:;'I@�B��4�:;I��5�:;I��64�:;I��74�:;I��8����9����B��:.:;'@�B��;��1��<����B1��=���1��>���B1��?.:;'@�B��@�:;I��A4�:;I��B4�:;I��C�����D��1��E�:;I��F4�:;I��G�:;I��H1XY��I�1��J��K4�1��L����M4�:;I��N.:;' ��O�:;I��P4�:;I��Q4�:;I��R�:;I��S�:;I��T.:;'@��U1XY��V1XY��W.1@�B��X�1��Y��Z4�1��[.?:;'I@�B��\U��]���^.:;'@�B��_.?:;'I@�B��`4�:;I��a.�?<n:;��b.�?<n:;��c.�?<n:;���%U��$�>���:;I������<���I��&�I��:;�� �:;I8�� :;�� �:;I��I�� !�I/��.?:;'I@�B����1������B��.:;'@�B��4�:;I��4�:;I��.�?<n:;���%��$�>���:;I���I���'I���'��I:;��(��� I:;�� (���.?:;'I@�B���:;I�� 4�:;I��4�:;I�����1����1������B��������1��4�:;I?��'I���I��4�:;I?<��.�?<n:;��.�?<n:;���%��$�>���:;I��I:;��(���I:;��(����I�� �'�� .?:;'@�B��4�:;I��4�:;I�� ��1������B��.?:;'@�B������B1��I��!���4�:;I?<��.�?<n:;���%��$�>��I:;��(���I:;��(���I:;���:;I�� 4�:;I?�� 5�I���I��5����%��4�:;I?��$�>���%��$�>���I���'I��I:;��(���I:;��(��� �:;I�� .�:;'I@��4�:;I?���%��$�>��.�?:;'I@�B���%��$�>���I��:;�� �:;I8�� �:;I8�����:;�� �:;I�� �:;I��:;��:;�� �I�� �:;I��I��!�I/��!�I/��:;�� �:;I8��:;�� �:;I��.?:;'@�B��4�:;I��4�:;I����������B������.?:;'�@�B���:;I�����1��5�I�� &�I��!4�:;I?��".�?<n:;���%��4�:;I?��$�>���%��$�>���:;I���I������:;I��'���I�� :;�� �:;I8���'��.?:;n'I �� �:;I��4�:;I��.:;'I@�B���:;I����1������B��.1n@�B���1��4�1�����1����4�1��.?:;'I@�B���:;I��4�:;I��4�:;I?��&�I��4�:;I?<�� .�?<n:;���%��$�>���:;I���I���'��I��!�I/��4�:;I?���%��$�>���I��I:;��(���I:;��(���:;�� �:;I8�� �:;I��&�I��'I�� �I��.?:;'@�B���:;I��4�:;I����������B�����B1��.?:;'I@�B��4�:;I����1��I��!���4�:;I?<��.�?<n:;��.�?<n:;���%��.�?:;'@�B���%��$�>�����I:;��(���I:;��(���.?:;'I �� �:;I�� .1@�B���1��4�:;I?���%���:;I���I��$�>���I�����&���:;�� �:;I8�� �:;I��I��!�I/�� :;�� �:;I��I:;��(���I:;��(���:;�� �:;I8��:;��:;���:;I��.:;' ���:;I��4�:;I����.:;'�@�B���:;I�����4�:;I�� ��1��!����B��"���1��#&�I��$.:;'@�B��%�:;I��&4�:;I��'����(��1��).:;' ��*4�:;I��+.?:;'@�B��,4�:;I��-4�:;I��.1RUXY��/�1��0U��14�1��24�1��3��41RUXY��5�1��6�����71XY��8��9!���:4�:;I?<��;.�?<n:;n��<.�?<n:;��=.�?<n:;��>.�?<n:;���%��4�:;I?��$�>���%��$�>���I��:;�� �:;I8�� �:;I8�����:;�� �:;I�� �:;I��I��!�I/�� !�I/��'I���I��I:;��(���I:;��(���'��.?:;n'I@���:;I��4�:;I����1������B���������1����1��4�:;I?��.�?<n:;��.�?<n:;���%��$�>������:;I���:;I��:;�� �:;I8���I�� :;�� �:;I8��'���I�� 5�I��.:;' ��4�:;I����.1@�B��4�1������������B������.?:;'I@�B���:;I��4�:;I����1�����1��1RUXY��U��4�1��4�:;I�� .�?<n:;���%��4�:;I?��$�>���%��4�:;I?��$�>���%��$�>���:;I������I���:;I��I��!�I/�� :;�� �:;I8�� �:;I8��:;�� �:;I�� �:;I�� �I8��.?:;'I ���:;I��4�:;I��4�:;I���:;I��.1@�B���1��4�1��4�1������B1���1��.?:;'I@�B���:;I��4�:;I��1RUXY���1�� U��!��1��"�����#��1��$����B��%&�I��&4�:;I��'1RUXY��(�:;I��)1XY��*��+4�:;I?<��,.�?<n:;���%��4�:;I?��$�>���%��$�>���:;I������:;I���I��'���I�� &�I�� I:;��(���I:;�� (���.?:;'I ���:;I��5�I��.?:;n'I ���:;I��.�:;'I@�B��.:;'I@�B���:;I��1XY���1��4�:;I��'I��4�:;I?���'I��������������������������������������������������������������������������������������������������������������������������������������������������������P���3��� ������/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/debian/tmp/usr/i686-w64-mingw32/include/psdk_inc�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/debian/tmp/usr/i686-w64-mingw32/include�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/include��crtexe.c���intrin-impl.h���crtdefs.h���winnt.h���minwindef.h���basetsd.h���errhandlingapi.h���processthreadsapi.h���combaseapi.h���wtypes.h���internal.h���tchar.h���interlockedapi.h���ctype.h���math.h���string.h���stdlib.h���process.h������@��� ��<-z������~.Y���d�zZ �l���g�g2`��~J��f��~<=]�]�;f$pN8$*@4/7@���}f�z. <xf1����z� JuX.�Π܅��YN�_S�1���u< �K;w[�M���#+>g���8@�f_��dZ�����S]� ��@+��f�y�����t�~J<�_z<�<�_z<�������� ������/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include�/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib�/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gobject�/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gio�/home/vagrant/rcairo.win32/vendor/local/include/cairo�../../gdk�../../gtk�/home/vagrant/ruby-gnome2.win32/atk/vendor/local/include/atk-1.0/atk�../../gtk/deprecated��application.c����glibconfig.h���gtypes.h���garray.h���gquark.h���gerror.h���gdataset.h���glist.h���gslist.h���gvarianttype.h���gvariant.h���gtype.h���gvalue.h���gparam.h���gclosure.h���gsignal.h���gobject.h���gioenums.h���giotypes.h���gapplication.h���gapplicationcommandline.h���gsettings.h���gmenumodel.h���gactionmap.h���cairo.h���gdktypes.h���gdkevents.h���gtkenums.h���gtktypes.h���gtkbuilder.h���gtksettings.h���gtkwidget.h���gtkwindow.h���atkobject.h���atkrelationset.h���gtkapplication.h���gtkcontainer.h���gtkbin.h���gtkdialog.h���gtkaboutdialog.h���gtkmisc.h� ��gtklabel.h���gtkbox.h���gtktexttag.h���gtktextiter.h���gtktextbuffer.h���gtkapplicationwindow.h���gtkfilechooser.h���gtknativedialog.h���gtkfilechoosernative.h���gtktoolitem.h���gtktoolbutton.h���gtkmenutoolbutton.h���gtkmessagedialog.h���gtkstatusbar.h���gtktextmark.h���gsimpleaction.h���gaction.h���gtkmenu.h���gtkmain.h���gstrfuncs.h���gthread.h���gfile.h���gmem.h�����p@��\T���Y;=;=;@� XN��0@��KW��f�v$�e��}�N�0y�5(����XMv�;/�KW����O��/>} J��XN,z<4�,KW�~�J������u��|t�<ySOhY�/��;/�H0��Ks��<JMuuuv�����}օ(4�SXt���;/�Z�����s���f�?�e�}�J������v�u���v���������������u�u��|t��tQ�uJQ��:0N�;/Zw1��;���X�J�&gg����WM�XcJ�&//�Zwu��W}�MGM��tvsY�|����J�� WJ���J�� W�J��+1/h��}XL�V�.��h��87z�4(�r�g�����6@���[5u�x���9��� ������/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/lib/glib-2.0/include�/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/glib�/home/vagrant/ruby-gnome2.win32/glib2/vendor/local/include/glib-2.0/gio��demo_resources.c����glibconfig.h���gtypes.h���giotypes.h���gresource.h�����@"@��=����7@���=��� 7@���=��U������ ������/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/debian/tmp/usr/i686-w64-mingw32/include�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/include��atonexit.c���combaseapi.h���wtypes.h���stdlib.h���internal.h������$@�!O�:Lh���sYZ;/u<�2=;Y�!�������� ������/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/debian/tmp/usr/i686-w64-mingw32/include��gccmain.c���combaseapi.h���wtypes.h���crtdefs.h���stdlib.h������%@��]/?cO�Ki�]�L�r]�w��.���������� ������/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/debian/tmp/usr/i686-w64-mingw32/include�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/include��combaseapi.h���wtypes.h���natstart.c���internal.h����a����[���� ������/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt��wildcard.c����(������ ������/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/debian/tmp/usr/i686-w64-mingw32/include�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/include��charmax.c���combaseapi.h���wtypes.h���internal.h�����`&@��p����Z���� ������/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt��dllargv.c�����p&@��'�������� ������/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/debian/tmp/usr/i686-w64-mingw32/include��gs_support.c���winnt.h���minwindef.h���basetsd.h���stdlib.h������&@�2yU�v td�|����ݼgY��'fo�=<�lteXY�������a����[���� ������/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt��_newmode.c������������ ������/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/debian/tmp/usr/i686-w64-mingw32/include��tlssup.c���crtdefs.h���minwindef.h���basetsd.h���winnt.h������'@��<P��v�tOoO/�ZXx�Y�g*�s���a����[���� ������/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt��cinitexe.c����U���$��� ������/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/debian/tmp/usr/i686-w64-mingw32/include�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/include��merr.c���combaseapi.h���wtypes.h���internal.h���math.h���stdio.h������(@�>V�,LLLKGKMGN�KYy�"J8�q����[���� ������/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt��CRT_fp10.c�����`)@� ����������� ������/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/debian/tmp/usr/i686-w64-mingw32/include��mingw_helpers.c���combaseapi.h���wtypes.h������)@��%���0��� ������/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/debian/tmp/usr/i686-w64-mingw32/include��pseudo-reloc.c���vadefs.h���crtdefs.h���minwindef.h���basetsd.h���winnt.h���combaseapi.h���wtypes.h���stdio.h���<built-in>����stdlib.h������)@�����JHL/�<k�g�Ӥ�-/kg�)K�.v^tteu�w��X�ft��YK��~֦��� fvX"��>� .rJAgnr<lDt:��~�X�T@����X�f��f�~tZ>&��4,X<�v �~�t���<>��~tt���~�tIJ�u;�.�a����[���� ������/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt��xtxtmode.c����j������ ������/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/debian/tmp/usr/i686-w64-mingw32/include��crt_handler.c���winnt.h���minwindef.h���basetsd.h���errhandlingapi.h���combaseapi.h���wtypes.h���signal.h������-@��t <�=�Mq<����>Hbt=�M����X`=Z>It�=_��T���z�������� ������/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/debian/tmp/usr/i686-w64-mingw32/include��tlsthrd.c���minwindef.h���basetsd.h���winnt.h���minwinbase.h���stdlib.h������/@���z�d�v�0��x<J����mtO=-/1Mq/vhV?hq?g->tX�NTNJi��cAL�s<J�u�h�u *�JKi�5�K� ȡ�=l��o���f�*�`����Z���� ������/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt��tlsmcrt.c����j����d���� ������/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt��pseudo-reloc-list.c������������ ������/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/crt�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/debian/tmp/usr/i686-w64-mingw32/include��pesect.c���crtdefs.h���minwindef.h���basetsd.h���winnt.h���string.h������1@� =�37v�P tP.�?I�uqdR/ltQ�-TX=�sJMZr[I�dNxp.��.���v<�KJ8XHJh6tKfI�uqd4J2Mf3.��.���z�O�m(�.��� �J��.ofM�uI�hLz<dF.l�~.��ǟ��~.��s<��J�X�~Jh�t�fI�uqd��J4e=-� .�~.�� �~J�.cXM�g�~JI�uqd�J.qf �=z<�twKBz l�g����a���� ������/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/misc��mingw_matherr.c��������|��� ������/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/mingw-w64-crt/misc�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/debian/tmp/usr/i686-w64-mingw32/include/psdk_inc�/build/mingw-w64-_1w3Xm/mingw-w64-4.0.4/debian/tmp/usr/i686-w64-mingw32/include��invalid_parameter_handler.c���intrin-impl.h���crtdefs.h���basetsd.h���winnt.h���combaseapi.h���wtypes.h���interlockedapi.h������6@�v���x�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������|�����������@���� �������@���C � Hq A����������0@�>���C0z��,�������p@�C��A�I F���� �A�A�A�A���������@����CR����������@����CR����������|���$�������p@�D���A�A�C |A�A�(��������@�]���A�A�C QA�A����0������� @�L���A�A�A�C ~A�A�A�����������p@������������@�{���A�C0uA�(��������@�L���A�A�C @A�A�����������P@� ����������`@�6���A�C pA��(��������@�����A�A�C0�A�A�����������@@�A���A�C {A��8��������@�����A�A�A�A�C0qA�A�A�A��������� @�g���A�C aA�(��������@�S��A�A�F�HA�A��8��������@�y���A�A�A�A�C0iA�A�A�A��0�������p@�9���A�A�A�C kA�A�A���� ��������@�j��A�C dA����8������� @�����A�A�A�A�Cp�A�A�A�A����������@� �����������@����(��������@�����A�A�C0}A�A����(�������p@�����A�A�C0� A�A�H(�������0@�K���A�C h A�CYA������������@�����Q�C0oA�������� @�����Q�C0oA�(�������� @�U���A�A�G IA�A����(��������!@� ��A�A�C@v A�A�C�������� "@�����������0"@������������6@�]���A�B Y�����������|��������@"@����C O��������7@����C O������� 7@����C O����������|���(���d���$@�����A�C0� C�BPA������d���%@����C T����������|����������%@�,���N\�� �������%@�F���A�C j A�A��������@&@������������|��������`&@������������|������@��p&@������������|���\���d���&@�����A�A�A�A�C@f A�A�A�A�AM<C@m<C@h A�A�A�A�B����d��0'@�����A�B ��������|����������'@�C���C U H`(������(@�~���A�C d F�Ce F�D�������(@������������|������\���(@�K���C@G����\���(@�������\���)@�[���C@W���������|���������`)@������������|���������p)@�����������)@������������|���������)@�Q���A�C @������)@�:��A�A�A�C@�4C@0C@N A�A�A�A���,�����0+@����Q�B F���� �A�A�A�A����������|���0�������-@����A�B D�� ��B�Es ��M�����������|���H�������/@�m���A�A�A�A�C0M,I0Z,C0h,C0CA�A�A�A�,�������/@�w���Q�C tH VE C A�A��<������p0@�����A�C P C�IMI hC C C�I[C ��8������1@�����A�C d F�BRC a F�DMC �����������|������� ���1@�������� ��2@���� ���� ��02@�=���A�A�y�A���d���� ��p2@�����A�A�A�A�C0a C�A�A�A�BU E�A�A�A�CCC�C�A�A��,���� ��3@�w���Q�A�[ �A�BE�A������� ���3@�+���8���� ���3@�w���A�L�I �A�IL �A�CE�A�������� ��@4@�'���0���� ��p4@�|���Q�A�Y�A�D��D�A���H���� ���4@�����A�A�L�I �A�A�GP �A�A�Ai�I�A�����������|����������6@�����������6@��������Destination�Subsystem�CheckSum�__mingw_setusermatherr�SizeOfImage�BaseOfCode�_pei386_runtime_relocator�_setargv�SectionAlignment�MinorSubsystemVersion�_fpreset�DataDirectory�SizeOfStackCommit�ImageBase�__set_app_type�SizeOfCode�MajorLinkerVersion�Comperand�SizeOfHeapReserve�_set_invalid_parameter_handler�__getmainargs�_amsg_exit�_initterm�SizeOfStackReserve�SizeOfHeapCommit�MinorLinkerVersion�__enative_startup_state�SizeOfUninitializedData�AddressOfEntryPoint�MajorSubsystemVersion�SizeOfInitializedData�SizeOfHeaders�MajorOperatingSystemVersion�FileAlignment�NumberOfRvaAndSizes�ExceptionRecord�DllCharacteristics�MinorImageVersion�MinorOperatingSystemVersion�_encode_pointer�LoaderFlags�Win32VersionValue�MajorImageVersion�__security_init_cookie�g_signal_connect_data�gtk_application_set_menubar�button�_gtk_reserved4�gtk_get_minor_version�n_fingers�type�g_variant_get_boolean�activate�g_intern_static_string�gtk_application_get_windows�g_object_new�g_variant_new_boolean�container�selection�gtk_text_buffer_get_iter_at_mark�x_root�g_application_run�user_data�gtk_label_set_text�g_object_set�g_action_map_add_action_entries�group�state�property�parent�gtk_window_set_hide_titlebar_when_maximized�g_object_get_data�gtk_text_iter_get_line�gtk_widget_hide�gtk_application_window_get_type�gtk_widget_class_set_template_from_resource�g_variant_unref�g_settings_set_boolean�gtk_show_about_dialog�gtk_builder_add_from_resource�y_root�action�g_type_register_static_simple�gtk_builder_new�gtk_menu_new_from_model�g_object_ref�gtk_get_major_version�g_action_get_state�gtk_text_buffer_get_insert�parent_instance�gtk_text_iter_get_line_offset�name�g_error_free�device�gtk_widget_class_bind_template_callback_full�gtk_file_chooser_native_new�g_type_instance�window�gtk_widget_destroy�gtk_statusbar_pop�gtk_native_dialog_show�gtk_window_set_default_size�gtk_text_buffer_set_text�gtk_get_micro_version�g_object_unref�send_event�gtk_builder_get_object�g_settings_set�parent_class�g_settings_new�gtk_application_set_app_menu�g_define_type_id�gtk_message_dialog_new�g_type_class_peek_parent�_gtk_reserved1�_gtk_reserved2�_gtk_reserved3�g_once_init_enter�_gtk_reserved6�_gtk_reserved7�settings�priv�gtk_native_dialog_destroy�gtk_text_buffer_get_char_count�g_once_init_leave�gtk_window_fullscreen�padding�g_action_change_state�g_strdup_printf�g_define_type_id__volatile�g_variant_get_string�height�widget�gtk_widget_show�g_action_get_name�gtk_application_get_type�partial_magic�gtk_settings_get_default�gtk_menu_tool_button_set_menu�g_action_map_add_action�g_settings_get�gtk_window_get_size�buffer�ref_count�gtk_window_present�parameter�time�g_object_set_data_full�gtk_widget_class_bind_template_child_full�g_file_load_contents�g_simple_action_set_state�g_type_class_adjust_private_offset�gtk_window_maximize�g_settings_get_boolean�g_settings_create_action�gtk_file_chooser_get_file�gtk_widget_init_template�gtk_statusbar_push�g_static_resource_fini�g_static_resource_init�g_static_resource_get_resource�_decode_pointer�_encode_pointer�__dllonexit�__enative_startup_state�ExceptionRecord�HighPart�dwReason�__dyn_tls_init@12�hDllHandle�lpreserved�__mingw_TLScallback�__setusermatherr�_GetPEImageBase�vfprintf�__mingw_GetSectionCount�sSecInfo�__mingw_GetSectionForAddress�_fpreset�ExceptionRecord�pSection�TimeDateStamp�pNTHeader�Characteristics�pImageBase�VirtualAddress�iSection������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Q��"���Q�����������������q���"���q������������������q���������p������0��������P���+���Po��x���P��������p������0��������Q�������Q�������s�1'�������0����������������0�������P�����P�����P��������������S�����S��������������0���T���S�����0���j���S�������S���������������H��������� �����0��������� �����S��������;������PW���������PW����������;��D���PD��d���V�������V��������Z��d���Wd������V�������W��������Z��d���0�d������S�������s��������S�������0���������T��d���P�������P�������u���������r������W��������d��o���0���������d��j���0���������~@��@��S�@��@������������~@��@��0��@��@��P���������@��@��P�@�@��V@�@������������@�@��P��������5@�<@��P<@�g@��W���������@��@��P�@��@���P����������@��@��P���������@��@��P�@��@��S��������@�!@��P!@�G@��VG@�K@�������������@��@��P��������p@�v@��Pv@��@��S�@��@��S���������@��@��S���������@�0@��V0@�5@������������@��@��P�@�/@��S/@�4@������������n@�|@��S��������n@��@��S�@��@�������������@��@��P�@� @��S @�@�������������@��@��P�@�@��U���������@��@��P�@�@��W��������W@�^@��P^@�e@���d��������@�U@��U���������@�U@��V���������@�U@��S��������@�d@��Ud@�i@�����������3@�:@��P:@�U@��W��������@�@��P@�3@��W��������@�0@��P��������~@��@��W�@��@������������@�@��S���������@�@��S@�@�������������@��@��P�@��@��S��������u@�y@��Py@��@��V��������z@��@��P��������S@�W@��PW@��@��U���������@��@������������@��@�������������@�c@��Sc@�e@�������������@�S@��S���������@��@��P�@�S@��V��������y@�@��S@�@����@�*@��S��������y@��@��S���������@��@��P�@��@��V��������<@�]@��S]@�^@����^@�z@��Sz@�{@������������^@�z@��Sz@�{@�������������@��@��P��������{ @�� @��P��������� @�� @��P� @�� @��S� @�� @���P���������� @�� @��R� @�� @��V� @�� @���R���������� @�� @��P� @�� @��S�������� !@�<!@��S<!@�>!@���>!@� "@��S��������!@�(!@��P>!@�I!@��PI!@��!@��V"@� "@��V���������!@��!@��P�!@�"@��V��������J!@�y!@��P���������6@��6@��P��������j���n����Pn��������S���������P��������:���C����S`���b����Sd���v����S��������?���J����SJ���M����s�M���_����S��������B���J�����PJ���O�����P�T'����������V����������A@����������V�����������������������������������2�������������������������������������S���������s|������������������,�W�����������S��������}��������Q��������`��������P���������S����M����P�M��T���PT�������P��������S�����������������P����F���WT������W�������P�������W��������`�������0���������SM��T���0����������������P��������x��{���Q{������P�������P�������q�����������������P�������q����������������P�����q����������������������Px������Vg��u���P������V��������C��R���SR��Z���st�u������S;��K���S��������R������S������S���������������S�������sx��������S���������������W���������������4�������������������������������������P���������������2�����������������D����������������V���������������1�����������������D����������������V�������������4���������������D��������������V���������������0����g���S��;���S����������������������������t����������u���������t���������u��������?���T����P���������P���������P#��8���P>��S���PY��s���Py������P������������U����0�U���W���� ��W��������0���������� ������9���0�9��>��� ��>��t���0�t��y��� ��y������0�������� ��������������y����0����������0��������1�������0������������i����S��������<���=����P=���U����V�����������������P���������S���������P���������S��������&��2���0�2��A���RX��f���R�������0���������&��2���R2��:���P:��=���R=��A���PX��m���P�������R���������������P�������S������P���������������S����������������P��������P������������ ����P ��������P�P#<"��������P��������P�P#<"����������������p������� ��P�P#<"#��������� ���.������.���1����P1���2��������������$���.������.���1����P1���2��������������@���x�����x���{����S{���}�������������M���_����R_���}��������#<"���������[���z����P��������M���_����0�_���x����Q�����������������P������������ ���S �����P�����S�����������������0��������V�����V��������\������S�������S��������\��j���R��������d������P�������P��������\��j���0�j������Q�������Q������������������������Q����������G���Q�������� �����R����������;���P>��G���P�������� �����0���G���R���������������S�������S���������������S���������������R���������������P���������������0��������Q������������������k���Ss��|�����|������S��������9��S���Q��������x������P��������?��k���Ps��x���P��������C��k���P��������C��S���Q��������Q��k���R��������C��S���0�S��k���V�������������������������SW����������������������������������SW��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������H������������.������������� ����p���������������������� ������������=�������������������d��������������������@��@��@��@��������� @� @�$ @�4 @���������p@�;"@��6@��6@���������@"@�S"@��7@�7@� 7@�37@���������������������p����;��K�����������������������������������������������������������p����;����������������R��`����������������`��j����������������������������������"��-��2��<����������@��E��I��V��\�����������������������������������������������������������������R��]��`��j���������������������������������������������������������� ������ ��*����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.file���,�������gcrtexe.c��������������j�������� ������������������������������� �������������������������0��� ������������������_envp����������_argv����������_argc������������������p��� �����������������_mainret������������������� �������������� ��.text�������������X�������������.data���������������������������.bss������������������������������������������������������������������������������������������������ ���"�������������������������� ���A��������������������+�����������������������������6��������� ��������������������E�������������������������������S���������T�������������������_������ ������������������������j��x��������������������������u��������������������������.file���=�������gcygming-crtbegin.c������������������������� ��������������������������`��� ��.text���������e��� �������������.data���������������������������.bss����������������������������.rdata���������"���������������������j�������������������������.jcr�����������.file�����������gapplication.c������������p��� ��������������������������(����������� ������ ������ ��������������-�� ��� ������A��p��� ������U������ ������i������ ������z��P��� ���������`��� ������������� ���������@��� ���������0��������������,�������_startup���� �������� ��� ������*�� �����������7��� ��� ������G��� ��� ������W��p��� ������n������ ���������$�������������� ��� ���������� ��� ���������� ��� ���������� ��� ��������p��� ������6��0��� ������]������ ������x�� ����������������� ��������������������������� ������������� ��������� ��� ������ ��0��� ��_main����&��� ��.text���p����������������������.data��� ��������� �������������.bss���������������������������.rdata��$�����������������������������&�����]����������������������"�� ���@����������������������A�� ���b��������������������+��������/��������������������6�� ������(��������������������E���������H��������������������S��T�����#�������������������_����� ���r��������������������j�����������������������������u���������H��:�������������.file����������gdemo_resources.c������%��@��� �����������������������8�������������I���'��� ������_�� '��� ������t��@������.text���@���������������������.data�������������������������.bss����4�������������������������������'���������������������.ctors��T'���������������������������� '���������������������.dtors��d'���������������������.rdata��@����������������������������N��� ������������������������� �� �����������������������6��H������0��������������������E��������� ��������������������S��w�����|�������������������_��b�� ���M���������������������j�����������������������������u�������\����������������.text���`������.idata$7�������.idata$5D������.idata$40������.idata$6X ������@feat.00��������.text���h������.idata$7�������.idata$5@������.idata$4,������.idata$68 ������@feat.00��������.text���p������.idata$7�������.idata$5<������.idata$4(������.idata$6 ������@feat.00��������.text���x������.idata$7�������.idata$58������.idata$4$������.idata$6 ������@feat.00��������.text����������.idata$7|������.idata$54������.idata$4 ������.idata$6�������@feat.00��������.text����������.idata$7x������.idata$50������.idata$4������.idata$6�������@feat.00��������.text����������.idata$7t������.idata$5,������.idata$4������.idata$6�������@feat.00��������.text����������.idata$7p������.idata$5(������.idata$4������.idata$6�������@feat.00��������.text����������.idata$7l������.idata$5$������.idata$4������.idata$6�������@feat.00��������.text����������.idata$7h������.idata$5 ������.idata$4������.idata$6|������@feat.00��������.text����������.idata$7d������.idata$5������.idata$4������.idata$6L������@feat.00��������.text����������.idata$7`������.idata$5������.idata$4������.idata$6 ������@feat.00��������.text����������.idata$7\������.idata$5������.idata$4�������.idata$6�������@feat.00��������.text����������.idata$7X������.idata$5������.idata$4��������.idata$6�������@feat.00��������.text����������.idata$7T������.idata$5������.idata$4��������.idata$6�������@feat.00��������.text����������.idata$7P������.idata$5������.idata$4��������.idata$6�������@feat.00��������.text����������.idata$7L������.idata$5������.idata$4��������.idata$6t������@feat.00��������.text����������.idata$7H������.idata$5�������.idata$4��������.idata$6T������@feat.00��������.text����������.idata$7D������.idata$5�������.idata$4��������.idata$60������@feat.00��������.text����������.idata$7@������.idata$5�������.idata$4��������.idata$6������@feat.00��������.text����������.idata$7<������.idata$5�������.idata$4��������.idata$6������@feat.00��������.text���������.idata$78������.idata$5�������.idata$4��������.idata$6�������@feat.00��������.text���������.idata$74������.idata$5�������.idata$4��������.idata$6�������@feat.00��������.text���������.idata$70������.idata$5�������.idata$4��������.idata$6�������@feat.00��������.text��� ������.idata$7,������.idata$5�������.idata$4��������.idata$6�������@feat.00��������.text���(������.idata$7(������.idata$5�������.idata$4��������.idata$6|������@feat.00��������.text���0������.idata$7$������.idata$5�������.idata$4��������.idata$6\������@feat.00��������.text���8������.idata$7 ������.idata$5�������.idata$4��������.idata$6@������@feat.00��������.text���@������.idata$7������.idata$5�������.idata$4��������.idata$6(������@feat.00��������.text���H������.idata$7������.idata$5�������.idata$4��������.idata$6������@feat.00��������.text���P������.idata$7������.idata$5�������.idata$4��������.idata$6�������@feat.00��������.text���X������.idata$7������.idata$5�������.idata$4��������.idata$6�������@feat.00��������.text���`������.idata$7������.idata$5�������.idata$4��������.idata$6�������@feat.00��������.text���h������.idata$7������.idata$5�������.idata$4��������.idata$6�������@feat.00��������.text���p������.idata$7������.idata$5�������.idata$4��������.idata$6�������@feat.00��������.text���x������.idata$7�������.idata$5�������.idata$4��������.idata$6t������@feat.00��������.text����������.idata$7�������.idata$5�������.idata$4��������.idata$6T������@feat.00��������.text����������.idata$7�������.idata$5�������.idata$4��������.idata$60������@feat.00��������.text����������.idata$7�������.idata$5�������.idata$4��������.idata$6������@feat.00��������.text����������.idata$7�������.idata$5�������.idata$4��������.idata$6�������@feat.00��������.text����������.idata$7�������.idata$5�������.idata$4��������.idata$6�������@feat.00��������.text����������.idata$7�������.idata$5�������.idata$4��������.idata$6�������@feat.00��������.text����������.idata$7�������.idata$5�������.idata$4x������.idata$6$������@feat.00��������.text����������.idata$7�������.idata$5�������.idata$4t������.idata$6�������@feat.00��������.text����������.idata$7�������.idata$5�������.idata$4p������.idata$6� ������@feat.00��������.text����������.idata$7�������.idata$5�������.idata$4l������.idata$6� ������@feat.00��������.text����������.idata$7�������.idata$5|������.idata$4h������.idata$6� ������@feat.00��������.text����������.idata$7�������.idata$5x������.idata$4d������.idata$6� ������@feat.00��������.text����������.idata$7�������.idata$5t������.idata$4`������.idata$6� ������@feat.00��������.text����������.idata$7�������.idata$5p������.idata$4\������.idata$6h ������@feat.00��������.text����������.idata$7�������.idata$5l������.idata$4X������.idata$6T ������@feat.00��������.text����������.idata$7�������.idata$5h������.idata$4T������.idata$68 ������@feat.00��������.text����������.idata$7�������.idata$5d������.idata$4P������.idata$6 ������@feat.00��������.text���������.idata$7�������.idata$5`������.idata$4L������.idata$6 ������@feat.00��������.text���������.idata$7�������.idata$5\������.idata$4H������.idata$6� ������@feat.00��������.text���������.idata$7�������.idata$5X������.idata$4D������.idata$6� ������@feat.00��������.text��� ������.idata$7�������.idata$5T������.idata$4@������.idata$6� ������@feat.00��������.text���(������.idata$7�������.idata$5P������.idata$4<������.idata$6� ������@feat.00��������.text���0������.idata$7�������.idata$5L������.idata$48������.idata$6� ������@feat.00��������.text���8������.idata$7X������.idata$5�������.idata$4�������.idata$6�������@feat.00��������.text���@������.idata$7T������.idata$5�������.idata$4�������.idata$6�������@feat.00��������.text���H������.idata$7P������.idata$5�������.idata$4�������.idata$6�������@feat.00��������.text���P������.idata$7L������.idata$5�������.idata$4�������.idata$6�������@feat.00��������.text���X������.idata$7H������.idata$5�������.idata$4�������.idata$6p������@feat.00��������.text���`������.idata$7D������.idata$5�������.idata$4�������.idata$6T������@feat.00��������.text���h������.idata$7@������.idata$5�������.idata$4�������.idata$6D������@feat.00��������.text���p������.idata$7<������.idata$5�������.idata$4�������.idata$64������@feat.00��������.text���x������.idata$78������.idata$5�������.idata$4�������.idata$6$������@feat.00��������.text����������.idata$74������.idata$5�������.idata$4�������.idata$6������@feat.00��������.text����������.idata$7������.idata$5�������.idata$4�������.idata$6�������@feat.00��������.text����������.idata$7������.idata$5�������.idata$4�������.idata$6�������@feat.00��������.text����������.idata$7������.idata$5�������.idata$4�������.idata$6�������@feat.00��������.text����������.idata$7������.idata$5�������.idata$4�������.idata$6�������@feat.00��������.text����������.idata$7������.idata$5�������.idata$4�������.idata$6�������@feat.00��������.text����������.idata$7������.idata$5�������.idata$4�������.idata$6�������@feat.00��������.text����������.idata$7������.idata$5�������.idata$4�������.idata$6x������@feat.00��������.text����������.idata$7�������.idata$5�������.idata$4�������.idata$6\������@feat.00��������.text����������.idata$7�������.idata$5�������.idata$4�������.idata$6P������@feat.00��������.text����������.idata$7�������.idata$5�������.idata$4�������.idata$6@������@feat.00��������.file����������gatonexit.c������������������� �������������������_atexit����� ��.text��������������������������.data���������������������������.bss����4������������������������������i��� ���T���������������������� �� ���N��������������������+��������)���������������������6��x������ ��������������������S��������Y�������������������_����� ���,���������������������j�����������������������������u��d�����X����������������.file����������ggccmain.c�������������������� �������������������_p.65827������������������ ��___main�@��� ���������4�������.text������������� �������������.data�������������������������.bss����4��������������������������������� ������ ��������������������� �����������������������+�� �����T���������������������6��������� ��������������������S��L�����%�������������������j����������������������������u��������`����������������.file����������gnatstart.c��������.text���`�����������������������.data��������������������������.bss����8������������������������������?��� ���3��������������������� �� �������������������������6�����������������������������S��q�������������������������_����� ������������������������j�� ����������������������.file����������gwildcard.c��������.text���`�����������������������.data���������������������������.bss����8�����������������������������r��� ��������������������������� �� ���*���������������������6�����������������������������S��������e���������������������j��<����������������������.file����������gcharmax.c����������������`��� �������������������.text���`���������������������.data��������������������������.bss����<�����������������������.CRT$XIC����������������������������8��� �������������������������� �� �������������������������6��������� ��������������������S��������,�������������������j��X��������������������������u�������$����������������.file���������gdllargv.c����������������p��� �������������������.text���p����������������������.data���������������������������.bss����@��������������������������������� �������������������������g�� ���7���������������������6������� ��������������������S�������t��������������������j��t��������������������������u��@�����$����������������.file���2������ggs_support.c����������������� �������������������������������������������������������������������������������@��0��� ������T�� ����������h��@�����������z��@������.text���������7���������������.data���������������������������.bss����@������0����������������.rdata��@������������������������������� ��� ������������������������ ������������������������+��m �����K��������������������6��(����� ��������������������S��������+�������������������_����� ������������������������j�����������������������������u��d����������������������.file���D������g_newmode.c��������.text���������������������������.data���������������������������.bss������������������������������������� ��������������������������c�� ���*���������������������6��H�������������������������S��������e���������������������j�������������������������.file���v������gtlssup.c��������������������� ����������������������������� ��___xd_a�,�������___xd_z�0������������������ ��.text��������������������������.data���������������������������.bss���������������������������.CRT$XLD$����������������������.CRT$XLC ����������������������.rdata��H���������������������.CRT$XDZ0�����������������������.CRT$XDA,�����������������������.tls��������������������������.CRT$XLZ(�����������������������.CRT$XLA�����������������������.tls$ZZZ�����������������������.tls$AAA���������������������������������� ���Z��'���������������������� ������������������������+��� �������������������������6��`����� ��������������������S��#������������������������_���� ���E���������������������j�����������������������������u��������l����������������.file����������gcinitexe.c��������.text���������������������������.data���������������������������.bss����������������������������.CRT$XCZ�����������������������.CRT$XCA������������������������.CRT$XIZ�����������������������.CRT$XIA��������������������������������� �������������������������8�� ���Y���������������������6����������������������������S��B�����e���������������������j�������������������������.file����������gmerr.c����������������������� �������������������������������������������� ������������ ��������h������.text��������������������������.data���������������������������.bss���������������������������.rdata��L�����4������������������������� ���������������������������� ���p��������������������+��7 ��������������������������6�������� ��������������������S��������Y�������������������_��Q�� ������������������������j�����������������������������u��\�����T����������������.file����������gCRT_fp10.c��������������`��� �������������������_fpreset`��� ��.text���`����������������������.data���������������������������.bss����������������������������������t��� ���������������������������� ���*���������������������6�������� ��������������������S��������u��������������������j����������������������������u��������$����������������.file����������gmingw_helpers.c���������p��� �����������������������0������ ��.text���p����������������������.data���������������������������.bss���������������������������������8��� �������������������������+�� �������������������������6�������� ��������������������S��u��������������������������j��8��������������������������u��������4����������������.file���������gpseudo-reloc.c��������A������ �����������������������Q������ ������h�������������u���������������0��� ����������������.text���������K��;�������������.data���������������������������.bss���������������������������.rdata������������������������������������ ���?��b���������������������� ���*��������������������+��J �����:�������������������6�������� ��������������������E���������x���������������������S��[�����)�������������������_��b�� ���W���������������������j��T��������������������������u������������������������.file���������gxtxtmode.c��������.text���������������������������.data���������������������������.bss���������������������������������(��� ����������������������������� ���*���������������������6���������������������������S��������e���������������������j��p����������������������.file���-������gcrt_handler.c���������������� �������������������.text������������ �������������.data���������������������������.bss������������������������������������� ������������������������%�� ������������������������+��� �����V��������������������6��0����� ��������������������S��������n�������������������_����� ������������������������j�����������������������������u��������H����������������.file���M������gtlsthrd.c�������������������� ��������������������������������������������������������� ������!�������������5��p ��� ������V��!��� ��.text���������j��&�������������.data���������������������������.bss���������� �������������������������� �����1���������������������� ������������������������+��������!��������������������6��P����� ��������������������E��h�����0���������������������S��W�����~�������������������j�����������������������������u�����������������������.file���_������gtlsmcrt.c���������.text����!�����������������������.data��������������������������.bss����������������������������������$� ��������������������������L�� ���*���������������������6��p�������������������������S��������d���������������������j�������������������������.file���q������g����k������������.text����!�����������������������.data���������������������������.bss����������������������������������� ������������������������v�� ���*���������������������6����������������������������S��9�����n���������������������j�������������������������.file����������gpesect.c�����������������!��� ��������������������������"��� ���������0"��� ���������p"��� ���������#��� ����������#��� ������ ���#��� ������ ��@$��� ������0 ��p$��� ������N ���$��� ��.text����!��������&�������������.data���������������������������.bss������������������������������������ ���n��t���������������������� ���5��������������������+����������������������������6�������� ��������������������E�����������������������������S�������� �������������������_����� ���T���������������������j�����������������������������u��� ���������������������.file���^������gmingw_matherr.c���.text����%�����������������������.data��������������������������.bss����������������������������������d� ����������������������������� ���*���������������������6����������������������������S��� �����k���������������������j��4����������������������.text����%������.data����������.bss�����������.idata$7@������.idata$5�������.idata$4�������.idata$6�������.text����%������.data����������.bss�����������.idata$7<������.idata$5�������.idata$4�������.idata$6�������.text����%������.data����������.bss�����������.idata$78������.idata$5�������.idata$4�������.idata$6�������.text����%������.data����������.bss�����������.idata$74������.idata$5�������.idata$4�������.idata$6�������.text����%������.data����������.bss�����������.idata$70������.idata$5�������.idata$4�������.idata$6�������.text����%������.data����������.bss�����������.idata$7,������.idata$5�������.idata$4�������.idata$6�������.text����%������.data����������.bss�����������.idata$7(������.idata$5�������.idata$4�������.idata$6�������.text���&������.data����������.bss�����������.idata$7$������.idata$5�������.idata$4|������.idata$6�������.text���&������.data����������.bss�����������.idata$7 ������.idata$5�������.idata$4x������.idata$6�������.text���&������.data����������.bss�����������.idata$7������.idata$5�������.idata$4t������.idata$6�������.text���&������.data����������.bss�����������.idata$7������.idata$5�������.idata$4p������.idata$6z������.text���$&������.data����������.bss�����������.idata$7������.idata$5�������.idata$4l������.idata$6r������.text���,&������.data����������.bss�����������.idata$7������.idata$5|������.idata$4h������.idata$6h������.text���4&������.data����������.bss�����������.idata$7������.idata$5x������.idata$4d������.idata$6^������.text���4&������.data����������.bss�����������.idata$7������.idata$5t������.idata$4`������.idata$6V������.text���<&������.data����������.bss�����������.idata$7������.idata$5p������.idata$4\������.idata$6N������.text���<&������.data����������.bss�����������.idata$7�������.idata$5l������.idata$4X������.idata$6B������.text���D&������.data����������.bss�����������.idata$7�������.idata$5h������.idata$4T������.idata$68������.text���D&������.data����������.bss�����������.idata$7�������.idata$5d������.idata$4P������.idata$6.������.text���L&������.data����������.bss�����������.idata$7�������.idata$5`������.idata$4L������.idata$6 ������.text���T&������.data����������.bss�����������.idata$7�������.idata$5\������.idata$4H������.idata$6������.text���T&������.data����������.bss�����������.idata$7�������.idata$5X������.idata$4D������.idata$6������.text���\&������.data����������.bss�����������.idata$7�������.idata$5T������.idata$4@������.idata$6�������.text���d&������.data����������.bss�����������.idata$7�������.idata$5L������.idata$48������.idata$6�������.text���d&������.data����������.bss�����������.idata$7�������.idata$5H������.idata$44������.idata$6�������.text���l&������.data����������.bss�����������.idata$7�������.idata$5D������.idata$40������.idata$6�������.file���z������g����� ����������������q ���&��� �������������������_handler������������ ���&��� ������� ���&��� ������� ���&��� ��.text����&���������������������.data�������������������������.bss���������������������������������A� ���������������������������� ���l��������������������+�������O��������������������6�������� ��������������������S��2!�������������������������j��P��������������������������u��������4����������������.file����������gfake��������������hname���0������fthunk��D������.text����&�����������������������.data���������������������������.bss����������������������������.idata$2d����������������������.idata$40������.idata$5D������.file����������gfake��������������.text����&�����������������������.data���������������������������.bss����������������������������.idata$4�����������������������.idata$5�����������������������.idata$7D����������������������.file����������gfake��������������hname����������fthunk���������.text����&�����������������������.data���������������������������.bss����������������������������.idata$2P����������������������.idata$4�������.idata$5�������.file����������gfake��������������.text����&�����������������������.data���������������������������.bss����������������������������.idata$4,����������������������.idata$5@����������������������.idata$7������ �����������������.file���w������gcygming-crtend.c������ �������������$ ��@'��� �������������������.text����&�����������������������.data���������������������������.bss����������������������������.jcr���������������������������������@'����� ��������������������9 ��X'�������������������������j��l����������������������.text������������.data����������.bss�����������.idata$7�������.idata$5P������.idata$4<������.idata$6�������.text������������.data����������.bss�����������.idata$7�������.idata$5<������.idata$4(������.idata$6�������.text������������.data����������.bss�����������.idata$7�������.idata$58������.idata$4$������.idata$6�������.text������������.data����������.bss�����������.idata$7�������.idata$54������.idata$4 ������.idata$6x������.text������������.data����������.bss�����������.idata$7�������.idata$50������.idata$4������.idata$6j������.text������������.data����������.bss�����������.idata$7�������.idata$5,������.idata$4������.idata$6V������.text������������.data����������.bss�����������.idata$7�������.idata$5(������.idata$4������.idata$6N������.text������������.data����������.bss�����������.idata$7�������.idata$5$������.idata$4������.idata$60������.text������������.data����������.bss�����������.idata$7�������.idata$5 ������.idata$4������.idata$6������.text������������.data����������.bss�����������.idata$7�������.idata$5������.idata$4������.idata$6� ������.text������������.data����������.bss�����������.idata$7�������.idata$5������.idata$4������.idata$6� ������.text������������.data����������.bss�����������.idata$7�������.idata$5������.idata$4�������.idata$6� ������.text������������.data����������.bss�����������.idata$7�������.idata$5������.idata$4�������.idata$6� ������.text������������.data����������.bss�����������.idata$7�������.idata$5������.idata$4�������.idata$6� ������.text������������.data����������.bss�����������.idata$7�������.idata$5������.idata$4�������.idata$6� ������.text������������.data����������.bss�����������.idata$7�������.idata$5������.idata$4�������.idata$6� ������.text������������.data����������.bss�����������.idata$7�������.idata$5�������.idata$4�������.idata$6p ������.text������������.data����������.bss�����������.idata$7�������.idata$5�������.idata$4�������.idata$6Z ������.text������������.data����������.bss�����������.idata$7�������.idata$5�������.idata$4�������.idata$6D ������.text������������.data����������.bss�����������.idata$7|������.idata$5�������.idata$4�������.idata$60 ������.text������������.data����������.bss�����������.idata$7x������.idata$5�������.idata$4�������.idata$6 ������.text������������.data����������.bss�����������.idata$7t������.idata$5�������.idata$4�������.idata$6� ������.idata$2��������.idata$5�������.idata$4��������.idata$2�������.idata$5L������.idata$48������.idata$2(�������.idata$5�������.idata$4�������.idata$2<�������.idata$5�������.idata$4�������.idata$44������.idata$5H������.idata$7�������.idata$4|������.idata$5�������.idata$7�������.idata$4�������.idata$5�������.idata$7 ������.idata$4�������.idata$5�������.idata$7\������__cexit�D&��� ������F ���������������Y �������������x ������ ������� �������������� ������ ������� �������������� �����������������X��� ��������������������%��`'������___xi_a��������_free���&��� ������4��8����������M��\����������\��T&��� ������n����������������������������������x����������������������������������������������� ������*��<����������A������ ������Y��$����������p��H��� ������������� ������������� ������������������������������������������ ���������t���������� ��@��� ������) ��0����������> ������������a �������������� ���������������� �������������� ���������___xl_c� ������������ ���������������� ��������������� ��0������������h�����������������������;���� ����������U��������������q�������������������� ����������������������� ��� �������������������������������������`�������������X��� ���������������������������������+�������������E��p��� ��___xl_z�(�����������S������ ������g����� ����������������������x��� ���������������������������� ��_g_free����� ����������������__unlock�%��� �������� ����������7������ ������J��H��� ������a���������������r��������������������������������������������p�������������p��� ���������8����������������������������������������������� ������8��x����������N��4����������i����� ������������������������������������������ ������������������������0��� �������������������� �������������%�������������>��x��� ������V��������������������������������� ��������������������������������������,��������������������������������������+�������������M������ ������n��,�����������~���������__dll__�����������������(��� ������������������_fwrite�&��� ������������� ����������������������������������������@�����������������������*������ ������;�������������G����������___xc_a�������������]�����������������������������x��� ��_memcpy��%��� ������������������������������������P����������������������� �������������+��������������7��p����������U�������������r������������������������������L���������������������������8���������� ���������������d&��� ������&��P������___xl_a��������___xl_d�$�����������?��P'����������M�������������q������ �������������������������������������\&��� ��__CRT_MT������������������ �����������������������l��������������������������������������������������=������ ������U�������������s���������_fprintf&��� ���������������������������������������� ���������`������������������������������� ������ �� ����������#������ ������7�������������S��P'����������b�����������������������������T�������������<&��� ����������������_calloc�,&��� ���������p��� ���������,������__fmode�������������������������������������������#�������������@������ ������Q�������������w������������������D��������������������������������������������� ������������������������h��� �������������������)��d�����������B������������`����� ������w�������������������� ����������������������������������������������������D���������������� ��������������������������������9���������__lock��4&��� ������Q��8��� ������j������������������������������P��� ��___xc_z���������������`��� ������������������������������__end__��������������L������������8��� ������6�������������\������������v����������������l&��� ���������D������_signal��%��� ���������t������_malloc�&��� ���������`'�������������������������������������������������������#��l����������4������������g���������������}�����������������,������������������ �����������@�������������������������������� ��������������������������� ��������(��� ������-�������������J��h��� ������e���������������|������_abort���%��� ���������\����������������������������������������������������������������� �������� ���������������������5������������V��P��� ������m���������������{�������������������� ���������L&��� ���������H�������������������������������������� ��h����������) ��������������C �������������\ �� �����������i ��@��� ������� ������ ������� ���������������� ���������___xi_z������������� ��(������������ ���������������� �������������!���������_strncmp�%��� ������/!���������������L!�������������X!��<����������r!��$�����������!��������������!��������������!��������������!��������������"������ ������A"���������������R"������ ������c"��4�����������"�� ��� �������"��P������������"��������������"���%�����������"��@�����������"��`��� ������#�������������%#������ ������<#�������������Z#��d����������h#��|�����������#��(�����������#����������������#����������������#��(�����������#���������_strlen��%��� �������#������������$�� ����������2$������ ������B$��T����������X$�������������s$��h��� �������$��������������$��������������$���������_exit���$&��� �������$����������������$�������������%�������������%���������������,%�������������E%�������������^%������ ������v%��0��� �������%������ �������%������ �������%��������������%��`��� �������%������ ������&��\����������6&��,����������M&�������������o&������ �������&��H������_Sleep@4��������������&������ �������&��<������������&��X�����������&��������������&������ ������'��<�����������-'�������������A'�������������b'��,�����������r'��X�����������'��d�����������'��������������'������ �������'���%��� �������'������ ������(�������������$(������ ������<(�������������Z(��������������(��������������(������ ���(��.debug_aranges�.debug_info�.debug_abbrev�.debug_line�.debug_frame�.debug_str�.debug_loc�.debug_ranges�___mingw_invalidParameterHandler�_pre_c_init�_managedapp�_pre_cpp_init�_startinfo�___tmainCRTStartup�_has_cctor�_WinMainCRTStartup�_mainCRTStartup�.CRT$XCAA�.CRT$XIAA�.debug_info�.debug_abbrev�.debug_loc�.debug_aranges�.debug_ranges�.debug_line�.debug_str�.rdata$zzz�.debug_frame�___JCR_LIST__�___gcc_register_frame�___gcc_deregister_frame�_demo_application_window_state_event�_demo_application_window_parent_class�_demo_application_init�_app_entries�_change_theme_state�_change_radio_state�_show_action_dialog�_activate_toggle�_activate_action�_activate_quit�_activate_open�_demo_application_class_intern_init�_demo_application_parent_class�_DemoApplication_private_offset�_demo_application_window_init�_win_entries�_activate_about�_activate_radio�_change_titlebar_state�_demo_application_window_class_intern_init�_DemoApplicationWindow_private_offset�_update_statusbar�_mark_set_callback�_clicked_cb�_demo_application_window_destroy�_demo_application_window_constructed�_demo_application_window_size_allocate�_demo_application_get_type�_g_define_type_id__volatile.48964�_demo_application_window_get_type�_g_define_type_id__volatile.49000�_create_window�_open_response_cb�_activate_new�_activate�.text.startup�_demo_get_resource�_static_resource�_resource_constructor�_resource_destructor�_demo_resource_data�.text.exit�_mingw_onexit�___do_global_dtors�___do_global_ctors�_initialized�_my_lconv_init�__setargv�___security_init_cookie�.data$__security_cookie�.data$__security_cookie_complement�___report_gsfailure�_GS_ExceptionRecord�_GS_ContextRecord�_GS_ExceptionPointers�___dyn_tls_dtor@12�___dyn_tls_init@12�___tlregdtor�___mingw_raise_matherr�_stUserMathErr�___mingw_setusermatherr�__matherr�_CSWTCH.5�__fpreset�__decode_pointer�__encode_pointer�___report_error�_mark_section_writable�_maxSections�_the_secs�__pei386_runtime_relocator�_was_init.67161�__gnu_exception_handler@4�___mingwthr_run_key_dtors.part.0�___mingwthr_cs�_key_dtor_list�____w64_mingwthr_add_key_dtor�___mingwthr_cs_init�____w64_mingwthr_remove_key_dtor�___mingw_TLScallback�pseudo-reloc-list.c�__ValidateImageBase.part.0�__ValidateImageBase�__FindPESection�__FindPESectionByName�___mingw_GetSectionForAddress�___mingw_GetSectionCount�__FindPESectionExec�__GetPEImageBase�__IsNonwritableInCurrentImage�___mingw_enum_import_library_names�_mingw_get_invalid_parameter_handler�__get_invalid_parameter_handler�_mingw_set_invalid_parameter_handler�__set_invalid_parameter_handler�invalid_parameter_handler.c�___JCR_END__�_register_frame_ctor�.ctors.65535�_VirtualProtect@16�___RUNTIME_PSEUDO_RELOC_LIST__�_gtk_widget_init_template�__imp__gtk_builder_new�_gtk_application_get_windows�__imp__gtk_builder_add_from_resource�_QueryPerformanceCounter@4�_g_object_unref�__data_start__�___DTOR_LIST__�__imp__VirtualProtect@16�__imp___acmdln�___setusermatherr�_UnhandledExceptionFilter@4�.weak.__Jv_RegisterClasses.___gcc_register_frame�__imp___onexit�__imp__GetLastError@0�_SetUnhandledExceptionFilter@4�_gtk_widget_class_bind_template_child_full�__imp__VirtualQuery@12�_g_settings_get_boolean�__imp__gtk_widget_hide�_g_type_class_adjust_private_offset�_g_variant_new_boolean�_g_file_load_contents�___tls_start__�___native_startup_lock�_g_intern_static_string�__imp__g_settings_new�_gtk_label_set_text�__imp__TlsGetValue@4�__imp__InitializeCriticalSection@4�__imp__gtk_menu_tool_button_set_menu�_DeleteCriticalSection@4�__rt_psrelocs_start�__imp__abort�__dll_characteristics__�__size_of_stack_commit__�__imp__gtk_window_fullscreen�__imp___fmode�__imp__gtk_menu_new_from_model�__size_of_stack_reserve__�__major_subsystem_version__�___crt_xl_start__�_g_error_free�__imp__g_error_free�_gtk_native_dialog_destroy�__newmode�___crt_xi_start__�__imp___amsg_exit�_gtk_get_major_version�___crt_xi_end__�__head_libgtk_3_0_dll�__imp__gtk_label_set_text�_g_object_ref�_gtk_statusbar_push�_g_action_map_add_action_entries�__imp__gtk_widget_class_bind_template_child_full�_gtk_window_maximize�_GetLastError@0�_gtk_native_dialog_show�__imp__gtk_settings_get_default�__imp__QueryPerformanceCounter@4�_g_object_get_data�_gtk_get_minor_version�_VirtualQuery@12�_libgtk_3_0_dll_iname�_mingw_initltsdrot_force�__imp__gtk_statusbar_push�__imp___iob�_gtk_window_present�__dowildcard�_GetModuleHandleA@4�__imp__strncmp�_gtk_widget_class_set_template_from_resource�__imp__g_settings_set�__imp__gtk_window_get_size�_gtk_settings_get_default�__bss_start__�___RUNTIME_PSEUDO_RELOC_LIST_END__�_g_settings_create_action�__size_of_heap_commit__�_g_action_change_state�___onexitend�__imp__GetCurrentProcess@0�__imp__g_once_init_leave�_gtk_builder_get_object�__imp__gtk_widget_class_bind_template_callback_full�_mingw_pcinit�_g_variant_get_string�__imp__GetProcAddress@8�_GetProcAddress@8�___crt_xp_start__�__MINGW_INSTALL_DEBUG_MATHERR�__imp__gtk_application_set_menubar�__imp__gtk_text_buffer_get_insert�_gtk_application_window_get_type�___crt_xp_end__�__imp__signal�_gtk_message_dialog_new�__minor_os_version__�_g_once_init_leave�__imp__gtk_application_window_get_type�_GetTickCount@0�__image_base__�_libgio_2_0_0_dll_iname�_g_variant_unref�__imp__exit�__section_alignment__�__imp__gtk_file_chooser_native_new�__imp__gtk_text_buffer_get_iter_at_mark�_g_object_new�__imp__GetStartupInfoA@4�__IAT_end__�__imp____lconv_init�__imp__gtk_text_iter_get_line�__RUNTIME_PSEUDO_RELOC_LIST__�__tls_start�__imp__g_settings_get_boolean�__imp__gtk_get_major_version�___native_startup_state�__imp__gtk_application_get_windows�__imp__g_action_change_state�__imp__g_type_register_static_simple�__imp__gtk_window_maximize�__data_end__�___getmainargs�__imp__g_action_get_name�__CTOR_LIST__�__imp__gtk_application_set_app_menu�_g_settings_new�___onexitbegin�__imp__gtk_native_dialog_show�___set_app_type�_g_variant_get_boolean�__charmax�__imp__g_settings_get�___mingw_winmain_lpCmdLine�__bss_end__�__imp__gtk_file_chooser_get_file�_g_static_resource_init�___security_cookie_complement�___crt_xc_end__�__tls_index�__imp__GetTickCount@0�_gtk_text_buffer_get_char_count�__imp__g_application_run�___crt_xc_start__�_g_action_map_add_action�__imp__gtk_widget_destroy�_gtk_widget_destroy�__lib32_libkernel32_a_iname�___CTOR_LIST__�__imp__GetCurrentProcessId@0�_mingw_app_type�__imp__g_action_get_state�__initterm�__imp__g_static_resource_fini�_gtk_builder_new�__imp__TerminateProcess@8�__rt_psrelocs_size�_GetStartupInfoA@4�__imp__g_signal_connect_data�_g_strdup_printf�__imp__gtk_text_buffer_get_char_count�_GetCurrentProcessId@0�__imp____dllonexit�__imp__gtk_show_about_dialog�__imp__memcpy�_gtk_application_set_app_menu�__file_alignment__�_gtk_window_set_default_size�__imp___unlock�__head_lib32_libmsvcrt_a�__imp__LeaveCriticalSection@4�_gtk_show_about_dialog�__imp__malloc�_gtk_window_get_size�___mingw_pinit�__imp__g_variant_get_string�__major_os_version__�__lib32_libmsvcrt_a_iname�_g_application_run�__imp__g_object_ref�__imp__g_static_resource_init�__head_libgio_2_0_0_dll�_gtk_menu_new_from_model�__imp__g_object_unref�__IAT_start__�_g_signal_connect_data�_gtk_window_set_hide_titlebar_when_maximized�__imp__g_type_class_adjust_private_offset�__tls_end�__imp____initenv�_g_type_register_static_simple�__imp___get_invalid_parameter_handler�__imp__GetModuleHandleA@4�__imp__g_strdup_printf�___dllonexit�__imp__gtk_window_set_hide_titlebar_when_maximized�__imp___lock�__DTOR_LIST__�__imp__fprintf�_TerminateProcess@8�_EnterCriticalSection@4�__imp___initterm�__imp__gtk_widget_class_set_template_from_resource�_GetCurrentThreadId@0�__size_of_heap_reserve__�___crt_xt_start__�_g_once_init_enter�___ImageBase�__subsystem__�_gtk_text_buffer_get_insert�__imp__strlen�_gtk_text_buffer_set_text�_g_action_get_name�__imp__g_variant_get_boolean�_gtk_file_chooser_get_file�___mingw_oldexcpt_handler�__imp__calloc�_libgobject_2_0_0_dll_iname�__imp__gtk_statusbar_pop�__imp__gtk_application_get_type�___native_vcclrit_reason�__imp__gtk_text_iter_get_line_offset�__Jv_RegisterClasses�__imp__GetSystemTimeAsFileTime@4�_gtk_get_micro_version�___lconv_init�__imp__g_object_set�_gtk_builder_add_from_resource�__amsg_exit�__imp____getmainargs�__imp__g_variant_new_boolean�__imp__gtk_get_micro_version�__imp__g_settings_create_action�___mingw_winmain_nShowCmd�___native_dllmain_reason�___tls_end__�_g_type_class_peek_parent�_gtk_application_set_menubar�_GetSystemTimeAsFileTime@4�_mingw_pcppinit�__head_libglib_2_0_0_dll�_GetCurrentProcess@0�__imp__g_intern_static_string�_mingw_initltssuo_force�_InitializeCriticalSection@4�__imp__free�__imp__gtk_window_present�__imp__SetUnhandledExceptionFilter@4�__imp__g_type_class_peek_parent�__imp__g_object_set_data_full�__imp___set_invalid_parameter_handler�__major_image_version__�_gtk_widget_class_bind_template_callback_full�__loader_flags__�_gtk_widget_show�__imp__UnhandledExceptionFilter@4�_g_action_get_state�__head_lib32_libkernel32_a�__imp__g_variant_unref�___chkstk_ms�__imp__gtk_window_set_default_size�_g_object_set_data_full�__rt_psrelocs_end�_gtk_window_fullscreen�__imp__gtk_builder_get_object�__imp___cexit�__imp__g_settings_set_boolean�__imp__gtk_widget_init_template�__minor_subsystem_version__�__minor_image_version__�__imp__Sleep@4�__imp__vfprintf�__imp__gtk_text_buffer_set_text�_libglib_2_0_0_dll_iname�_g_settings_get�__imp____set_app_type�___mingw_winmain_hInstance�_g_object_set�__imp__gtk_message_dialog_new�_mingw_initltsdyn_force�__imp__GetCurrentThreadId@0�_TlsGetValue@4�__imp__DeleteCriticalSection@4�___security_cookie�_LeaveCriticalSection@4�__imp__g_once_init_enter�__imp__g_object_get_data�_gtk_text_iter_get_line�_gtk_menu_tool_button_set_menu�_gtk_statusbar_pop�_gtk_text_buffer_get_iter_at_mark�__imp__g_free�_gtk_file_chooser_native_new�_gtk_application_get_type�__imp__g_action_map_add_action_entries�__imp__gtk_widget_show�__RUNTIME_PSEUDO_RELOC_LIST_END__�_g_static_resource_get_resource�___dyn_tls_init_callback�_g_static_resource_fini�_mingw_initcharmax�__imp____setusermatherr�__tls_used�_g_simple_action_set_state�__head_libgobject_2_0_0_dll�__imp__g_object_new�__imp__gtk_native_dialog_destroy�___crt_xt_end__�__imp__g_action_map_add_action�__imp__g_file_load_contents�__imp__g_simple_action_set_state�_g_settings_set�_vfprintf�_gtk_text_iter_get_line_offset�__imp__gtk_get_minor_version�_g_settings_set_boolean�__imp__EnterCriticalSection@4�__imp__g_static_resource_get_resource�__imp__fwrite�_gtk_widget_hide�