Skip to content

Instantly share code, notes, and snippets.

@djamshed
Created June 15, 2017 02:14
Show Gist options
  • Save djamshed/146c2ac1fbb8368b88224e81aab0dd25 to your computer and use it in GitHub Desktop.
Save djamshed/146c2ac1fbb8368b88224e81aab0dd25 to your computer and use it in GitHub Desktop.
Zoom Transitions
license: gpl-3.0

This example demonstrates smooth zoom transitions using d3-zoom. Every 2.5 seconds, a point is randomly selected, and the transform to position the selected point at the center of the viewport is computed:

function transform() {
  return d3.zoomIdentity
      .translate(width / 2, height / 2)
      .scale(8)
      .translate(-point[0], -point[1]);
}

Then, transition.call is used to invoke zoom.transform with the new transform, initiating a smooth zoom transition from the current transform.

forked from mbostock's block: Zoom Transitions

forked from anonymous's block: Zoom Transitions

<!DOCTYPE html>
<meta charset="utf-8">
<canvas width="960" height="500"></canvas>
<script src="https://d3js.org/d3.v4.min.js"></script>
<script>
var canvas = d3.select("canvas"),
context = canvas.node().getContext("2d"),
width = canvas.property("width"),
height = canvas.property("height"),
radius = 2.5;
var points = d3.range(1000).map(phyllotaxis(10)),
point = points.pop();
var zoom = d3.zoom()
.on("zoom", zoomed);
canvas
.call(zoom.transform, transform)
.call(transition);
function zoomed() {
context.save();
context.clearRect(0, 0, width, height);
context.translate(d3.event.transform.x, d3.event.transform.y);
context.scale(d3.event.transform.k, d3.event.transform.k);
drawPoints();
context.restore();
}
function drawPoints() {
context.beginPath();
points.forEach(drawPoint);
context.fillStyle = "#000";
context.fill();
context.beginPath();
drawPoint(point);
context.fillStyle = "#f00";
context.fill();
context.stroke();
}
function drawPoint(point) {
context.moveTo(point[0] + radius, point[1]);
context.arc(point[0], point[1], radius, 0, 2 * Math.PI);
}
function transform() {
return d3.zoomIdentity
.translate(width / 2, height / 2)
.scale(8)
.translate(-point[0], -point[1]);
}
function transition(canvas) {
var n = points.length,
i = Math.random() * n | 0,
c = points[i]; // Pick a random point.
points[i] = points[n - 1];
points[n - 1] = point;
point = c;
canvas.transition()
.delay(500)
.duration(3000)
.call(zoom.transform, transform)
.on("end", function() { canvas.call(transition); });
}
function phyllotaxis(radius) {
var theta = Math.PI * (3 - Math.sqrt(5));
return function(i) {
var r = radius * Math.sqrt(i), a = theta * i;
return [
width / 2 + r * Math.cos(a),
height / 2 + r * Math.sin(a)
];
};
}
</script>
�PNG

