dupl.kit - Real time collaborative text editor!
rafrafraf (237)

repl.it? Never heard of it.

dupl.kit is where its at

(this is a repl clone im working on im not actually trying to make an official online IDE.
P.S repl pls hire me lol)

This is a live multi user text editor!

What it does:

  • multi user cursors! (credit to @marcusweinberger we worked on this together)
  • the global files can be edited by anyone live! and at the time of writing this they do not run code just yet.
  • the local files can only be seen and edited by you and can be run! they are stored in your local storage so you wont lose them logging out

How it works:

The server handles all operations made to the document while keeping it synchronised with all clients!

  • I did this by making my own operational transformations algorithm to make concurrent document edits always produce the same result

  • An operational transformation takes a document (you can think of it a string) plus a position within that document and either modifies the document at that position or skips to a new position. That’s it!

  • The client sends the keyboard input as operations to the server like this:

'[{"op": "skip", "count": 40}, {"op": "delete", "count": 47}]'

coming soon:

  • the py, html, js and css files will actually run in your browser!
  • live chat just like repls is in the works!

try opening it on two tabs side by side to see it working :)

You are viewing a single comment. View All
firefish (516)

@Leroy01010
*q google img find "pizza"
!(i)[data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxQTEg0TEw0ODQ0NDg8PDw8NDxAPDQ8NFRUXFxURFRUYHSggGSAlHRUVITEhJSkrLi4uFx8zODMtNygtLisBCgoKDg0OGxAQGzMlICYwLzgtKzEyLi0yMC4tLi0tLS8rKy0yLS0vMjIrMC0tLS8vLjAtLS0tLSstLS0tLSstLf/AABEIAOEA4QMBIgACEQEDEQH/xAAbAAACAgMBAAAAAAAAAAAAAAAFBgMEAAIHAf/EAEMQAAECBAMGAwUFBwMEAgMAAAIBAwAEERIFISIGEzEyQUJRUmEjYnGBoRRykbHBBxUzgrLR4ZLw8UNTosLS4iRjc//EABoBAAIDAQEAAAAAAAAAAAAAAAMEAAECBQb/xAAxEQABBAAEAwYHAQEAAwAAAAABAAIDEQQSITFBUXETImGBkfAUMqGxwdHhBUIzUvH/2gAMAwEAAhEDEQA/AOmjhUTjhQwmDt6bOl5kvvDF2V2vKZQtyH8xRzfiBlzJ4YF+bLSIzjzYvA0ijzDd92DuJYq0y3cSjbThCLMil1zlyndnFieeZmB3CJa6Q8xQOHEvNjS+CcmwEbQ060PmI+6tbOYyzNK7bpISLSUE5ttUW0AEiKOWTMhMYc6JpyXcw8pfGH7ZzFFfS5VtIhgmcv7p0KVkhZH326tWs4y83zqhD5W7oDTjRHmCrd4QTbxkpd94H13olqAy/ppAjC9qQR94jQbSLR92E8U1w1a476hN4aUgfINtCApJfC3iURRstXcXLDPIYAQp7REKKkrtqCmAoHMVummmGmcxERC73YZw7WEEhxSeJmkOj2hD/wBytL0GNVwMOkKU/tAZGStuWj4RewnaU1tQrYB8ewPLDa0cC7IHCkaXBkSK0xgFeELe0+3L0s4PsxJou6sF8E23bfQVUbYa7UgXeiX+H8Fjmz59FiqeDOj0uhnaxltesW/tTa9RiDEeKo4cjcJEdkzTiBRWdlEXiNsP88bYARlbaMVpUGHhuBRISggxGtIRh8Vzx3Cq8IoTGFKnbHUnMFBeCQMnMAVeEFEzVjsnLmTmHqkQOynpD5NYKadl0UHMLpxSCh4OywQRukR2SXyxCUlD4eFCqRQfwenCLtS0kHJknC6IDbNOpfisOhYX6RqeC1ThF2paSqn4l/qWPLi85fisM7+BqnSKh4OvhEtXaBWl4l/qWMgz+6l8sZEUTjPyD1KugJD7sW8HnAaaNB0ldDFtLL0CncUJjsmqnpHV/wCMeewkxawh9A8F2X4pjJgTsd0YxzFU3YU5oTTxIxMXBUrxKGBcLQUuecuHywVwPZtJnNGxBkeUrf4kFjY6R1hEk/1GAZWtQfaHa4Hpewg1kMa7KTDgNgtYPTv7M3CUfaAQCV1tNVsTs4G2FQ3wio9pQw95ZWfQnZK4YdoDy5Jd2mm1d4839UJrjxDVFuH70NOLna5bzWlBg8GamhaWltvN70LOlZdu4rpNzMHdGiD/ALPpK91HCQrB1auWDG0u2Bm6bLNogGki8xRdaxNoDalG0tMytuHtGn+Ito1h7d7RMjvbtbpJqIvvQeOUZSToPuud8O90hIGY8VzRs394VoGdxf8ATEi/KDDyvMiJqy7b3aFjpeGuMMjUUCztLT/aCiTsu4OpxinluGM/DxSm7RTNI3/mx75LjuPPNuNNLUjIu3m1Rcwab+zS5CTF28Lu5s4fJ7B5UUMxAbi1DCLj2K3BYAXf+sZlzREVt1RYi2Vp/KKbOTgncheaGTEbG27+0eaFXYNhC5tLo/8AlHQmZBCURMEIC5vLFsgY+64/RAnmkYuZY7tKTg2gpWFpixgBG2IqBkP9MMm1Owgql8uiAXk7S/tAdnB5hoRubKg81uqMTROjFV+Vy5Huc7MURlNo3UUq6reaGGQx9l1MjG7uGEKVdq4SW6e6KQvIMwQppu/qgTpnRtJGqYww7WQMPFdXEhLylET0mJdIUWScFKiZRtNY0+KCqKOmBRf6THGnaFdGTAPGrTaLzWCovLpgXM4W4PS6D+Bz2+bEl5uowSUEWOrHM6rBsLmvibdHdIRytOKWxu2wkOL8iJdIFzGD05YYbMOKAYjwQV2URU4QNckPSDbrJDxSIFVIKDeyHVIL9g9IyDFEjItRabYY5QgGlqc1xQGl8aRwSFsLnYaJvDpd1sXHHwO0biG5I92eWVTUIpd0jh5Q2g+rXQMHbEubqFQwLZxyYtV9LWhLl80dJlJUGxERGgikQNkKgKjpEo2enRQKqvxjqRlkbS4+qXLLNNCp4tjW6W0Q3p06co/GOeTchMvm6dLbtUN2KzQCiODQiOFed2kcqKIlo3DUh8tY5eInMzspHTl19F2cKBEzujXiSl5jDC3tr50K7mKJMZemJdaMgLoW8R7YL7XABI0YqNdN3vViBkCb4Lfdp8w2wN7A1wEjQeR/iYYHysJjNcwuau4q+joOoik6JXaUVfyhnl5p6YRXNw8JdbgMfzhjZbRpbxQL7vDTGYvjp0tR9C06hAEG35ww+VjmZa1CvDYWWGTMCKO+6XnZ9+21BOg9sBn8QJFzQrv/AGgo5PEndEf2ZX1Failt3NGIgAdQAuhJIY2Et9EVa2yQmgbW7e22wRlBFARTQRu5vnC1h0s2y9vX21dERK0RG7V5oJpjDcxcg6fdLmisQbAI1C5kTQSQRVp0wsJUbS3wCXbqGL7mMo2ZKBm6I+XljniYeYoJbty3zW3RZkp8huROXywASlh7jaPPVGZgw+w51p5w/bC9wgdBWvL1GLb+0jKoY39vNTTCHKTTjjiAjdxKVqWw5jJyssNZhy8+4V5R+UOxT4h3KuJKUxOCw8bqo2dmjVKc1Ru5xMwuuu+ML07PNq5eOoh5oY9qNopZwVbaa0+a2gwB2ZEFUhUEK4uMJzERtcXa9Ffwzc7JA3IeSY8LxYLObV70QYi+RItEj3GZBpgL63aeA+aF5jFXFIAFRbLylqhQYE5i4bDmmTiomuAGpPBNGCzDrVq8vuw4yGLCeS6T8sJTLUy6iKLNqDxKGXZaZBkT36gL3avHT6QbBidsgBIa03vt5IONjjc0mrcOA380xLGtIG4jjyEi7tP5i0jA1+cddbJBNGlaHeF5ipHUdNFnyNNnwXNZhJC3M7QeKYHWEXikBZ7B0Vajpi3gOJ75q5UtIdJfKL6xpr+LSgvjolrglb90uR7DNbHsb7Z6H2TFxHBsQAkK5RESu0lDRhGFg4JOtOEADp90ihcxTZdGjNtl4DFC5i03eNIu4ZLvMIKK/a0XTtIoVkbEdCfL9p3D4KRh7RpK6NsxvguR3kEcirFuYBXFMU0j5oUsJxw1QgNCr2+9SGeTco2JuXgB8od0Zy1HkdsPH3oiPzZ89ankq0/JEtgCYkQ9IDTeAKly+aGtZQh1NqhAQ6SLmH5xA2wYN0eMTMiIht8sZERskj9eRU7bQAFcqFUPEJaXeMvs9+oeHBK2x03GpZp9r2BiByxWkI8xCnEY5ntzhx70XWbtOoe0t50pB+Xk30Ro9YzDoCLoBqH+dYZEkTY8ruPr5KOkLZGuB22/NjohWK4pZc2g2fe5oAFO3LDDtJh+9RBVLXx7hgMzIJXdIoj5igXZMaLtdoTZm3SGvzYpxWGnYh9bXSMEsc5bh7YHPfs4dJFMHry5rC03QwYLIkrYN7tQJvSQkNuqKkDcuhSEuILjlRl+caBoloGobeWOW4zLFLmJitwkSkJDy/djp7GAq4e5USO7m8ojHm1myzSoDYCOobbfeTwgGGjfGSTshS4iNo7x1U2x2LiTICdpFaNw/GL2J4ZKvoSgYg6Nw1Be71jTZvDN3ITUu2gk6IrqHmuJMs/ThHP8Clphq9TQrbtd12k/jD8jmiMZRYI0SWGe+SbM014+/qjjzT2HEkxVqYTUNg8w17oV5/F5mYUzIHLHCIuQrfxpHT8Lw1ZhGkvFP+7kK3N+kG8emxlgaFGRJrS3ypaI8M/SMxMD4yToAU87FvjeBQc8+Wn29FwqVYcdW1AIi8ojHS9n9jkAQJXCEyG62nLlGESsGZNttLLulcKiPLXwXpBaRxWttEJfu6oQmfldleNPf41WpBI8Z2n3+EqY/srNOu0vAWB1CRV1fLxgCezTzDwqS3r22+WH7bHa7cezBm90aVPKxC8qeKwiv7SvvZlQfuog/WCz5mtysOm3vxQ8PgnvIldodxz9ORTLL7TEqWmtrdtpCGnhA/EXwuE23CL3V5hhLmsQtuQdPvCtsUUxF1FoJKZFyiWeroMRsT3ton1/a6QdFGdBXOk/rjSFxu08B7YpzE6RERXkN2m0SXl9fGF8ZtURELSfdcNur4Rq5itIA3C0bC25sY1K6VsjioiqtLpu1DDehRw7DnSUxcraY8I61s/iaPtCveOkxhqF/wDwd1xcW0F5e3ZGKx7EdYyGMyTXN5tvMVUSIR5RLlEl7o3xVyo2pbbb4d36Q8yGHsmDncYjor/VCuUwGsXAT2ZEK6bdSRym9oGtky6HkfHiPHfdd2ORjyWtGrear7HzzNT+1IIgPK6RcpJ+ixvtTteiEJMhv2W9IW/wypxzgLtS2AykwoIYlcFL+0VXm9YX8LxhZf7IxNJdKkSuiY9zJ/2WOjHU0RbyPHwSGJOWa+JHl1Hiuq7GbYrNISFLbgG9NxElt3liljU29vBUjQQ7C8ufLFXZdmWeMhlTUGgInbTX5ZekWsewUlbNVO5bSoIwWZ4EYB2vglcPGC4h+hVf7YJKPK6acunTd5oOSGINyoERqJmWo+7Usc/wGXfAXVVkyIi7vKkTTzb9l6tnu7ra2rbdCYe2OYubZI26J9uEY8W478OK3xKcKYdMxSwCcLV7sSyGDy4irr00QHfoEfT06wU2V2TJwN9MGQS5DcgCWo/CvhFTanZJDs3N+ZW0Jbit80YfnJzOOh+3OuSYdLGT2TTt7q+aYmnUtBwVuErdXLdBfDMTaVHSKwBDTqpClOyiosu2Z2NNWjaRW6qdY2GVZ3g0XenzJbqEacCWMw1FZB8q4rm42drRlI1/CN7Q4u4IkjJNNIY5ukWsR8yJ6wo7O4kpuvJV0xaDnNVLUvhWGP8Ac5PKdfLqMtLYj6wDZRpoZtoHBInBMhMRtEiRKdYNmcY81GuHv+Lkuzvt1bI3+zt4ifxRSUiEjARG7lFE6fjDeu6QTBLCEbt6hUtCueqEn9mjO7WaUtZbptSMuUSSqW/T6QOmH3Z2amFYVBbdFBIrrbRHuKnHrlDrHhkbeJNgJ+HDl+h0AaCUz4bijIKYMGhkRXFbVBy7UrG+NYg26ooW9BRHUNt4kK0rw4xz2SkDV/dC4Re0tvGqCVFpdDLiz7UuNu8WamCHLlRAJPhnCXaynNlrLy29Ko2V0vh2Bwuy47b31PBA8WmkErWSMpe5LhJbXLuPKsFMGxNWqlW3uES8yQrPTZIe8M0IyG3hdFWUxTePEnQQL65LARncAeS6EcPcyv4+/si1m+R5xxxBuIiW7uJVrl+MLU22SXWLcPl5Sg8k2CNq2vEiHUWm2IJt2XBsyR0d6JDpuC0/GicUp6xtriDoLR5pGN7p8kmvmSLnBvYh9tZoTcpRoSIbuXecEr9YHTLSuqaNmglapAJd1OI/Gkb4C2g2qQiQ9w+YoceLjNbrlveA/LwXRMRBiaQgUQErdJig6S+MKTuzD3OKXAPrqL4Rk/iW5L2SW3Dd7ufhDThmKXNA4KXCWkw8pJxpCWWSJthUHNJpLUm0qLSlsNezkyrTgr2OaT/SPHpBovaIZCfcMSSEtRfNChkOcVuqc3Qgp234+MZC9UvNHkPfE+CR7HxVDCdom2lBUUjtq2fdbdwr4LWI3sCmL3XDflqkW83TZFdnmg+FYVsJ2GWYMm251GhIrj3qrctO4RTIl68Uif8AaRiLsm5JSrMy6cuw0F511G8OSGaJ8Iaw8A7OrsXpw1VvxMrZu83KePHRMk7s27MSxq6hkZEAiFUutRcypCvtbsm+LUqyPtSYQya91tV5K+kQObVTQi17a4NJCYf0rD7hG1TRy1CO94ecbL3LetEWlV+cW0ZdBoBrfj08VU+d7gePIcly7CXX5N0Bc0E55V/EY7hJAyTIGD1xOBlcV30jme0jso+5Rk+YeZwSRwC6lYsMmxcorYEu8J8AEly5RyhcyNungZjpx35hHdFIWh2wHT0KZZqfZlmxJwdN1v8AMvjC3M7eMKhhRBES0pxu+lIHY3PI6qNuLoI0vESt0pnxgG/INkpFuRARG0BFbf8AX4wKEh0eWqBHptyTDYAHW7UrqL2OsjLsoC3iScw8olALGJl0BBwFsMuUvKMLuGz26AURBdt7S/phjDaxl0AaUNwZWjR0bh+SxiTtc+Y8AKr39VOzDNhepuygU1ie8B1HUJ0yHvy/5hawJpwnhBp42CdMRtHlzWkPybHG+dwOIMt5z5rkXlFE4pGkrs6yw5Yy+c1OOEQhaKA22XWvHglYeYO7mcND016c0CV8byWDU/bryU20u0G5b+zM2lLgG7My1OGaUqVeudarCEDxmhc2rltHt49Y6s7sc0DZG8+QoKIRWoPT1KtYWP3kLZkbMsBAIkILM2kX/wDRUSiV9IueQRkdrpyG+nQKsM0OaRFrW52+6vfs5orM2D52GYgOorbhoqZfjFDEkKX3MrIqoCJXOzRd1crVKlF48IoHOuKtVW4rruCW3LnwiRmaIizuvu026SIvLlC4xwIADUyP80ZrzeVaaIJtBJTEsgEb1yFq0laQ5wuliap1/wDsUMX7Q2n1daR4CACbuG7SV1aXKn4Qp/ulaww2NtWRS2MW5oyu1P0UM5ipLVEWnrBLZvDTcuIKVEeW62IXMEPSQgJD3Xf1Uhhw15ZcHdCulag1bAiQRXtrTKNyaR20JR+LlfKGN0VOb2VItbs0IpzWiikX41yhfxjDkFRFsuX/AMv1gwozD8w0Si6w1dqcJLRFunLReKeMWsWwVU9q0Q0D+KA5jx5wSvDhl0gUcjm1bh0Fae/FXPbQSQSP/b9+HiNEmTDZoiW1G343fjB3CFTdCR3adJCWkrukVJqRcO1RdIVIraQbw7DUFu01utuuMvXwTrDMr6bRpLMp0nFC5ifUipbdBTAJ5xq8S0gZXDcPdwiaWlbGnVFQuLSQlS7jVSDx6ZwHxVwk1ItunhC7qPcamKPzFN8viCKZUW5eUtXdBSVfW7LujnOCTlpDXlItX/yh8lSRFury2kPvQhiMNkkB4FF7XMw80Y3hRkXP3oPkGPYN8Kzn9P6k+1dyS3JOkB11IJEt1vNmlLkp8YW8fnQNXRJkvtDZ23lVRIU9eMdVl3JUW33G2FdCXEr3prQ3vOjaCiVVc06dY5/OzoOPUTdMGqEYjT2eq5Cz+SrnG4mvZ81HlV/euv7RP9R7ZGhzWkUdz4g8P36LnyzboLQU0lUt12wc2ZxYnHRFAFrSWvt4Ut+OcM+GSEu6suK2EQluydG0Gyb461XKtMvGGYJTCQSjbgiQmJEo74bnM6Ch0oqZLwhtxbI05QL53X09lAge5oaTfpaQG5JxT0tPOPCdwm0JmQ+BUROFYfcNxicNsGXpJ4B5VmG5d0b/AL6UyX4RewyecdEwkLGtd7rvhlRL0VKolEy8Y1x3HXBNkEcMnwEd7osHStFKi6h4Lllxz8IXppjOckD08gb9a04J+nvkprRe/E+tD0tBnpBxXTTcIQFpIyQkIST1+EFH8MAlABESIokk5yd3hKw1vAUizQd40Q+qpkn1WCrJu33OYa6Ct97Ddbvxoixhkehq/T3w8FqYua7WvXXzB1Q6T2LU1z06vHthjXBpNlsEdaZdINV7oCRXfPhFnAsUZdv3ZlenM26NjgfL+0ANpD3k2DColXyARUtQqK+npmvyhj/xRB7RmJNDlx8vX1SdyTSmN5LQNTw96Gwt8Ux1HxKXltOnIhyG1O1ESBGx+HLIzDrj5E+brW7ZrotzUjohLnXTmnhDFhIyUs662hosyPOqgqfyj0SleFYFYuH2p01vNAru2EonGicPBPFVXKi+CxiWR7KcXDPyGtD3p5okMcbiWAEMq7PHl++gKv4zjaElD5R/6XvdKrCuogRXEt1xXeEFsE2YV41Vx25hrJVCo7w/KKr08Vp1SnjHr2yBOOnuTAJcStudNVK5ONERM+KQpLhsTiBn9Bp69PpyT0WIwuHJjzV9unX2ShT+6ppAUL5xPhsoTYlMqoMNgJCBuCSkTiplu0qlS458EzgwWDycuibyYN53wC2l3wTgnxWFDazHkdKgIoAmkbjMy+q0RPRKRTMIYTmebPAA8fGtum/G0WOcT92MGuJI+gve9tuoQbaWdJ1blJL17ypqLp+UUsFlHjEnFZM2vOKX2/JM0gPihE4YAC6rtPbqSGHAn37htF6Xeaca3qe1Bsq1TeH8Uuz/ADhsARx2T4/n6pfFNDpe54JiRyXbaShG5Mf9qz2ZVyXPpFWSVttKOuOtNEVxWAZiJZaeNEWiotFWtM6RExjMwQutmiSkuLooQkI25qSnmSayzREToiR49jYIANtBeIiQncVb3FTwXh4xhwB+Y6chx6+xa5vxzWA9m3vA/M6iR0FafjkmLDcOlZpbWJ0SIR1tEBC995EVaKnqlUiWe2GIdbL9xpwE0tu8RqnRfCkJeAOLvCc/hG3qAh0kLyeH1y6pksOO0e2ToK0AMiJGwDhEVxCLhVq3WqJlTrDDIIC2y3U9f2qZjsTL3S6+oH1SbPYfY+AGCS+rPeIVqdLkVOnwgBjCviZUHegRFaoXW29KU/WGTEcaKaGwwQJtgd40QpptrQhqvRcsl/SNMLxzNAelaKIiRbse3zUSA1k0AvrugyMki70f0vT1989bJSWHZi+u5O0S7hO36pBWZbAhJbzaeG0vsr4KJFXwqmUdKlcQbVR3LbRl3FWwhy/OFXb3CydcB9LbwAW3Rbu5VVbS+XD5pFtnD3URSqDFuc7K7ikgiTiOm3mHuEoasEnqNCpcxf0/pACYwxFG5RITHmIeU/j4L6w2YRgu8ZAwMdQjpIf1iYp7cg13KeYDeyz9+D6xkefuV3/t/lGQDOPZUyhFZnEX3W1ZFCNreb3dtinMicxr4UTrCHjeGTKvVcB2WaO1qpIqVbHPKmS8VWleseyu1LrRErI7zeDadyFaQ+VKLXj+UMWHKUw3WxNQiRtDqupnlBmiWDUi9N+XQJmfs5u4DQu+p6q8xicqy200N4KJINxECXFl9PSHTD9i25swmHho2QJpG4CdLzrwWn55RztvYQpohVi0Covsn1IbxTJSAlTp1zjtrJOS8kyJ2uzTbDTPs62nMUQMlXpXqtIYw7GuGd23StR90niZHAiNlWTW/uveip4WLTYOy8iIidxGRkpbsVVaKVVqqqnBOmUQNyMrLkKun9pmiu4681XoGfwqtYimm1lJVA3iDMzDm7MxLlNUI0Gq/wC84W5dwWgNVL2pXai/iZ0S5V4r1zWKfLkDc41rbgPCuaNDhy/MInHLdX/07xveuQ9UyYvtnu2yUWCQhK0RdoAlnTKla9eHhAgv2gKiVJhbiG4bVqMBZpRe3S33rfvHSc0iLYCtAr6+PisQ7QggNsoi3BmREI+yEl4fDivHjX0hd2MkJ+bf3/8AUcf52HHdLfujMltCxMuITrZyj4EO7eErHPu3Dkqei+MMsrL1mUmDMCFiVKh8tzlaXKnTJY447MeOaf8AjDLs9iiusTMuZlbu7RIi1AK5cetPX4QaKUl3eGu/mOaXxGFyDuHSqrkDvX659Vewp7ePOvEokJE4I+9UqqSKvygxijqiIIKa362B/wDpTimXmWgov3vGBGAS6q8jCCQi1aRFbqt4qXpXpBmXIHsVtRPZSbQkI9t4IiD+BH9IXjj7R5k5kD9/S0aWYMOnAX5Db1P6Ta1L7iXBtF1COte5SXMi/GAWDMk7eN5WXkVt3jxrBnFp8ADUowOwOUtS9FW1wrrfjHTkAsNGw+y4zHmi47nirZ7OtU4DC/PbFyxLU9Ij5TUPy4wWxPFHBJERQFoiEb/KSrRKqvCIMbmiFETnuEuUu7JEBEpnWq/hCE2LYAcrduenom4o5gR3t+RSyOE4Qg7xbLeYTJXumS1VM0WtUp6fCKO0OOym43bAK6jZcog7pJOCXFwT1ResX58WWv4lhGVSASFCtLzfhlCA3grrrz5oVjBOEqLzEVVrbanTOkLMl7W8+la/y/vVA7Issc1gQm758PHkPPZeT8w/MKJFba1baAV3Y1HMvlRKquecRJLWiS11BUh973vzhswfBSBVBF0ODqyLT4/BaJBWZwYVaRs2mSaEiJDFHRMS8qqh8Pl9Y2Z47yXXgk2f52IDqcBr4g/spT2XYV8htQitMryrptSlB+MMGKLa5QwuQgt963NP1g6+w1ItMrLtiO9tJRK5y4V4ktc/qkDZqYCYdQVAmjtWl3d4fCGJZWgZeiNFg5GtzgWNfpvpukPGWUZmUcsIdVxAJXDd1FapnVMsvSLr2IIC6kuadHSQ81q06p8OC+MEtpsNUBuIeW0T0kQkPwTqiJADDW0fAmhW029QXeX/AJ/P0iBoe0NcjZheb1UyOJzNm7fqISE0Hgv1+HpEknOO1UTcMycES1ZFb+qVTp4RB9mUCtJbfdtu/CvSqrDXhWCNurKvIY3N3XjyiFaoo/HovwgcmVgoKnwRuskKo7NEQC0doiPKKiKCIr8uMXJZQQRRq63K26nhmOXrE2N4f7S5E7t4Xdd8vhSJpUW1W6224StDyl/aFJAJWrOHDoTq6wh15x7Fn7UPikZAvh2pjt3JK2M2OOaU3FVJeXac3ZvOjpuTsFO8s+CcOq+PRMO2UlGRMRcmnztOhVBtsSVFoVBzy40VYTJfb8VEE+wgSNigAG8UWxzogg0iLxXrmqqsV126eoaMyrMqTmkjFTMh+CLREWOrKZie60eev8H18Sua+Zzh3XeVfn9aJg2bcGWnxJ8wlmGhc9rcgNkKVQePGq0ySH3HtpZRUYbdmHZe9wHgvlnxF0WzQtKkCIqVRM/hHNNl3EaLemG+MrRM36Hp6ileVM+HpBnHsQXFDYlWW9Yu3E7fa3kioupPBKr9ErBY7a0sUcC6nbV9K9/07rbH8dA7BV8Xf/yHnStPxogZrypanXxhfmcUBTK4HbR6tmBXfjT81g/tFsq2ywiu4g0cw0I2tiFjjlckoSlVaalVacII7KYMswyD4NyjDJXbp1BucdotFJKJklUVOPSBPZZpzbPXy6DzpMQ/6EjBVaIPIyW9Fotw+jY1IrwQCd8MqqiBlxWlekBMb2leFwhBwN13AIgTf3apxhw2o2Xn3hUWplh1oR/gtkTThfG7JfmqRyfFJE2iNt0DadHmFzSX/HrwgbIKNuH5+qBicZJKe/6LoWy7ATjZqcqy60BAJbsd1MtEteBDRSTLgv14QSXZ1lhTsV0d6NtxEhiIotfT84ESos4VIFNhNXzGIS0rbLjTdgR0NM61JUEl8MqxNgG1pOHa6gHvOBUt00rw65ZwSaJzWjJoff8AFIsQR3Xmx5/lP+zrzJX2WE+7beXnolEoteidPjFXDsBWVcmX3HhdN8tOXKNVJc/VafhAvEZnc2Fu7RPUBjS27jkqcPGK0xjiuqJuGRII225iPTpw6ZwI4xrGgPbqPLdGETnE5XaHz24Knj8i/iDlgmbEqIlc6XK6S8BBKopU68E9cqQaPBJolBftYiDYi2AjeGmiItUquaxEc8aNtPIYiyRkKCPNai5l9FiV7apto7HTEeUgPtJteBV4fqkY7WUjM4aHhpx48Tr40EYMqgzUj30+itu4Hpo4ZGgjpS60bvMteKwPxMFRkGhuIiS0ULm8U/BFjJjbhmmh8T0+KaYFNY+245vagVlbRu5a0/FafrCUzs9AWGjw+37q+vBmPtP+vJVMQZO1kXhIjbK0D7iFc1El9FpSLki2iZZabtReaJMaxVpxsLVEjF1PLpFUJIpyFVPTVdN1o6rYM0WLTcNCLXQ3qmHDWhRSWg6tOn+0SYmigleYdN33YFSOJgiqvcBWkJcwlBbEJoRbO7Uv8MU8xEuX5xz5Yndpmvl+aWXNcHg7gqjKT4faWXnDAGmrWwuMbiqNuSeiwV24xBtpjTbvi1BpG4aLW70+MJk3Lq0l12YlbYQ6ba9FXJen4/hXn3ERKIiITpXEPlGqafhlHTincGFp4n02tV8K2WZr7+VGdo3DmZeg2iVokt1o/wC/8Rz823JZ25UVogK3UlrZiqVtrRUXinWGV+etLLk5SHttVFX9YoTxi9bVC0jou5baVur8okcz2OIdqDxSnYN1yq5L4m3MN0PnG24u0eCXIvxonSDuzEvRDrY6BCJB23e8qZ09PhCAy2rakQHb2lwtLOqjTgsOeA7TN03ZoLRkOm3VfxqKeGScF8YPO5r2aj9oQje3bZGJhxKEqKnLdd5RpCpN4graEILr83lFf1ifFcV5gBLRL/Vb6wOkmd4VFgGGiIGZ3ulmVw2CHWr6x7Dd+6BjIezoC57guDOzLtWU3DQjcZj2iiW5V4qv6rHQZbZxtUQjb3pEWrSiF0S6vVesODOBAwNAC0S5uHL8Ity0mg0UTut91NNYXnJLrPDlv68fx4IjKaNOKUcWlmGGSFWDIT0+zRLs+Oa+CQvYBhkwzNMuMgO65RMtFrK8aItEVaR1GZkhIc0QxH5xSZklJaAiX3dRGlPXwSOa7EywyCPUk7fihzvSwU03s3N5KnNbJMTDgPTClMKNpbolHdlTO1UTilelfxhgfTdiiJaACIiLQJQB9KUolIGYqbjBUAgvQUtIUoK5cPxrARjFVIVR3Qt1wl8c1FUWq09Y2/EG3MI1B2vauWv868MNgun3offvj0TOeKAAmWm0RuIvdT4QoYi9JYq2YHqNoiEHhS11qvcKr09FyWGhJBl1iqLYdpFpXm/lXJYWJjC5eVI3BtF1yg6dXHjTwz6rDTJywAh29VW2vghGNriRyXM8e2fMABonEdVhSsPtJtFJEHPl025dOET7Fk62bRcv2V3x5hplRfpBQQVx8hcvJkXR1fFeWvquUNuE7MmoEbiiF5C5YI8tBRED6cYdErnnKR4pWSMCipcOnRxFhZYkNgGyK4mvZOAScN2vimfpxhMx/DZiSd3avnNS5amnXCLT7ppWiL+f0RwbJJVCRU0kXd6qvjAzEZu3Iw3rTuku62i+C8F4LA3zMd3Tv7/FJmPDyRjMDolOcxp8SAFMrSAdImYtk35U+qVSJcQeSYbctCw2CRwGhVS0qgoQ1LNchRfiipFnHWyR2VZFkdzYpNEKdtakNSzFa0XjnWKUxJm0YENHd4K3iN2kV4iv5/8AEFw9VlqrCabxtZIoICKOCZFbyiIkNpIuqvp+kUXH7VqN4j72mOhYQy28yCbvlHuEbvxgTi2zymQo3qUSuEfh+UZdSGJO8tMMlt5VDW3RvLR5ioqUFPXOHDB2t2BuXoAtjpz5izRa/LrAHBJcQA1NUJ4tIe4NKrT1Xx/OPZmqJSwjuIdN2kfeVKoiwvALscf2mpXFzaVSffELHu4v4vG20izrXqi5U9Fi65No4oKjlWhEbV8pImUD8SELDQuQhtIRqVxUolPn+ULkrMqNwFxArS7eHpBJsO0AELeGlslrvfNMuJ4ySoWd9paCcK60s+Ff1gTIqrh1VfvF7sD5maHOq18BGLOGkRcdKe7AhGBwW5Z2sGVmiY5SXE1WqaSL/CflBJzDmhSigOn/AEwMw8EHl0jqIrvMsXHZiiZrpgTqOoXMt21qN9ltLtCCP3UhVmhTfXiP8MRs+95oJT86paU5Yo2weFtd5Ye7SlGleuqC2Egt1dNsDwbrBzCGc4YKEjNYyJ91GQNRWCxt51KC2LQuc51JVtReVFyjV9S0opOEXNdvVG2mf6Rs0FO39IqM4k2Txtq5Qm+ZD0jbw0r1Tp+MeelxM2IedyBy5eS7oDGaNAARSSNRRbiJUIe4tUEJLGQCoWWkZc3MtvWOfbSTQg6RNqR7y4itXTdROvHKNMJnSIwU1K5vlz7lSi/SC4eN8WWYO4cheu4H73QZImyXmXQ8TUDQRRFJS03Lp9bqwMclQtFSQSIR3d3w7vj/AHime0VmhW1Ptttt6V4wMfxhXFVG77fLanz4eEMTta9maP5ue3ksxxOGh2TGa1FVS5BbHgNdQ+XLOsKO0kyqtugGshCoj/1RJeBKnFP8Q1YNKOINxEJ3qhBYnbTmX1gdtvJHbvhQd8I6T5Stqlfj84VwzMjrPAjXhZ5+fJQlpOUJRl5gGmHQG83briOwU9otF8aqtYI4dtsYkLb1BS7UY+VeBKnXpHuzWG3JcdCuK63/AB0i/O4WCLxQiu5aIWn4frDcmKjbIWkm+p38tPoidg3+V7pS49MC+bQAt4uahIaEPFOqekW5jCworZJcOrm7vehYxDDVaUSAiJnuC5fZ9cvBIYJOedtBSUbdNh3ctO06+ka7djxn9+9uKyWkNDRwQLEmzbQE0m0JeyIq3CSdq+se4biDZ+zQBA++8dVyZQRmp4kUt+Ablz9V5lgRiOz5o5eyikNt2lfj/iHYpWvaKKVkiI3R/C2U9qBLdc2Wobbenh1hVxCfJtXQu0tUGzPlqupE6fD09YxydmZds1RsVVoriVwURwK8KLkqoioqrXpXwhYYnTdeJSIamJX6k/1KidIKxkhlc4/Ly8Qh2A0C9UaDGkW4R09381Fp4wRYxauRXez8vdw8fyhHBbSpX/dYJS79Vygrm0bbxWo3k6FMhTe8zS8i7RH0Tm8E8Kqv6QLm8Nq6CEuow7e0kXqlMssvksbybBqpIKld587bfh4wwyMkLaZaiLmItRF8VjU0oAy8UM3mtCWMDHyQWl5FASLbr9qVK0RgPO4rdkMIucXaNU8SVccmBBKqsCpmcI/dGIlFVzVbonZl1LpBGRAalYc/koGw8Iuy8opQRkcKXjSGKQwunSCFyGl+XwxYO4dIUg0zh6eEWm5akZsqrVL7MkZBPdRkVSloHjkmRDu2iVsaazHnqnanhCwOzKGlzg6huEN5XeE2KrSvxXP8INObQoikukdPL25xSPG0XgoxxS6SMVGK6afb8rrNbfzftU5bZ9UHXzXF66arT6UitMtqyJFUxtIeW27j0VYLLjgp5YFYlNb1QFNVxpGWGVz+/wAd0TNTTSJMuUDgJd1xaiz8V6xRddqlEtAxHmbqOqmdIIzLFU09sDGh1UVIHG6xmRnVwRfAZ6YbG0bSaANRFzXKtUp4ZZfWKm0O0aOJaN29tt90S+HpFiamqNCAqge8PNnxhYdbEVzXmL84MwiQ67cAL636oAAGta80dww0EBTlgdiUwN1V8wr7PSVydyxDv6pSv+mPHnk+97tI3GwteXHijPdYUj004q6VuEtPu/4i/h7pIlpadWoR5fT6QPl2x1IQ2Fd3adUXUNASqKhL5i5fwjElVQCxnU01KXoSCv8AIXKX0ikzNTUutGg37Q9jlC0+VC4pArEtoXG1FFUNJLy6SL6LFctqSW7JKF71xDwS3pl1h3DYaUNsUUpNM0aO2TM5tNKzAWTMtMSpkPc0aj4XIaJw+KJCW5OMjevmIhC1E1D04elPhFl3aUul3L3avxii5h5PGB7uy4tOi0bVzTNOOcdMNcPn06G/wEm17Qe6gSprIi5iJS/tBfDRVUyTSRf74xZZ2eG+rr4CN2q24y+7aKfnBptkBSxlshG4bnXB1F7yDwT51jb33Qbr9vfRRpDTZKJYYKWZ6UHT+ESPzwAuURhJ5VuIy8xF/ukRLLe7CpjLjZKmdUp2ZJxfKMRsMeCQVl8KUoOyGEInFI2KaFgm0BlMKIuMMEjhKJBdmRpF5iXpFXapVpaRTwgmzL0iVlqLAjFhqwSoxCNrYlpHlI3SpRWxkS2xkSlVrmCuMLcm+EhK24b7hKlaVT5rECsS/Q0/GApYHnyx45glLUp/vpChhbzTnauRZWpfzp/qiSSJpL7VAS6FeJakgMGAe7Hv7h9yJ2LSN1O1cjSTTleIF90o8efVc0GAv7h9yMXBfSBjBRrfxLt6Vx0zXiP1iNUX0/mWK/7kXwKI3MF8R5Y18M0cffqr+JdyVoHUTL2f8qpFafQjSiGAeoqMaM4LXsiyOCL5I02ANNg/RQ4gkUQggyro/wDVHmuuJ264olYcc1XPNj/Nd9Eg0OCL4RYawBV6QwTmGteiCHEbfdLDku2qkpOmZF5At/ONRkWuCA7/ADKI/lDiOzy+WNxwNfLFhxGgJQzRNlLGHyDSGKmzcN2q5VKHeVRFIVRBtHlioOBqvSGHBsLUeMTdUSoZnBRcAiEBE/dgE5K25KmYx0iXlqQNxfBriuFPvRpDvVK8hL1SL44d7sGcPwqnSLwyEYorWYINLSVO2CLMpF9uVpFgWosMKrMqjcvFkWYnEI3QIIGUsFyhRuPbYmVI1VI1Sq1GsYiRsqRlIytLykexkZEWaSuGBpWsRhgqKpLT/aV/zDgTHRIwZdIEYTaL2qVUwRPCN0wVPCGncx5ukjXYUs9qUsLgSeWNUwFPCGpWo9FmJ2OqnaGkqFgKeEVpzBUsOiaiG0fnlDoTUV35ZFtT3vyjL4jwWmyJYYwQacIshgw+WGFJdEjdGo0ITWqoyIAGDD4RO3hiJ0g1u4yyN9kFjOUJXDkpwjP3anhBW2NrYvswqzFCgw9PCJglESL1I9pGsgCq1Ajce7uJoyLpRRi3HqBG8eJEpRaIPpG1sbRkRUFpSNo8SMWKVrVY1JI2WMiioFrSPI3iMjRM1itFa3jyKP20fFIyMZwrpF14x6MZGQwFhbR4nFY8jI0N1S9j2MjIy1QrwojXjGRkZcrC2j2PIyNql7GRkZEVBaLHkZGRQVr2PI9jIoq1keRkZEUXkZGRkUosWPVjIyKKtZGqxkZFqLVY8SMjIpReFAvFOkZGQJy2EEjIyMga0v/Z]