iterative / vscode-dvc

Machine learning experiment tracking and data versioning with DVC extension for VS Code
https://marketplace.visualstudio.com/items?itemName=Iterative.dvc
Apache License 2.0
188 stars 28 forks source link

Improve the `Plots` UI (regular and comparison) #1561

Closed yalozhkin closed 2 years ago

yalozhkin commented 2 years ago

Scope:

Proposed design

Preview:

Figma Plots UI:

yalozhkin commented 2 years ago

@sroy3 @mattseddon could you please take a look at this refined concept for Plots:

image

Keypoint: selected experiments are visible and always on top (users can toggle their visibility and hide particular experiments, also they can launch the selection form using the N of 7 button)

yalozhkin commented 2 years ago

The Plots toolbar states:

image

yalozhkin commented 2 years ago

A particular experiment interaction (from left to right, off/on variants):

Default → Show the Hide button on hover → Show the Hide hint precisely on the Hide iconic button

yalozhkin commented 2 years ago

A particular plot interaction:

yalozhkin commented 2 years ago

A particular experiment interaction (from left to right, off/on variants):

Default → Show the Hide button on hover → Show the Hide hint precisely on the Hide iconic button

Tested the fulfilled buttons with different colors, looks not that good for bright colors:

image

SO another option is to fill the boxes only:

yalozhkin commented 2 years ago

Suggestions for improving consistency between regular plots and comparison table plots:

image

yalozhkin commented 2 years ago

Concept preview:

image

Keypoints:

@mattseddon @sroy3, please take a look and give me your feedback 🙌

sroy3 commented 2 years ago

I think the concept looks nice. Here are the concerns/questions I have:

@mattseddon correct me if I'm wrong on any of these points.

Things I can easily start working on:

yalozhkin commented 2 years ago

Thank you @sroy3 for your feedback!

Could you please also check these two concepts for resizing the plots? I found the small-regular-large approach confusing, so there are some ideas:

Image

mattseddon commented 2 years ago

@yalozhkin the designs/concepts look really good. Comments/questions are below.

Plots webview having its own state/ability to select-deselect revisions

Keypoint: selected experiments are visible and always on top (users can toggle their visibility and hide particular experiments, also they can launch the selection form using the N of 7 button)

  • Toolbar for Plots (so we don't need toggling plots to select/unselect in the experiments panel anymore)

I like the concept of giving the webview its own state/way to select revisions but I have a few questions:

How is the initial list of revisions generated (i.e the list of up to 7 revisions)?

Can experiments/revisions still be selected/deselected from the experiments webview and/or experiments tree?

Will we still provide the user with the ability to auto-select the revisions to the current filters? I.e this:

https://user-images.githubusercontent.com/37993418/166172184-a67d5ea4-3abf-4951-b148-8c24aeba40f9.mov

☝🏻 this is something that Alex/David asked for here

How do we make the fact that "selected experiments are the superset of revisions to select from" an easy concept to understand for users? Could we change the name of the EXPERIMENTS tree to EXPERIMENTS/REVISIONS and add both show plots and show experiments icons to the menu title to show that both are affected by this tree?

I think that adding the revisions to the webview gets us partway there but this concept not being intuitive is the most consistent piece of feedback that we are getting. GTM feedback here.

Chart tooltips

Happy to update the Experiments Checkpoints tooltips as we are in control of those. However, the tooltips shown in the Plots section are provided by the template they are generated from. We just display whatever the user has set in their template. Updating these on a case by case basis is not maintainable.

Feedback given by @sroy3

  • The revisions list at the top currently has 2 actions on it. Toggle the visibility and remove the revision (unselect it from the tree). This could work for the comparison table, but the other plots a revision consists of a line on the graph and isn't something that can be toggled directly in the webview. In summary the toggling would only fit the comparison table, while to "x" action could work for all.

For template plots we can filter the passed data using the rev field (content.data.values) but this will only work for vega plots, we will have to add more parsing/logic whenever more plot types are added 😬 . We would also need to add a check for the values array being non-empty so that we display only plots when there is data otherwise show an empty state.

Question: If I remove a revision from the comparison table does that deselect the same revision from the whole webview, deselect the revision completely or just remove it from the comparison table?

Everything else looks correct there.

On resizing of plots:

Could you please also check these two concepts for resizing the plots? I found the small-regular-large approach confusing, so there are some ideas:

We do have the "zoomed plot" concept now. Please take a look at this and give us some feedback. The reason for adding this is that the overall view should serve as a customisable dashboard. When the user see something that they want to focus on this should be easy without having to resize all of the plots.

Demo:

https://user-images.githubusercontent.com/37993418/166172659-a1e60ecf-8579-4412-b135-87a80bea543e.mov

yalozhkin commented 2 years ago

@sroy3

This could work for the comparison table, but the other plots a revision consists of a line on the graph and isn't something that can be toggled directly in the webview. In summary the toggling would only fit the comparison table, while to "x" action could work for all.

Can we 'pretend' to toggle the graphs? Once the user toggles an experiment off we consider this similar to the hiding x, replace plots but do not remove the experiment revision from the webview and show it turned off instead?

Currently, there are no way to filter on these, but that could be done, but why would we need to remove it if we can collapse a row and re-order them with drag and drop (I'll implement this as it is not there at the moment)? I'm asking because the way to re-add the row would be to do it from the side panel (and we'd need to add yet another tree for it).

See your point. Well, let's use no closing x button for the comparison plots.

yalozhkin commented 2 years ago

@mattseddon

How is the initial list of revisions generated (i.e the list of up to 7 revisions)?

I see two approaches here:

Can experiments/revisions still be selected/deselected from the experiments webview and/or experiments tree?

I would not sync the experiments tree with the Plots and Experiments webviews.

Will we still provide the user with the ability to auto-select the revisions to the current filters? I.e this:

Yes, filters must work for both Plots and Experiments webviews

sroy3 commented 2 years ago

@sroy3

This could work for the comparison table, but the other plots a revision consists of a line on the graph and isn't something that can be toggled directly in the webview. In summary the toggling would only fit the comparison table, while to "x" action could work for all.

Can we 'pretend' to toggle the graphs? Once the user toggles an experiment off we consider this similar to the hiding x, replace plots but do not remove the experiment revision from the webview and show it turned off instead?

I think this could be possible. It might be a little harder keeping track of the maximum number of revisions though. If there are 7 and I simply toggle one off, the extension now sees I have 6 revisions and would allow me to select a new one, making it impossible then to re-toggle the revision.

maxagin commented 2 years ago

Concept preview:

image

Keypoints:

  • Toolbar for Plots (so we don't need toggling plots to select/unselect in the experiments panel anymore)
  • Uniform container (color, corners, spacing) and actions (hover menu, drag, and hide) for all types of plots, including comparison rows

@mattseddon @sroy3, please take a look and give me your feedback 🙌

maxagin commented 2 years ago

Sharing some mid fidelity explorations, using a 12px base. The detailed list of comments will be developed at a more advanced stage.

etwrtte-1

maxagin commented 2 years ago

This is something I noticed during the meeting: When zooming in a single plot the colors are not consistent with the current theme.

sroy3 commented 2 years ago

This is something I noticed during the meeting: When zooming in a single plot the colors are not consistent with the current theme.

They are, it's simply another theme color. The plots have a transparent background so we cannot use the same. We can use the normal background color + the transparent plot background to get the same color. I'll do this one now, it should be quick.

yalozhkin commented 2 years ago

@mattseddon

How do we make the fact that "selected experiments are the superset of revisions to select from" an easy concept to understand for users? Could we change the name of the EXPERIMENTS tree to EXPERIMENTS/REVISIONS and add both show plots and show experiments icons to the menu title to show that both are affected by this tree?

WDYT about this concept:

We do have the "zoomed plot" concept now. Please take a look at this and give us some feedback. The reason for adding this is that the overall view should serve as a customisable dashboard. When the user see something that they want to focus on this should be easy without having to resize all of the plots.

Like it! 👌

@sroy3

I think this could be possible. It might be a little harder keeping track of the maximum number of revisions though. If there are 7 and I simply toggle one off, the extension now sees I have 6 revisions and would allow me to select a new one, making it impossible then to re-toggle the revision.

Talked to @shcheklein about the concept of toggle visibility + toggle revision. Agreed to have just toggle revision 🙌


🏁 So the scope now:

mattseddon commented 2 years ago

@yalozhkin

WDYT about this concept:

  • On the view/title of Columns (instead if Metrics & Params show the Lab icon → Show table
  • On the view/title of Plots show the Plots icon → Show plots

updated in #1655 + #1656

Please watch this video as it demonstrates the concept of linking the Experiments tree to both the table and plots webviews by changing the view's title and using of new view title icons/actions (first mentioned here).

https://user-images.githubusercontent.com/37993418/166858033-715d2ed3-6520-4c6d-b54b-d957e204af06.mov

LMK what you think

Edit: opened #1659 to discuss

yalozhkin commented 2 years ago

@mattseddon

Please watch this video as it demonstrates the concept of linking the Experiments tree to both the table and plots webviews by changing the view's title and using of new view title icons/actions (first mentioned https://github.com/iterative/vscode-dvc/issues/1561#issuecomment-1114419179).

Nicely done! Just wondering if we can avoid using the Filter (apply filter?) icon here.

I'd expect the following scenarios:

mattseddon commented 2 years ago

@yalozhkin I completely forgot that we can switch the icon dependent on a context value within VS Code. What do you think of this:

https://user-images.githubusercontent.com/37993418/167056470-a7fe75c8-16ac-462e-b658-4756e393995e.mov

On filters being applied immediately - we do this for the experiments table. I would hope the real workflow would look something like this:

https://user-images.githubusercontent.com/37993418/167057069-bae45f60-8356-4c99-b740-8cd033af683e.mov

The demo shows why we don't always automatically apply filters to select experiments. If there are ever more than 7 experiments remaining we have to send a user a message to ask them to select the most recent (not even sure this is correct) or cancel the action. This could quite easily lead to either unexpected or unwanted behaviour and bombarding the user with messages. Hope this makes sense, happy to expand further if necessary.

shcheklein commented 2 years ago

A few comments on the latest extension version (sorry, if that was mentioned before):

Screen Shot 2022-05-05 at 10 06 59 PM Screen Shot 2022-05-05 at 10 08 56 PM Screen Shot 2022-05-05 at 10 09 42 PM
shcheklein commented 2 years ago

Here is another example:

Screen Shot 2022-05-05 at 10 41 23 PM

All there groups have so different sizes and all of them are not comfortable by default I would say.

maxagin commented 2 years ago

1.Just a heads up that some of the current section that uses plots in image format (Static plots) probably may be updated with the vector version. Which will help to have better consistency in the Plots view in general. @sroy3 can you verify this please?

2.Here https://github.com/iterative/vscode-dvc/issues/1561#issuecomment-1116410596 I actually experimented on how the single container elements can be spaced including the spacing rules.

sroy3 commented 2 years ago

1.Just a heads up that some of the current section that uses plots in image format (Static plots) probably may be updated with the vector version. Which will help to have better consistency in the Plots view in general. @sroy3 can you verify this please?

Static plots are rendered as svgs. The images are in the comparison table and are being sent as such.

maxagin commented 2 years ago

Static plots are rendered as svgs. The images are in the comparison table and are being sent as such.

I thought that we could use exactly the same design for any plots - static or dynamic, since probably with some magic we could use the XML and render it exactly as we do for ‘html’ plots. Does it make sense @sroy3 ?

mattseddon commented 2 years ago

Static plots are rendered as svgs. The images are in the comparison table and are being sent as such.

I thought that we could use exactly the same design for any plots - static or dynamic, since probably with some magic we could use the XML and render it exactly as we do for ‘html’ plots. Does it make sense @sroy3 ?

@maxagin When it comes to images (anything that currently goes into the comparison table) we are provided with the path to static images by DVC, e.g /path/to/image/on/disk/misclassified.jpg.

The inside of a jpg looks like this ``` �����JFIF���������C�    $.' ",#(7),01444'9=82<.342���C  2!!22222222222222222222222222222222222222222222222222���JJ"�������������� �������}�!1AQa"q2���#B��R��$3br� %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz����������������������������������������������������������������������������������� ������w�!1AQaq"2�B���� #3R�br� $4�%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������� ��?�� (�� ����hz���#�������T5���/�����@5�/�G� �y����A[���K�-N̓k7q���t�Ě�׵t�{�c"��=N2k̞}_ė�2���yGӠ9���bia䠡y?#����V�2���Z���V·m��5�kj?��}��B������yͻo��g9�{W�]�^���"�d����=��?:����������U�:��ݩ���Fնe��_��������T/�g}�\�A>���}��v895+�G��YZv �� �Ѭ�:�Z�z��"\Ȫ�;��c�j����#���_Q�b�^P����������_����*��&����į�L�>�+���3��ձo�]J��;�5�׊A�X\?#�S�����u� 6�� m29,9����F��[G�7��͆�#<��J�9F��^1I�,�����G�xsV�g��� �<�6gM�1��#'��X�ۺ��o��!��Ư�[�c_� ���e�zI(�Ij ,����N������ �cK�wW������?��?�j?k�/������<����z���j�5�����{��Dl���/^��ڮ�e�S�uiԄ��0v���ֲ�Z�NE���K��h��mG�o�h]y���[<�9�m��8�j�������+}����5�i�����r�����W3J�"$d������t�MFrih؝����_��������G����A[���$�է��H�]���9&5',=s�k�Ӽ0��^6�yq$`��>T�c��Xz��)F���Cj�OI��������Q��l.�&a��rN'޹۟_�����wP������o�����P���~'��f�����I']���.�����)���M�j٧/ĭr��Y�7W�2��[��\�<~5��Zί.���q�]����D�C�9a���We�� 8G=� �G�K9� �WQ�[�mGW��m%Dn��#�㱥N �^ծ{l����/���u�R-sP�=J�.dUU���1�5A��U�jת��M��?Zo��k:�E�C�L������Z�f�U����ԯ�U%�y�r?ZוƜy)���]Y���ۦu�׮&d��;�b�\+��歨����jRyzlΛ�c��0FO޼g�P�u-JxT�*FX�$��^��o���*�����[ �R���ұC�wW������?��,�"�V��Iw�N�ea����^G�����[[�$�C�/';G�H����U����As٠�=��#���J� )K�9������mG�o�h]y���[<�9�m��8�j�/ xM즃S����7$Q���~;W����>�����ҧ�S��AE��FP������+}����4����}^�Tu-r�ֹ�oX�������s�(G�=I>����i�v�s�;�{t�+� �* ~f��:QmF+M��/��������jZ�]��A�1ݳ��MG�C������ff9$�$���������8�[����`�1�}�ȿ���׬_���+3��Bn6m�Hn��U5�.)95+4t%YZu��O��#���?���^?�����.�T5���/�����@4n�������������X��,lo�f�[wPP���N2q�*� �jRM+�ϙ~ �r��ǻ����8���O��W;���M�p�zL�|�bQp�sw�v����ƪ� =�������G��P��i�I�J�>�r���J�j��oK���kQ�iz�������2. ����o����������U��� �W��������������/Q���[�3ε�������nݛq�s��Vʾ�b�;���_QY�ͯnV��{�Xcg#�5�x"�k�����K��W#�9'�½��8ՙJ�ʼn`����;M�ᮧK2��ƣ �������LNucQ�V���Nֱ������ ��`�?�j����u����͏�����M\��f�}9PӠ{{�e�b���H�ULv�B\���9�D��o�[N-�؜]<�1���|~_�òkZb�so�=��������3�ֽ��T�O��t/?|�?�Ǧv����Bo� h������Z+{YWJ�[��j��J܏�9�^���\�v�k7�#7sȫ�#w�Y՞8̎�@q��8�i^��W���S���%�,�`p94j���W��j�R '��=� �bpF85�vT������>®ܯ�<���6^C�B)m�Q�1-����^��Q>��)u�cxmP�[�����^�?��k��qy����J��V���V�QE[�����J���k&��ٷ�W�������[�c_� ���e�zH�X�9r8*�����fkw�Qu :w���Xf,Al`�:U?�WZ�������o����M�qV��]j����c��}���SF��IMI+�+v����Ռ���������U��kvCT��5Av�2ND����8��Z��wv�|��1Ho���JU1�n2GZ���[�n����/>H�v�}v���Q'w���Ԗ�-�O!���O����?m�m���=������]^ 0F#�T�#A�R��~i����M��A������U��ais7Q]��|��Ve��~)���/�����٫Ƶ}/\ӵ{��8%�.�İ)fPHlq����w�r^fcR�b�l"����݌���*{����Bo� h������U��h�2�f�Q�{����]���������V>�q�}:פxHM�J�V���k��|}�,?���� ��1����Q���jޕ�Ym�{)Ϋ�8�x�b\͆�c�E9�hŸ�M��?A�5�������#���_R���f���a�y�%�%�����S�|+-Ư{8�t�O#�{�r���pkS�e�um=γ��9U[��pA^�V�q�e��D�d��J�[ߕ��7��2=/E�%{��BG;���+���ƿ�?��R�!7�4� ?�Mkh^���O:��/�a,Cʟv���n8Q�ө��*�ZX^ªwqq纁�i�F��/���q�ל�G� \����Ґ3�� ���=����_��M��A������X� ����y��S#��[�\����q��=Y)Bqz5����*4*�����L�2xn#pr��a'������? ��������T��(�±C��ƃ �s���[�xN���gO���Y��^9K&6m�@�Z,^4��TN�*5ۋG�jz-��퐖h󵕊���+�����C^�gj��iʹ���/׸�^�7�]^h$�행�J�I0�q�u��_�{�"�m-�,�)$���b{����l%J��[v��l�JI�{n���"����^����WZ�������o���ס��g��Z�T�0�lW�!@8���6�ҫ�r���i�x���#���_R���f�o�+=6/2��"S�q��SZ�"/Z՜�]�Ƿ�y��yo�L��G��rp9����V9�AE]�Lcvw���0�l0\����z��YmnYc`��e���W�j���xYf ���Lr��9�q��/�V�Y4PJ�]lX��F]N? ��i��J�Ju���N��U��G��E�ơEPEP\'�?�3�{������ �O� ���^����5a��W&��z^��+���N�|��}�� c����<��s������|A5��iR�ڵ� �DJ����z���� ������n�)��4���<�ƹi�o#��b*;†�w��/>����K��.�0BM$R(=pH56���!�������B4�$�Rӡ�mD�%Q��S�o� ��ğ���3�_������ss ���,pƥ���\߇�om�jhm$�-����0^�� `㚯�au� fڳ-����� �׏�mޕc������T�!�Y]s�Wf ��qWǗ]��V�gV�����m-=?3ռ��!���ݿ�%��O���fo��o� k���7�x9����AEV�s�4���4?��� W ]ߍ?� �|/����"�WF�n�I��1�s����]^����L�0|��\���W�ޝ'D�o�m�JvE�����֖��Ϫi�K�V+��xgE�����=�W#��`����.|E|��\�$�a���,y����֚͜2=����v��y�Y�qϠ��*g�Yajթ59����.�6v���������O�:��%��+� ��κ��a���ל�͌�����7[�|�@z6�?��kԳ���9�����%ܫ6:��O���(\)�"��p>�v�n+�y�ں}m��z�JA'�kJ��4��2^΁���7^p1�A�–�m�����vvZ�h~'ӵ�"ZRh�^�k��~�������|�Ҽݭ��,ا�\n�s�����Ԏ=�zF���1O���*�Jj��9P�����Tc� _W��lM�����4i�U�_�F[�{�z�[�u]+HV�&'��~�\}��ҳ�n�:�#h�����mR�/��-J�;i�(��aXd�1�z����� 7�|7����~��m��/e���s!'�La��5� ���4����� ��m�t<�˛�>�~��~GEWq��EP�x��mFMr�܁+�ɷ'ę��W��v�*���gbW�őO�����tտ��ؾ�G�ǟ��<�/�ۻq�3�3T��������B���(�p��&��1N�c�xb��Q]O^�̕[r@@#�q���W�|:�������[��CJ����G���� �?��alM��������}�fݻ���s�~���R�N1��v��V VwTQE|ɰQE�QE�W �O� ���^����5wu����'�J?�����F<��v�{��k�����bS��{������i%/e�h3�7N�~C�]���=� H�f��f�ᘓ#u��d�e����E��N�W��!�,�����ЧR�q���[_��OI���͏�|G��� �]��5?#i�͗���vN3��Ɵ����k���iy�rl���ݑ������ם����Ͽg��vNq��<��掽�ߕ�����#^��mw�Z\O}+K=��E�7� I��9��+}A�K��WL�X�_xU�}9���)������:?������C����S��JQn�ݷ�r߂���37�{������'���)>���7�9��mە��Һ�렭�i��[��[�Q[a�x��@��������-^=�K��ݭ�d��n�G�5�]pç~H�w�4�5ke�v�Q\81�pGp}k'��7�{��k����5Jsu9��a1�xa �����/hz����kcˊ�$[;.w��w����]�w��������_�&��B����u��}���YJ�I;��3<��ls����������/�Z$��#��b��A4{0�ٯJ�����m��7��DC�m����Y?�N�W��!��-N�7�R50�-��y���� wV���v�[Y�G>c�'�����נ�?���������!W?������C����������ɳ��vF3�Ե�Z���*r�d�ݵ�b��?�5&�<��Fx,Es:���-�:L�^_˄��6ߒp2q��5��^Ӯ�ie�����q��w�S��u�X��Oo�����%�=��v�O�Z<�1v��M~G��(�`�Y�=�әneRHf'��a��4���>_�]�!zo�������������M���K�F�t�Rv�'x�Q�73 �XWK�S���y��4�iW2[�$��ȍ#bǁ��1�xcP1Y��m�,xhl�9V��^C����ҿ������C��)������:�]+&��5&�(�N��Ǯ��������AZ�?������C���b�͓�h��?n��_N�+J��8�j��f�Z�n��(���� (��k���W3K+��rTg����_�0\׫�i^�Y� �ߺ� q�O'�5���`����V���ҹ����Է���M��+��Š(��(��O�f��_� ���Ɵ�������Bj���M����W3���&�j-⍥��R!U��8����$���t�<�yۈ�d�y#ӊ�'������$��a38{x��Fǧ��\��K�[C��)K��~'������x�Q��I�U��w��,�� �'����f���$��ЍO��l��?�Q��f���$��Ѝ&���N �WH����C��4�4�� �!�&"EC���wz���-'VP\ bX��9���l�Ft L���g�隋�:�ۼ'l����&����m^�}��' l�ޒI����x/�C3׻�K]�p� ����������w]xo������� ��+s� (�� (��8O�f��_� ���d���y[lq�v'�&��f��_� �ͼ}y�O��Hi��0q����ם5�U���=�T�E৓R���\��,�� "8�F0�ϦA���v�O��l��?�W1�ƚO�mLjq��A�I]��&��53�\iɍ�4.��$����iMr��^��=��֨���ψ ����������M\�z�������O�Җ�ҏ�#�-��n"����v�H]Ϡ5-p�(��Ě�^ӟ1�}(�_��^\#�Ϲ�V�P�ս����uMz��S�A���mo叛�����ϵ{'���� 7�|7����V��YCin�b�B�ҽ �������AZދN����BP��n���GEWq�EP���0j_��/��k��|8���l欄~����A��{�+��o���?غ<�]ċ�K\�a��9��unj��=Γ��P���(�Z���T�8h��0���Z����q��^�����eA�.��m��q�;`�� ]�|@�7̚f�l��I*�� � �Ooj�mZ� 6㥻��y��=��?�4Կ煯����U�j_�����o�*�7�0=��lWe�����i�� _������� =�����7�^N6�ݻs�֚�L�L-t��s��� ���B�\����ɕQ���]�D%�2�z;1W�(R�Q�`�;#�$\�ho���'J���o��X���7R���/MM�"�K|2�A�Z���jt՝^I?gӺ;�+���u���� �H�dRU��H��W����R�������U��G�G'��&����Ɬ�� k������A5��i�� _������x��QK� b�ZI(P� F89<�h���x�MT�V^g�x�5Y��k�.��p�q�/���Ԟ�S��@��-���f��7��� �������7��^�������_� ��׮=-�s�S�{GN��i�c�w��M��_ ����s����� ҿ����]g�/>ۦ�'�����v��T��ךւ\�3�6�G�jQ���mQE�|�QE�!u�TF@�ʹ���q^}o���J��Z�����8��/_Q��|��������C�k;� �1]G�}Rk��*#LJ�s�}>��XmR]sMk�sQ^�+�*�#�fQطR8=?�rz~�?��k:~�sq�[�H��b~�N�1�n�{V5��B<�b��w����C�� ��\�����X�1�>w�̞�h��Gc���@�Ml�rA,Z��Ӥ`y�PzW����z��5��"9� �����������������N��(.f�G��=C]���T������m�kv�]ݷ ��5���4�d.����+��Gf�>���� �{�7��wzw�,$��wP.B��b;}p~���NX���j��«V)���-:���M��_ ����tu�x/�@����+]uQ���?�S� (��8�Ɵ�������Bj�����K]*�K�"b�J��Œ:���@ w�4����?���W�����c��}ac�& �wl��u�:i:�c���������F�����l�,B�dhg�6�=pA�'�C6?����+��t-~��脷f�}�6��w �=t��Ԡ֬�ݨ�v 逶�Yp��h���sh���GE����~�����E��>�)�k��M��'�<��z�M�r��K�h|�|���V������|I����u�ޯ�-�=c�ڽ�sw:�� 򣌞��J�i"e%N�g)>�%m�7~&���rk:P���/� ��i#������fd����<�M��p ��FA�\����a�K˖���Gܾ���u]����1O���(��2�5#UR��������u9�Zk�}&�[<��O�G��5���KPҮ�� ��,�)��{�z}y�������p"�r��` ������q��E����i({J����7~�\^�YE���J�#�@��q^���M��_ ����y���Lm�t�VK8�b���A���ק�/�@����+ZRw��͏��]�}�::(��O� (��<�YѵIu�BH���G���� ��W#m�m�g}Q���y�9���]��:�Z�z��"\Ȫ�;��c�k����� �'�/�bp|��`�S���j��*ܶ[\�o�������$(:)�8���<)���K� t��U��c@в�~\(㯵s��%Ԯ�㸃X�x�����?:��+��7�b{��Bi򺇙�k�#'��S�U>�7���҇�cn��C�K�=��=F�kFf���Ƿ_�S4��+�\ �ӯ�/A��.cgl� `:�?��/�]����?��/�]�����Nuk]�p��u=��o��K���_��µ?����~�q���~�)�mٌ�+/�[R�������o�O� ��E<�\y�nٿ�m�vg�J#˨��v��w2���� ��D07�V,^���(��8�n�`,#���5�����B����7��}��u �f������<���b3é�?Pz�N=.]H�ms�ߦ��N���@������^��#G�Y��WX2����y������A �����Z�ޡ{�w�yp��bv�+ �s�y�ZR�av�<~�%œ�[�;�+��X���R�UQ��v�ΩZ�����5��+��o'�(nRpz����Wc��N΢=�����3]Z�w��oQ$p3n=�9�ihZ�ڎ�h�j�\�n��u?0�<קU'�uZX�py{q�������]}�n5f�5����C���b�Dѯ�EH�۔E �0�~U�Q*۰���)�tҿ�8O���G̳�M�2��8�u���K���_��½J�O �J��:��\�S��u/��ߖ�� ?�u/��ߖ�� �*)}Uw4�ީ��������T�<2D�rBȥN6�<��`x��{m*'�i"s8�b�[�+���Կ�!u����i����gOS|Eһ��*+�5���������i[j� ������Ƣ������4���CĤ�a��R�����:X���<�ʂ� Ga��������>�����W�i��iVn�Y�,�䓴sV��M�_qRͪaਨ�ˡ��:������Z�4���[7{�E� 1��p�zE,2N�*y�IEǑjy���_ɪ�:Xܲ4�U�LA�=+Q�Ֆ5��f�FIM�7��Ƨ��Ǫ�"_\�,�D���j����Q��jW(�2�Ӱ�z���n*]Oj�*I5�����x:�H���m�X`A&��?�q��O�i��h��w ��T]�0������{q��q$m����k_D�/e���/.e����c��0G=i��˩�hՍ�-���ǟF�%��8���vR��%I����>��;_i�Z�˒ZY��}��&���mK��_���Ʋu/��L!���S�WfP���J-m�^��U+r����� �|?�mf����d�C!�"'�8��>���J�'�H��HY�����!�/n I���^)2:��z����{�����ˏ7��7���n��9�WNiI�����N�h�$���}Eyo�����A �����G�����A �����Z�iv8�j:=J����mK��_���ƽ#Lv�J�wb��!f'$���ҝeQ�#��K )J����N?�%�o���}t�%Ȏز�t�^3ڴ�� A�[�Y[��������C6[�;�3�n}sV�*��?o4���{kn��O�N�A���C�N����ݺ��c^�^[����f���#��Ѕz�ta�i�y�# B1VIQ]'�QE�QE�s�4���4?��� W�x���Ŕ�[��Gg��{v�+U���o�����������Z���7Z��1�QD�$��y� )�s�:�EqU���\�l������sȭ���Đ�e�������vU�3`�=��{�*�h�y��r>��Z��K��G����[)�(V�Qr�G`q�ox:+�|+b�Ō�2���A�1SY�E=���j�YSO���OE�{~��� k�����Ar��?�����x���W+�;#��^�(��fg���������?�#\ψ�>|Ap6�=�+��njI��q��o� ��ğ��5���E��wڥ���x� ������ w�6?�>ڳ�{����m,W�Z�/��h���坫���<����}1��״���>_�\�������"h�9 �Qq�m�k��?�)��`��>k��.���g鶇5��}>�q�2Cxˈ�q���q��-wB���#�S}�\��ܱ*�<�����P�/�N�{��Y6��8��9���~$��^}���֓X�cO��bU�,3�'8�k����;���N����� 8����?� �b�o����!����~ԾgF�ƕ��#��>c��5��ix��rǶ;��ZG�M� H� �BH�yrd-Ӹm�I�c��K�;[��wv�΀�,��\lj<=kac.��F�7�k�Ȯ�����Nko�c<^W��&������uz���� k�����A��W+{aot���%�0pF�zΓ�� k�����A��gzӥ��u�xs��/������.$m�]a�,N��g�-����|73��zI������#���_R���f�侶��+7�V�PY��}�i�ӏ4�Ӣ>F��*xM"@��z �u�?J��ޅ�9������X�!��W8���w5�����q2��a�������������6o�ώS��E�{-U�h>������������?�j?�?�-��O��Z�诂�c���o�������Qm+���գ�����ٿ�t�����<�?���ۜu��=]�Z�ue����m�����6H8�/Z����N�����ӭ�i����F2�.�A����Qm+����`�[J������c���Ҳ�u��f�(�����I��1���&��ꚩyT������W�����GW�>�������vq�������z�c_���_�����ӏ+�ƥ:����~��`�[J��������ҿ�'���X�[P��M�罜�(P����Jq} �*�]�����'��Z�����ɑ���Y�G�c�v���F�}l�� �UN������F�yu�,ң�^��LV����!�������B5�j{4�6� �u#�>��ǣki��������4ki��������5�O���-GH�!���b_3p|6ޘ��V4O�k�^%�˶Ղ������>�n����U���j=n�����_Z\�H.����X� q��O\'����37�{����������^; �ս�w (��8�_���M�?�[���n����ϯ5��xJ��//4;�S�J�]_�?� �|/�����RǠ5�]�=��ʩ�x]%ew�2�>�m�Y�o�*��E*}�Z�����Qm+������^'��C%�Y ��#q�1���}����i�:��\ %�K��y ��3�>՛�Tv��S�Eg��S��n�,l- ���]`@ �����Q�Z��[M�������_�_���_������ww���WR�PD���a�{V���R<�d�����v��X����!k����iɩ�H�}l�� �U$�N��DŽ�gs�-r��[xR��&C`09<�w�J���� �������u�r�gO*�V��Nm�~��MCD�u+�?�4��3�׸�.I��u�����Z�7w�ݍ�Bs��/��ݼ��56��6�w�Ē��Q2xRs���T��T�&�jM;�H����*�HP0���~�������ٿ�t�����<�?���ۜu����[�J���|�i�,��<�x���d����:����C��%�_������W�����^�D������I���3)�L���vF�Xڦ��f��i���7�˽X|��8�����Ҷi]F�Ǝ��)Su/m��~X�H�U҂"�Q���~�|~V�k�}���C�l�>��n�e���e/��Jbv ��޽�I���5��{������ng��'8R�P|������`Կ��_� יO�Gk㋫��[�1�!X�'#�n��צ��0j_��/��k���N�.n ]��������Sr�s[��k쏗OSE��ľ$��hLv�hR%c������W�xC�>5_���ָo ���ٺ�,1+2O��<�8�w>����W���5�z����&��M�?�G��u��=�Z��̒,Q��>��N�V���úV��jz��wf�I�!��*�qZz�k�ح��H�����������!����rR�hp�:Ti�vѭ�[���u! e[i6�띧���o�K�xz8໸�N���2�����^�\ׇl���A�4{K�n��p�2~� ���(��Fs�Wk�v��H術΅$��Cmq��G�m���� ���|_ֱ�c_���_�����+�gEO�S��G�k�I��".?0���Jƺ��V�3Jd�ӂ=��cΐ��Ν�C(�P����W,��F�����O�Z�7���41De���1%��c8�8�7[�ҍj�\$��W�oW��C���ň�\G��Q�����=���}]'�C6?����(տ�3}��_�F��|Ο�����S�<�i�[ׯ纷���f3�b�bz��/� � ��ė$�\��Fь�5�_�ZsZ\��m��Q����r_4]6������ ��CbI1��g�\�(��thե^�4v�}���b�_��f���v��Ж���<��!���ݿ�%��0���?�O�Q[�Q�x��@��������-^#�_M����m$�����HUn8����n�����������Z��]֭� 1�nNq�ƃ��`+���v�����\���#̴�Y�w��vQO�+bW�06�>��=�w� �!�4(� ��](�Y��g�3�3X��̚��� ��W����DUx�#���w```t��5�����y�T��V����͍�a���׊�@��Q�%��n��'A+�†||��`��ڵ�������>/�^}��G�5 /e{�e���\���q�cQ�Z5k`� ]���8Ojzv��k�/.�[�^$�i`�z���zW��0^juŴ�,2OWC�F�^C���K>�y�ip�0���;dm��6����z׆l-���.��6Aх��OԜ�u�\�OS,�ᇜf�{����c�I�ou�mF���(�g)�` ~_� ���͝���^iw��›^!�x����V������|I����|q�g�R��,ӏ��m��5 ��5��:X���U���%go�x��I�N��k'�հF;G�8?�j�}�b����W� a�[���1#����:�4���>_�M���>� �'yJ���^F$����)*��N8�g��<9g��-��V�bZ�c��pGbI�k�k�.���_~�*�c����q��հ>��-j��y�gxJ��+�|�$k|7�WÒHa�'�v2���0G�?\פ��̝��q��X����2w��?��O74�6t��*t�{4ym�������XIԡe۴r�c\t���~5W�~,ף�&V�䰊Q��|��� u�D� ��\�·m}�.��5�I c��ɪ�%)$ц.��ќ�ͫ�-��k�t�������^�#��v�>�?�{���� k�����A�QE$Q"�h�UT`�:^������������Ek��4��ڒ���Mt<�V���[�b����$�<�+n��8�8�S���G���� �k��0j_��/��k��|M�4Q=�Ҵ� ��=�}�,)QS��V]O���w��H���s��!V׆�����jn� �o�����;q�]1�+LJ�a��#�%D}+�~^5���r��[���)>�����L\�O>I�dkA?kTn���9��Q_��G�S�����u�T5mb�E�{�ɕ�U279��|:�z$}�� �Siz�?�S�����u���_�F��!�_���~���1��Qs�[BWB� �f!�f#<{W{��2w��?��h�WM#�q�EBrj���?������C��)������:ǮwS�$�� �JӬ���[8�rO��TE�l��R��)˶�u����E�h���ؿ�i�����8��/g���z�,W^�o2�Kb���Q���� g�_���_�����\�OcK��5��w��N�W��!�����E�b��8���PMy���#񾯨jھ�Xʬ1��vu q���Z#�m�^��qm�^v�~���?��J�����|�ٿ�ۻ#�j5��+�;�K��~�/n��=�/I���͏�|G��� 5o� ��ğ�����?a��s=���?������C��)������:���:������~i�kJѡ�o�H�ŸΜ~'������y8e(�/?�Urɤ�FN��P�I+y�{O�?�����|�$��ٷnWӿJ�+��;�5Ys��$d`���;��h��Z��[�Q[iKT��խ� �EEp��@9����K����h�Ι &������]E�[�GE<]jq䄬�s��7�{]�k������^���=�����k�����c_�W������m��7��DC�m����Y?�N�W��!տ�f��_� ����8�"�l���5�RV�V>�K� �=���^���s>� c��X���u�}�����-��2��K�RF�t5q�I��j���£n��_�N�W��!�����E�s���g�ٵ���K�OR}��k�������w�~�n��#�,����4�IT�T�,�J��w�$z?�S�����u���_�m�����Sf�nہ��xƍ}�[<��[��£�p�\�+�4��X��׼�����h�x�e &��S�u�X��Q݂����c�>s\�t=b�X]B��$���9u���"�i��ڗZݖ�[�@c���W(�o�/"�-Σmm�K����������Μi�����s��懆u�ִ�4� �c����k����|j�� ���q�F�o�X�[|����Տ���������6o洱Jk%Sⶦ�-��n���5���(�~�=Ӕ�L�4 ����k.�C�uF����=��)Ryw�^2�����]%卮�nm�-�#�I#>��� �#r����-�v@�'��K�>����R�g��w���t�M��ó���V�P�n��qԡ��W�zE;�u�e���t�� �������V������|I���4�� �������-��R��`����.�N�Q���5��~gT�U�J��0�K�˨�}B�C�bKےF��on*m �O�,��b��'l���,�:��떺�o���_��H��x�F:��1���ޚ֫r��f������m{� .��{7��m�hw� ����������w\'����37�{������V�<���� ��+s� (�� (��8O�f��_� ��MR�M^M63�h��$!�˞�� �_�\/��/���5�F��{�b�?z8�q�s�һ��b����SI)�L�9a[���v���9�KP�Jӧ��$C �lu=���W�k�D�.��j��&�������������'�C��i�+��H�f'�ޜ��MH���>k�h��\�����K������vV���Ga�}N�.��4�\#�М��d��Ǻ�G5�&�h�ʵ�K���#����]���e���em�Hۙc���NS�U�Ԋ8\=i9B����������=f-�+;k��Ky%�bZ0q�� ������t�����ߕ�� 4��X��׼���ڒj����'�Ŵ�)��d������+���,#ut��WS�a��J�E>U؏mS���U}2�Gg{fv9f1)$�����d������+�r�9W`��?���?�7������£������� +eu��  gG+B��������y?�I��˧Rr�M�]u8_������_� ��צI�4�6�M3HDQ��o��5�^{�}V GY����D�#� ��%��z{j���'k�[�� ��צ�����x�+��Xt�H�e] 0���<�j�T�{5E��p���9��<�� �οk���P��X=���$La����Mz߂��� 7�|7����'/i�#�0�/�{Z]ֺ����:o��������:o�������\��9Wc�}�O�yO�'M���}���_�h�*"�EU�JZ(I-���/����˨�ml �M9����^=�k��q2��䲟:�T�UN:~9&��YѵIu�BH���G���� ��VD����͟ò�'��ȱ����֥�� B�M#�;n�%��Mn�1m�\�7g�J,c=I����Ѽ+�E$�GM*Eg=X���l~ԡϕ��Ǟ�mXg���ºV�o>�g���>�*)xYw1+�29>Սj���������lҋ��}Q�x͚m6�MW1�B�;w|�j�O��;��[��|�d�'�e�� ۫��;��"`��FE�X~9���@������L�xeR��� �<-w�[�0Y_��!��Xٙ����~U >V�tJquc.ee��W�5�������>/�T���u/��ߖ�� ��������;��c6ؘ�a���Zj/��MJ���=�ׯ��_n�������a��IQ�&��;f5��il��\�^ȸ7S�B��A?�<�.��Y5{_�_��ŝ�Z>��EOm�]�ۥ���q(0��0�~UjMB�jsʄg�u%5˦���t�� �������R�7�4���[7{�E� 1��p�zEo�M's��'T�+��EWI��o�_׼�� ��'�S_�ݖ����_̂d�x��~U���4�U�"�v�¨$�TK�O=�rF=1��L��Կ�u��~[�(��Կ�u��~[�+z�YhzO ����>f���?�N�����ӯ;���&�e`�qZCyq��4����c��^���{�����;�7���yM�n�g�\���Y5ko����Ŝ�жA�r? 5RN�n5)T��վ��kZ���5�,�c�I��p�r83���������>�����Q6䭨�)�^*����G�i?�����x���W*����f��]`@�F;Gj�쏐��Iz���)��Q@Sտ� }��^��&�U]MM*�K;@�T �v�)KfiG���G��B�N�� �M&|�yׇ--4}%|G�J���� ,�������i4[��x��n�e0�=GJ���u�܍/P��c�B3�����>E�}v){J��Zv��g���g�B��g��u���VH�T�F��W��/�@����+\��N���@������]��m�ҥI�'3�E*q�y洣wR���� $ew��7袊�>\(���� gY�"�5�ԯ�EUY���3T_�QK6�z�9$ܰ����!6��DY�=�˹N�A��&oYɺ[�J�URX��p;�#����q�Ji��~�����7�L�o�\L���w��~�W�S�kN�]"����JZMR�u-p�֫�2B5�e���3}y�;�� h����ז�Y�&F��c�8�s-���akmi��"j�S(� ͞$�p?Z��N�dW�?g/����4�N�MV��呧@�eb�8�F���Ǫ�"_\�,��0�>�OF�������|{��R��:��?��'��jy�&�M=�?�|+n�dx�k���ZyB6�1��}Z�j�����7��+u��\�w��V��A�)��Ѥm���a ��^�1���-��^�Xө�}W���T�5 ��|�ˇ�c+��X�a��Z���Կ�!u����j���1O���+�� }�xRi-d�9���;s��v�SWj*�IS��ϕ;$�����Կ�!u����h��Կ�!u����k��k�z]��g�˩X΋%�S�~I�q��z�m���4�un��)SxWq�{`u>”�%��TkQ���ֺ�n�=S�7��R��I+�� #8ڼs[���T�@ic$��YIpUH��+���_>[����\(���� (�� (�� (�� ���G�^:1WX����Z�z�������O�Җ�ҏ�#�9��Կ�!u����j9u��|���k���U�����?N�ծ�D�.��R��1��י۳g�քa(�i�Oѝ}���g[mjI�1�GtX�}px��� ��E<�\y�nٿ�m�vg�J��#G��D�{u�ɰ1��=0;z�{��2w��?��]��L�pR�NS�M��O�[R�������o�⇎�m�]e��f� O�9�cƺ�ޛ��6��wm�#"�������׼1�� y.-�M@�A8f�H{���ݮ�"�`��U���m��_�ڗ�.����zF��&�f�ŝ�B�NI;G5��G��:j����d,\rFqϧJ�m'�@�?����+l=��g����rJ���#����5/�����C5�x�Tk Ȍ�-�(����z����?X���kG�̸��Iu�\�8#������V����F�s�U�nA�zq_oV����դ��ϖK]N{Údz^�J�Q$��w�:Wq�����7�Z��o������֭� �_c�P?ں\�e�����s����GsY���X9S��cJUb�tsw:}����\ۤ�[����(}G��+��O�� �=Dĺ����q���k����?�-��O��Z�t���i���&���{tļ�~�r��󯆄՟m_ .Zn������~С�4ŶF�&c�i�Y�?OJ��N�����ӣ����W�����G�#�)��h������y���1�8��(ɶتV��z&���p^��^+ռA"��s *NJ�9���G�k��ᔩմ�������VV�� /��oe���>�in�9�Q�݅j��U�����6����L�_����/��E��� ���V���}���1��������v3�9��%�ʩ����߿~ǖ�'�[NP{Nӊ�t�+W�7����53 Ӝڙ��c1�ӂy��⽓����W���������m,\�mWL�v������:qV��zjaR'(�m�j��ȋ@�[]CN�GT�1�G.���y&�տ�3}��_�F�4��ԭd���_d��R�,�#�1֍CD�u+�?�4��3�׸�.I��u��)���U�z[Ϲ���������8[i��h�/�Egx�l�%g�CN ͞�~�W]��6�X�f������R�`�ǵOk�x��!��UҖ(P"���`v���Xjo��+-�o_Л@����������<][��H�]pA��E�Z7�D����x�a�q��J���^���=�����h�sqVD���Y��ko��h&? ���൴����8ݒO~��(�?����,�a��EݾS���N�����AԫKhT�Y�G��M�����P5�Q(¢�`��y9la�0>��s��o�~ ���4����� �GX�-������[���߅�2q��ki��������5�O݂L�q���Nt��e�*������A _����G�����A _����Zs.�7�����.QU��,���^[����Q�OB9�L����!k����h�]�R������U?�m7�����Ɯ���������p�%RI��G2�Ƨ򿸵EU}N�7d{�eu8e2� �u���ki��������4s.��j+���OV���5��{�����?����Z������d��jVw6��v�K$,�,��#8�Ȥ�jȺt��I4�<¸�[%�U���}��~�xã?���>��M��I��ql��d3d㵝�|/����;{�dy�2K,���Ԅ�s�������=[C�r��t��ձ��2w��?��[���/R��������5n}{o�9���sw懒B����H�J4��t:��<�Tf�����k�o����{P��v?4��������1��J�K� G{g5�����̅m��WG�5��b-,�=-S9fk���RqD"�����5����}��yY"�c�U@UU�� �M'�@�?����+�����������?�j�t���6�=��!E܇*��}+l4Zn矝V�R�S�5��5/�����C5��>,�����5�� a���M�������`Կ��_� חx�kk�V�1$��*C��8Q�c���L��b�Ζ2�����|�Uަŏ����i%���*Aq׮@�� ~5�~`�j��:d�������e�wp|����=Б�<�q^������7�Z�J�0�V�Z[��mE%Z6�$�!���#@Y�����b��:��]�-6f U����������"��C�� s?��h^]���1ӿ^��xB��)����o%���;�e�$����*\�G�bkIV�;��oEw����Q�/�4���Ո�NJɂA*���d����:�E�x������ft- F�DS�#������X���;���N�I);v2�Rs�w����}��\���7D��cG��\f8�O�o_�5��ԟC�iE���p���g� {�|5e�j�2�m2K=>�Ky��yI<�q��v��"Ӕ�1x���h�Ѿ�������\� n˵�A+��#�m���� ���|_ֱ�c_���_�����+�gEO�S��G�x�ŷ>�k�i��=��H�A*2pd�W�_U����Z����5+œ�q���}kǶ�X�Y��ޤ�� $J��y�sڒ�↜�(�Y�������obOC��k^K�r���}�&J�K[e���z>���!������Bj�������?�#Y> �Ե�+�J�m����Bnݞ�kK^���58���,��?��pk6�y�p��e%�?���x�O��kT���Z����x��j���'U����[�4Ā���R8��Y��4[�A�闾r2�E1_0�8a�Q�{�� ,PM47�mk�2o�]T�����1��S�Tna��UF��t���=3��������BZ���_��f���v��Ж����|�����?DQEnyG9�O�C��_ ����y���Yh�F��o. p8�c��zG�?� �|/�����6�[K��'u���>�Cn���c=k��N���9t�O�����x�U���]��g{B Yd�X�y �:Vׇ��״���[��J?<�C���\�z�͵�[x�E��h��/#�c����+�P��(@����[�YT���ݷM$��i��:���������z�������`���y�e{]N uH��e��p�N��;��}1���8�N…oc�S����U�'�C6?����+��}N[�&O h����C�k�B�����WU�7P_��Z���-��Ą�t��{�\����G���U�z��ݯ�F����!�������B5���M �`��*_�b�ê�$d~u���b���O�ז�zL^�Ѷ�������2y�w��/����t�x�+%K:v{=mcZ/��~h�|K��wA��G�#a�'���ϵ`��ާ��p�W�d��%h�18���7�)������:?������C��Z.Wc�j{�=�����y���jw�#�^���.X��yf�OJ�����!�������s������K�����>����7���c�n�����ME(�Y&�9j�}���>��)y���ep�� }I'���N�W��!�����E�L}��֦�ߵ�%�%�ﱏ[����������)������:������>�����q�~^Ϲ�3��(��P�_��|��O#Ǽw��V��P��n|���䁸��LV-���j�+��]t�{gF�jlS��g�I��{W�S�����t�9��Q_��W�]�p��Uu9e�M�.��OI���͏�|G��� 5o� ��ğ��M?��J�����|�ٿ�ۻ#�j5��+�;�K��~�/n��=�9}�Ώo���y�{%写��J�8�c�W�l��� Jn�t�!���⁣�m��Wiݰ ��P���.����7� խ��3��c���l��������;~��JR泋�����ї<��!���ݿ�%���}���{1|^+gwl��A8�~�w�M7�x]� ���WEF�g��P���9S����i���� �����?�4������Uk�������#���_����Geyqk֜����D��8�Mz~��iz���η�n�!��(m�I�H� `���9��Q_��\�u�2g��NgFqw��[�;-B�m.�C�Mԩ����pݰs��+����͟��-�?��8U\g8������9��Q_��G�S�����uI�+}�U)N3皓v��`������`���q���5��o������/3�����@�z�������������}�q������?�+����jWL�5#: 2����KD��FK��D�7/�O+����(�j�t�� ���������N�W��!Ս?��J�����|�ٿ�ۻ#�jJ-��ʬaI�0iY�2�o� ��ğ��9�m����΍qq�ko��L>i��0^��Z����ם����Ͽg��vNq��B���W��wv��ǜ�"a���e{�T��AAE�o���&�𥔋��IP�������z'����37�{����I�Q��.���TF���O��\��f/��l��m��'�Ҝ�9�g���n�������i���� �����?�4������Uu�hw>�;���������������Z��M4���u��|/��VмY�����qG7�!����T�Q�\b�5�B��kV�QL���!.���m�ʲ��F��G򯠿� �������MA?���X��I&�#��@�P��W���)ќev�S�a��t�&�n�gb��an�Q�w �P c��׭i?�����x���Y��������_�&���[kh�BJD���� R�m�y�6�"�cM�n���0j_��/��k�X���mٚ[�X"]�����:�# 9��i=����"-[K�D�� �m�����c��zW�J��F+u������ |��Y�|A�i��͕����r�^G�6���7�����_���ּ�@���'��հ�-��ȣ������O���|j�� ���rVs���ݚ����ͨ[�Ay�`�Y� I=����~�ux���,���q%�S��p���Z~6����W�n�Y�F� �V 1��Y��+K�R�DF����v�Ԅ@,�q�短|<#��s��U�?g�ʒ���_v�����k,0��<�$B����;WY��2w��?��y��,Z-�+��P�����I��?�z�������tY)4�Ns�Nsݵ���ø����ͱ��ж�f���q�����8��K{�D ܻe���<�G�k��9�������5t7� ��}���]� �H�m�y4U�R�R��c�����P�V����rkڛ�2ۺ�6q>D)��[�g=?�"���x����[r�ޚ.�>V՞�����f���#��Ѕ���o���O������K���E4�:��H��o� ��ğ������MV���������R��B<�o����ӵ mV�;�9<�$�ӂ: ki?���������!\Q���k����7�����`�I���Z�4��� 6�E$Ѳ2� ��崕�=��))og����\�Ũ�R,m#$��E�����ٵ {]?��O�xBc/s؏^ح=n?7S�c�˾iWr��<��\]ٻ��4�}*��+\}���Fbz�zf����p�uI��\jZ�ºE�m�ng`��p>O�v���?�/��>Ғ�Z�e��&��,d�p���<�ܑ�s��z���1O���*�Jj�R�������]����r��Z��e�hk16�{p���v/{��ԭ^�M��I�/4l�E��y������� ��ޡgi��V��&b}x�y$�zҧ�J�U���ٷo��?�_�.庹�Iu���O-�ْ$S��9=z�����o��o�k�<#�����{i �2M���� ½_�������AZҍ���`�� �};��GEWq��EP���0j_��/��k��]�v�L�-�`�S������d��W��h�\�4�i�n�K34 I'�'��ZG���?¾��y�([M:��[�����H�X�P��*����]/�?��U���l��kҿ����X���:�I��[�0XZ�]J1HUw)�#ڧ����� ��R/��Uu*�X`�2�S�6�&�4�#O;�%X��𐨠�*0:ϩ�~����k��~W�(����k��~W�+�W{�c[��Ö�����{Kh��ൈb8cX�{�[��'�C��i�u������>�����S���켟'�v�V��<�ۻ�q���O}I��ME(��Sʫ�� ̟��md[h�����ޛ�g��W���d������+�d������+�� _R��N[�f���G��ƿ��0����k�����k��~W�)�i�R��,��b�]�)ڣ�t��h��ש˵��UU���,g��wE2a��Z����k��~W�(����k��~W�*}����&�����������Q������>�����T�zZ��ES�d�����p���?�/��z�X��(�yvv�J6ؔnS�:S?�t�����ߕ�� n���&�T����O�]��DqJ������s�׏p{WT����(UQ����O�'M���}���_��'M���}���_��t�� R��>]_�n�/�������u�>"O˫H�Nձ���5=9�㞹�����켟'�v�V��<�ۻ�q����7������¯��3_�FQ�jގߡ�e��uJ�.�I�4�r"G,~�#�}w�A��p@�8�P����W�d������+�d������+�2���҅jt/� ^����������`���cתɧ�K�̳�}�wD�j��qҙ������>�����Q:W{���r�K��<���ޙ���8 �������ɸd��=H��ֽ[�'M���}���_�&�a��������}zR�;=�[�x��y����!�������B5��\L�Gij�n���F��c,����q�^��e����6��r�bRI��M����k��~W�(t��q����E��k+8t�(m-�lP�EO_z��?�)��`��w_�:o�������>=>�-�]��oR��%�����O޽ɯ�N�����)'��3�+����mo�1jZ՘������W��� �p_Ad������+�d������+�F�W��̴Z��?]-���������AZ�����k��~W�*��[!H!�$'%cP�>�Uѧ�;���/���mmQ%Q]��Q@�� ```

Hopefully, this explains why we generally cannot change the styles inside of an image once it has been created.

We also cannot easily update plots based on templates to have rounded lines and we could very easily be overriding the interpolation method that the user has specifically set in their template. IMO it would be better to leave line plots as is.

yalozhkin commented 2 years ago

@sroy3 @mattseddon updated the task body with Figma specs 🔝

maxagin commented 2 years ago

Feedback

shcheklein commented 2 years ago

@maxagin @yalozhkin folks, instead of consolidating this, we keep exploding number of tools, tickets, etc. It's quite hard to get sense of what is where, what is expected, etc. Would be helpful to reduce the complexity somehow 🙏

maxagin commented 2 years ago

The multi points review or feedback better be located somewhere else, but not inside the main GitHub ticket, simply because the feedback needs to be worked out separately. And if there (in feedback) something that makes sense, after discussions it can be moved into the main ticket.

It is good if we can establish a set of tools we can use. We could see that GitHub (linear comment approach) is not a good solution for this feedback. The Figma also was not planned to be used as I wanted to include screenshots.
It is why I have shared the google docs. Maybe we could use Notion for this type of “articles”. What do you think?

@shcheklein please let me know what you have in mind. Thanks!

shcheklein commented 2 years ago

The multi points review or feedback better be located somewhere else, but not inside the main GitHub ticket,

yep, in this case it'a more like even design process, design UX discussion. Agreed that GH is not the best for this. I would move to GH updates / final stages, or product spec discussions (like we did for the experiments labeling story).

The Figma also was not planned to be used as I wanted to include screenshots

But those screenshots come from Figma primarily in this case? But even if not, I this we still could include them in Figma. And it supports non linear feedback. I would try to keep it there first. Especially when we are discussing some design proposal. In this case we could have avoided hopefully and additional doc and and an additional ticket, wdyt?

maxagin commented 2 years ago

Sure @shcheklein . Will be moving all the comments to Figma

maxagin commented 2 years ago

My comments in Figma Thank you ! @mattseddon @shcheklein @yalozhkin

yalozhkin commented 2 years ago

@sroy3 did you have time to check the specs? Please let me know if there are any questions.

sroy3 commented 2 years ago

@sroy3 did you have time to check the specs? Please let me know if there are any questions.

Everything looks good to me. I'm starting working on changing things today. We don't have static images elsewhere but in the comparison table, so that's one less thing to worry about.

maxagin commented 2 years ago

Hey, folks, I know all these discussions were a bit chaotic (we are working on improving it!) and it was easy to miss the review request. However, have you had a chance to review my questions, comments and suggestions in Figma regarding the Improve the Plots UI #1561 ticket, which includes things like:

and more. Especially major thing like:

and more. That I believe might improve certain things . Let me know when / if it’s done, would be nice before we start the implementation.

mattseddon commented 2 years ago

Should include https://github.com/iterative/vscode-dvc/issues/1254?