<snapdata remixID="9427540"><project name="Website Thingy 2.0 (FIXED REQUEST SPAM)" app="Snap! 6, https://snap.berkeley.edu" version="1"><notes>UP&#xD;   Scroll page Up 1 unit.&#xD;&#xD;Down &#xD;   Scroll page Down 1 unit.&#xD;&#xD;Left &#xD;   Scroll page up 10 units.&#xD;&#xD;Right&#xD;   Scroll page down 10 units.&#xD;&#xD;ScrlWhl Up&#xD;   Scroll page up 5 units.&#xD;&#xD;ScrlWhl Down&#xD;   Scroll page down 5 units.&#xD;&#xD;Enter&#xD;   Search for a page (Enter the url.)&#xD;&#xD;+&#xD;   Text size up by 1 unit.&#xD;&#xD;-&#xD;   Text size down by 1 unit. </notes><thumbnail>data:image/png;base64,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</thumbnail><stage name="Stage" width="600" height="800" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlgAAAMgCAYAAAD/YBzEAAAgAElEQVR4Xu3d3XrcqpIAUO+7ef+nzV3m02RIiIKkwiA1iDU33sfuRrAKxzX8VP/35f8IECBAgAABAgS6CvzXtbWssf/5+u/nj6+ft7V/V7+1S4AAAQIECBBoFfgvT4TSf29fU8MpSapNmEqv338vPSdPxErfOxrk0TO21+f9zv/3WVt3vO6qL60GrRPA+wkQIECAAIH+AocJ1j6xOkuwvpNMHSV20YTuKDHZ3p8nipH2Sn0pUZ+97qqN6Hiv2uk/BbRIgAABAgQI9BbokmBdJSPp50fJQyRBu3rGVVIVTRB7vu5qvNGkq3fQtUeAAAECBAjcK/CxLcLoatDZ8EtbjvkK1vbeyJZjdNWo5nXbs69W0yRY905urRMgQIAAgU8JnK5gRROKq9Wl0gpWnvykZOTodUc431khuurr1VmzlLDt+3zVx2gy1WL+qUnkuQQIECBAgMDfAl22CKNbfFcJUUq6orcPr1awoslKj9ddjU2C5VePAAECBAisI/B/ZRT2qzJHyUDOcpUERZKu/fZd3o98hehoVamUYJVWwyIrZKWtxKMxRFavjtqL9i/yjHWmqZESIECAAIG5BG6rU3W11TYXk94SIECAAAECBOICEqy4lVcSIECAAAECBEICf20RXm37bS1GtuVKrwv1xosIECBAgAABAi8QKB5yPxvX1WHu9F5bhC+YHYZAgAABAgQIfEugKsEqHUo/qpQuwfpWPLyJAAECBAgQeIHAZaHRbYxnn+tXui1ni/AFM8MQCBAgQIAAgW8LhFew0oqULcJvW3sjAQIECBAgsIhAVYKVm5Q+kiY/JG+LcJEZZJgECBAgQIDAPwJuEZoUBAgQIECAAIHOAupgdQbVHAECBAgQIEBAgmUOECBAgAABAgQ6C3TbItz65QxW5+hojgABAgQIEJhSIHzIPY2u5oOXI5Xhp1TTaQIECBAgQIDAiUBVglVT88otQvOOAAECBAgQWFWgudDoBldKpiRYq04p4yZAgAABAgTCK1ilQqNn24YSLJOLAAECBAgQWFWgKsHKka4OtEuwVp1Sxk2AAAECBAh0uUVYOswuwTK5CBAgQIAAgVUF1MFaNfLGTYAAAQIECNwmIMG6jVbDBAgQIECAwKoCzVuEG1ypfIMtwlWnlHETIECAAAEC4UPuiWqfOB3dLpRgmVwECBAgQIDAqgJVCdZ+paq2dMOqyMZNgAABAgQIrCXQXGjUCtZaE8ZoCRAgQIAAgWuB8ApWKZHKtwGPtg6vu+AVBAgQIECAAIF3CVQlWPnQU+0rK1jvmhBGQ4AAAQIECLQLNN8irPkA6PbuaoEAAQIECBAgML6AOljjx0gPCRAgQIAAgckEJFiTBUx3CRAgQIAAgfEFum0RbkO9+gDo8Tn0kAABAgQIECDQLhA+5J4edXZzMO+OQqPtwdECAQIECBAgMKdAVYKl0OicQdZrAgQIECBA4FmBpkKjecKlDtazgfM0AgQIECBAYFyB8ArW2cfibMOTYI0bZD0jQIAAAQIEnhWoSrDyrm0H2lVyfzZYnkaAAAECBAjMIdDtFmF+g7C0ojUHh14SIECAAAECBNoF1MFqN9QCAQIECBAgQOAvAQmWCUGAAAECBAgQ6CzQvEV4tB2oDlbnSGmOAAECBAgQmEYgfMg9jaiUOEW/N42KjhIgQIAAAQIEGgSqEqx9odG0erV9dci9IQreSoAAAQIECLxKoKnQqATrVXPBYAgQIECAAIFOAuEVrFKh0bPio85gdYqQZggQIECAAIHpBKoSrHx0qdDo/nvpf0uwppsLOkyAAAECBAh0EnCLsBOkZggQIECAAAECSUAdLHOBAAECBAgQINBZQILVGVRzBAgQIECAAIHmLcJS6YaN1Rksk4sAAQIECBBYVSB8yD0B5YnT0X9LsFadTsZNgAABAgQIbAJVCdbRalUpobKCZYIRIECAAAECqwo0Fxo9Wq2SYK06pYybAAECBAgQCK9gnRUVtYJlIhEgQIAAAQIE/ghUJVg5XCo0mj6DcL9iZQXLNCNAgAABAgRWFXCLcNXIGzcBAgQIECBwm4A6WLfRapgAAQIECBBYVUCCtWrkjZsAAQIECBC4TcAW4W20GiZAgAABAgRWFQgfck9ACo2uOlWMmwABAgQIEIgKVCVYCo1GWb2OAAECBAgQWFlAodGVo2/sBAgQIECAwC0C4RWss0KjpZpX6mDdEi+NEiBAgAABAhMIVCVY+XiOCoym10iwJoi+LhIgQIAAAQK3CDTdIkxnslLPUtK1/W8J1i3x0igBAgQIECAwgYA6WBMESRcJECBAgACBuQQkWHPFS28JECBAgACBCQSatgjT+BxynyDSukiAAAECBAg8JhA+5H6UTB3VxnIG67EYehABAgQIECAwmEBVglWTTEmwBou07hAgQIAAAQKPCSg0+hi1BxEgQIAAAQKrCIRXsBQaXWVKGCcBAgQIECDQKlCVYOUPu6p5ZYuwNTTeT4AAAQIECMwq4BbhrJHTbwIECBAgQGBYAXWwhg2NjhEgQIAAAQKzCkiwZo2cfhMgQIAAAQLDCjRvEdaUbhhWQccIECBAgAABAh0Fwofc0zPzw+tH/7291iH3jlHSFAECBAgQIDCVQFWCtV+tkmBNFWudJUCAAAECBB4SaCo0KsF6KEoeQ4AAAQIECEwlEF7BKhUalWBNFWudJUCAAAECBB4SqEqw8j5thUYlWA9FyWMIECBAgACBqQTcIpwqXDpLgAABAgQIzCCgDtYMUdJHAgQIECBAYCoBCdZU4dJZAgQIECBAYAaBqi3CUlFRhUZnCLM+EiBAgAABAk8KVB1y3w62b527ulGYv+bJwXgWAQIECBAgQGAEgXCClXdWgjVC6PSBAAECBAgQGFWgqtDofmVKmYZRw6pfBAgQIECAwCcFmlawUsKVBpC2EPeJ2CcH6NkECBAgQIAAgacFwglWabXKCtbT4fI8AgQIECBAYAYBtwhniJI+EiBAgAABAlMJqIM1Vbh0lgABAgQIEJhBQII1Q5T0kQABAgQIEJhKwBbhVOHSWQIECBAgQGAGAYfcZ4iSPhIgQIAAAQJTCYQTrHxUCo1OFWOdJUCAAAECBB4WaCo0uvXVZxE+HDGPI0CAAAECBIYXsII1fIh0kAABAgQIEJhNIJxgKTQ6W2j1lwABAgQIEPiUgFuEn5L3XAIECBAgQOC1AupgvTa0BkaAAAECBAh8SkCC9Sl5zyVAgAABAgReK9Bti3AT+vH183fClp/Zeq2egREgQIAAAQIECgJNh9zz9vYJlQTLfCNAgAABAgRWFQgnWLXJlARr1Sll3AQIECBAgEBzodGNsJRMSbBMLgIECBAgQGBVAStYq0beuAkQIECAAIHbBMIJVqnQaOqVFazb4qNhAgQIECBAYEKBLrcI89uDZ0nXhD66TIAAAQIECBCoFlAHq5rMGwgQIECAAAEC5wISLDOEAAECBAgQINBZoHmLcOvPdgZr+6rQaOfoaI4AAQIECBCYUqD5kHs64K7Q6JTx12kCBAgQIEDgBoFwgpU/e59UuUV4Q2Q0SYAAAQIECEwr0Fxo1ArWtLHXcQIECBAgQOAmgS4rWFvfbBHeFCHNEiBAgAABAtMJhBOso0KjVrCmi7kOEyBAgAABAjcLNN8iLN0gLK1o3TwOzRMgQIAAAQIEhhFQB2uYUOgIAQIECBAg8BYBCdZbImkcBAgQIECAwDAC3bYItxEpNDpMXHWEAAECBAgQ+KBA0yH3Uv2rNJazn31wvB5NgAABAgQIELhdIJxg5T1RaPT2uHgAAQIECBAgMLFAU6HR/AahOlgTzwJdJ0CAAAECBLoKNK1glVa1bBF2jY/GCBAgQIAAgQkFwglWqdDoUfHRzcEZrAlngy4TIECAAAECXQS63SLMbxBKsLrERiMECBAgQIDApALqYE0aON0mQIAAAQIExhWQYI0bGz0jQIAAAQIEJhVo3iI82g50BmvSGaHbBAgQIECAQLNA0yH39PRSMiXBao6NBggQIECAAIFJBcIJVj6+/e3B7WcOuU86A3SbAAECBAgQ6C7QVGg0bQ9KsLrHRYMECBAgQIDAxAJNK1j7j8w5WuWa2EfXCRAgQIAAAQLVAuEE66jQaP7EfJvQGazqWHgDAQIECBAg8BIBtwhfEkjDIECAAAECBMYRUAdrnFjoCQECBAgQIPASAQnWSwJpGAQIECBAgMA4As1bhNtZq204yjSME1Q9IUCAAAECBD4r0HzIPSVW+0PtDrl/NrCeToAAAQIECHxOIJxg5V2MVG6XYH0uqJ5MgAABAgQIfFagudDo1v1IwvXZYXo6AQIECBAgQOA5AStYz1l7EgECBAgQILCIQDjBOio06gzWIjPFMAkQIECAAIGwgFuEYSovJECAAAECBAjEBNTBijl5FQECBAgQIEAgLCDBClN5IQECBAgQIEAgJmCLMObkVQQIECBAgACBsIBD7mEqLyRAgAABAgQIxATCCVbeXKTulUKjsQB4FQECBAgQIPA+AYVG3xdTIyJAgAABAgQ+LNBlBSuyovXhcXo8AQIECBAgQOAxgXCCVSo0uvXyaCvQFuFjMfQgAgQIECBAYDCBpluEWxKVjydVdT9LvAYbv+4QIECAAAECBLoLqIPVnVSDBAgQIECAwOoCEqzVZ4DxEyBAgAABAt0FmrYIU28ccu8eFw0SIECAAAECEwt0OeS+jT8/f7X9b4fcJ54Vuk6AAAECBAg0CYQTrPwp++TJClZTDLyZAAECBAgQeJmAQqMvC6jhECBAgAABAp8XsIL1+RjoAQECBAgQIPAygXCCdVRodPOwRfiyWWE4BAgQIECAQJOAW4RNfN5MgAABAgQIEPhXQB0ss4IAAQIECBAg0FlAgtUZVHMECBAgQIAAgeYtwvR5hOpgmUwECBAgQIAAgV8CTYfcaw++QydAgAABAgQIrCAQTrByjJRYSbBWmCLGSIAAAQIECNQKNBUalWDVcns9AQIECBAgsIKAFawVomyMBAgQIECAwKMC4QSrtFplBevRWHkYAQIECBAgMImAW4STBEo3CRAgQIAAgXkE1MGaJ1Z6SoAAAQIECEwiIMGaJFC6SYAAAQIECMwjYItwnljpKQECBAgQIDCJgEPukwRKNwkQIECAAIF5BMIJVj4khUbnCbCeEiBAgAABAs8LKDT6vLknEiBAgAABAi8XqF7BymtfbTbpw563/84/8Hn/upc7Gh4BAgQIECBA4LdAVYJVSq5SUnX2M94ECBAgQIAAgZUEwrcI85WqfLUqfT9fvUorW/vvrQRrrAQIECBAgMC6AupgrRt7IydAgAABAgRuEpBg3QSrWQIECBAgQGBdgfAWYdr2y7cHj75ni3DdCWXkBAgQIECAwNdX+JB7fohdHSxThwABAgQIECBwLBBOsPImJFimFAECBAgQIECgMsE6ujFY2vpzi9D0IkCAAAECBAj8LVC9glXaKjxKvJRpMN0IECBAgACBFQWqEiyFRlecIsZMgAABAgQI1AqEbxEqNFpL6/UECBAgQIDAqgLqYK0aeeMmQIAAAQIEbhOQYN1Gq2ECBAgQIEBgVYHwFuEGVLoxmG8d5ofa9+e1VgU2bgIECBAgQGA9gfAh96Pbg4ns7AD8eqxGTIAAAQIECKwsEE6wcqRIMmUFa+VpZewECBAgQGBtgWKCVVNoNG0d7mteSbDWnlhGT4AAAQIEVhaoXsEqJU7R760MbewECBAgQIDAOgJVCdbRqpQEa50JY6QECBAgQIDAtUD4FuFZodHSR+LYIrzG9woCBAgQIEDgnQLqYL0zrkZFgAABAgQIfFBAgvVBfI8mQIAAAQIE3ikQ3iLchl8qNHr0fVuE75wwRkWAAAECBAhcC4QPuR8VGk3fj9TGuu6OVxAgQIAAAQIE5hcIJ1j5UPdJlVuE808EIyBAgAABAgT6CTQXGrWC1S8YWiJAgAABAgTeIVC9gnW1VZhYnMF6xwQxCgIECBAgQKBeoCrBOtsKdAarHt87CBAgQIAAgXcKhG8RnhUa3Wh8FuE7J4hRESBAgAABAvUC6mDVm3kHAQIECBAgQOBUQIJlghAgQIAAAQIEOguEtwi355YKjeZbh/k2oUPunSOlOQIECBAgQGAagfAh99LtwbMkSoI1zRzQUQIECBAgQKCzQDjByp+r0GjnKGiOAAECBAgQeJVAU6HRfMtQmYZXzQuDIUCAAAECBBoEqlewjrb+JFgNUfBWAgQIECBA4FUCVQnWWRIlwXrVvDAYAgQIECBAoEEgfItQodEGZW8lQIAAAQIElhJQB2upcBssAQIECBAg8ISABOsJZc8gQIAAAQIElhIIbxFuKqVCo+n7PotwqXljsAQIECBAgMCJQPiQe6nQaGq3dLNQoVHzjgABAgQIEFhVIJxg5UD7ZGv7mRWsVaeQcRMgQIAAAQJ7gaZCo7XbhvgJECBAgAABAisIVK9gRT+T0BbhCtPHGAkQIECAAIGSQFWCVSommjeabxNKsEw4AgQIECBAYFWB8C3Co0KjaZvQGaxVp5BxEyBAgAABAnsBdbDMCQIECBAgQIBAZwEJVmdQzREgQIAAAQIEwluEaStw+7o/a7X/3tG2IW4CBAgQIECAwAoC4UPuV7cHSwfg9+eyVgA1RgIECBAgQIBAOMHKqSKV290iNLkIECBAgACBVQWaC40ebQdKsFadUsZNgAABAgQIVK9gHSVOtghNJgIECBAgQIDAL4GqBOssiZJgmVIECBAgQIAAgf9PsNIW3/b17FD6UaHR9H2FRk0pAgQIECBAgECWYN2B4QzWHaraJECAAAECBGYQUGh0hijpIwECBAgQIDCVgEKjU4VLZwkQIECAAIEZBMKH3BUanSGc+kiAAAECBAiMIBBOsPLOKjQ6Quj0gQABAgQIEBhVQKHRUSOjXwQIECBAgMC0AtUrWJHVq03DLcJp54SOEyBAgAABAo0CVQlWNLmSYDVGxdsJECBAgACBqQXCtwhLhUaPio9KsKaeEzpPgAABAgQINAqog9UI6O0ECBAgQIAAgb2ABMucIECAAAECBAh0FghvEaZtv+1r5HMHHXLvHCnNESBAgAABAtMIhA+5lwqN1iZd06joKAECBAgQIECgQSCcYOXP2K9O1dwubOirtxIgQIAAAQIEphBQaHSKMOkkAQIECBAgMJNA9QpWdLXKGayZpoG+EiBAgAABAj0FqhKso6QpmnT17Li2CBAgQIAAAQKjCoRvEdYWFbWCNWrI9YsAAQIECBC4W0AdrLuFtU+AAAECBAgsJyDBWi7kBkyAAAECBAjcLRDeItw6krYJ80Kjpe+l1+4Lkt49GO0TIECAAAECBEYQCB9yLxUaPSo+KsEaIbT6QIAAAQIECHxKIJxg5R1MiZUE61Nh81wCBAgQIEBgZIGmQqMSrJFDq28ECBAgQIDApwSqV7DOPpNwfzbLGaxPhdVzCRAgQIAAgU8KVCVYZ59BGPl8wk8O1LMJECBAgAABAk8JhG8RHhUadYvwqVB5DgECBAgQIDCLgDpYs0RKPwkQIECAAIFpBCRY04RKRwkQIECAAIFZBMJbhGlApbNW28/2B9p9FuEsU0A/CRAgQIAAgd4C1Yfc82RKmYbe4dAeAQIECBAg8AaBqgRrG7AyDW8IuzEQIECAAAECdwooNHqnrrYJECBAgACBJQWaVrDSilaSU2h0yTlk0AQIECBAgMBOoCnBcgbLfCJAgAABAgQI/CvgFqFZQYAAAQIECBDoLKAOVmdQzREgQIAAAQIEJFjmAAECBAgQIECgs4Atws6gmiNAgAABAgQIVB1y33+ws0PuJhABAgQIECBA4F+BqgRre7tCo6YRAQIECBAgQOBcoKnQaEq4tq8+i9BUI0CAAAECBAj8ErCCZSYQIECAAAECBDoLSLA6g2qOAAECBAgQIOAWoTlAgAABAgQIEOgsoA5WZ1DNESBAgAABAgQkWOYAAQIECBAgQKCzQLctwq1f+U3CvJxD5z5rjgABAgQIECAwtEDVIfd9odF8ZPuESoI1dNx1jgABAgQIELhRoCrB2vpRSpyi37txHJomQIAAAQIECAwj0FxotCbpGmbUOkKAAAECBAgQuFHACtaNuJomQIAAAQIE1hSQYK0Zd6MmQIAAAQIEbhTocotw/zmER9uGN45D0wQIECBAgACBYQTUwRomFDpCgAABAgQIvEVAgvWWSBoHAQIECBAgMIxA8xZh2g7cvio0OkxcdYQAAQIECBD4oEDVIfdSodFUA0uh0Q9G0aMJECBAgACBoQSqEqy0WpVWqo6Sq/3rhhqxzhAgQIAAAQIEbhZoLjRqBevmCGmeAAECBAgQmE6gywpWacXKZxFONxd0mAABAgQIEOgk0JRg5YmVM1idIqIZAgQIECBAYHqB5luEpYPvpRWt6aUMgAABAgQIECAQFFAHKwjlZQQIECBAgACBqIAEKyrldQQIECBAgACBoEC3LcLteQqNBtW9jAABAgQIEHi1QNUh9/15q7Obgm4RvnreGBwBAgQIECBwIlCVYG3t5ImTQqPmFgECBAgQIEDgX4GmQqP5ipYyDaYXAQIECBAgQOCXQNMKVo4owTKlCBAgQIAAAQIdEqzSdmGCdQbLFCNAgAABAgRWFeh2izC/QbhhSrBWnVLGTYAAAQIECKiDZQ4QIECAAAECBDoLSLA6g2qOAAECBAgQINC8RXi0HWiL0OQiQIAAAQIEVhWoukVY88HOEqxVp5RxEyBAgAABAlUJVmm1qibpwk2AAAECBAgQWEGgqdBoSri2r24RrjBdjJEAAQIECBCICDStYPmonAix1xAgQIAAAQKrCTQnWDlYvorlDNZqU8l4CRAgQIAAgSTgFqG5QIAAAQIECBDoLKAOVmdQzREgQIAAAQIEJFjmAAECBAgQIECgs0DzFqEyDZ0jojkCBAgQIEBgeoGqQ+77ZCo/yL4/1O6Q+/RzwwAIECBAgACBbwpUJVjbM44SJwnWNyPgbQQIECBAgMDrBJoLjR4lXVawXjdXDIgAAQIECBAICljBCkJ5GQECBAgQIEAgKtCUYDmDFWX2OgIECBAgQGAlAbcIV4q2sRIgQIAAAQKPCKiD9QizhxAgQIAAAQIrCUiwVoq2sRIgQIAAAQKPCNgifITZQwgQIECAAIGVBKoOuSs0utLUMFYCBAgQIEDguwJVCdb2EIVGv0vtfQQIECBAgMAqAgqNrhJp4yRAgAABAgQeE+iyglVa1VLJ/bEYehABAgQIECAwmEBzghXdMhxs3LpDgAABAgQIELhNoOkWYTr0nnr34+vn77IPVrBui5mGCRAgQIAAgcEF1MEaPEC6R4AAAQIECMwnIMGaL2Z6TIAAAQIECAwu0LRFmMbmkPvgUdY9AgQIECBA4FGBqkPu+0KjW09L30vfz89kPToqDyNAgAABAgQIfFCgKsE6SpysYH0wgh5NgAABAgQIDCeg0OhwIdEhAgQIECBAYHYBK1izR1D/CRAgQIAAgeEEJFjDhUSHCBAgQIAAgdkF3CKcPYL6T4AAAQIECAwnoA7WcCHRIQIECBAgQGB2AQnW7BHUfwIECBAgQGA4geYtQnWwhoupDhEgQIAAAQIfFqg65L5PpvL6V/taWD7s+cOR9XgCBAgQIEDgYwJVCdbWy6OkSoL1sRh6MAECBAgQIDCYQFOhUStYg0VTdwgQIECAAIEhBKxgDREGnSBAgAABAgTeJCDBelM0jYUAAQIECBAYQsAtwiHCoBMECBAgQIDAmwTUwXpTNI2FAAECBAgQGEJAgjVEGHSCAAECBAgQeJPA4RbhUQHR/eAVGn3TdDAWAgQIECBAoIfAYZmGH18/fydf6b9LydXR6xQa7REebRAgQIAAAQIzCkiwZoyaPhMgQIAAAQJDC4QTrLQVmEazrVwpNDp0bHWOAAECBAgQ+JBAOME66l+eeOVbibYIPxRRjyVAgAABAgQ+LtCUYFnB+nj8dIAAAQIECBAYUMAtwgGDoksECBAgQIDA3ALqYM0dP70nQIAAAQIEBhSQYA0YFF0iQIAAAQIE5hawRTh3/PSeAAECBAgQGFDAIfcBg6JLBAgQIECAwNwCEqy546f3BAgQIECAwIAC4QSrVGh0G4/PIhwwqrpEgAABAgQIfFQgnGCVeqkO1kdj5+EECBAgQIDAoAISrEEDo1sECBAgQIDAvAJuEc4bOz0nQIAAAQIEBhVQB2vQwOgWAQIECBAgMK+ABGve2Ok5AQIECBAgMKhAty3CbXw/vn7+TtjyA/CDjl23CBAgQIAAAQK3CDQdcs97tE+oJFi3xEujBAgQIECAwAQCXRKsUjIlwZog+rpIgAABAgQI3CIQTrCOCo1uvZJg3RIbjRIgQIAAAQKTCoQTrLPxSbAmjb5uEyBAgAABArcISLBuYdUoAQIECBAgsLJAl1uE+e3BhOkM1srTytgJECBAgMDaAupgrR1/oydAgAABAgRuEJBg3YCqSQIECBAgQGBtgeYtwo0v3TBUaHTtyWT0BAgQIECAwC+B5kPu6ayVQqOmFAECBAgQIECgQ4J1lFylVa3S4XfwBAgQIECAAIG3C4RXsI4KjVrBevsUMT4CBAgQIECgViCcYJUazrcFbRHW0ns9AQIECBAg8FaBpgQr3wqUYL11ihgXAQIECBAgUCvQfIuwdIMwT7xqO+T1BAgQIECAAIHZBdTBmj2C+k+AAAECBAgMJyDBGi4kOkSAAAECBAjMLtBti3CDUGh09umg/wQIECBAgEAPgaZD7mcf6OzDnnuERxsECBAgQIDAjAJdEqxSMiXBmnE66DMBAgQIECDQQyCcYJUKjeY3CJVp6BEObRAgQIAAAQJvEAgnWFeDlWBdCfk5AQIECBAgsIpAU4Klkvsq08Q4CRAgQIAAgRqBbrcI9x/s7AxWTRi8lgABAgQIEHiTgDpYb4qmsRAgQIAAATj64akAAB/YSURBVAJDCEiwhgiDThAgQIAAAQJvEmjeItwwlGl405QwFgIECBAgQKBVoOmQe3q4BKs1DN5PgAABAgQIvEmgOcHKa2HlMA65v2maGAsBAgQIECBQIxBOsEqFRtP24PbVLcIadq8lQIAAAQIE3iwQTrBKCGmVyhbhm6eIsREgQIAAAQK1As0JVv7AfBXLFmFtKLyeAAECBAgQeIuAW4RviaRxECBAgAABAsMIqIM1TCh0hAABAgQIEHiLgATrLZE0DgIECBAgQGAYgeYtQmUahomljhAgQIAAAQKDCDQfck8H2/eH2h1yHyTCukGAAAECBAg8LtCUYOW9lWA9HjsPJECAAAECBAYVCCdYR4VGt3GpgzVodHWLAAECBAgQ+IhAOMG66p0VrCshPydAgAABAgRWEWhKsPKkSoK1ypQxTgIECBAgQOBKwC3CKyE/J0CAAAECBAhUCqiDVQnm5QQIECBAgACBKwEJ1pWQnxMgQIAAAQIEKgVsEVaCeTkBAgQIECBA4ErAIfcrIT8nQIAAAQIECFQKNCVY+bPcIqyU93ICBAgQIEDgtQLhBEuh0dfOAQMjQIAAAQIEOguEE6yz56rk3jkqmiNAgAABAgSmFmhOsI4+1NmHPU89L3SeAAECBAgQaBBoukVYu23Y0E9vJUCAAAECBAhMI6AO1jSh0lECBAgQIEBgFgEJ1iyR0k8CBAgQIEBgGoGmLcI0Sofcp4m3jhIgQIAAAQIPCHQ55L7188fXz79WwxxyfyB6HkGAAAECBAgMKdCcYG2jsoI1ZGx1igABAgQIEPiQQDjBqr0xaAXrQxH1WAIECBAgQODjAuEE66ynVrA+HkcdIECAAAECBAYSkGANFAxdIUCAAAECBN4h4BbhO+JoFAQIECBAgMBAAupgDRQMXSFAgAABAgTeISDBekccjYIAAQIECBAYSKBqizDdJMxrXpW+t43PLcKBoqwrBAgQIECAwKMC4UPuecKU/rv0vdR7CdajcfQwAgQIECBAYCABCdZAwdAVAgQIECBA4B0CEqx3xNEoCBAgQIAAgYEEJFgDBUNXCBAgQIAAgXcISLDeEUejIECAAAECBAYScItwoGDoCgECBAgQIPAOAXWw3hFHoyBAgAABAgQGEpBgDRQMXSFAgAABAgTeIdC8RbgxlGpeqYP1jgliFAQIECBAgEC9QNMh95RcbV/z6u5HSVd997yDAAECBAgQIDCfQHOCZQVrvqDrMQECBAgQIHCvgATrXl+tEyBAgAABAgsKSLAWDLohEyBAgAABAvcKSLDu9dU6AQIECBAgsKCAW4QLBt2QCRAgQIAAgXsF1MG611frBAgQIECAwIICEqwFg27IBAgQIECAwL0CzVuEW0HRrYvqYN0bKK0TIECAAAEC8wg0HXLPq7XvK7er5D7PJNBTAgQIECBAoK9AU4KVd0WC1TcwWiNAgAABAgTmFeiSYPkswnkngJ4TIECAAAEC/QUkWP1NtUiAAAECBAgsLtCcYB2dtXIGa/GZZfgECBAgQGBhgaZbhOkGYfLLbxJKsBaeVYZOgAABAgQWF1AHa/EJYPgECBAgQIBAfwEJVn9TLRIgQIAAAQKLCzRtEW52Co0uPoMMnwABAgQIEPhHoOmQu0KjZhQBAgQIECBA4F+BpgQrb06hUdOLAAECBAgQIPBLoEuCpdCo6USAAAECBAgQ+CPQJcHamrOCZVoRIECAAAECBDqsYDmDZRoRIECAAAECBP4VcIvQrCBAgAABAgQIdBZQB6szqOYIECBAgAABAhIsc4AAAQIECBAg0FmgeYtw649bhJ2jojkCBAgQIEBgaoEutwglWFPPAZ0nQIAAAQIEOgs0J1g+KqdzRDRHgAABAgQITC8gwZo+hAZAgAABAgQIjCbQlGClrUFbhKOFVX8IECBAgACBTwo0J1h55398/fx9K7GUdH1yoJ5NgAABAgQIEHhKwC3Cp6Q9hwABAgQIEFhGQB2sZUJtoAQIECBAgMBTAhKsp6Q9hwABAgQIEFhGoHmLMJVp2MScwVpm3hgoAQIECBAgcCLQfMg9T6ry5zjkbt4RIECAAAECqwp0SbCUaVh1+hg3AQIECBAgUBJoTrDS1uA+ybKCZcIRIECAAAECqwo0JVhnW4ISrFWnlHETIECAAAECTQlWnkRZwTKZCBAgQIAAAQK/BLrdItwfdreCZYoRIECAAAECqwqog7Vq5I2bAAECBAgQuE1AgnUbrYYJECBAgACBVQWatwg3uFRsVKHRVaeRcRMgQIAAAQK5QNMh95RcbYmVQ+4mFgECBAgQIEDgl0BTgpWSKoVGTScCBAgQIECAwB+BpgTLCpapRIAAAQIECBD4V6ApwVIHy5QiQIAAAQIECHROsKxgmVIECBAgQIAAgUKClZKk7ev+FuB3v5cnXtAJECBAgAABAqsJqIO1WsSNlwABAgQIELhdQIJ1O7EHECBAgAABAqsJNBcaTUVGS9uJ+88nXA3XeAkQIECAAIE1BZpuEeZkCo2uOYGMmgABAgQIEPhXoEuCpdCoqUWAAAECBAgQ+CMgwTIbCBAgQIAAAQKdBSRYnUE1R4AAAQIECBCQYJkDBAgQIECAAIHOAl1uEZZuC5bOZXXuu+YIECBAgAABAkMKqIM1ZFh0igABAgQIEJhZQII1c/T0nQABAgQIEBhSoMsW4Tay/TahLcIh461TBAgQIECAwAMCTYfc8yRKodEHouURBAgQIECAwBQCEqwpwqSTBAgQIECAwEwCTQnWNtD0WYS2CGcKu74SIECAAAECdwo0JVi2CO8MjbYJECBAgACBWQUkWLNGTr8JECBAgACBYQXcIhw2NDpGgAABAgQIzCqgDtaskdNvAgQIECBAYFgBCdawodExAgQIECBAYFYBW4SzRk6/CRAgQIAAgWEFHHIfNjQ6RoAAAQIECMwqIMGaNXL6TYAAAQIECAwrIMEaNjQ6RoAAAQIECMwq0JRgbYNOldy3/86rufuw51mnhH4TIECAAAECrQJNCZZK7q383k+AAAECBAi8UcAtwjdG1ZgIECBAgACBjwqog/VRfg8nQIAAAQIE3iggwXpjVI2JAAECBAgQ+KhA1Rbh1tP94fV0yD0/4F563UdH6eEECBAgQIAAgQcFwofcU9K0fU3JlEPuD0bKowgQIECAAIFpBKoSrP3KlARrmjjrKAECBAgQIPCggATrQWyPIkCAAAECBNYQkGCtEWejJECAAAECBB4UkGA9iO1RBAgQIECAwBoCbhGuEWejJECAAAECBB4UUAfrQWyPIkCAAAECBNYQkGCtEWejJECAAAECBB4UaN4i3Pq6Lz569L0Hx+VRBAgQIECAAIGPCVQdci9VbVfJ/WOx82ACBAgQIEBgUIGqBKtmtaq0qjWogW4RIECAAAECBLoKSLC6cmqMAAECBAgQIPD1JcEyCwgQIECAAAECnQUkWJ1BNUeAAAECBAgQcIvQHCBAgAABAgQIdBZQB6szqOYIECBAgAABAhIsc4AAAQIECBAg0FmgeYtQHazOEdEcAQIECBAgML1A1SH3fTKV17ra171SB2v6uWEABAgQIECAwDcFqhKs7RlHiZME65sR8DYCBAgQIEDgdQJdEiyfRfi6eWFABAgQIECAQIOABKsBz1sJECBAgAABAiWB5gQrumWInwABAgQIECCwikDTLcJ06D1h/fj6+bvsg0Puq0wh4yRAgAABAgT2AupgmRMECBAgQIAAgc4CEqzOoJojQIAAAQIECDRtEW58Co2aRAQIECBAgACBvwWqDrkrNGr6ECBAgAABAgSuBaoSrLRilR9mT49QaPQa2ysIECBAgACBNQS6JFgKja4xWYySAAECBAgQiAl0SbBKK1vKNMQC4FUECBAgQIDA+wSaEiwf9vy+CWFEBAgQIECAQLuAW4TthlogQIAAAQIECPwloA6WCUGAAAECBAgQ6CwgweoMqjkCBAgQIECAQPMW4UboFqGJRIAAAQIECBD4I1B1yL2martbhKYZAQIECBAgsKpAVYJVWq2qSbpWRTZuAgQIECBAYC0BCdZa8TZaAgQIECBA4AGBpgQrbQM6g/VApDyCAAECBAgQmEagOcHKR5p/RqEzWNPMAR0lQIAAAQIEOgu4RdgZVHMECBAgQIAAAXWwzAECBAgQIECAQGcBCVZnUM0RIECAAAECBJq3CFOZho3SGSwTigABAgQIECDw9VV1yH1f8+rsILtD7qYXAQIECBAgsKpAVYK1IeWJkzINq04b4yZAgAABAgTOBJoTrLQ1uF+xsoJl4hEgQIAAAQKrCjQlWDmaBGvVKWTcBAgQIECAwF6gKcEqbRemB1jBMtkIECBAgACBVQW63SLMbxBumBKsVaeUcRMgQIAAAQLqYJkDBAgQIECAAIHOAhKszqCaI0CAAAECBAg0bxGm7cDtq0KjJhQBAgQIECBAoLHQaEqutsTKLULTiQABAgQIECDwS6DLLcLSgXaH3E0xAgQIECBAYFWBpgTLCtaq08a4CRAgQIAAgTOBpgRLHSyTiwABAgQIECDwr0BTgmUFy5QiQIAAAQIECBQSrJQkbV/3twD338sTqtTUtooVeR18AgQIECBAgMAqAupgrRJp4yRAgAABAgQeE5BgPUbtQQQIECBAgMAqAs2FRtMWYWmLcf/5hKugGicBAgQIECCwtkDVIfej81YboUKja08koydAgAABAgT+CFQlWKVEquZ74AkQIECAAAECKwhIsFaIsjESIECAAAECjwpIsB7l9jACBAgQIEBgBQEJ1gpRNkYCBAgQIEDgUYEutwhLtwV92POjcfQwAgQIECBAYCABdbAGCoauECBAgAABAu8QkGC9I45GQYAAAQIECAwk0GWLcBvPfpvQFuFAUdYVAgQIECBA4FGBqkPu+0KjeRKl0OijcfMwAgQIECBAYGCBqgRrG8dRUiXBGjjKukaAAAECBAg8KtCUYKWEyxbhozHzMAIECBAgQGBwgaYEyxbh4NHVPQIECBAgQOAjAhKsj7B7KAECBAgQIPBmAbcI3xxdYyNAgAABAgQ+IqAO1kfYPZQAAQIECBB4s4AE683RNTYCBAgQIEDgIwK2CD/C7qEECBAgQIDAmwWqDrkrNPrmqWBsBAgQIECAQC+BqgRre6hCo73otUOAAAECBAi8VUCC9dbIGhcBAgQIECDwMYGmBCutaKXe5x/47MOePxZTDyZAgAABAgQ+LNCUYKnk/uHoeTwBAgQIECAwpIBbhEOGRacIECBAgACBmQXUwZo5evpOgAABAgQIDCkgwRoyLDpFgAABAgQIzCxQtUW4r4O1Dbz0vfT9/ND7zEj6ToAAAQIECBCoEQgfci8daHfIvYbaawkQIECAAIFVBMIJVg6SEisJ1irTxDgJECBAgACBGoHqBEsl9xperyVAgAABAgRWFJBgrRh1YyZAgAABAgRuFahKsPbV2W0R3hobjRMgQIAAAQKTCoRvEabbgmmc6YagW4STRl63CRAgQIAAgdsE1MG6jVbDBAgQIECAwKoCEqxVI2/cBAgQIECAwG0C4S3CrQc124H781q3jUDDBAgQIECAAIHBBMKH3M/KM2xj2ldtl2ANFmndIUCAAAECBB4TCCdYeY/ObhOm10mwHouhBxEgQIAAAQKDCVQnWKXEKfq9wcauOwQIECBAgACBWwQkWLewapQAAQIECBBYWaAqwTra9rOCtfIUMnYCBAgQIEBgLxC+RXhUaHRrUIJlYhEgQIAAAQIE/giog2U2ECBAgAABAgQ6C0iwOoNqjgABAgQIECAQ3iJMW4Hb17zmVU3xUdwECBAgQIAAgRUEwofcS4VGj4qPpmRsX3x0BVBjJECAAAECBAiEE6ycKnKoXaFRk4sAAQIECBBYVaA6wYokV1awVp1Oxk2AAAECBAhsAhIs84AAAQIECBAg0FmgKsGKrl5ZweocJc0RIECAAAECUwmEbxGWCo3WFh+dSkZnCRAgQIAAAQLfFFAH65tw3kaAAAECBAgQOBKQYJkbBAgQIECAAIHOAuEtwu25paKiCo12jojmCBAgQIAAgekFwofcFRqdPtYGQIAAAQIECDwkEE6w8v5EbhMqNPpQBD2GAAECBAgQGE6gOsGKJFdpO9FH5QwXbx0iQIAAAQIEHhDokmCVEiorWA9EzyMIECBAgACBIQWqEqx90uTDnoeMqU4RIECAAAECHxYI3yI8KirqFuGHI+jxBAgQIECAwHAC6mANFxIdIkCAAAECBGYXkGDNHkH9J0CAAAECBIYTCG8Rbj2v2Q50yH24WOsQAQIECBAg8JBA+JB77YF2CdZDEfQYAgQIECBAYDiBcIKV93yfbG0/29e8kmANF2sdIkCAAAECBB4SqE6wSqUaJFgPRctjCBAgQIAAgSkEmhKslGxFq7tPIaKTBAgQIECAAIFGgaoE62j1KvUh3ya0RdgYGW8nQIAAAQIEphUI3yI8KjS6jdwK1rTx13ECBAgQIEDgBgF1sG5A1SQBAgQIECCwtoAEa+34Gz0BAgQIECBwg0B4izBtBW5f92etUr+cwbohQpokQIAAAQIEphMIH3IvFRo9O8jukPt0c0GHCRAgQIAAgU4C4QQrf96+PIND7p2ioRkCBAgQIEDgFQLVCdZRFfdSCYd9dfdXiBkEAQIECBAgQOBCoCnBKq1qpe/ZIjT3CBAgQIAAgVUFqhKss1UqK1irTiHjJkCAAAECBPYC4VuER4VG0/d92LPJRYAAAQIECBD4JaAOlplAgAABAgQIEOgsIMHqDKo5AgQIECBAgEB4i3CjOtsO3H6u0KgJRYAAAQIECBD4+gofci8VGk1J15ZYOeRuOhEgQIAAAQIEfgmEE6wcTKFR04cAAQIECBAgcCxQnWAdrVRZwTLNCBAgQIAAAQLfXMG62ipMsAqNmmIECBAgQIDAqgJVK1hnnzloBWvVKWTcBAgQIECAwF4gfItQoVGThwABAgQIECAQE1AHK+bkVQQIECBAgACBsIAEK0zlhQQIECBAgACBmEB4i3BrrlRoNN86VGg0hu5VBAgQIECAwLsFwofcj24PJh6H3N89UYyOAAECBAgQiAuEE6y8yUgypUxDPAheSYAAAQIECLxLoDrBOivVcJaEvYvNaAgQIECAAAECxwISLLODAAECBAgQINBZoCrBOtr2i65qde675ggQIECAAAECQwqEbxGeFRrNbw+mUTqDNWS8dYoAAQIECBB4QEAdrAeQPYIAAQIECBBYS0CCtVa8jZYAAQIECBB4QCC8Rbj15azQ6H6b0BbhA9HzCAIECBAgQGBIgfAh91Kh0bPioxKsIeOtUwQIECBAgMADAuEEK+9LSp4kWA9EyCMIECBAgACB6QSqE6xSFfdt1LYIp4u9DhMgQIAAAQI3CTQlWFawboqKZgkQIECAAIGpBaoSrLPPIIx8PuHUUjpPgAABAgQIEAgKhG8RnhUatUUY1PYyAgQIECBAYAkBdbCWCLNBEiBAgAABAk8KSLCe1PYsAgQIECBAYAmB8BbhpqHQ6BJzwiAJECBAgACBRoHwIXeFRhulvZ0AAQIECBBYRiCcYOUiCo0uMz8MlAABAgQIEPiGQHWCdVT7SpmGb+h7CwECBAgQIPBKgaYEaxPJyzfk1dx9FuEr54tBESBAgAABAgGBqgRLodGAqJcQIECAAAECywuEbxEqNLr8XAFAgAABAgQIBAXUwQpCeRkBAgQIECBAICogwYpKeR0BAgQIECBAICgQ3iLc2lNoNKjqZQQIECBAgMDSAuFD7gqNLj1PDJ4AAQIECBCoEAgnWHmbCo1WCHspAQIECBAgsJxAdYKl0Ohyc8SACRAgQIAAgUqB6gRra98KVqWylxMgQIAAAQJLCYQTLGewlpoXBkuAAAECBAg0CLhF2IDnrQQIECBAgACBkoA6WOYFAQIECBAgQKCzgASrM6jmCBAgQIAAAQLNW4Qb4f5DoI++h5sAAQIECBAgsIJA0yH3lEhtX398/fxrNayUdK0AaowECBAgQIAAgXCClVPtkycrWCYSAQIECBAgQOCPQHWCFU2mrGCZZgQIECBAgMCqAtUJVtoWzLcEo0nXqsjGTYAAAQIECKwlEE6wjj4ip5RwHX1vLVqjJUCAAAECBFYVcItw1cgbNwECBAgQIHCbgDpYt9FqmAABAgQIEFhVQIK1auSNmwABAgQIELhNoHmLcDubtfVOHazbYqRhAgQIECBAYDKBpkPutQffJ7PRXQIECBAgQIDAtwTCCVbeeqQsgzpY34qHNxEgQIAAAQIvEKhOsCLJ1eYiwXrB7DAEAgQIECBA4FsC1QlWKXmKJl3f6qE3ESBAgAABAgQmEwgnWEfnrY5WqqxgTTYTdJcAAQIECBDoJtB0izDdIEy9ufr4nG691hABAgQIECBAYGABdbAGDo6uESBAgAABAnMKSLDmjJteEyBAgAABAgMLNG0RbuNSaHTg6OoaAQIECBAg8BGBpkPuCo1+JGYeSoAAAQIECAwuEE6w8nFEyjK4RTh45HWPAAECBAgQuE2gOsGKJFdp63D/+YS3jULDBAgQIECAAIGBBKoTrKPkaZ94WcEaKMq6QoAAAQIECDwqEE6wSuetnMF6NFYeRoAAAQIECEwi4BbhJIHSTQIECBAgQGAeAXWw5omVnhIgQIAAAQKTCEiwJgmUbhIgQIAAAQLzCDRvEW5Djd4snIdFTwkQIECAAAEC3xdoOuSeHivB+n4AvJMAAQIECBB4n0A4wcqHvr89uP1sX/NKmYb3TRYjIkCAAAECBGIC1QlWqd6VBCuG7VUECBAgQIDAGgLVCdbGkpKs/dejVa41KI2SAAECBAgQIPBLIJxgHRUazSHzbUJbhKYYAQIECBAgsKqAW4SrRt64CRAgQIAAgdsE1MG6jVbDBAgQIECAwKoCEqxVI2/cBAgQIECAwG0CzVuE21mr1DtnsG6Lk4YJECBAgACBiQSaD7nv61+lsTvkPtEs0FUCBAgQIECgq0A4wcqfqkxD1xhojAABAgQIEHiZQHWCdVTFvVSA9Gh162WGhkOAAAECBAgQ+EugOsHa3h357EFbhGYaAQIECBAgsKpAOME6KjSaVqmsYK06hYybAAECBAgQ2At0u0Xow55NLgIECBAgQIDALwF1sMwEAgQIECBAgEBnAQlWZ1DNESBAgAABAgSatwg3wlRsVKFRE4oAAQIECBAg8PXVdMg9JVdbYuWQu+lEgAABAgQIEPglEE6wcjCFRk0fAgQIECBAgMCxQHWCdbRSZQXLNCNAgAABAgQIdFzByrcKE6xCo6YYAQIECBAgsKpAeAWrVGg0T6ysYK06hYybAAECBAgQ2As03yIs3SAsrWihJ0CAAAECBAisIqAO1iqRNk4CBAgQIEDgMQEJ1mPUHkSAAAECBAisItBti3ADU2h0lWljnAQIECBAgMCZQPMh99S4Q+4mGgECBAgQIEDgl0A4wcrBIsmUMg2mGAECBAgQILCqQHWCVUqcot9bFdm4CRAgQIAAgbUEqhOsjccK1lqTxGgJECBAgACBOoFwgnVUaLSUcB19r65rXk2AAAECBAgQmFOgyy3C/PZgYnAGa84JodcECBAgQIBAu4A6WO2GWiBAgAABAgQI/CUgwTIhCBAgQIAAAQKdBf7vDFZqM231HX0v//n+tfttwqMtwsjWYeQ1Zw7782Lba0t972FZ29fa1+/7eHXBoPTZkEefF1ka/9GN0L1h/r+PHKPPrX3dVV8iBi1xiP7ObP2M9OUoDvvfy/x1Z3O89Nya8ZbGl57d43frrP3U96N/X2rG0eP3WxsECBD4rkDzIff0D97VH/7SP9Bnf5hL57oigzw6jH92SD/S7h193f8xuepHyfgoeSzF5eqP01EysMWitr2o99nrrtoo/Tz6vVr7s+Qm9yklCL39rub41c+j8+zsd7rlGd+J+dVcuBqTnxMgQOBpgaYE6+wP9lEycLX6UPrDt//D/8Q/0HlCcdbnswQzf9/ZCkD62XdWBWv+0F0lWFfJwdHPS5M2+gex9nVX4x0pwbryjv7+nCU6pcTvyujsH5nv9Ckaw6PfgaOP2GoZx9P/kHoeAQIE9gKHCVb+wqP/D/0oCTn7QxxZCYn8w3qW2BxtZdZsE5bGdvTHOyVSV3/cj5LHyB+YoxWXiNXRe68So/x9++eUksfSH/urZ0f/OOdJ9tkcuopB9HnRJGQ/T/JkOfr7cRSH/e9gKUE5+l7udfa+/bMlWP5IECBAoI9AtxWss/8v+ywxyf8gXf2xyP+ol/6ARBK7qz/4+yRh/wczknjW/iHcJ1g9/rDuE6Cr1ZRSn2uSlbM/1FfPTrG8Str2fYz2L5qERn+lWp8bmYNnieCR59X/83IVh7Pfn56/W9Gx9Y5bNL5eR4AAgR4CH02wjlaUov+wlv5gRN4b+UOT/0GpXTEpvfcsebx7BSs63tIf/v3YoytAPV53FcvWRKfGZZ947+dutC+R5Ko10blyO/uH44nk54ln9PjHURsECBBoEbi8RZivKpRWGo5WH/Z/vM7ee3UDMfqMowShdTVn/wfhyiT1o7Qi09MlMt7cbt/vSIHY9P7SKttRYpgnkxH70jNKk7qmL6XnRvoS+WW6+j04mx9H8dg/9+x1R3PoOzE6c77yOorH1QWVo9/nyHyOJqiROHoNAQIE7hSYtg7W2erDd392J3Svtr+76tLr+W9pZ3bH2v7Xvv4ozk/8bj3xjLfMY+MgQGBcgdsSrHGHrGcECBAgQIAAgXsFJFj3+mqdAAECBAgQWFBAgrVg0A2ZAAECBAgQuFdAgnWvr9YJECBAgACBBQUkWAsG3ZAJECBAgACBewUkWPf6ap0AAQIECBBYUECCtWDQDZkAAQIECBC4V+B/AXvxRjwfJgX8AAAAAElFTkSuQmCC</pentrails><costumes><list struct="atomic" id="2"></list></costumes><sounds><list struct="atomic" id="3"></list></sounds><variables></variables><blocks></blocks><scripts><script x="209" y="176.00000000000003"><block s="receiveInteraction"><l><option>scrolled-up</option></l></block><block s="doBroadcast"><l>up</l></block></script><script x="188" y="321"><block s="receiveInteraction"><l><option>scrolled-down</option></l></block><block s="doBroadcast"><l>down</l></block></script></scripts><sprites><sprite name="Sprite" idx="1" x="-300" y="-401" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="8,0,1,1" pen="tip" id="16"><costumes><list struct="atomic" id="17"></list></costumes><sounds><list struct="atomic" id="18"></list></sounds><blocks></blocks><variables></variables><scripts><script x="30" y="30"><block s="receiveGo"></block><block s="doSetVar"><l>position</l><l>1</l></block><block s="doForever"><script><block s="doWaitUntil"><block s="reportKeyPressed"><l><option>any key</option></l></block></block><block s="doIfElse"><block s="reportKeyPressed"><block s="reportJoinWords"><list><l>enter</l></list></block></block><script><block s="doAsk"><l>Url</l></block><custom-block s="web %s (start at %n ) lines %n text size %n %br ShowWorking? %b ShowNumLines? %b ShowURL? %b DispIntVars? %b Update? %b"><block s="getLastAnswer"></block><block var="position"/><l>87</l><block var="text size"/><l><bool>true</bool></l><l><bool>true</bool></l><l><bool>true</bool></l><l><bool>true</bool></l><l><bool>true</bool></l></custom-block></script><script><block s="doIfElse"><block s="reportKeyPressed"><l><option>up arrow</option></l></block><script><block s="doChangeVar"><l>position</l><l>-1</l></block><custom-block s="web %s (start at %n ) lines %n text size %n %br ShowWorking? %b ShowNumLines? %b ShowURL? %b DispIntVars? %b Update? %b"><block s="getLastAnswer"></block><block var="position"/><l>87</l><block var="text size"/><l><bool>true</bool></l><l><bool>true</bool></l><l><bool>true</bool></l><l><bool>true</bool></l><l><bool>false</bool></l></custom-block></script><script><block s="doIfElse"><block s="reportKeyPressed"><l><option>down arrow</option></l></block><script><block s="doChangeVar"><l>position</l><l>1</l></block><custom-block s="web %s (start at %n ) lines %n text size %n %br ShowWorking? %b ShowNumLines? %b ShowURL? %b DispIntVars? %b Update? %b"><block s="getLastAnswer"></block><block var="position"/><l>87</l><block var="text size"/><l><bool>true</bool></l><l><bool>true</bool></l><l><bool>true</bool></l><l><bool>true</bool></l><l><bool>false</bool></l></custom-block></script><script><block s="doIfElse"><block s="reportKeyPressed"><l><option>left arrow</option></l></block><script><block s="doChangeVar"><l>position</l><l>-10</l></block><custom-block s="web %s (start at %n ) lines %n text size %n %br ShowWorking? %b ShowNumLines? %b ShowURL? %b DispIntVars? %b Update? %b"><block s="getLastAnswer"></block><block var="position"/><l>87</l><block var="text size"/><l><bool>true</bool></l><l><bool>true</bool></l><l><bool>true</bool></l><l><bool>true</bool></l><l><bool>false</bool></l></custom-block></script><script><block s="doIfElse"><block s="reportKeyPressed"><l><option>right arrow</option></l></block><script><block s="doChangeVar"><l>position</l><l>10</l></block><custom-block s="web %s (start at %n ) lines %n text size %n %br ShowWorking? %b ShowNumLines? %b ShowURL? %b DispIntVars? %b Update? %b"><block s="getLastAnswer"></block><block var="position"/><l>87</l><block var="text size"/><l><bool>true</bool></l><l><bool>true</bool></l><l><bool>true</bool></l><l><bool>true</bool></l><l><bool>false</bool></l></custom-block></script><script><block s="doIfElse"><block s="reportKeyPressed"><l><option>+</option></l></block><script><block s="doChangeVar"><l>text size</l><l>1</l></block><custom-block s="web %s (start at %n ) lines %n text size %n %br ShowWorking? %b ShowNumLines? %b ShowURL? %b DispIntVars? %b Update? %b"><block s="getLastAnswer"></block><block var="position"/><l>87</l><block var="text size"/><l><bool>true</bool></l><l><bool>true</bool></l><l><bool>true</bool></l><l><bool>true</bool></l><l><bool>false</bool></l></custom-block></script><script><block s="doIfElse"><block s="reportKeyPressed"><l><option>-</option></l></block><script><block s="doChangeVar"><l>text size</l><l>-1</l></block><custom-block s="web %s (start at %n ) lines %n text size %n %br ShowWorking? %b ShowNumLines? %b ShowURL? %b DispIntVars? %b Update? %b"><block s="getLastAnswer"></block><block var="position"/><l>87</l><block var="text size"/><l><bool>true</bool></l><l><bool>true</bool></l><l><bool>true</bool></l><l><bool>true</bool></l><l><bool>false</bool></l></custom-block></script><script></script></block></script></block></script></block></script></block></script></block></script></block></script></block></script></block></script><script x="30" y="1047.5"><custom-block s="all but last of %l"><l/></custom-block></script><script x="30" y="1077.5"><block s="clear"></block></script><script x="30" y="1113.3333333333335"><block s="receiveMessage"><l>up</l></block><block s="doChangeVar"><l>position</l><l>-5</l></block><block s="doWarp"><script><custom-block s="web %s (start at %n ) lines %n text size %n %br ShowWorking? %b ShowNumLines? %b ShowURL? %b DispIntVars? %b Update? %b"><block s="getLastAnswer"></block><block var="position"/><l>87</l><block var="text size"/><l><bool>true</bool></l><l><bool>true</bool></l><l><bool>true</bool></l><l><bool>true</bool></l><l><bool>false</bool></l></custom-block></script></block></script><script x="30" y="1260.0000000000005"><block s="receiveMessage"><l>down</l></block><block s="doChangeVar"><l>position</l><l>5</l></block><block s="doWarp"><script><custom-block s="web %s (start at %n ) lines %n text size %n %br ShowWorking? %b ShowNumLines? %b ShowURL? %b DispIntVars? %b Update? %b"><block s="getLastAnswer"></block><block var="position"/><l>87</l><block var="text size"/><l><bool>true</bool></l><l><bool>true</bool></l><l><bool>true</bool></l><l><bool>true</bool></l><l><bool>false</bool></l></custom-block></script></block></script></scripts></sprite><watcher var="url memory" style="normal" x="38" y="52.5" color="243,118,29" hidden="true"/><watcher var="position" style="normal" x="26.75" y="91" color="243,118,29" hidden="true"/><watcher var="text size" style="normal" x="10" y="10" color="243,118,29" hidden="true"/></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="is %&apos;letter&apos; a vowel?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s">a</input></inputs><script><block s="doIfElse"><block s="reportGreaterThan"><block s="reportStringSize"><block var="letter"/></block><l>1</l></block><script><block s="doReport"><l>Error: There can only be 1 letter at a time</l></block></script><script><block s="doIfElse"><block s="reportOr"><block s="reportEquals"><block var="letter"/><l>a</l></block><block s="reportOr"><block s="reportEquals"><block var="letter"/><l>e</l></block><block s="reportOr"><block s="reportEquals"><block var="letter"/><l>i</l></block><block s="reportOr"><block s="reportEquals"><block var="letter"/><l>o</l></block><block s="reportEquals"><block var="letter"/><l>u</l></block></block></block></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="letter"/><l>y</l></block><script><block s="doReport"><l>maybe</l></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block></script></block></script></block-definition><block-definition s="$flag was clicked %&apos;number&apos; times" type="predicate" category="other"><header></header><code></code><translations></translations><inputs><input type="%n">10</input></inputs><script><block s="doIfElse"><block s="reportEquals"><custom-block s="flag counter"></custom-block><block var="number"/></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block-definition><block-definition s="%&apos;number&apos; squared" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n">5</input></inputs><script><block s="doReport"><block s="reportProduct"><block var="number"/><block var="number"/></block></block></script></block-definition><block-definition s="reset flag counter" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSetVar"><l>flag</l><l>0</l></block></script></block-definition><block-definition s="flag counter" type="reporter" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>flags</l></list></block><block s="doReport"><block var="flags"/></block></script></block-definition><block-definition s="forever if %&apos;thing&apos; then %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%cs"></input></inputs><script><block s="doForever"><script><block s="doIf"><block var="thing"/><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block></script></block-definition><block-definition s="previous costume" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSwitchToCostume"><block s="reportDifference"><block s="getCostumeIdx"></block><l>1</l></block></block></script></block-definition><block-definition s="change costume by %&apos;input&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%n">1</input></inputs><script><block s="doSwitchToCostume"><block s="reportSum"><block s="getCostumeIdx"></block><block var="input"/></block></block></script><scripts><script x="157" y="127.19999999999999"><block s="reportDifference"><l></l><l></l></block></script></scripts></block-definition><block-definition s="forever if %&apos;thing&apos; then %&apos;action&apos; else %&apos;action2&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%cs"></input><input type="%cs"></input></inputs><script><block s="doForever"><script><block s="doIfElse"><block var="thing"/><script><block s="doRun"><block var="action"/><list></list></block></script><script><block s="doRun"><block var="action2"/><list></list></block></script></block></script></block></script></block-definition><block-definition s="beep" type="command" category="sound"><header></header><code></code><translations></translations><inputs></inputs><script><block s="playFreq"><l>1000</l></block><block s="doWait"><l>1</l></block><block s="stopFreq"></block></script></block-definition><block-definition s="custom beep at %&apos;number&apos; Hz for %&apos;wait&apos; seconds" type="command" category="sound"><header></header><code></code><translations></translations><inputs><input type="%n">1000</input><input type="%n">1</input></inputs><script><block s="playFreq"><block var="number"/></block><block s="doWait"><block var="wait"/></block><block s="stopFreq"></block></script></block-definition><block-definition s="alarm" type="command" category="sound"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRepeat"><l>10</l><script><custom-block s="custom beep at %n Hz for %n seconds"><l>1200</l><l>0.5</l></custom-block><block s="doWait"><l>0.5</l></block></script></block></script></block-definition><block-definition s="smooth glide to x: %&apos;x&apos; y: %&apos;y&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs></block-definition><block-definition s="while %&apos;thing&apos; do %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%boolUE"></input><input type="%cs"></input></inputs><script><block s="doUntil"><block s="reportNot"><block var="thing"/></block><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="%&apos;number&apos; cubed" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n">5</input></inputs><script><block s="doReport"><block s="reportProduct"><block var="number"/><block s="reportProduct"><block var="number"/><block var="number"/></block></block></block></script></block-definition><block-definition s="%&apos;value&apos; nand %&apos;value2&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%b"></input></inputs><script><block s="doIfElse"><block s="reportNot"><block s="reportAnd"><block var="value"/><block var="value2"/></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block-definition><block-definition s="%&apos;value&apos; nor %&apos;value2&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%b"></input></inputs><script><block s="doIfElse"><block s="reportNot"><block s="reportOr"><block var="value"/><block var="value2"/></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block-definition><block-definition s="sprite clicked?" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIfElse"><block s="reportAnd"><block s="reportMouseDown"></block><block s="reportTouchingObject"><l><option>mouse-pointer</option></l></block></block><script><block s="doWaitUntil"><custom-block s="mouse up?"></custom-block></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block-definition><block-definition s="mouse up?" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIfElse"><block s="reportMouseDown"></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block-definition><block-definition s="typewriter %&apos;text&apos; for %&apos;seconds&apos; secs" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%txt">Hello!</input><input type="%n">2</input></inputs><script><block s="doDeclareVariables"><list><l>number</l><l>say</l></list></block><block s="doSetVar"><l>number</l><l>0</l></block><block s="doSetVar"><l>say</l><l></l></block><block s="doRepeat"><block s="reportStringSize"><block var="text"/></block><script><block s="doChangeVar"><l>number</l><l>1</l></block><block s="doSetVar"><l>say</l><block s="reportJoinWords"><list><block var="say"/><block s="reportLetter"><block var="number"/><block var="text"/></block></list></block></block><block s="bubble"><block var="say"/></block><block s="doWait"><l>0</l></block></script></block><block s="doWait"><block var="seconds"/></block><block s="bubble"><l></l></block></script></block-definition><block-definition s="typewriter %&apos;text&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%txt">Hello!</input></inputs><script><block s="doDeclareVariables"><list><l>number</l><l>say</l></list></block><block s="doSetVar"><l>number</l><l>0</l></block><block s="doSetVar"><l>say</l><l></l></block><block s="doRepeat"><block s="reportStringSize"><block var="text"/></block><script><block s="doChangeVar"><l>number</l><l>1</l></block><block s="doSetVar"><l>say</l><block s="reportJoinWords"><list><block var="say"/><block s="reportLetter"><block var="number"/><block var="text"/></block></list></block></block><block s="bubble"><block var="say"/></block><block s="doWait"><l>0</l></block></script></block><block s="bubble"><block var="say"/></block></script></block-definition><block-definition s="while mouse down %&apos;action&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%cs"></input></inputs><script><block s="doIf"><block s="reportMouseDown"></block><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="if %&apos;var&apos; reached %&apos;number&apos; then do %&apos;action&apos;" type="command" category="variables"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_getVarNamesDict</options></input><input type="%n">1</input><input type="%cs"></input></inputs><script><block s="doIf"><block s="reportGreaterThan"><block var="var"/><block s="reportDifference"><block var="number"/><l>1</l></block></block><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="for each %&apos;var&apos; in %&apos;number&apos; %&apos;action&apos;" type="command" category="variables"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_getVarNamesDict</options></input><input type="%n">1</input><input type="%cs"></input></inputs><script><block s="doSetVar"><l>var</l><l>0</l></block><block s="doRepeat"><block var="number"/><script><block s="doWait"><l>0.1</l></block><block s="doChangeVar"><l>var</l><l>1</l></block><block s="doRun"><block var="action"/><list></list></block></script></block></script><scripts><script x="160.4794931875" y="97.000001"><block var="var"/></script></scripts></block-definition><block-definition s="speak %&apos;msg&apos; $nl with language %&apos;accent&apos; accent $nl with pitch %&apos;pitch&apos; $nl with rate %&apos;rate&apos;" type="command" category="sound"><header></header><code></code><translations></translations><inputs><input type="%s">Hello World!</input><input type="%s" readonly="true">en<options>English=en&#xD;Spanish=es&#xD;German=de&#xD;French=fr&#xD;Polish=pl&#xD;Chinese=zh&#xD;Japanese=ja</options></input><input type="%n">1</input><input type="%n">1</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>msg</l><l>accent</l><l>pitch</l><l>rate</l></list><l>var utter = new SpeechSynthesisUtterance (msg); utter.lang = accent; utter.pitch = pitch; utter.rate = rate; window.speechSynthesis.speak(utter);</l></block><list><block var="msg"/><block var="accent"/><block var="pitch"/><block var="rate"/></list></block></script></block-definition><block-definition s="// %&apos;trext&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s">Comment</input></inputs></block-definition><block-definition s="typewriter %&apos;text&apos; size %&apos;number2&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%n"></input></inputs><script><block s="doDeclareVariables"><list><l>say</l><l>number</l></list></block><block s="doSetVar"><l>number</l><l>0</l></block><block s="doSetVar"><l>say</l><l></l></block><block s="doRepeat"><block s="reportStringSize"><block var="text"/></block><script><block s="doChangeVar"><l>number</l><l>1</l></block><block s="doSetVar"><l>say</l><block s="reportLetter"><block var="number"/><block var="text"/></block></block><block s="write"><block var="say"/><block var="number2"/></block><block s="doWait"><l>0</l></block></script></block></script><scripts><script x="198.5498066875" y="98.00000200000005"><block s="reportJoinWords"><list><block var="say"/><l></l></list></block></script></scripts></block-definition><block-definition s="pi" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632788659361533818279682303019520353018529689957736225994138912497217752834791315155748572424541506959508295331168617278558890750983817546374649393192550604009277016711390098488240128583616035637076601047101819429555961989467678374494482553797747268471040475346462080466842590694912933136770289891521047521620569660240580381501935112533824300355876402474964732639141992726042699227967823547816360093417216412199245863150302861829745557067498385054945885869269956909272107975093029553211653449872027559602364806654991198818347977535663698074265425278625518184175746728909777727938000816470600161452491921732172147723501414419735685481613611573525521334757418494684385233239073941433345477624168625189835694855620992192221842725502542568876717904946016534668049886272327917860857843838279679766814541009538837863609506800642251252051173929848960841284886269456042419652850222106611863067442786220391949450471237137869609563643719172874677646575739624138908658326459958133904780275900994657640789512694683983525957098258226205224894077267194782684826014769909026401363944374553050682034962524517493996514314298091906592509372216964615157098583874105978859597729754989301617539284681382686838689427741559918559252459539594310499725246808459872736446958486538367362226260991246080512438843904512441365497627807977156914359977001296160894416948685558484063534220722258284886481584560285060168427394522674676788952521385225499546667278239864565961163548862305774564980355936345681743241125150760694794510965960940252288797108931456691368672287489405601015033086179286809208747609178249385890097149096759852613655497818931297848216829989487226588048575640142704775551323796414515237462343645428584447952658678210511413547357395231134271661021359695362314429524849371871101457654035902799344037420073105785390621983874478084784896833214457138687519435064302184531910484810053706146806749192781911979399520614196634287544406437451237181921799983910159195618146751426912397489409071864942319615679452080951465502252316038819301420937621378559566389377870830390697920773467221825625996615014215030680384477345492026054146659252014974428507325186660021324340881907104863317346496514539057962685610055081066587969981635747363840525714591028970641401109712062804390397595156771577004203378699360072305587631763594218731251471205329281918261861258673215791984148488291644706095752706957220917567116722910981690915280173506712748583222871835209353965725121083579151369882091444210067510334671103141267111369908658516398315019701651511685171437657618351556508849099898599823873455283316355076479185358932261854896321329330898570642046752590709154814165498594616371802709819943099244889575712828905923233260972997120844335732654893823911932597463667305836041428138830320382490375898524374417029132765618093773444030707469211201913020330380197621101100449293215160842444859637669838952286847831235526582131449576857262433441893039686426243410773226978028073189154411010446823252716201052652272111660396665573092547110557853763466820653109896526918620564769312570586356620185581007293606598764861179104533488503461136576867532494416680396265797877185560845529654126654085306143444318586769751456614068007002378776591344017127494704205622305389945613140711270004078547332699390814546646458807972708266</l></block></script></block-definition><block-definition s="infinity" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>Infinity</l></block></script></block-definition><block-definition s="factorial %&apos;n&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n">5</input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportEquals"><block var="n"/><l>0</l></block><l>undefined</l><block s="reportProduct"><block var="n"/><custom-block s="factorial %n"><block s="reportDifference"><block var="n"/><l>1</l></block></custom-block></block></block></block></script><scripts><script x="230.7177764375001" y="13.833338333333302"><block var="n"/></script></scripts></block-definition><block-definition s="if %&apos;thing?&apos; then %&apos;action&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%s"></input></inputs><script><block s="doIf"><block var="thing?"/><script><block s="doReport"><block var="action"/></block></script></block></script></block-definition><block-definition s="random %&apos;text&apos; separator %&apos;sep&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt">1,2,3,4,5</input><input type="%txt">,</input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportTextSplit"><block var="text"/><block var="sep"/></block></block><block s="doReport"><block s="reportListItem"><l><option>any</option></l><block var="a"/></block></block></script></block-definition><block-definition s="text %&apos;text&apos; find for %&apos;find&apos; replace with %&apos;replace&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt">Hello World!</input><input type="%txt">Hello</input><input type="%txt">Hi</input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>a</l><l>b</l><l>c</l><l>d</l></list></block><block s="doSetVar"><l>a</l><block s="reportTextSplit"><block var="text"/><l> </l></block></block><block s="doSetVar"><l>b</l><l>1</l></block><block s="doSetVar"><l>c</l><l></l></block><block s="doRepeat"><block s="reportDifference"><block s="reportListLength"><block var="a"/></block><l>1</l></block><script><block s="doIf"><block s="reportEquals"><block s="reportListItem"><block var="b"/><block var="a"/></block><block var="find"/></block><script><block s="doReplaceInList"><block var="b"/><block var="a"/><block var="replace"/></block></script></block><block s="doSetVar"><l>c</l><block s="reportJoinWords"><list><block var="c"/><block s="reportJoinWords"><list><block s="reportListItem"><block var="b"/><block var="a"/></block><l> </l></list></block></list></block></block><block s="doChangeVar"><l>b</l><l>1</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListItem"><block var="b"/><block var="a"/></block><block var="find"/></block><script><block s="doReplaceInList"><block var="b"/><block var="a"/><block var="replace"/></block></script></block><block s="doSetVar"><l>c</l><block s="reportJoinWords"><list><block var="c"/><block s="reportListItem"><block var="b"/><block var="a"/></block></list></block></block><block s="doChangeVar"><l>b</l><l>1</l></block></script></block><block s="doReport"><block var="c"/></block></script></block-definition><block-definition s="substr %&apos;s&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>answer</l></list><l> return answer.substring(0, answer.length - 1);</l></block><list><block var="s"/></list></block></block></script></block-definition><block-definition s="set cloud var %&apos;cloud&apos; to %&apos;value&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><custom-block s="ignore %s"><block s="reportURL"><block s="reportJoinWords"><list><l>snapextensions.uni-goettingen.de/handleTextfile.php?type=write&amp;content=</l><block var="value"/><l>&amp;filename=./textfiles/</l><block s="reportJoinWords"><list><block var="cloud"/><l>_id_</l><custom-block s="cloud ID"></custom-block></list></block><l>.txt</l></list></block></block></custom-block></script></block-definition><block-definition s="ignore %&apos;s&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="cloud var %&apos;s&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="substr %s"><block s="reportURL"><block s="reportJoinWords"><list><l>snapextensions.uni-goettingen.de/handleTextfile.php?type=read&amp;filename=./textfiles/</l><block s="reportJoinWords"><list><block var="s"/><l>_id_</l><custom-block s="cloud ID"></custom-block></list></block><l>.txt</l></list></block></block></custom-block></block></script></block-definition><block-definition s="cloud ID %&apos;s&apos;" type="command" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>a</l></list><l>cloudid = a</l></block><list><block var="s"/></list></block></script></block-definition><block-definition s="cloud ID" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l></l></list><l>return cloudid;</l></block><list></list></block></block></script></block-definition><block-definition s="play frequency %&apos;freq&apos; Hz for %&apos;b&apos; beats" type="command" category="sound"><comment x="0" y="0" w="199" collapsed="false">Plays a specific note and waits for it to finish</comment><header></header><code></code><translations></translations><inputs><input type="%n">440</input><input type="%n">0.5</input></inputs><script><custom-block s="play frequency %n Hz for %n beats without waiting"><block var="freq"/><block var="b"/></custom-block><block s="doRest"><block var="b"/></block></script></block-definition><block-definition s="play frequencies %&apos;freqs&apos; Hz for %&apos;b&apos; beats" type="command" category="sound"><comment x="0" y="0" w="180" collapsed="false">Plays a chord and waits for it to finish</comment><header></header><code></code><translations></translations><inputs><input type="%mult%n"></input><input type="%n">0.5</input></inputs><script><custom-block s="play frequencies %mult%n Hz for %n beats without waiting"><block var="freqs"/><block var="b"/></custom-block><block s="doRest"><block var="b"/></block></script></block-definition><block-definition s="frequency %&apos;note&apos;" type="reporter" category="sound"><comment x="0" y="0" w="183" collapsed="false">Returns the frequency for a piano note</comment><header></header><code></code><translations></translations><inputs><input type="%n">60&#xD;        <options>§_pianoKeyboardMenu</options></input></inputs><script><block s="doReport"><block s="reportProduct"><l>440</l><block s="reportPower"><l>2</l><block s="reportQuotient"><block s="reportDifference"><block var="note"/><l>69</l></block><l>12</l></block></block></block></block></script></block-definition><block-definition s="play arpeggio %&apos;freqs&apos; Hz for %&apos;b&apos; beats" type="command" category="sound"><comment x="0" y="0" w="257" collapsed="false">Plays all of the notes in order and waits for them to finish</comment><header></header><code></code><translations></translations><inputs><input type="%mult%n"></input><input type="%n">0.5</input></inputs><script><block s="doForEach"><l>item</l><block var="freqs"/><script><custom-block s="play frequency %n Hz for %n beats"><block var="item"/><block var="b"/></custom-block></script></block></script></block-definition><block-definition s="play frequency %&apos;freq&apos; Hz for %&apos;b&apos; beats without waiting" type="command" category="sound"><comment x="0" y="0" w="80" collapsed="false">Plays a note</comment><header></header><code></code><translations></translations><inputs><input type="%n">440</input><input type="%n">0.5</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>freq</l><l>b</l></list><l>const stage = this.parentThatIsA(StageMorph);let context = stage.audioContext();let gain = context.createGain();gain.connect(context.destination);gain.gain.value = stage.volume/800; const oscillator = context.createOscillator();oscillator.connect(gain);let inst;switch (this.instrument) {    default:        inst = "sine";        break;    case 2:        inst = "square";        break;    case 3:        inst = "sawtooth";        break;    case 4:        inst = "triangle";        break;}oscillator.type = inst;oscillator.frequency.value = freq;oscillator.start();oscillator.stop(context.currentTime + b * 60 / stage.tempo);</l></block><list><block var="freq"/><block var="b"/></list></block></script></block-definition><block-definition s="octave %&apos;note&apos; %&apos;oct&apos;" type="reporter" category="sound"><comment x="0" y="0" w="291" collapsed="false">Outputs the note after it has been shifted by the octave</comment><header></header><code></code><translations></translations><inputs><input type="%n">60&#xD;        <options>§_pianoKeyboardMenu</options></input><input type="%n">0</input></inputs><script><block s="doReport"><block s="reportSum"><block var="note"/><block s="reportProduct"><block var="oct"/><l>12</l></block></block></block></script></block-definition><block-definition s="do %&apos;blocks&apos; in order %&apos;order&apos;" type="command" category="control"><comment x="0" y="0" w="167" collapsed="false">Do each block in the order specified</comment><header></header><code></code><translations></translations><inputs><input type="%mult%cmdRing"></input><input type="%mult%n"></input></inputs><script><block s="doForEach"><l>index</l><block var="order"/><script><block s="doRun"><block s="reportListItem"><block var="index"/><block var="blocks"/></block><list></list></block></script></block></script></block-definition><block-definition s="let %&apos;var&apos; be %&apos;val&apos;" type="command" category="other"><comment x="0" y="0" w="200" collapsed="false">Creates a script variable with an initial value</comment><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%s">0</input></inputs><script><block s="doSetVar"><l>var</l><block var="val"/></block></script></block-definition><block-definition s="play frequencies %&apos;freqs&apos; Hz for %&apos;b&apos; beats without waiting" type="command" category="sound"><comment x="0" y="0" w="90" collapsed="false">Plays a chord</comment><header></header><code></code><translations></translations><inputs><input type="%mult%n"></input><input type="%n">0.5</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>freqs</l><l>b</l></list><l>const stage = this.parentThatIsA(StageMorph);let context = stage.audioContext();let gain = context.createGain();gain.connect(context.destination);gain.gain.value = stage.volume/800;let inst;switch (this.instrument) {    default:        inst = "sine";        break;    case 2:        inst = "square";        break;    case 3:        inst = "sawtooth";        break;    case 4:        inst = "triangle";        break;} for (freq of freqs.asArray()) {  let oscillator = context.createOscillator();  oscillator.connect(gain);  oscillator.type = inst;  oscillator.frequency.value = freq;  oscillator.start(context.currentTime);  oscillator.stop(context.currentTime + b * 60 / stage.tempo);}</l></block><list><block var="freqs"/><block var="b"/></list></block></script></block-definition><block-definition s="play arpeggio %&apos;freqs&apos; Hz for %&apos;b&apos; beats without waiting" type="command" category="sound"><comment x="0" y="0" w="137" collapsed="false">Plays all of the notes in order</comment><header></header><code></code><translations></translations><inputs><input type="%mult%n"></input><input type="%n">0.5</input></inputs><script><block s="fork"><block s="reifyScript"><script><custom-block s="play arpeggio %mult%n Hz for %n beats"><block var="freqs"/><block var="b"/></custom-block></script><list></list></block><list></list></block></script></block-definition><block-definition s="Open website %&apos;website&apos;" type="command" category="other"><comment x="0" y="0" w="90" collapsed="false">Opens a website in a new tab or window. Make sure it starts with https:// or http://</comment><header></header><code></code><translations></translations><inputs><input type="%s">https://www.google.com</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>openWebAddress</l></list><l>window.open(openWebAddress);</l></block><list><block var="website"/></list></block></script></block-definition><block-definition s="Alert %&apos;alert text&apos;" type="command" category="other"><comment x="0" y="0" w="90" collapsed="false">Popup with text.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>alertNameText</l></list><l>alert(alertNameText);</l></block><list><block var="alert text"/></list></block></script></block-definition><block-definition s="Notification title %&apos;title&apos; text %&apos;text&apos; icon link %&apos;icon&apos; image link %&apos;image&apos;" type="command" category="other"><comment x="0" y="0" w="90" collapsed="false">Creates a desktop notification. Any or all of the inputs can be filled.NB: Will ask user for permission first.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%txt"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>notificationTitle</l><l>notificationText</l><l>iconLink</l><l>imageLink</l></list><l>// Check if the browser supports notifications  if (!("Notification" in window)) {}  else if (Notification.permission === "granted") {    var notification = new Notification(notificationTitle, {body:notificationText, icon:iconLink, image:imageLink});  }  else if (Notification.permission !== "denied") {    Notification.requestPermission().then(function (permission) {    if (permission === "granted") {        var notification = new Notification(notificationText);      }    });  }</l></block><list><block var="title"/><block var="text"/><block var="icon"/><block var="image"/></list></block></script></block-definition><block-definition s="Confirm popup %&apos;text&apos;" type="predicate" category="other"><comment x="0" y="0" w="90" collapsed="false">Popup with &apos;Ok&apos; or &apos;Cancel&apos;</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>confirmText</l></list><l>return(confirm(confirmText));</l></block><list><block var="text"/></list></block></block></script></block-definition><block-definition s="Prompt %&apos;text&apos; default %&apos;default text&apos;" type="reporter" category="other"><comment x="0" y="0" w="90" collapsed="false">Popup with an input.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>promptText</l><l>promptDefault</l></list><l>return(prompt(promptText, promptDefault));</l></block><list><block var="text"/><block var="default text"/></list></block></block></script></block-definition><block-definition s="popup %&apos;text&apos;" type="command" category="other"><comment x="0" y="0" w="90" collapsed="false">Creates a new window with text in.</comment><header></header><code></code><translations></translations><inputs><input type="%s">Text</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>javaText</l></list><l>let newWindow = window.open("about:blank", "", "_blank"); let textBlock = javaTextif (newWindow) {	newWindow.document.write(textBlock);}</l></block><list><block var="text"/></list></block></script></block-definition><block-definition s="set cookie var %&apos;cname&apos; to %&apos;cvalue&apos; will expire in %&apos;exdays&apos; days" type="command" category="other"><comment x="0" y="0" w="90" collapsed="false">Creates a browser cookie with the value, title, and expire date.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%n"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>cname</l><l>exdays</l><l>cvalue</l></list><l>var d = new Date();  d.setTime(d.getTime() + (exdays*24*60*60*1000));  var expires = "expires="+ d.toUTCString();  document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";</l></block><list><block var="cname"/><block var="exdays"/><block var="cvalue"/></list></block></script></block-definition><block-definition s="get cookie var %&apos;cname&apos;" type="reporter" category="other"><comment x="0" y="0" w="90" collapsed="false">Returns the value of the specified cookie.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>cname</l></list><l>var name = cname + "=";  var decodedCookie = decodeURIComponent(document.cookie);  var ca = decodedCookie.split(&apos;;&apos;);  for(var i = 0; i &lt;ca.length; i++) {    var c = ca[i];    while (c.charAt(0) == &apos; &apos;) {      c = c.substring(1);    }    if (c.indexOf(name) == 0) {      return c.substring(name.length, c.length);    }  }return ca;</l></block><list><block var="cname"/></list></block></block></script></block-definition><block-definition s="File save prompt . name: %&apos;file name&apos; text %&apos;file text&apos; extension: %&apos;file extension&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>textContents</l><l>textName</l><l>fileExtension</l></list><l>var ide=this.parentThatIsA(IDE_Morph);&#xD;ide.saveFileAs(textContents,&apos;text/&apos; + fileExtension + &apos;;charset=utf-8&apos;, textName);</l></block><list><block var="file text"/><block var="file name"/><block var="file extension"/></list></block></script></block-definition><block-definition s="set cursor %&apos;cursor name&apos;" type="command" category="other"><comment x="0" y="0" w="261" collapsed="false">Sets cursor to a specific image. See https://www.w3schools.com/CSSref/playit.asp?filename=playcss_cursor&amp;preval=alias for a list of keywords</comment><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>cursorName</l></list><l>document.body.style.cursor = cursorName;</l></block><list><block var="cursor name"/></list></block></script></block-definition><block-definition s="return cursor" type="command" category="other"><comment x="0" y="0" w="90" collapsed="false">&quot;Help! I don&apos;t know how to change the cursor back!&quot;</comment><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="set cursor %txt"><l>default</l></custom-block></script></block-definition><block-definition s="website popup %&apos;website&apos;" type="command" category="other"><comment x="0" y="0" w="114" collapsed="false">Opens a new window with a website.</comment><header></header><code></code><translations></translations><inputs><input type="%s">https://www.google.com</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>javaWebsite</l></list><l>let newWindow = window.open(javaWebsite, "", "_blank");</l></block><list><block var="website"/></list></block></script></block-definition><block-definition s="anywhere url %&apos;url&apos;" type="reporter" category="other"><comment x="0" y="0" w="90" collapsed="false">Get html contents from anywhere on the internet.</comment><header></header><code></code><translations></translations><inputs><input type="%s">https://en.wikipedia.org/wiki/Main_page</input></inputs><script><block s="doReport"><block s="reportURL"><block s="reportJoinWords"><list><l>https://cors-anywhere.herokuapp.com/</l><block var="url"/></list></block></block></block></script></block-definition><block-definition s="pen %&apos;state&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%b"></input></inputs><script><block s="doIfElse"><block var="state"/><script><block s="down"></block></script><script><block s="up"></block></script></block></script></block-definition><block-definition s="wait for click" type="command" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWaitUntil"><block s="reportMouseDown"></block></block><block s="doWaitUntil"><block s="reportNot"><block s="reportMouseDown"></block></block></block></script></block-definition><block-definition s="get hex at mouse-pointer" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportJoinWords"><list><custom-block s="convert decimal %n to 2-digit-padded hex"><block s="reportListItem"><l>1</l><block s="reportAspect"><l><option>r-g-b-a</option></l><l><option>mouse-pointer</option></l></block></block></custom-block><custom-block s="convert decimal %n to 2-digit-padded hex"><block s="reportListItem"><l>2</l><block s="reportAspect"><l><option>r-g-b-a</option></l><l><option>mouse-pointer</option></l></block></block></custom-block><custom-block s="convert decimal %n to 2-digit-padded hex"><block s="reportListItem"><l>3</l><block s="reportAspect"><l><option>r-g-b-a</option></l><l><option>mouse-pointer</option></l></block></block></custom-block></list></block></block></script></block-definition><block-definition s="set pen color to r: %&apos;r&apos; g: %&apos;g&apos; b: %&apos;b&apos;" type="command" category="pen"><header></header><code></code><translations>pt:altera a cor da tua caneta para vermelho _ , verde _ e azul _ (0 a 255)&#xD;</translations><inputs><input type="%n">255</input><input type="%n">0</input><input type="%n">0</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>r</l><l>g</l><l>b</l></list><l>this.setColor(new Color(r, g, b));</l></block><list><block var="r"/><block var="g"/><block var="b"/></list></block></script></block-definition><block-definition s="convert hex %&apos;hex&apos; to decimal" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>hex</l></list><l>return parseInt(hex, 16)</l></block><list><block var="hex"/></list></block></block></script></block-definition><block-definition s="convert hex %&apos;hex&apos; to rgb" type="reporter" category="operators"><comment x="0" y="0" w="90" collapsed="false">Returns list [r,g,b]</comment><header></header><code></code><translations></translations><inputs><input type="%s">ff00ff</input></inputs><script><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="hex"/></block><l>6</l></block><script><block s="doReport"><block s="reportNewList"><list><custom-block s="convert hex %s to decimal"><custom-block s="substring of %txt from position %n to position %n inclusive"><block var="hex"/><l>1</l><l>2</l></custom-block></custom-block><custom-block s="convert hex %s to decimal"><custom-block s="substring of %txt from position %n to position %n inclusive"><block var="hex"/><l>3</l><l>4</l></custom-block></custom-block><custom-block s="convert hex %s to decimal"><custom-block s="substring of %txt from position %n to position %n inclusive"><block var="hex"/><l>5</l><l>6</l></custom-block></custom-block></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="hex"/></block><l>3</l></block><script><block s="doReport"><block s="reportNewList"><list><custom-block s="convert hex %s to decimal"><block s="reportJoinWords"><list><block s="reportLetter"><l>1</l><block var="hex"/></block><block s="reportLetter"><l>1</l><block var="hex"/></block></list></block></custom-block><custom-block s="convert hex %s to decimal"><block s="reportJoinWords"><list><block s="reportLetter"><l>2</l><block var="hex"/></block><block s="reportLetter"><l>2</l><block var="hex"/></block></list></block></custom-block><custom-block s="convert hex %s to decimal"><block s="reportJoinWords"><list><block s="reportLetter"><l>3</l><block var="hex"/></block><block s="reportLetter"><l>3</l><block var="hex"/></block></list></block></custom-block></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="hex"/></block><l>1</l></block><script><block s="doReport"><block s="reportNewList"><list><custom-block s="convert hex %s to decimal"><block s="reportJoinWords"><list><block s="reportLetter"><l>1</l><block var="hex"/></block><block s="reportLetter"><l>1</l><block var="hex"/></block></list></block></custom-block><custom-block s="convert hex %s to decimal"><block s="reportJoinWords"><list><block s="reportLetter"><l>1</l><block var="hex"/></block><block s="reportLetter"><l>1</l><block var="hex"/></block></list></block></custom-block><custom-block s="convert hex %s to decimal"><block s="reportJoinWords"><list><block s="reportLetter"><l>1</l><block var="hex"/></block><block s="reportLetter"><l>1</l><block var="hex"/></block></list></block></custom-block></list></block></block></script></block></script></block-definition><block-definition s="substring of %&apos;string&apos; before %&apos;marker&apos;" type="reporter" category="operators"><comment x="0" y="0" w="175.33333333333334" collapsed="false">Reports the part of the first string up to the first instance of the second string inside it.  If the second string isn&apos;t found, reports the entire first string.</comment><header></header><code></code><translations>pt:o texto de _ antes de _&#xD;</translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>string</l><l>marker</l></list><l>var world=this.parentThatIsA(IDE_Morph);if (!("stringLibCaseIndependentComparison" in world)) {    world["stringLibCaseIndependentComparison"] = true;};if (world["stringLibCaseIndependentComparison"]) {    var index=string.toLocaleLowerCase().indexOf(marker.toLocaleLowerCase());    if (index&lt;0) {return string};    return string.slice(0,index);} else {    var index=string.indexOf(marker);    if (index&lt;0) {return string};    return string.slice(0,index);}</l></block><list><block var="string"/><block var="marker"/></list></block></block></script></block-definition><block-definition s="substring of %&apos;string&apos; after %&apos;marker&apos;" type="reporter" category="operators"><comment x="0" y="0" w="203.33333333333334" collapsed="false">Reports the portion of the first input string starting after the first occurrence of the second string.  If the second string isn&apos;t found in the first string, reports an empty string.</comment><header></header><code></code><translations>pt:o texto de _ depois de _&#xD;</translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>string</l><l>marker</l><l>markerlength</l></list><l>var world=this.parentThatIsA(IDE_Morph);if (!("stringLibCaseIndependentComparison" in world)) {    world["stringLibCaseIndependentComparison"] = true;};if (world["stringLibCaseIndependentComparison"]) {    var index=string.toLocaleLowerCase().indexOf(marker.toLocaleLowerCase());    if (index&lt;0) {return ""};    return string.slice(index+markerlength);} else {    var index=string.indexOf(marker);    if (index&lt;0) {return ""};    return string.slice(index+markerlength);}</l></block><list><block var="string"/><block var="marker"/><block s="reportStringSize"><block var="marker"/></block></list></block></block></script></block-definition><block-definition s="position of %&apos;small&apos; in %&apos;large&apos;" type="reporter" category="operators"><comment x="0" y="0" w="294" collapsed="false">Reports the character position (starting from 1) of the beginning of the first input string inside the second input string.If it&apos;s not found, reports 0.</comment><header></header><code></code><translations>pt:a posição de _ em _&#xD;</translations><inputs><input type="%s"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>sub</l><l>sup</l></list><l>var world=this.parentThatIsA(IDE_Morph);if (!("stringLibCaseIndependentComparison" in world)) {    world["stringLibCaseIndependentComparison"] = true;};if (world["stringLibCaseIndependentComparison"]) {    return 1+sup.toLocaleLowerCase().indexOf(sub.toLocaleLowerCase());} else {    return 1+sup.indexOf(sub);}</l></block><list><block var="small"/><block var="large"/></list></block></block></script></block-definition><block-definition s="use case-independent comparisons %&apos;tf&apos;" type="command" category="operators"><comment x="0" y="0" w="225.33333333333334" collapsed="false">If input is TRUE, comparisons made by functions in the string library will be case-independent (so &quot;FOO&quot; = &quot;foo&quot;).  This is the default.If input is FALSE, comparisons will be exact.</comment><header></header><code></code><translations>pt:altera comparações ignorando distinção minúsculas/maiúsculas para _&#xD;</translations><inputs><input type="%b"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>flag</l></list><l>var world=this.parentThatIsA(IDE_Morph);world[&apos;stringLibCaseIndependentComparison&apos;] = flag;</l></block><list><block var="tf"/></list></block></script></block-definition><block-definition s="substring of %&apos;str&apos; from position %&apos;start&apos; to position %&apos;end&apos; inclusive" type="reporter" category="operators"><comment x="0" y="0" w="297.3333333333333" collapsed="false">Reports the portion of the first input (string) starting at the position given by the second input (counting from 1, like LETTER n OF) and ending at the position given by the third input (also counting from 1).  If the third input is empty, reports the portion from the first position to the end of the string.If a position number is negative, counts from the end backward, so -1 is the last character, -2 is the next to last, etc.</comment><header></header><code></code><translations>pt:o texto de _ entre as posições _ e _ , inclusive&#xD;</translations><inputs><input type="%txt"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>str</l><l>start</l><l>end</l></list><l>if (end != "") {    return str.slice(start-1,end);} else {    return str.slice(start-1);}</l></block><list><block var="str"/><block var="start"/><block var="end"/></list></block></block></script></block-definition><block-definition s="set pen colour to hex: %&apos;hex&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s">123456</input></inputs><script><custom-block s="set pen color to r: %n g: %n b: %n"><block s="reportListItem"><l>1</l><custom-block s="convert hex %s to rgb"><block var="hex"/></custom-block></block><block s="reportListItem"><l>2</l><custom-block s="convert hex %s to rgb"><block var="hex"/></custom-block></block><block s="reportListItem"><l>3</l><custom-block s="convert hex %s to rgb"><block var="hex"/></custom-block></block></custom-block></script></block-definition><block-definition s="RGB color" type="reporter" category="pen"><header></header><code></code><translations>pt:a cor da caneta em RGB (vermelho, verde e azul; 0 a 255)&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l></l></list><l>return new List([this.color.r, this.color.g, this.color.b]);</l></block><list></list></block></block></script></block-definition><block-definition s="convert decimal %&apos;dec&apos; to 2-digit-padded hex" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doDeclareVariables"><list><l>hex</l></list></block><block s="doSetVar"><l>hex</l><block s="evaluate"><block s="reportJSFunction"><list><l>dec</l></list><l>return dec.toString(16)</l></block><list><block var="dec"/></list></block></block><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="hex"/></block><l>1</l></block><script><block s="doSetVar"><l>hex</l><block s="reportJoinWords"><list><l>0</l><block var="hex"/></list></block></block></script></block><block s="doReport"><block var="hex"/></block></script></block-definition><block-definition s="hexmap-style hex at this sprite" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>output-temp</l></list></block><block s="doSetVar"><l>output-temp</l><custom-block s="get hex at this sprite"></custom-block></block><block s="doIf"><block s="reportAnd"><block s="reportEquals"><block s="reportLetter"><l>1</l><block var="output-temp"/></block><block s="reportLetter"><l>2</l><block var="output-temp"/></block></block><block s="reportAnd"><block s="reportEquals"><block s="reportLetter"><l>3</l><block var="output-temp"/></block><block s="reportLetter"><l>4</l><block var="output-temp"/></block></block><block s="reportEquals"><block s="reportLetter"><l>5</l><block var="output-temp"/></block><block s="reportLetter"><l>6</l><block var="output-temp"/></block></block></block></block><script><block s="doIfElse"><block s="reportAnd"><block s="reportEquals"><block s="reportLetter"><l>2</l><block var="output-temp"/></block><block s="reportLetter"><l>3</l><block var="output-temp"/></block></block><block s="reportEquals"><block s="reportLetter"><l>4</l><block var="output-temp"/></block><block s="reportLetter"><l>5</l><block var="output-temp"/></block></block></block><script><block s="doSetVar"><l>output-temp</l><block s="reportJoinWords"><list><l>m</l><block s="reportLetter"><l>1</l><block var="output-temp"/></block></list></block></block></script><script><block s="doSetVar"><l>output-temp</l><block s="reportJoinWords"><list><l>s</l><block s="reportLetter"><l>1</l><block var="output-temp"/></block><block s="reportLetter"><l>3</l><block var="output-temp"/></block><block s="reportLetter"><l>5</l><block var="output-temp"/></block></list></block></block></script></block></script></block><block s="doReport"><block var="output-temp"/></block></script></block-definition><block-definition s="get hex at this sprite" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportJoinWords"><list><custom-block s="convert decimal %n to 2-digit-padded hex"><block s="reportListItem"><l>1</l><block s="reportAspect"><l><option>r-g-b-a</option></l><l><option>myself</option></l></block></block></custom-block><custom-block s="convert decimal %n to 2-digit-padded hex"><block s="reportListItem"><l>2</l><block s="reportAspect"><l><option>r-g-b-a</option></l><l><option>myself</option></l></block></block></custom-block><custom-block s="convert decimal %n to 2-digit-padded hex"><block s="reportListItem"><l>3</l><block s="reportAspect"><l><option>r-g-b-a</option></l><l><option>myself</option></l></block></block></custom-block></list></block></block></script></block-definition><block-definition s="create hexmap from x: %&apos;x1&apos; y: %&apos;y1&apos; to x: %&apos;x2&apos; y: %&apos;y2&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%n">-220</input><input type="%n">160</input><input type="%n">220</input><input type="%n">-160</input></inputs><script><block s="doDeclareVariables"><list><l>hexmap-out</l><l>oldX</l><l>oldY</l><l>oldDIR</l></list></block><block s="doSetVar"><l>oldX</l><block s="xPosition"></block></block><block s="doSetVar"><l>oldY</l><block s="yPosition"></block></block><block s="doSetVar"><l>oldDIR</l><block s="direction"></block></block><block s="gotoXY"><block var="x1"/><block var="y1"/></block><block s="doWarp"><script><block s="doFor"><l>y</l><block var="y1"/><block var="y2"/><script><block s="doFor"><l>x</l><block var="x1"/><block var="x2"/><script><block s="doSetVar"><l>hexmap-out</l><block s="reportJoinWords"><list><block var="hexmap-out"/><custom-block s="hexmap-style hex at this sprite"></custom-block></list></block></block><block s="setXPosition"><block s="reportSum"><block var="x"/><l>1</l></block></block></script></block><block s="doSetVar"><l>hexmap-out</l><block s="reportJoinWords"><list><block var="hexmap-out"/><l>\</l></list></block></block><block s="setYPosition"><block s="reportDifference"><block var="y"/><l>1</l></block></block><block s="setXPosition"><block var="x1"/></block></script><comment w="117" collapsed="true">using for just in case I need the loop count, even though I don&apos;t think I will</comment></block></script></block><block s="setXPosition"><block var="oldX"/></block><block s="setYPosition"><block var="oldY"/></block><block s="setHeading"><block var="oldDIR"/></block><block s="doReport"><block var="hexmap-out"/></block></script></block-definition><block-definition s="Seconds %&apos;sec&apos; To Minutes" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportQuotient"><block var="sec"/><l>60</l></block></block></script></block-definition><block-definition s="write %&apos;text&apos; size %&apos;size&apos; direction %&apos;direction&apos; at x: %&apos;x&apos; y: %&apos;y&apos; color %&apos;color1&apos; %&apos;color2&apos; %&apos;color3&apos; %&apos;color4&apos; clear? %&apos;clear?&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%txt">Hello!</input><input type="%n">12</input><input type="%n">90</input><input type="%n">0</input><input type="%n">0</input><input type="%n">0</input><input type="%n">100</input><input type="%n">0</input><input type="%n">0</input><input type="%b">true</input></inputs><script><block s="doDeclareVariables"><list><l>code</l></list></block><block s="doSetVar"><l>code</l><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>X</l><l>Y</l><l>Direction</l></list></block><block s="doSetVar"><l>X</l><block s="xPosition"></block></block><block s="doSetVar"><l>Y</l><block s="yPosition"></block></block><block s="doSetVar"><l>Direction</l><block s="direction"></block></block><block s="gotoXY"><block var="x"/><block var="y"/></block><block s="setHeading"><block var="direction"/></block><block s="setPenHSVA"><l><option>hue</option></l><block var="color1"/></block><block s="setPenHSVA"><l><option>saturation</option></l><block var="color2"/></block><block s="setPenHSVA"><l><option>brightness</option></l><block var="color3"/></block><block s="setPenHSVA"><l><option>transparency</option></l><block var="color4"/></block><block s="write"><block var="text"/><block var="size"/></block><block s="gotoXY"><block var="X"/><block var="Y"/></block><block s="setHeading"><block var="Direction"/></block></script><list></list></block></block><block s="doIfElse"><block var="clear?"/><script><block s="clear"></block><block s="doRun"><block var="code"/><list></list></block></script><script><block s="doRun"><block var="code"/><list></list></block></script></block></script></block-definition><block-definition s="$cloudGradient Highscore" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>Snap! Didn&apos;t Added Cloud Variable :(</l></block></script></block-definition><block-definition s="Convert %&apos;boolean&apos; To Text" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%b">true</input></inputs><script><block s="doIfElse"><block s="reportEquals"><block var="boolean"/><block s="reportBoolean"><l><bool>true</bool></l></block></block><script><block s="doReport"><l>true</l></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="boolean"/><block s="reportBoolean"><l><bool>false</bool></l></block></block><script><block s="doReport"><l>false</l></block></script><script><block s="doReport"><l>error</l></block></script></block></script></block></script></block-definition><block-definition s="play note %&apos;note&apos; for %&apos;seconds&apos; seconds" type="command" category="sound"><header></header><code></code><translations></translations><inputs><input type="%n">60<options>§_pianoKeyboardMenu</options></input><input type="%n">0.5</input></inputs><script><block s="doPlayNote"><block var="note"/><block s="reportProduct"><block s="reportQuotient"><block s="getTempo"></block><l>60</l></block><l>0.5</l></block></block></script></block-definition><block-definition s="forever if %&apos;boolean&apos; %&apos;command&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%cs"></input></inputs><script><block s="doForever"><script><block s="doIf"><block s="reportEquals"><block var="boolean"/><block s="reportBoolean"><l><bool>true</bool></l></block></block><script><block s="fork"><block var="command"/><list></list></block></script></block></script></block></script></block-definition><block-definition s="Reverse %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt">Hello!</input></inputs><script><block s="doDeclareVariables"><list><l>a</l><l>b</l><l>c</l></list></block><block s="doSetVar"><l>a</l><block s="reportStringSize"><block var="text"/></block></block><block s="doSetVar"><l>b</l><l></l></block><block s="doWarp"><script><block s="doRepeat"><block s="reportStringSize"><block var="text"/></block><script><block s="doSetVar"><l>b</l><block s="reportJoinWords"><list><block var="b"/><block s="reportLetter"><block var="a"/><block var="text"/></block></list></block></block><block s="doChangeVar"><l>a</l><l>-1</l></block></script></block></script></block><block s="doReport"><block var="b"/></block></script></block-definition><block-definition s="%&apos;number1&apos; e %&apos;number2&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s">1.3</input><input type="%s">2</input></inputs><script><block s="doReport"><block s="reportProduct"><block var="number1"/><block s="reportMonadic"><l><option>10^</option></l><block var="number2"/></block></block></block></script></block-definition><block-definition s="number %&apos;numbr&apos; dot cut %&apos;dc&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n">123.4567890</input><input type="%n">2</input></inputs><script><block s="doDeclareVariables"><list><l>a</l><l>b</l></list></block><block s="doSetVar"><l>a</l><l>1</l></block><block s="doSetVar"><l>b</l><l></l></block><block s="doIfElse"><block s="reportEquals"><block var="dc"/><l>0</l></block><script><block s="doReport"><block var="numbr"/></block></script><script><block s="doRepeat"><block var="dc"/><script><block s="doSetVar"><l>b</l><block s="reportJoinWords"><list><block var="b"/><block s="reportLetter"><block var="a"/><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block var="numbr"/><l>.</l></block></block></block></list></block></block><block s="doChangeVar"><l>a</l><l>1</l></block></script></block><block s="doReport"><block s="reportJoinWords"><list><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="numbr"/><l>.</l></block></block><block s="reportJoinWords"><list><l>.</l><block var="b"/></list></block></list></block></block></script></block></script></block-definition><block-definition s="Mix %&apos;texts&apos; Division %&apos;division&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%mult%txt"></input><input type="%n">2</input></inputs><script><block s="doDeclareVariables"><list><l>a</l><l>b</l><l>c</l></list></block><block s="doSetVar"><l>a</l><l>1</l></block><block s="doSetVar"><l>b</l><l></l></block><block s="doSetVar"><l>c</l><l>1</l></block><block s="doWarp"><script><block s="doRepeat"><block s="reportSum"><block s="reportListLength"><block var="texts"/></block><l>0</l></block><script><block s="doRepeat"><block s="reportSum"><block s="reportQuotient"><block s="reportStringSize"><block s="reportListItem"><block var="c"/><block var="texts"/></block></block><block var="division"/></block><l>1</l></block><script><block s="doSetVar"><l>b</l><block s="reportJoinWords"><list><block var="b"/><block s="reportLetter"><block var="a"/><block s="reportListItem"><block var="c"/><block var="texts"/></block></block></list></block></block><block s="doChangeVar"><l>a</l><l>1</l></block></script></block><block s="doChangeVar"><l>c</l><l>1</l></block><block s="doSetVar"><l>a</l><block s="reportRound"><block s="reportQuotient"><block s="reportStringSize"><block s="reportListItem"><block var="c"/><block var="texts"/></block></block><block var="division"/></block></block></block></script></block><block s="doReport"><block var="b"/></block></script></block></script><scripts><script x="725.5205108125001" y="371.0000049999995"><block var="division"/></script><script x="117.47949618749999" y="123.00000499999999"><block s="reportMonadic"><l><option>ceiling</option></l><l>10</l></block></script><script x="217.5498076875" y="386.00000300000016"><block s="reportMonadic"><l><option>ceiling</option></l><l>10</l></block></script></scripts></block-definition><block-definition s="Mix %&apos;separator&apos; %&apos;division number&apos; %&apos;h&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt">,</input><input type="%n">2</input><input type="%txt">Hello,There</input></inputs><script><block s="doDeclareVariables"><list><l>a</l><l>b</l><l>c</l><l>d</l></list></block><block s="doSetVar"><l>a</l><block s="reportTextSplit"><block var="h"/><l>,</l></block></block><block s="doSetVar"><l>b</l><l>1</l></block><block s="doSetVar"><l>c</l><l></l></block><block s="doSetVar"><l>d</l><l>1</l></block><block s="doWarp"><script><block s="doRepeat"><block s="reportListLength"><block var="a"/></block><script><block s="doRepeat"><block s="reportSum"><block s="reportQuotient"><block s="reportStringSize"><block s="reportListItem"><block var="d"/><block var="a"/></block></block><block var="division number"/></block><block s="reportDifference"><block var="division number"/><l>1</l></block></block><script><block s="doSetVar"><l>c</l><block s="reportJoinWords"><list><block var="c"/><block s="reportLetter"><block var="b"/><block s="reportListItem"><block var="d"/><block var="a"/></block></block></list></block></block><block s="doChangeVar"><l>b</l><l>1</l></block></script></block><block s="doChangeVar"><l>d</l><l>1</l></block><block s="doSetVar"><l>b</l><block s="reportRound"><block s="reportQuotient"><block s="reportStringSize"><block s="reportListItem"><block var="d"/><block var="a"/></block></block><block var="division number"/></block></block></block></script></block><block s="doReport"><block var="c"/></block></script></block></script><scripts><script x="217.4794941875" y="106.000002"><block s="reportListLength"><l/></block></script><script x="227.4228545625" y="132.000004"><block var="a"/></script></scripts></block-definition><block-definition s="copy %&apos;list&apos; from %&apos;start&apos; to %&apos;end&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%n">1</input><input type="%n">10</input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>list</l><l>start</l><l>end</l></list><l>return new List(list.asArray().slice(+start - 1, +end))</l></block><list><block var="list"/><block var="start"/><block var="end"/></list></block></block></script></block-definition><block-definition s="text %&apos;text&apos; size %&apos;size&apos; text align %&apos;textA&apos; font %&apos;textFONT&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%txt">Hello!</input><input type="%n">12</input><input type="%txt">left</input><input type="%txt">px monospace</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>text</l><l>size</l><l>textA</l><l>textFONT</l></list><l>var stage = this.parentThatIsA(StageMorph),&#xD;    context = stage.penTrails().getContext(&apos;2d&apos;),&#xD;    rotation = radians(this.direction() - 90),&#xD;    trans = new Point(&#xD;      this.center().x - stage.left(),&#xD;      this.center().y - stage.top()&#xD;    ),&#xD;    isWarped = this.Warped,&#xD;    len,&#xD;    pos;&#xD;&#xD;if (isWarped) {endWarp(); }&#xD;context.save();&#xD;context.font = size + "px " + textFONT;&#xD;context.textAlign = textA;&#xD;context.textBaseline = &apos;alphabetic&apos;;&#xD;context.fillStyle = this.color.toString();&#xD;len = context.measureText(text).width;&#xD;trans = trans.multiplyBy(1 / stage.scale);&#xD;context.translate(trans.x, trans.y);&#xD;context.rotate(rotation);&#xD;context.fillText(text, 0, 0);&#xD;context.translate(-trans.x, -trans.y);&#xD;context.restore();&#xD;pos = new Point(&#xD;  len * Math.sin(radians(this.direction())),&#xD;  len * Math.cos(radians(this.direction())));&#xD;pos = pos.add(new Point(this.xPosition(), this.yPosition()));&#xD;this.gotoXY(pos.x, pos.y, false);&#xD;this.changed();&#xD;if (isWarped) {this.startWarp(); }&#xD;stage.changed();</l></block><list><block var="text"/><block var="size"/><block var="textA"/><block var="textFONT"/></list></block></script></block-definition><block-definition s="JS map %&apos;reporter&apos; over %&apos;list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>reporter</l><l>list</l><l>process</l></list><l>// process.context.inputs:&#xD;// [0] - reporter&#xD;// [1] - list (original source)&#xD;// ---------------------------------&#xD;// [2..n] - result values (target)&#xD;&#xD;if (process.context.inputs.length - 2 === list.length()) {&#xD;  process.returnValueToParentContext(&#xD;    new List(process.context.inputs.slice(2))&#xD;  );&#xD;  return;&#xD;}&#xD;var next = list.at(process.context.inputs.length - 1);&#xD;process.pushContext();&#xD;process.evaluate(reporter, new List([next]));</l></block><list><block var="reporter"/><block var="list"/></list></block></block></script></block-definition><block-definition s="speak %&apos;text&apos; at volume %&apos;v&apos; rate %&apos;r&apos; pitch %&apos;p&apos; voice type %&apos;vt&apos;" type="command" category="sound"><header></header><code></code><translations></translations><inputs><input type="%s">Hello, World!</input><input type="%n">1</input><input type="%n">1</input><input type="%n">0.8</input><input type="%n">1</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>msg</l><l>v</l><l>r</l><l>p</l><l>vt</l></list><l>function say(m) {&#xD;  var msg = new SpeechSynthesisUtterance();&#xD;  var voices = window.speechSynthesis.getVoices();&#xD;  msg.voice = voices[vt];&#xD;  msg.voiceURI = "native";&#xD;  msg.volume = v;&#xD;  msg.rate = r;&#xD;  msg.pitch = p;&#xD;  msg.text = m;&#xD;  msg.lang = &apos;en-US&apos;;&#xD;  speechSynthesis.speak(msg); &#xD;};&#xD;say(msg)</l></block><list><block var="text"/><block var="v"/><block var="r"/><block var="p"/><block var="vt"/></list></block></script></block-definition><block-definition s="MS test %&apos;repeat&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n">5000</input></inputs><script><block s="doDeclareVariables"><list><l>test</l></list></block><block s="doResetTimer"></block><block s="doWarp"><script><block s="doRepeat"><block var="repeat"/><script><block s="doSetVar"><l>test</l><l>0</l></block></script></block></script></block><block s="doReport"><block s="reportJoinWords"><list><block s="reportProduct"><block s="getTimer"></block><l>1000</l></block><l> MS</l></list></block></block></script></block-definition><block-definition s="text %&apos;text&apos; size %&apos;size&apos; text align %&apos;textA&apos; font %&apos;textFONT&apos; at x: %&apos;x&apos; y: %&apos;y&apos; clear? %&apos;boolean&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%txt">Hello!</input><input type="%n">12</input><input type="%txt">left</input><input type="%txt">px monospace</input><input type="%n">0</input><input type="%n">0</input><input type="%b">true</input></inputs><script><block s="gotoXY"><block var="x"/><block var="y"/></block><block s="doIf"><block var="boolean"/><script><block s="clear"></block></script></block><block s="doRun"><block s="reportJSFunction"><list><l>text</l><l>size</l><l>textA</l><l>textFONT</l></list><l>var stage = this.parentThatIsA(StageMorph),&#xD;    context = stage.penTrails().getContext(&apos;2d&apos;),&#xD;    rotation = radians(this.direction() - 90),&#xD;    trans = new Point(&#xD;      this.center().x - stage.left(),&#xD;      this.center().y - stage.top()&#xD;    ),&#xD;    isWarped = this.Warped,&#xD;    len,&#xD;    pos;&#xD;&#xD;if (isWarped) {endWarp(); }&#xD;context.save();&#xD;context.font = size + "px " + textFONT;&#xD;context.textAlign = textA;&#xD;context.textBaseline = &apos;alphabetic&apos;;&#xD;context.fillStyle = this.color.toString();&#xD;len = context.measureText(text).width;&#xD;trans = trans.multiplyBy(1 / stage.scale);&#xD;context.translate(trans.x, trans.y);&#xD;context.rotate(rotation);&#xD;context.fillText(text, 0, 0);&#xD;context.translate(-trans.x, -trans.y);&#xD;context.restore();&#xD;pos = new Point(&#xD;  len * Math.sin(radians(this.direction())),&#xD;  len * Math.cos(radians(this.direction())));&#xD;pos = pos.add(new Point(this.xPosition(), this.yPosition()));&#xD;this.gotoXY(pos.x, pos.y, false);&#xD;this.changed();&#xD;if (isWarped) {this.startWarp(); }&#xD;stage.changed();</l></block><list><block var="text"/><block var="size"/><block var="textA"/><block var="textFONT"/></list></block><block s="gotoXY"><block var="x"/><block var="y"/></block></script></block-definition><block-definition s="go to center" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="gotoXY"><l>0</l><l>0</l></block></script></block-definition><block-definition s="Print %&apos;txt&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%txt">testinput</input></inputs><script><block s="gotoXY"><l>-230</l><l>150</l></block><block s="clear"></block><block s="doDeclareVariables"><list><l>#</l><l>Σ</l><l>LS</l></list></block><block s="doSetVar"><l>LS</l><l>No</l></block><block s="doSetVar"><l>#</l><l>0</l></block><block s="doSetVar"><l>Σ</l><l></l></block><block s="doRepeat"><block s="reportStringSize"><block var="txt"/></block><script><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doIfElse"><block s="reportEquals"><block s="reportLetter"><block var="#"/><block var="txt"/></block><l> </l></block><script><block s="doSetVar"><l>Σ</l><l> </l></block></script><script><block s="doSetVar"><l>Σ</l><block s="reportLetter"><block var="#"/><block var="txt"/></block></block></script></block><block s="doIf"><block s="reportOr"><block s="reportAnd"><block s="reportGreaterThan"><block s="xPosition"></block><l>200</l></block><block s="reportEquals"><block var="Σ"/><l> </l></block></block><block s="reportEquals"><block s="reportLetter"><block var="#"/><block var="txt"/></block><l>@</l></block></block><script><block s="changeYPosition"><l>-25</l></block><block s="setXPosition"><l>-230</l></block><block s="doSetVar"><l>LS</l><l>Yes</l></block></script></block><block s="doIfElse"><block s="reportAnd"><block s="reportEquals"><block var="LS"/><l>Yes</l></block><block s="reportOr"><block s="reportEquals"><block var="Σ"/><l> </l></block><block s="reportListContainsItem"><block s="reportTextSplit"><block var="Σ"/><l><option>letter</option></l></block><l>@</l></block></block></block><script></script><script><custom-block s="text %txt size %n text align %txt font %txt"><block s="reportLetter"><block var="#"/><block var="txt"/></block><l>24</l><l>left</l><l>px monospace</l></custom-block><block s="forward"><l>-0.25</l></block></script></block><block s="doSetVar"><l>LS</l><l>No</l></block></script></block></script></block-definition><block-definition s="run script %&apos;This&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%s">testinput</input></inputs><script><block s="doDeclareVariables"><list><l>number</l></list></block><block s="doSetVar"><l>number</l><l>0</l></block><block s="doIfElse"><block s="reportOr"><block s="reportIsA"><block var="This"/><l><option>list</option></l></block><block s="reportOr"><block s="reportIsA"><block var="This"/><l><option>Boolean</option></l></block><block s="reportOr"><block s="reportIsA"><block var="This"/><l><option>sprite</option></l></block><block s="reportOr"><block s="reportIsA"><block var="This"/><l><option>costume</option></l></block><block s="reportOr"><block s="reportIsA"><block var="This"/><l><option>sound</option></l></block><block s="reportOr"><block s="reportIsA"><block var="This"/><l><option>command</option></l></block><block s="reportOr"><block s="reportIsA"><block var="This"/><l><option>predicate</option></l></block><block s="reportIsA"><block var="This"/><l><option>reporter</option></l></block></block></block></block></block></block></block></block><script><custom-block s="Print %txt"><l>invalid data</l></custom-block><block s="doWaitUntil"><block s="reportKeyPressed"><l><option>z</option></l></block></block><block s="doWaitUntil"><block s="reportNot"><block s="reportKeyPressed"><l><option>z</option></l></block></block></block><block s="clear"></block></script><script><block s="doRepeat"><block s="reportListLength"><block s="reportTextSplit"><block var="This"/><l>#</l></block></block><script><block s="doChangeVar"><l>number</l><l>1</l></block><custom-block s="Print %txt"><block s="reportListItem"><block var="number"/><block s="reportTextSplit"><block var="This"/><l>#</l></block></block></custom-block><block s="doWaitUntil"><block s="reportKeyPressed"><l><option>z</option></l></block></block><block s="doWaitUntil"><block s="reportNot"><block s="reportKeyPressed"><l><option>z</option></l></block></block></block></script></block><block s="clear"></block></script></block></script></block-definition><block-definition s="run random %&apos;txt&apos; %&apos;boolean&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%txt">test#input</input><input type="%b">false</input></inputs><script><custom-block s="Print %txt"><block s="reportListItem"><block s="reportRandom"><l>1</l><block s="reportListLength"><block s="reportTextSplit"><block var="txt"/><l>#</l></block></block></block><block s="reportTextSplit"><block var="txt"/><l>#</l></block></block></custom-block><block s="doIf"><block var="boolean"/><script><block s="doWaitUntil"><block s="reportKeyPressed"><l><option>z</option></l></block></block><block s="doWaitUntil"><block s="reportNot"><block s="reportKeyPressed"><l><option>z</option></l></block></block></block><block s="clear"></block></script></block></script></block-definition><block-definition s="all but last of %&apos;list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block var="list"/></block><block s="doDeleteFromList"><l><option>last</option></l><block var="a"/></block><block s="doReport"><block var="a"/></block></script></block-definition><block-definition s="web %&apos;URL&apos; (start at %&apos;X&apos; ) lines %&apos;LIN&apos; text size %&apos;TXTS&apos; $nl ShowWorking? %&apos;SHOWWORKING&apos; ShowNumLines? %&apos;NUMLINES&apos; ShowURL? %&apos;XURL&apos; DispIntVars? %&apos;VARDEBUG&apos; Update? %&apos;NEWURL&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%s">https://snap.berkeley.edu/<options>https://snap.berkeley.edu/&#xD;https://www.youtube.com/&#xD;https://duckduckgo.com/&#xD;https://theuselessweb.com/&#xD;https://google.com&#xD;shameless plug lol=https://sites.google.com/a/lhsd.k12.oh.us/reibran/</options></input><input type="%n">1</input><input type="%n">40<options>1&#xD;2&#xD;5&#xD;10&#xD;20&#xD;40&#xD;50&#xD;100</options></input><input type="%n">9<options>8&#xD;9&#xD;10&#xD;12&#xD;16&#xD;18&#xD;24&#xD;48&#xD;72&#xD;98&#xD;120</options></input><input type="%b">true</input><input type="%b">true</input><input type="%b">true</input><input type="%b">true</input><input type="%b">true</input></inputs><script><block s="doDeclareVariables"><list><l>a</l><l>b</l><l>c</l><l>d</l></list></block><block s="fork"><block s="reifyScript"><script><block s="doUntil"><block s="reportEquals"><block var="d"/><l>-1</l></block><script><block s="doWait"><l>0.1</l></block><block s="doChangeVar"><l>d</l><l>1</l></block></script></block></script><list></list></block><list></list></block><block s="doIf"><block var="SHOWWORKING"/><script><block s="doTellTo"><block s="newClone"><l><option>myself</option></l></block><block s="reifyScript"><script><block s="hide"></block><block s="clear"></block><block s="gotoXY"><block s="reportAttributeOf"><l><option>left</option></l><l>Stage</l></block><block s="reportAttributeOf"><l><option>top</option></l><l>Stage</l></block></block><block s="changeYPosition"><block s="reportMonadic"><l><option>neg</option></l><block var="TXTS"/></block></block><block s="setColor"><color>16,0,11,1</color></block><block s="write"><l>████████</l><block var="TXTS"/></block><block s="gotoXY"><block s="reportAttributeOf"><l><option>left</option></l><l>Stage</l></block><block s="reportAttributeOf"><l><option>top</option></l><l>Stage</l></block></block><block s="changeYPosition"><block s="reportMonadic"><l><option>neg</option></l><block var="TXTS"/></block></block><block s="setXPosition"><block s="reportAttributeOf"><l><option>left</option></l><l>Stage</l></block></block><block s="changeXPosition"><l>4</l></block><block s="setColor"><color>255,240,244,1</color></block><block s="write"><l>working</l><block var="TXTS"/></block><block s="removeClone"></block></script><list></list></block><list></list></block></script></block><block s="gotoXY"><block s="reportAttributeOf"><l><option>left</option></l><l>Stage</l></block><block s="reportAttributeOf"><l><option>top</option></l><l>Stage</l></block></block><block s="changeYPosition"><block s="reportMonadic"><l><option>neg</option></l><block var="TXTS"/></block></block><block s="doIfElse"><block var="NEWURL"/><script><block s="doSetVar"><l>a</l><block s="reportTextSplit"><custom-block s="anywhere url %s"><block var="URL"/></custom-block><l><option>line</option></l></block></block><block s="doSetVar"><l>b</l><block var="X"/></block><block s="doSetVar"><l>url memory</l><block var="a"/></block></script><script><block s="doSetVar"><l>a</l><block var="url memory"/></block><block s="doSetVar"><l>b</l><block var="X"/></block></script></block><block s="clear"></block><block s="doIf"><block var="XURL"/><script><block s="doIf"><block var="NUMLINES"/><script><block s="write"><l>URL:|</l><block var="TXTS"/></block></script></block><block s="write"><block var="URL"/><block var="TXTS"/></block><block s="changeYPosition"><block s="reportJoinWords"><list><l>-</l><block var="TXTS"/></list></block></block><block s="setXPosition"><block s="reportAttributeOf"><l><option>left</option></l><l>Stage</l></block></block></script></block><block s="doWarp"><script><block s="doRepeat"><block s="reportIfElse"><block var="VARDEBUG"/><block s="reportDifference"><block var="LIN"/><l>1</l></block><block var="LIN"/></block><script><block s="doIf"><block var="NUMLINES"/><script><block s="write"><block s="reportJoinWords"><list><block s="reportIfElse"><block s="reportEquals"><block s="reportStringSize"><block var="b"/></block><l>1</l></block><block s="reportJoinWords"><list><l>000</l><block var="b"/></list></block><block s="reportIfElse"><block s="reportEquals"><block s="reportStringSize"><block var="b"/></block><l>2</l></block><block s="reportJoinWords"><list><l>00</l><block var="b"/></list></block><block s="reportIfElse"><block s="reportEquals"><block s="reportStringSize"><block var="b"/></block><l>3</l></block><block s="reportJoinWords"><list><l>0</l><block var="b"/></list></block><block var="b"/></block></block></block><l>|</l></list></block><block var="TXTS"/></block></script></block><block s="write"><block s="reportListItem"><block var="b"/><block var="a"/></block><block var="TXTS"/></block><block s="changeYPosition"><block s="reportJoinWords"><list><l>-</l><block var="TXTS"/></list></block></block><block s="setXPosition"><block s="reportAttributeOf"><l><option>left</option></l><l>Stage</l></block></block><block s="doChangeVar"><l>b</l><l>1</l></block></script></block></script></block><block s="doIf"><block var="VARDEBUG"/><script><block s="doIf"><block var="NUMLINES"/><script><block s="write"><l>DBUG|</l><block var="TXTS"/></block></script></block><block s="write"><block s="reportJoinWords"><list><l>delay(</l><block var="d"/><l>) </l><l>website</l><l>(</l><block var="URL"/><l>) </l><l> </l><l>DBG2</l><l> B(</l><block var="b"/><l>) C(</l><block var="c"/><l>) D(</l><block var="d"/><l>)</l></list></block><block var="TXTS"/></block><block s="changeYPosition"><block s="reportJoinWords"><list><l>-</l><block var="TXTS"/></list></block></block><block s="setXPosition"><block s="reportAttributeOf"><l><option>left</option></l><l>Stage</l></block></block></script></block><block s="doSetVar"><l>d</l><l>-1</l></block></script><scripts><script x="398" y="623.8333333333314"><block s="reportNot"><l/></block></script><script x="324" y="643.999999999998"><block s="reportNot"><l/></block></script><script x="428" y="515.8666666666666"><block s="doSetVar"><l>url memory</l><l>0</l></block></script></scripts></block-definition></blocks><variables><variable name="position"><l>-48</l></variable><variable name="url memory"><list struct="atomic" id="2963"></list></variable><variable name="text size"><l>9</l></variable></variables></project><media name="Website Thingy 2.0 (FIXED REQUEST SPAM)" app="Snap! 6, https://snap.berkeley.edu" version="1"></media></snapdata>