IHDR���|�;
�iCCPICC ProfileH���T���̤Z � �#��k(ҫ��@%�@P�+�
���,E\�"kAD��(v� ���.l�� ������;��w�w����o��{��\a ���lQ��'#6.��� ��@���z��T3׿��mt4���S�����<7)��r"7����)4�s��l.��]�-���(+��Q.�b�4���i��>&2� �(l���w4�����: ʖ._��-ʮ�6:��22�N�!�����o5�5�l�������,a:{����[��9tР���ç�C׬6mi����Cf�ϝ�i�S��Q3���a.�;p��iQ3��>��fEΰhi��� }~��~K�IY>3���e�pnJd� ����pVZD��/i^$���,�cF�lo��\�)���=�J��&y�H�(�xa����0=t��t?i>+'B�l6��f8�:['T�>��p���O�+�T�B��d3<�S��` 8f kK+{����'}K�~� ���\f;�h�7�c�p�)���9�7�v���^�X�3���� H@(� t�0��8w�@�q`1���D`Xփ|Pv�=��A-8N�p\��u� � ����Ax�
� H ҇L!k� �B>P�A @bh�*���R���~�NC��Pt�F�7�g�)�"��sa&�‘�"�g¹p� .�+�p3|���<����m�a"^H�$#"d R�#�H҆t!7 ����ah����Da8�L��VL)�ӌ���� b�0߰T�:��eac�<�2l>�[�m�^�`���q8g�s����p��������F\;�7����*xS� >��g�����G�����a�G��E�&�� �B1����0B� ���N�"�����XEl#� 'H�$C� )��JZO*!5�.��ޒ�d�#9��'�#������ɟ(
�e!EL�F���S�Q�R�T�;5��M�F��^�>�~���XȰd�2ke�d�e�e^�e�e=d���˞��!�R�(g �%ǖ[#W&wZ�ܸ<M�J>D>C~�������

>
\�<��
�hM��E��6Ҫh�hÊ8ECE�b�b��1��1%%[�h��JeJg�$t�n@g�����'���h��4g˜�9�s>(�)�+')(7*(Va������TiQy��Q5Q S]�z@���K5E5g5�Z�� ��갺�z��J�������~B�}5^j�5�5S5wk��բi�j�vk��z�Pbx0�%�NƘ�����X�B�G{B�P'Jg�N��#]�.S7Yw�n��^��*�z���D}�~��^�.��1� Z �*� s � Q�܌2�*�n㌙�i���{M`;��2�����)�t�i����L`Vivǜb�a�c^o>hA���`�b�j�����;�v��fig�nYe��J�*�j�U��kk�u��-����Z�V�׶��I�l�����6�u�}�w��7؏:�9$8�;�a*2C�[�W����k�8~r�w�v:�����s���g� �%ͫ�7���v�p��2\\�Jܴ��n�nO�uݹ���#��G=^yZz�<�<?x9y��j�F��� �{||�|J}����|�}����V���c��w��ai�8�:�X�C���@J`D`i�� � QP[0�+��|����-! ��+�Q�ahf�/a��а����V�»"hK"�D����� �(J�-�0�.�C�wLQ�$vn����q�q���x||t|u���{ /�[����"�E�]]��8}��%�K�KN&`b�$|a��+�㉬���1�g/�ם��;��T�4��\�������MqK)Ny����_���L���V�6��ޘA�H�8-P� :�j.]��Oh*�J2�2�d��E�YP֢��lE��t���?�s\s�r>.�^vr��r���&+������i%f%ge�*�U�W ��X]�Z���c��ڼ�����ծ'�O[��� E�m��ؖ���.o����e�E�w69o:�����g�͖}[�p �Z~���z�G�K~�ܖ��g���;p;;n�t�Y[$_�[4�+xW�n�����,�s�ض��^�^�^IIPI�>�};�})M)(�,k,W/�R�a?w�� 5�|��n�_Es�Ae�a���O����~b�TW�Z]X��FP#� ���s��;�~d{=\/�=��h�1�c� � ���������~�}"�D�I�ɆS��ʛhM�P�汖�Ik\k���m�mM�X�RsF�L�Y���ϑ�坛<�{~�]�����Pǒ�c/�� ��x��e���<��_q�r����ט�Z��_o��n���צ���7Z{{������w�p����[�[���ݎ�}���;��ܻ���{}?��ău� �=*~����7��%����ރ�O"�<� ��=��/�yO�O�G�F�Y?;3�;��|����/�������ѫS���=;6�Z�z��ַ*ok�پ��>��ć��*k?1?u}��<2�� �K�W�m��=�̘��E��VANN�M �8�;�@�����M����O���B�K�;Q�B=�4�Q���)K�`i�CY�6�ӵ(���~��|�� ����ɉ���_��f�О9�ŧ�C�P�c��[s �W��"L�BOY�iTXtXML:com.adobe.xmp<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 5.4.0">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:exif="http://ns.adobe.com/exif/1.0/">
<exif:PixelXDimension>960</exif:PixelXDimension>
<exif:PixelYDimension>500</exif:PixelYDimension>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>
��2�PLTE ////0000????@@@@OOOOPPP____```oooopppp�����������������������������������������������!�}�0�IDATx��}ۂ��v�4&��X.,:�A�����\Z ��j
�^c<�E�5�cғC@3���$zZ��� m��!n���\��z�O�A~gH^Ǯ8�ߏ<�0��T�5�b^�S��/�[7{>���X�s � ���dEEw�����ԧ������� ����.�:�N��x9��� ���]�Z��� �q���)|�xj���׼����"������@�]�F����Q����@̬ ��}�`�sަoZ3���܄�����Ȣz��h��L������{�&3�=ꑬ?b��, �v'��S�'��y���s&�\lb��&��8��!wǝ!�_H�~%����#��u�]�s����/�.���22?��6{�����ʸs���.�Eſ�]���B�����Z[����8XJҩ��n��˿ �I�$���g�,J����t�֖DE!�r,;v�Ieꁷ��|>���ރ`�]&�&�S�vck�ǽ���J�=$"�;�4�&�B���4�#�{��h�W��j�u��~M��A���`�sEZ|�[ &VDI��c��ڞ��M��shY��Ւ�.���W�(�$��"oެ�~��+ �I  ��
O^젷�����`# @v�c;�l$ƥ�t�����������9���;t�۪j�*i�X �D�� �
@`CC�[R~Cb��O�@7l"f}�������e�f��:��F������fa �*/ ��q ,�=򪖡�
L:< X"B7��ͳ������K�G���'^�y�1���H���,��{?G��k�Ilv���x>���u-��.�����E:�6�CuX�cU�y9��B����c�~��ulBu�8�������9=�ZM��X��lM����0�� <�Z96�������Z?�+UK`�v�M��L ��S���x>"`9D���_���Wgn�T���y<����@�p,� �Lyb�X����
�u�m ��=%pw…���2=U���u�Vx8�Qn$47:�����b���!'y��� �O{�G� t ������#'y��뭟|�(=z��������� �A�e���H$����e ]�' �|�/��"L|\]���|�Gܘ4A�c`hG�F�t�^2�X'�x%eHD9R� ~EB�\ڜ��p�X������GS��BN� ��x�箌)���ULQ�yn�y�B8�xZ�sS���ӝ�MVowQ�qW5R-�����q�OyM�R�$ӑÚ�*d�-^�n���^�y�眮Ϻ�)�u��;�@s���Zpj4ς�_H5I1=�-�o�:�=Y�H���C� l�$S�-6��9|�S�
)�PW-��A�_�u�����n�Ԏ���̢e 0l � ~�(n�[f!���A�B+u���s���:^{��h拚l%�~�1��b���������Se��=
Z�q��<��Rww�����i1�ɮ_h��r��~�ym��6c��0.��1��k�b����8T�i�|�ji���Xi�{yO��l ���(��y�0eo�Ws(]3t·�=,R��z�^B8�J*1=f��($DD��Wr9���"�@�GL8��U��f�a�RK��}сm���g�� d� ���ú���v�|,㤨]�J`u_�܎��H(*v�)��:�a����h�|T���@ΈȁL��h�@nx������Y�"Cxەa�\��Y�"Cx}��|.>NB��M<v�_7#{�l��a�}%�sbQTX���|�GX�-��$+n�� �����!9B��:�o^�Ω)��`��{W�yYkI��D�EH�ͥja~!�c8e/�^�K:���e����xO����pՅ�dkW�[��!l:R��^_�k����?�
�����7h5�oo�
��]�ǏZ�b �Fo��Qh��j��UE��o���������5�H2�0k �j����������]�@`� \Z0m
��F �c��zw�–��'��m��7�p���8.�p���J�0]��r���3��Y%�j�-�QD���=�NUF� VldtT�p�#Ui :��/;�N�"����Lz�3�
����c/�� /uED�]�?�"pv,�1)o��X�U-��]�|!�F�-���z4��ޔh�;] j�`��C�0��6�@�y�_�r�BGx�c��Ĉ��~>�KdW}u��#x-�-�
����5���"�V8�ii��m ���tx���WkQ�/A7�J�K� �#��g�*���k=,@o��Hm/��?Ix?c���������p&l_�yԎ`�כn�d��oa��ˇ}Zn�����'l
�mOnA`��w5�\:�����lw�'�]�\Y���kJ����yL�^�"qvl�E �yL��\4� ���7T�l�-�_��
�B��@��:� ��̝W輁|$po���ˏ���R?����t� �48�$pkA�p��W�_ˮ�M ��h�����ѱ5����c���+&�w��ψ�2�~�f��ԕ�0��U�Fx��72ha�2�A}��a� 2���8��4�@�x�64�V�����~��DD������ 0��pfx�C*��=�r�a��?Q��S����G�\l����k� k����6�l�օ?l�L��� y�>v��o�o�mE�ݙ���lM�F{��>����uu���쳈()T���Ջ{ˍc���� ���Ƕ+{ �T�5<juo����'���/5�*(2�L`E`�R%>2>���M���/��b�^͔a����rt�t�v���
�/���>�( ���!'�� �_!;::1���8�F��5��1v�����`.��S�8��!�+���"��A�%s���U�57כٷ̾�u`���0F�d]���F�eJ��t}��Ӑ�O ��CgX��0_.�>t� �5��a� +??U�ކ�Rw�R��l����5S~~�w�u�:��Ec�>���H r�Xk��jϧ�� �)����k��0�8�� ���k�������o����xS��/̅��Fg@�t�$,��=��0� ���6�� s��a��Td&a'�EX&�q�
�s1ԝ�ܞ@;��M5� ||}=�d���.jj���w���1S�XF����g��{���Յ;ƫ2xA��X�M��*�: M��Q���O����wY��* � ���u�_��_vcʻ��;��vs�J{�ƹ���<�kh����p��OwiսQMFD����.t$c��MA�=�Y�ѱw{��#��Jd/&�Y�m��2F�uF6�w�]�~����FM@������@��ٝ��Z�`���N�f'z��{g>j�;��S��㣾?`�x�c��T��F�Z�(����E,4��#�s�2�
g���A �sLv=����w�ԣ�|�ah��w���!@�$ � �gM6�� ��+�'�|Z��J"��E��6���1FݣNh
�����ed����, M��(����d+X�kgb�+���x�Q��g�*G�X2VdU�����s����q G�UT(1�J����%�~�$p��^8��H@`I�X�f��:������A;D��m�Y�ơ9�w�O�k�!G�A��C�ӽ��Fj��|�P�u��� ;��CN�\�S�j��a\�T�늈� �n�Y0�9�G>cg�����;�J�{���'���]����7���k��n �C����_�n1Ͽ:�x9��k
ֳC!bxx�e(("������Hh�nD�� x�u����T�Cu�X��f妑lv@`�Z�))��\�#1�7�&���f ��Gnx�h���c�^�a~ӝ������6�`�HsිFlީ��᫇�MDqT�?�ab�w�*B/�>� � ���NN�T���W�-��4�����n�9>�:�,�*Z��wj�4�V�7�����`P�^dn��[3i{Q�08��ld��osh.�f7��^4oO�Ї���kh\q���� k�� u�����qN-E��FE������`/����Z?��w,#��Dϰ@��Po���A`��V=8�j(7:R=Yi(��z~iEVd;M���7S�?��O*�9I���-%0st�� ~���h�<hF����j�[��[�m��?\zk!�S�:
����S���ز ��U��n��P�"Je8��N[!d��Z���r&d>:n lB��|�r/��6��Q"B l��w!�&�Z��:aJD�� m���:_[�"�7ޯ�U�ިoRg�&�`"�N�>T�v 6dz�~}���88���7�xJ���ok2d�!��gSO�yEK ��)�㐌H��T���ٰ`d���x8�t/�0��zܯ�e��yX��i��z#!
�J��.g <k#�����7n���^�*�o]ą�b �7`��V��{�M+�� 8I��%�KL�����Q:F�)����UgE�����,�j #p��˖�,����ڭ�8E��Wb�� c��l��V�{)׶�-�SUMb���GW�Y�o`dJK��jL��;�X-6ay�]5F8������������c��>;0�y�w�A����`�� ����\�1"���⥿sT����c�[ԭt�u��5��Ձ���?��W� x�v~�i�������ۊc����YD��2��[$�[P�S�X�7�ܥLh��Ea�/���n�Bag�'�xO��$��cC�W닜=��@`Q�h�tΖ��W^6�<���}���;�r����q`�_w\�m�4li�Z�S ���gH���(�m �z
��=��|�$����u�zi�:�����4M�Lz۳o�D i,c�0�A`��
on�s5~u�j�kY@��;�T���>{G� �h�U�!<8��M�`�ɯЦ�WV�Q�bR�s{-#�sl.�E� ��-~�j��EUn�!k)l�es'w ��H� �W�–̻�a�,���v��n�||�_uD2�A��O�����!�0A�=�.:� ���.ÿ�����A`�qb�߰08�M�M�?^�'���:�o��� �8]����$��p��SR="��Q͜z��\�_��{99�B"
��zܭP�e����TIp����acOC]�׻8��[I���dl!��s���ok�x3f� �&8�Ӎw���ߐ��#/0�a��[JD���!#"
�566 Q���� ��~/zU�������i�#�� �MM#l|�^-1z�O�����P��d~wG~e6*��t�x�a�.fj�Y[�7�0 i��C��.�e ��f��{(����ѿ����!<#p�z�͖�ڳ2�$Ŕ�H�� ���F`� �a.4�8��a�����S+�n7 ��� �h���"�dq��f����0� �8|���'�dd`��+0� �z,�S�w��[�Ѱ�|�!������A���"���[{�q�?����. J� ������Mp��9<���j����H�θ:�t �����B
�iA`�:���)�_V�AU8L����$��Ь $��V8qZI��X�"��爼L��������b��` �;�#�b1p��1�:��C��A?��ޱ c�!w��jak�} p_����~��z ���0kx��;=D��1���|>ݶ24���4weLa���h4Y@Q����%�_�"J.2M��!Q\�۶@�z��.�T�^����
[��v�� ��Z��KO�WW�%�C0�=�$xe��4i�~ńWj��m�eⶲ�a3T!�1`�&]�<��}�?��~~��ᠯ��vG�������& =h7%^9- ޵��O��C����L�-����/��xgM�ψ��}�v{C��í+�C>|FN�M����h�±���tT!v-�^�ގ��n�(u����@0>T�����y���c:v� 'Z��n�RO��TW�����㡑�2�M�c�-=��NM Lf^�S*k��?T�����_����R"�)Q?5���U��&e(c�07����V ج̨�?&�k�*;$���+��g�`:�Us��fZ�d� .��V� ED����U��#�4Z��p<�| �Z���/ {�L�j�e)�P��I�e0, �\����ٳ�uc���L�ʇ9WI<�kr�w�KDD��5�Wׂ� ����-k��T�F`NG�q7{�0X� ��͙̝+���uy��E]�s��1�7 @� ѩؕ��W8��t 5@`�>4*szy�\A����0�lHM~�pT'+W=˲��s����̊���M�g�����Qa�1փ/�v,q��b�c�OyzC%�Bo�3{W#��) �h��)��H��.٥A� �=f��[o��X�p\=C����p�����&���5�ؔ�c�4��6\��y�5�+�dr.W������z�z��e#Ɋ)�9 츰��ۢ@ XO୪w���g>Ȟ>x�����L�W�x@��(�{koo�F�z��X�/���Zq�5�0�aa��~�4��ڙ,�F�Ѡ�j��?���ܲc)��~N�%�*/�*������ U:��
{�w���Z�� m�͢O1��u�7\ ��1�C(e(2��y9���΀�gE՚��J�D���sp.*���+��\ � �i&v��V��� 9�a�}�й�-EW���<��f�I�a�|�
;������I�*����@�>ݯyz�O 0 ������6�'a9"�&��"��6����������>�W;���Y/�ۃA���D�z�1�2��ȧ�lW%��A�"�:o��H�S9�� Z2� 2���{RqQ�|���(c����uh��l2��~�e�耆�I����4?ny�aI �Ao��w,;�D޻E��Q���a�˒�]χ�_�0?s}�fZB;���%_���k�NX^w_A��Z�_uX�����j����-žn����������\kG�p���l�ﱧ[,*�E�f7��y�R�~,3=K�^��?_�>�>M0�L�͖����К�E�sl�g(���@JF��\�h[)��0�k�%���Cv��Ȭ� � k �(.��Y.��"��@�i%@x��1�<�=+
f�GC��F�s����>�S���5%�N9`"���荁�ӝ�ՙ�0�"��F�b�}�����W���w't�*�s���C�� �;��8�W��
@;�7�yo8���i�����Vc��)�MɀY^��k=��'p�߇�����8:۾̾r�?����N��4�
� �%c��ߨS"��b8<_g&ϻ*�2�k�{�2�1�˒O��(���~>�"��"1�: � K�mU�y�Ak��P�Dq)�b��m�h��,���,�Ȇ)���E��?�@X�;�V�Rlw�O�K�I�M�<:;� �qK,*�J/���T�cq~�5���Sn$��a�ch�6Q��zn��#�NM7�{'@`aVK୭'
~�zؤ��r��R4ǘL��S��s ��)D�zm����yf�F��f�M������Z���)A nT�wu���T� ���MpQt�?�o�� 2�������9��M��H�J��h�/y��HRP�8��m
T����|���[#��Y�Ƒ�ۨ �W|]�����ˤ&�ʼn�j�Αtה�k� �
�Ą`u�7ŤT��Q�BT4 6G2/ �r�E�ozOe�Z�up&��;�:qw�f������ҵk���0�7I�� p�4���I��O�l�1ؿu6��@��׏�w��x��V���i,�>%B���g�2� ��3Į ����ա�|��=��i��b��W.�&\�Ub�2�
Ŀ���ڥ`���|���% ���/���x����wGm��>�`(��^t��C}��O\�a�م��xo&��P���|�H� ���3Պ� �ReIQ 1�ײ�@`1(����V��H�K�՝[a�p��v�J�e�5�y� !� A`�腭��lY��{,Vs��AuX$a�w��PE ���R@`?S'J�����Bɬ�2���:�}���E�A��-����ZB,�K���cߠ��7}���a��@�0Xbq ܪ��{�^���|�V:Q;�Ӧ���iY�x:=��}����tTZ�Q�B�߻�*=p6ua >�H/�O��h�o�_���=ۋ���{����U�3���:m��R?-��)%0g��/c�����7 QV���Cr�&ȵN��j��7^��[�A�S)��\��6��_\m�,)ؑ�`cB4�8Tj��^��̜��n�yI�l�EwJT !�K�雋��ӽ�)�k�E`�zͺW���3�� n�$D�E�ym�,�0�/r�X"��ͥ!
˿ ����/2� v��c��|9$����_���ؓ-!ҨB"AY����������ox�"�~G�ѰhO{ ���"ӎ�v���?���?�������gs\i�o�*�j�c�c��^��3�N�w'GO���
���˲ ��d�3��/��?�7��ܑ�'�ߦDh8yR�x�o�_��EDQ�yGf����P6#��V�w���|�i�m�K�ZĿ&X�Y��Ԝ!�]��p*��M�.����`��_��8_bQ���߿���$��ϱc ���p�˘(.զY�G}��L{"�s����q���_���Z!}o��OUD���_��_�N.���������-���O�������_&��kJq����T뜬E�KW���^F��2Ξ� 0� ��.��^�\4���Y��ԝ]�<~�7�S,�G��Q����c�i��9��B��,�2уV�C��8qo�[��#5S�V��T�Z�F�����K��N�R�6�T�i~5�n�m!���p'_~�Ȧ��i�ʥ��T/q1Ǽx'5y1L��Ґ"_����)��w��r��2S����dg�;���,0B򬃹˜��������:U���o�TA`)��Rs���DYֽ�k�'�D�6�(l�PO�F‰��t�T^�sfF�|��ژ<������{'ʸ�hߨ�ꋈ()Ƨ�^Jb��A���%.��4_��ȋ
�!�#W��U��M�!(����lk YKHu�u}S�ށ�@%G�_������Fִ��-ϯwȗM�� OdX{���:�ڲ��o?�&�(�f/�˜0�
����B��읙)p���nI�� �G����]^t@D ���[.C����>c^��9N�.����`�B ��<0V\��{5e�q���׻o�BBT�&�Y0S<�y���U6vB->僛��U��eHv��%i X#o���A.=z��� �)d�ar������3"�� ��n�6R�ɶ�\� d��m�\۹�ԣ�n��M �r�����߹�>�2t�e��ь�!]o��D�Ռ֕y[J2���<��4.k�\�͘��y�1��Ur ���X�1Q3�����o�J���Ho�<�(��2��;�D�s���G�'l!u���!e��Ƚ������#S��� �E�$�
��������\�?0b@p?�͔����=m�$����^�8�7�"������Cw���Ͻ&���2�9j�j�RZ�y�C�����}�*�Lr颼x���7�Z�ʶt��ۮ5lN�b�3�Wo\��ە.��D��6�_9��ٻ��[ �7o�"�f46��,�j�r⟐��]�u�m7�� �/�K$��d�X�:nYq|Q�H��s"�k�&��s'ְ8с�k���.��8>�|�J�m�vK�\j����?����w&��XD��l��;&e+��-��H���L(��Ͼ�\���"��D�{]~������b�_�@��6�2��2��o<X%@��gD�������%#|$�����5G�[��f�{ND�u�&!�dH%z��'_���c0��ֺ%KCo؁���E��On��G�o��B�q$7ܒԲn�i���U�曩y�Ɖ��u$oŞg <�y��d�vno Z}41�Bl��"K�FC�u���\��t��D��Z��4 �9Ћ�Y�;J�\~S�Գ^9���=`�~���� A`�1���F[_���۷%C�g|ܯ7�e�����Yl��7tv�2�p��\���m$sq������/N�����ꮄ��Z�hw������
�U�eIO�V�&���[0��ЄA��Y�3�&R���1���[��΍0 �e5a3g� �z�b <����V"r\>{��S.��������m��vߟ[g�,K��>��t�fN=묉N(��OI�\_����
2�z����S���0����B� ;S�G�lmb���x�a5�M�zWB'�M�K`aƶ\���%aN&�K�1�Y��؈B�o5�3V�y�SDz�5���d�|iF���U�>G`Q9��a:�h�3� ��mZա���B����;b�О|La��o���695/����.Y��i�)1"�b��e�G�Q��^æ�O�Ș�������<
?H�3��G=˲�!�U�آ7��ũw��\c����
�o�����Ϧ$֦��Y�����M���$\�����^ �P���i�: A.,I����.�ﱱI3y|y��l�} =��E��̎���a/�����A. Nl�v�*�2w��m(�J6���|�a�/�%_�)���CAD�����8�Sm �״��ZyeСG{��Z�=@�5Je���4<�����Z=n+���:�������w�^b�Z$� �eeK�p�T����� ?nu �-<r��
w�0����)A_���V���
<��
�N�])��>Z��p��qv������_`��h���<�xT����zU f�"��LR�mM�R(�5wګ�n`"Ng&iu%;�OʚF�H�L[De��XX
c:3I��@�z���r1�F9�bD�Fs&������ g���&!����#/[�(���3In��ڵ<�{�S����8C�G]��_�Mg��Fbڕt�^]~9^��x�<��E$6�~,&p� �P<���~�����̟x�6*��_�
$!�xz�Oɽ�[�b������"����"A�-�ngU1.��� -T�9~���G��ˣ]�r!|@�W�$���IX��!�/A �D��|-~;��'%����ί~ގv
?]qf����?�g��>F�0��_���� ����P��j��f�L���(������~�`Z`��]"�.�z�������zK��y�� �(��[x�#692�� �����]�X��f����^q�n�dЅ_�@�73= �ju�l��;��B��>�3\�N��v�&�K�k��Eh��\�@� ����x�35�$�4��g�:o����w�!01K���C:-�.��kOѺ��B^ � �&� ��b�{q2��#���,Ե �;�6�cY� ��z���>H��PDD���6�z8��ϘW���~���vӃ~ڪ-�� Eh��՝�h� ��.cl�7���9��� �uҙ��3@�S���}� ����3@`Nt�)�+�2�� }�mp��ĴG��Dǯ[�xq���e�Z�XdU�|���`Z*�d��$4X�HL��M�:�曻[�5f�A`k0v-����[�k< � <aO�w�}���xVx��D�"�
�W�/� <�����7�P����>�)ToP���J@�׫N���"3l&�����˺�����5�˼ȿA`T���JS;��K{]O*��>ޡ$"J;�j ��&�t�̢�Z{�(&���I���+�|~s=ӽ�i<�,&�j� �LNlf�5O��z¸�����fz �K�����^�c�+=g�����,����f�e��c�sJ��2=
9v�f�GY-�e �ޓ�$�_�uw�8�0N�†�韅��H>�*���^�漖��V����4e�#7��r�~x �i�az2�n���EG�:q��g�␒�z���m2� ��k�p�; �p�*1����h������ђG�"�-m��DN�Mx�N_�D�픩!��{]�x�=ٯmi�>?�R�O<Ģ�׍pr��[�Վ�A�U� &�g�����0'"�9N�T��׿�(s!�o��r��a��8n�DY|��%�<T�󇌋]�jL�*S�|nu+�Є������I*���.���V���z�(2����;�/�b��6 8x�+Dx8a[Z3K���E��U���?�証����ӂ�d�}=IEND�B`�
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment