diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..0c0e938d --- /dev/null +++ b/.editorconfig @@ -0,0 +1,9 @@ +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +indent_style = space +trim_trailing_whitespace = true + +[*.md] +trim_trailing_whitespace = false diff --git a/.gitignore b/.gitignore index 8e0c452c..3e6dc296 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,8 @@ PSDs/ bower_components/ *.draft.md *.map +.jekyll-metadata +_drafts/ +Icon +Gemfile.lock +img/css/_masthead.jpg diff --git a/404.md b/404.md index f0c9a101..e5d14455 100644 --- a/404.md +++ b/404.md @@ -1,17 +1,42 @@ --- -layout: post +layout: page title: 404, Not Found page-class: page--404 hide-hire-me-link: true permalink: /404.html +lux: "404" --- **Yikes!** I’m afraid it looks like this page doesn’t exist. There are a few things you can do from here: +{% assign random = site.time | date: "%s%N" | modulo: site.posts.size %} + 1. [Head back to the home page](/) -2. [Search for what you were looking for](https://www.google.com/search?q=site%3Acsswizardry.com+YOUR+SEARCH+TERM) -3. [Check the archives](/archive/) +2. [Search Google for what you were looking for](https://www.google.com/search?q=site%3Acsswizardry.com+YOUR+SEARCH+TERM) +3. [Browse the blog](/blog/) +4. Read [{{ site.posts[random].title }}]({{ site.posts[random].url }}) ({{ site.posts[random].date | date: "%Y" }}) + + Hopefully one of those helps you out. If not, you can always [ask me on Twitter](https://twitter.com/csswizardry). diff --git a/Gemfile b/Gemfile new file mode 100644 index 00000000..92248d7a --- /dev/null +++ b/Gemfile @@ -0,0 +1,2 @@ +gem 'jekyll-sitemap' +gem 'jekyll-paginate' diff --git a/_config.yml b/_config.yml index 8e36db61..e7da1728 100644 --- a/_config.yml +++ b/_config.yml @@ -1,16 +1,20 @@ # Site settings title: CSS Wizardry email: csswizardry@gmail.com -description: "Write an awesome description for your new site here. You can edit this line in _config.yml. It will appear in your document head meta (for Google search results) and in your feed.xml site description." +description: "– Web Performance and Site Speed Consultant" baseurl: "" -url: "http://csswizardry.com" +url: "https://csswizardry.com" future: true -cdn: "http://csswizardry.a.cdnify.io" +cloudinary: "https://res.cloudinary.com/csswizardry/image/fetch/f_auto,q_auto/https://csswizardry.com" # Build settings markdown: kramdown permalink: /:year/:month/:title/ paginate: 10 +paginate_path: "/blog/page-:num/" +incremental: true # Gems -gems: [jekyll-paginate] +plugins: +- jekyll-sitemap +- jekyll-paginate diff --git a/_includes/adpacks.html b/_includes/adpacks.html deleted file mode 100644 index a8c07263..00000000 --- a/_includes/adpacks.html +++ /dev/null @@ -1,3 +0,0 @@ -
- -
diff --git a/_includes/article-pagination.html b/_includes/article-pagination.html new file mode 100644 index 00000000..0cb01986 --- /dev/null +++ b/_includes/article-pagination.html @@ -0,0 +1,68 @@ + + + + + + + diff --git a/_includes/base64/about.jpg.html b/_includes/base64/about.jpg.html new file mode 100644 index 00000000..1e56ae25 --- /dev/null +++ b/_includes/base64/about.jpg.html @@ -0,0 +1 @@ +data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABkAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNBCUAAAAAABAAAAAAAAAAAAAAAAAAAAAA/+4AJkFkb2JlAGTAAAAAAQMAFQQDBgoNAAACIAAAApoAAAL9AAADXf/bAIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMDAwMDAwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/8IAEQgACQAQAwERAAIRAQMRAf/EAKgAAQEBAAAAAAAAAAAAAAAAAAYHCQEBAAMAAAAAAAAAAAAAAAAABQEDBBAAAQEIAwEAAAAAAAAAAAAABAIAARExIgMGNhIyBQcRAAICAQMCBwAAAAAAAAAAAAIDAQQRABIFEwYhMbEUdLV2EgABAwMFAAAAAAAAAAAAAAAAARGxIQIDMXESMnITAQABAwQDAQEAAAAAAAAAAAERACExEEFRsfBxoYHR/9oADAMBAAIRAxEAAAHLeLK9rMTmOo0M/wD/2gAIAQEAAQUCyHFV+Be+iCYhbWfsOe7Z/9oACAECAAEFAnKiz6EBzJl//9oACAEDAAEFAuMFLrLIYXv/AP/aAAgBAgIGPwKgxiLt0k//2gAIAQMCBj8Ca7QTh1aEMonhYP/aAAgBAQEGPwJIcotuz3KQfWRMDaNM7GsFRbWwDCRPgW0tszGY1yyO2CCumvS48FRPLhy6rhddKmPXaCtW6QCnA4kM5DM+euxPmWvQNd1fge3vu6mv/9oACAEBAwE/IXMEIGVjAjCWxUpPt2ATVigRlm6OIH//2gAIAQIDAT8hM83FXTjPMzN+9q6VeR41/9oACAEDAwE/IZYAZq8yclo2D4EvNd/90r//2gAMAwEAAhEDEQAAEJ7v/9oACAEBAwE/EH3Ybk7laR4DJlxIiL7HD9X9a8K//9oACAECAwE/EAeX5FztQISDIvlLYhkhdYPR8XQ09f/aAAgBAwMBPxBaFSbZBTm03tQS+ZMYollImo3T7rsU8hyr/9k= diff --git a/_includes/base64/consultancy.jpg.html b/_includes/base64/consultancy.jpg.html new file mode 100644 index 00000000..a4006bd2 --- /dev/null +++ b/_includes/base64/consultancy.jpg.html @@ -0,0 +1 @@ +data:image/jpeg;base64,/9j/4gxYSUNDX1BST0ZJTEUAAQEAAAxITGlubwIQAABtbnRyUkdCIFhZWiAHzgACAAkABgAxAABhY3NwTVNGVAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUhQICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFjcHJ0AAABUAAAADNkZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAAABRyWFlaAAACGAAAABRnWFlaAAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRkAAACxAAAAIh2dWVkAAADTAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAAACR0ZWNoAAAEMAAAAAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0AAAAAENvcHlyaWdodCAoYykgMTk5OCBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAAABOk/gAUXy4AEM8UAAPtzAAEEwsAA1yeAAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAoAC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKQAqQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwENARMBGQEfASUBKwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHhAekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLBAssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkHKwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQCSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkLUQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3DDd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4QmxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOkE8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoXHRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrFGuwbFBs7G2MbihuyG9ocAhwqHFIcexyjHMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEcIUghdSGhIc4h+yInIlUigiKvIt0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3JicmVyaHJrcm6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2K2krnSvRLAUsOSxuLKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox8jIqMmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQOIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0uaS+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1NfU6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqmWvVbRVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GNDY5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr/2xXbK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTMdSh1hXXhdj52m3b4d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gEiGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5GokhGSepLjk02TtpQglIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2o+akVqTHpTilqaYapoum/adup+CoUqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACwdbDqsWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO1dHWVdbY11zX4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj4+vkc+T85YTmDeaW5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn9DT0wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t////7gAhQWRvYmUAZEAAAAABAwAQAwIDBgAAAAAAAAAAAAAAAP/bAIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMDAwMDAwMDAwEBAQEBAQEBAQEBAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/8IAEQgACQAQAwERAAIRAQMRAf/EAJAAAAMBAAAAAAAAAAAAAAAAAAMGCAoBAQADAQAAAAAAAAAAAAAAAAYEBQcIEAACAQQDAQAAAAAAAAAAAAAFBggENQc3AzYJChEAAQUAAgEFAAAAAAAAAAAABAIDBQYHAAEIErR3t3gSAAICAQIEAwkAAAAAAAAAAAIDAQQRAAUhEnUGMSITsbIjsxR0tAcI/9oADAMBAQIRAxEAAAAwdfTI+1XMUkaD+gxn/9oACAECAAEFABrPQsRY+6caa85U37ky9//aAAgBAwABBQA0lVIcUFTqBlWx/SsXW/8A/9oACAEBAAEFAIV+007yFdMCV8z8xxV+XzQnpxr7/9oACAECAgY/AB2XZrDC7ituGrUU9yalaxJFljoJvxJMIggCVgcjIxzqweRP9Z902YLetuQo2sU02JYgohq7asriHZnAtLMenMGPLw1/OPVkflHrbunXPdnX/9oACAEDAgY/AKd3ehQvZ1R9S5ixOxZUMDgK0QGAmGeVhwRDMjMyLPLiXd1dvKGa922z018graouKpqswwpUERMkuPEsgUl467p6Rf8AkK1uH3lT2a//2gAIAQEBBj8AndA81LAdvkzJ1IqgMZdj9Lm2YmlRjTblyGn7pEZoAvPM80EpXbzEfYCRlkSQ6UCNuegdXa6WvGaJM4HLVSv5nZ6kz5RjEyYG7XOoaMNNRdXEirW1T6xJajJz8KOaE+SwWuXjkPDCtdKWt3nmV+w8n+rK5zO/lDPvfnc//9k= diff --git a/_includes/base64/masthead.jpg.html b/_includes/base64/masthead.jpg.html new file mode 100644 index 00000000..9a7516c2 --- /dev/null +++ b/_includes/base64/masthead.jpg.html @@ -0,0 +1 @@ +data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAgICAgICAgICAgMDAwMDAwMDAwMBAQEBAQEBAgEBAgICAQICAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA//AABEIAAsAEAMBEQACEQEDEQH/xACAAAEBAQAAAAAAAAAAAAAAAAAICQoQAAAEBAUEAQUAAAAAAAAAAAMEBQYBAhMUBxIVFhcACAkkERgjJTdDAQADAQAAAAAAAAAAAAAAAAAHCAkGEQAABAUCAwcEAwAAAAAAAAABAgMEBhESExQFBwAVIwgWFyEiJDMxMkJDNEFR/9oADAMBAAIRAxEAPwDP12CsRLfmKpRpN7FZ6ok7kxPHIoiWbLlCyQvgFTI6tKWeSihwEUEcgspheMBBwYyyZBBYhTS5YRg6O3m4ei7fQrF0dEjLWmLNukNo7Vgmcz1c4uBQTTIqIpkdCc5VyFUOBDAcxREtEzV42T1KEND2/ibX1ojiNJu11ZyKTZqk2kc1XoUXE5TmKLg4lIAmEqQmrAhpgPD872MFxcADY5d2dyb4TRXcArubaCHq72buHpsQ7EQ5hxOvmicTyhscsfKlJRjMJBjAEwU88YzRm6KPZ47TCMd7RpljeO3ejbg6UgRu+W1Fskcj1e2UwvG+EmQBQVERLScEzFUAwGD7RMUtrtf0OM4AePIiiGLmcSaaUCulk0UnKKhlCVFVTstxEqJhAxSgsKavp8wH68Sm8SV79RRyjy/bUGpqHF+gafa7sb37YvvyvE1fLqume5b/AD/Kp0kz3H8MH9/Bu5xrWfexrmMr8Nnp8wpnh5ntsi3+yniWGx9zO1WjK/qdmij8v5df6p/FR536fxnwpPK9pXJTiteXaO9X9a095fFfOk1dp6x715Wz67eetmt6f2qXWm7OuD4R6lLkWdlpzxMvvHO0pbyp+0xaZ4tHTtXMnq08HN7id2HV3m96+aXLsnMnSaU7fSs/5X6JVVefH//Z diff --git a/_includes/base64/speaking.jpg.html b/_includes/base64/speaking.jpg.html new file mode 100644 index 00000000..4cfa0050 --- /dev/null +++ b/_includes/base64/speaking.jpg.html @@ -0,0 +1 @@ +data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABkAAD/7gAmQWRvYmUAZMAAAAABAwAVBAMGCg0AAAHtAAACdAAAAu0AAANU/9sAhAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgICAgICAgICAgIDAwMDAwMDAwMDAQEBAQEBAQIBAQICAgECAgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwP/wgARCAAJABADAREAAhEBAxEB/8QAqQABAQEAAAAAAAAAAAAAAAAABgQJAQABBQAAAAAAAAAAAAAAAAAGAQIDBAcQAAEDBAMBAAAAAAAAAAAAAAIBAwUAEkMEETI0FREAAgICAgAHAAAAAAAAAAAAAgMBBAAFERIicrIjwxR0EgABAgUEAwAAAAAAAAAAAAABAhIAESFBAxBhgQRRQhMTAQEAAgICAgMBAAAAAAAAAAERACExQfBRcbEQYaHB/9oADAMBAAIRAxEAAAHIzSxsdAp4CJpbTP/aAAgBAQABBQKEAPtyAA2kb6tiv//aAAgBAgABBQK5A0305isidP/aAAgBAwABBQLZbetZFy/Gtf/aAAgBAgIGPwLr53yxHJnAu1pT62dPmD2BXGewoA7hAJpac9f/2gAIAQMCBj8CUG/TI1FNpedoS6hZVPNIOn//2gAIAQEBBj8C1RjuLGlWhSbo7NQMsPpsEK8qNAJISEoBoxHMxxObdY2psrG1IovdWB9v3Fk85Wc9vETYnE/pT8mM85+oM//aAAgBAQMBPyHRykZthr1NLM0chTQwA6kv7zznvHPM/wD/2gAIAQIDAT8h2uKCvYfTtWbV3jIGu/YjygAe4nTh9j6zl87M/9oACAEDAwE/IZ4OIMqNK1Vezo1hoJnd3oLwyOfQ5186z//aAAwDAQACEQMRAAAQP2//2gAIAQEDAT8QaSFitDLdH1C6AF5ay9kzoH5p+BQb/9oACAECAwE/ECA8OiXpb0olWTB6txexyt+ATWRx4P6TD//aAAgBAwMBPxANt9lpNrBgAJSMbrQnQRiBGtnRxq+J85y+X+s//9k= diff --git a/_includes/base64/workshops.jpg.html b/_includes/base64/workshops.jpg.html new file mode 100644 index 00000000..d7b21c51 --- /dev/null +++ b/_includes/base64/workshops.jpg.html @@ -0,0 +1 @@ +data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABkAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNBCUAAAAAABAAAAAAAAAAAAAAAAAAAAAA/+4AJkFkb2JlAGTAAAAAAQMAFQQDBgoNAAACKQAAArAAAAMVAAADf//bAIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMDAwMDAwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/8IAEQgACQAQAwERAAIRAQMRAf/EAK4AAAMAAAAAAAAAAAAAAAAAAAUHCAEAAgMBAAAAAAAAAAAAAAAAAwUAAQQGEAABAwMDBQAAAAAAAAAAAAAEAQIDADIGIjMFFjYHNwgRAAEEAQIFBQAAAAAAAAAAAAQBAgMFABEGIUESIrQyE3MkdRIAAgEDAgcAAAAAAAAAAAAAAAECETETIYGxEkJysgMjEwEAAgICAgMBAAAAAAAAAAABESEAMRBB8KFxgbHx/9oADAMBAAIRAxEAAAGazRK2EQl6i4Ny7//aAAgBAQABBQLyQgucm9NcZxGF5V6z+le0/wD/2gAIAQIAAQUCnLSdzF0j1Dtf/9oACAEDAAEFAoxnxIRG6jLSL//aAAgBAgIGPwLKk6WMnSzefElsf//aAAgBAwIGPwLG6VuL1xX15tRdsPEif//aAAgBAQEGPwJ2+S5Q6EEkEMAXrMUwUmQFJGK2A1o0DJp3q70InanPILO2p7ursTLc1kNiVAWwU0FQ/ougjeGkCMlnY5Nff14a9OjkXNtfrEeMmbC+FPAr8//aAAgBAQMBPyGW3h/H4nLRLtjo9M2dclhJRRXGRj//2gAIAQIDAT8hsUXo7JnrBLRKt/zNsvlfOf/aAAgBAwMBPyFFWnYsdR04gdgLRryOGvXfwz//2gAMAwEAAhEDEQAAEPHP/9oACAEBAwE/EDqm9YmdtDxq5MtoVR5nZgiRPqh//9oACAECAwE/EB5qthEsAIE3IR3vF4dCDKu4i0yXDAVEubfOue5+8f/aAAgBAwMBPxB4YaSBBZJUTUN/WB1uKAmXbDESgklWdHOOT//Z diff --git a/_includes/carousel.html b/_includes/carousel.html index b0205912..ccc00f1a 100644 --- a/_includes/carousel.html +++ b/_includes/carousel.html @@ -1,42 +1,45 @@ -
+ -
+
-
- {% include sub-content.html %} -
+ +
+ +
+ {% include sub-content.html %}
+
+ diff --git a/js/obs.speedcurve.js b/js/obs.speedcurve.js new file mode 100644 index 00000000..849e3d4f --- /dev/null +++ b/js/obs.speedcurve.js @@ -0,0 +1,85 @@ +/** + * All the data previously captured by Obs.js is now sent to SpeedCurve! + * + * I ❤️ SpeedCurve! + */ + +(() => { + // Bail out if SpeedCurve is not available. + if (!window.LUX || typeof window.LUX.addData !== 'function') return; + + const obs = window.obs || Object.create(null); + + // Keys we intend to send. Keep in sync with obs.js + const keys = [ + 'canShowRichMedia', + 'connectionCapability', + 'conservationPreference', + 'cpuBucket', + 'cpuCategory', + 'dataSaver', + 'deliveryMode', + 'deviceCapability', + 'downlinkBucket', + 'downlinkCategory', + 'ramBucket', + 'ramCategory', + 'rttBucket', + 'rttCategory', + 'shouldAvoidRichMedia' + ]; + + for (const key of keys) { + if (Object.prototype.hasOwnProperty.call(obs, key)) { + window.LUX.addData(key, obs[key]); + } + } + + // Was the response from HTTP cache or the network? + const navigation = performance.getEntriesByType('navigation')[0]; + + if (!navigation) return; + + const { transferSize } = navigation; + + if (transferSize === 0) { + LUX.addData('fromCache', true); + } else if (transferSize > 0) { + LUX.addData('fromCache', false); + } + + // Was the response from the back–forward cache? + window.addEventListener('pageshow', (event) => { + if (event.persisted) { + LUX.addData('frombfCache', true); + } else { + LUX.addData('frombfCache', false); + } + }); + + if (document.prerendering) { + } else if (performance.getEntriesByType("navigation")[0]?.activationStart > 0) { + LUX.addData('fromPrerender', true); + } else { + LUX.addData('fromPrerender', false); + } + + // Time to Last Byte (TTLB) + if (navigation.responseEnd && navigation.startTime >= 0) { + const ttlb = Math.round(navigation.responseEnd - navigation.startTime); + if (Number.isFinite(ttlb) && ttlb >= 0) { + LUX.addData('ttlb', ttlb); + } + } + + // First Potential Paint (FPP) + if (navigation.startTime >= 0) { + const headEnd = performance.getEntriesByName('HEAD_End')[0]; + const fpp = Math.round(headEnd.startTime - navigation.startTime); + if (Number.isFinite(fpp) && fpp >= 0) { + LUX.addData('fpp', fpp); + } + } + + +})(); diff --git a/license.md b/license.md new file mode 100644 index 00000000..a0da4847 --- /dev/null +++ b/license.md @@ -0,0 +1,101 @@ +--- +layout: page +title: License +page-class: page--license +meta: "All code and examples on csswizardry.com are provided free of charge for commercial works, but you do have some small responsibilities in return…" +permalink: /license/ +main: "https://csswizardry.com/img/content/licensing/poster.jpg" +lux: License +--- + +Unless otherwise stated, all content on this website, including code snippets, +tips, techniques, and other materials, is made available under the [MIT +License](https://opensource.org/license/MIT). By using the content, you agree to +the terms of this license. + +You can read more about my decision in [my announcement +post](/2024/12/licensing-code-on-css-wizardry/). + +## Summary of the MIT License + +The MIT License allows you to: + + +* Use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the content. +* Incorporate the content into personal or commercial projects. +* The only requirement is that you include proper attribution by retaining the + copyright notice and the following license text in all copies or substantial + portions of the content. + +## Full MIT License Text + +``` +MIT License + +Copyright (c) 2007–{{ 'now' | date: "%Y" }} Harry Roberts + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the ‘Software’), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED ‘AS IS’, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` + +## Exceptions + +* Specific content may have different licensing terms, as explicitly stated on + the relevant pages or sections. Please review the notes or comments for any + such content before using it. + +## Attribution Requirements + +When using content from this site: + +1. **Include a copy of the license** text or link back to this page in code + repositories. +2. **Clearly credit the original author** and source (e.g., _‘Content by Harry + Roberts, csswizardry.com, available under the MIT License.’_) in production + code. + +## tl;dr + +If you use any of my code snippets or examples—including in modified or +derivative works—you must include proper credit and attribution. This ensures +others know the source and that you respect the license terms. + +Examples of how to provide attribution: + +**HTML:** + +```html + +``` + +**CSS:** + +```css +/*! Content by Harry Roberts, csswizardry.com, available under the MIT License. */ +``` + +**JS:** + +```js +/*! Content by Harry Roberts, csswizardry.com, available under the MIT License. */ +``` + +## Questions or Permissions + +{% include faq-license.html %} diff --git a/manifest.json b/manifest.json index 5b52b0ab..3e55cb5e 100644 --- a/manifest.json +++ b/manifest.json @@ -4,16 +4,42 @@ "name": "CSS Wizardry", "description": "CSS Architecture and Performance Engineering", "start_url": "/", - "display": "browser", + "display": "standalone", "background_color": "#f9f9f9", "theme_color": "#f43059", "icons": [{ + "src": "/img/icons/512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + }, { "src": "/img/icons/192.png", "sizes": "192x192", - "type": "image/png" + "type": "image/png", + "purpose": "maskable" + }, { + "src": "/img/icons/144.png", + "sizes": "144x144", + "type": "image/png", + "purpose": "maskable" }, { "src": "/img/icons/144.png", "sizes": "144x144", - "type": "image/png" - }] + "type": "image/png", + "purpose": "any" + }], + "screenshots": [ + { + "src": "/img/pwa/screenshot-mobile.png", + "sizes": "1224x2010", + "type": "image/png", + "form_factor": "narrow" + }, + { + "src": "/img/pwa/screenshot-desktop.png", + "sizes": "3104x1844", + "type": "image/png", + "form_factor": "wide" + } + ] } diff --git a/masterclasses.md b/masterclasses.md new file mode 100644 index 00000000..99b10ba7 --- /dev/null +++ b/masterclasses.md @@ -0,0 +1,338 @@ +--- +layout: page +title: "Masterclasses: Empower Your Talent" +page-class: page--services page--masterclasses +meta: "Short, targeted masterclasses covering a range of performance topics" +main: "/img/content/masterclass/custom.jpg" +permalink: /masterclasses/ +lux: "Services / Masterclasses" +masterclasses: + - title: "WebPageTest: An Introduction" + image: "wpt-basics" + intro: "We’ve done PageSpeed Insights and now we want to level up! Let’s get started with WebPageTest…" + description: "Getting started with WebPageTest can be pretty daunting, but this Masterclass will get you comfortable and confident with the basics:
  • running your first test;
  • sensible setup;
  • best practices for best results;
  • key features;
  • early analysis.
" + - title: "WebPageTest: Power User" + image: "wpt" + intro: "WebPageTest is the gold standard in performance testing, but are you getting the most out of it?" + description: "WebPageTest is pretty powerful as-it-is and out-of-the-box, but it can do so much more! Let’s learn:
  • scripting user journeys;
  • testing behind logins;
  • dealing with cookie banners;
  • capturing custom metrics.
" + - title: "Setting up DevTools for Performance Testing" + image: "devtools" + intro: "DevTools are amazing! But that can make them intimidating. Let’s get you all set up with the most finely-tuned Chrome DevTools possible." + description: "Performance testing becomes a lot more reliable if you have a forensic environment. It gets a lot more replicable if your entire team shares the same setup. This Masterclass will show you the ultimate configuration to make your DevTools as accurate and trustable as possible, as well as the secret tips, tricks, and workflows needed to take performance testing to the next level." + - title: "Performance Testing in Mobile Safari" + image: "ios" + intro: "With an overwhelming focus on Core Web Vitals (which are Chrome-only, for now), it’s all too easy to overlook our iOS users! Let’s fix that." + description: "As WebKit is a fundamentally different rendering engine, it requires a whole different approach when it comes to auditing web performance on iOS. Let’s look at the tools and workflows needed to keep your iPhone users smiling." + - title: "My Website Is Slow—Where Do I Start?!" + image: "my-website-is-slow" + intro: "You know your website is slow, but do you know why? Let’s find out together…" + description: "Let’s look at processes for early analysis: how do we quickly figure out the root causes of our issues? How can we hone in on problems as effectively as possible? Not only will this Masterclass help you troubleshoot current issues, but the techniques we learn can be transferred to any project at all!" + - title: "Site-Speed Teardown" + image: "teardown" + intro: "A live, realtime, interactive site-speed audit of your web app." + description: "Want a realtime, in-person audit of your site or app? This Masterclass will combine aspects of all other Masterclasses, but not with the same depth. A teardown will give you actionable insights while also demonstrating the techniques and strategies I use to begin performance audits." + conjunction: "a" + - title: "Custom Masterclass" + image: "custom" + price: "5,000" + intro: "Not listed here? Let’s design it together!" + description: "If you have an idea for a custom curriculum, or the things you’re interested in aren’t already available, let’s work together to design a custom Masterclass." + conjunction: "a" + - title: "Core Web Vitals for SEOs" + image: "cwv-seo" + intro: "Level up your SEO offering by providing Core Web Vitals audits!" + description: "If you’re an SEO specialist, you know better than anyone about the importance of passing Google’s Core Web Vitals. In this Masterclass, I will show you how to get started debugging these issues yourself so that you can better service your SEO clients." + - title: "Effective Performance Monitoring" + image: "monitoring" + intro: "Performance budgets, real-user monitoring, regression thresholds, and incident response. Get it all covered here." + description: "Building a performance culture becomes a lot easier if you have the right tools and processes in place. Thankfully, I have helped dozens of companies set up effective, robust, and pragmatic monitoring to make keeping on top of site-speed a breeze." + - title: "Caching Strategies for Everyone" + image: "caching" + intro: "Stuggling to tell your max-age from your Expires? Your Last-Modified from your Etag? Not any more!" + description: "Caching is a confusing and often contradictory subject. Which headers do we need? How long can we cache something for? How do we guarantee something will never get cached at all?! In this Masterclass, we’ll look at the different options we have available—and what they do—as well as suitable strategies for our own projects." + - title: "LCP Deep-Dive" + image: "lcp" + intro: "A specific Masterclass to deep-dive on Largest Contentful Paint—what it is, how to debug it, and how to improve it!" + description: "Largest Contentful Paint is one of three Core Web Vitals, and is currently the one that most sites struggle with! Are you one of them? This Masterclass will help us identify key contributors to LCP, and opportunistic upgrades to improve it." + - title: "INP Deep-Dive" + image: "inp" + intro: "A specific Masterclass to deep-dive on Interaction to Next Paint—what it is, how to debug it, and how to improve it!" + description: "INP became a Core Web Vital in March of 2024—and most sites seem to be doing well with it! For those who aren’t, this Masterclass will arm developers with the tools and tactics needed to identify and debug INP issues." + - title: "CLS Deep-Dive" + image: "cls" + intro: "A specific Masterclass to deep-dive on Cumulative Layout Shift—what it is, how to debug it, and how to improve it!" + description: "CLS isn’t a speed-oriented metric per se, but it is a Core Web Vital. It’s also unusually hard to debug, but this Masterclass will show you a series of tips and tricks I have devised over the last few years of working on site-speed, as well as some neat quick-win optimisations to help improve!" + - title: "Third Parties" + image: "third-parties" + intro: "Third party issues tend to plague most commercial sites—how can we take the edge off of it?" + description: "Third parties are a necessary evil, but not all are born equal—some are much worse than others! This Masterclass will give us strategies for quantifying the impact of third parties, working with Consent Management Platforms, governing tag managers, and a whole host more." + - title: "Memory Management: The Basics" + image: "memory" + intro: "Memory isn’t something we tend to look at much in a world of Core Web Vitals, but it’s still incredibly important for users on low-powered devices." + description: "Lots of things use memory, but which ones are slowing us down? Is it a memory leak? DOM size? Something else? Tooling around memory usage is pretty deep and complex, so this Masterclass helps to demistify it in order to detect and debug memory issues in our applications." + - title: "Ask Me Anything!" + image: "ama" + price: "500" + intro: "If you just have questions, then you’re looking for a Consultation." + description: "For ligh-touch, general advice I already have a consultation service available. You can book one immediately!" + conjunction: "an" +--- + +## Level up Your Whole Team With Masterclasses + +Dive into **highly focused, highly specialised, highly advanced web performance +tutorials, on demand**. Bite-sized, live, remote workshops to take your team +from zero to expert on the topic of your choice. + +
+

Thank you so much for the excellent session, Harry—it was a lot of fun. The team was jazzed by what they learned and were amazed by how prepared you came and all of the ideas you helped spark for ways forward.

+

We appreciated your thoroughness, insights, expertise, and the thoughtfulness you brought towards your prepared materials.

+Jonathon Olenick, Manager, Digital Experience, Southern Alberta Institute of Technology +
+ +- - - + +**masterclass** /ˈmɑːstəklɑːs/ +noun +A class given by an expert to highly talented students. + +- - - + +Your team is great, and they know most of it all already. They don’t need +a week-long bootcamp—they need to fill a few empty gaps. They need +a Masterclass. Pick a topic that you want to level up on, and get it +done. Struggling with performance budgets? Not anymore. DevTools confusing you? +You’re not alone. Need to streamline your workflows? We’ll be there in no time. + +## Available Masterclasses + +**Become web performance experts in the time it takes to watch a movie.** + + + + + +

+ +

+ + + + + +## How It Works + +Five simple steps: + +1. Select a Masterclass you’re interested in; +2. Enquire about it by emailing me; +3. We define and customise the content; +4. I book you in for a set time and date; +5. We run and record the Masterclass for you and the team. + +### Important Information + +* Masterclasses are live. + * This means they’re also customised to suit you and your team’s needs. + * They are recorded for you to keep. +* Masterclasses last from 90–180 minutes. +* Maximum attendees is capped at 12 people. +* All Masterclasses include a formal Q&A session. +* Discounts are offered for multiple Masterclasses. + + diff --git a/max-age.md b/max-age.md new file mode 100644 index 00000000..b0a8bc68 --- /dev/null +++ b/max-age.md @@ -0,0 +1,209 @@ +--- +layout: page +title: Fuzzy max-age Calculator +page-class: page--max-age +meta: "Cache-Control’s max-age isn’t the most intuitive way of defining time. This calculator has your back." +permalink: /max-age/ +lux: max-age Calculator +--- + +[`Cache-Control`](/2019/03/cache-control-for-civilians/)’s +[`max-age`](/2023/10/what-is-the-maximum-max-age/) +directive accepts a duration in seconds, but seconds aren’t particularly +human-friendly. This calculator allows you to specify `max-age` in much more +palatable terms and end up with a compliant `max-age` format. Alternatively, you +can paste an existing `max-age` value and get its human-friendly equivalent. + +**Give it a go!** + + + +

+ + +

+ +
    +
  • Cache-Control:
  • +
  • Human-friendly version:
  • +
+ + + +--- + +Disclaimer: This `max-age` calculator aims to provide +convenient and human-friendly conversions between time periods and cache +durations. While I strive for accuracy, there may be edge cases or unexpected +behavior in certain input formats. As this tool interprets natural language and +various time units, I encourage users to verify important calculations and be +mindful of potential inaccuracies in highly complex inputs. I welcome feedback +and suggestions! If you encounter any issues, or if you’d like to contribute +improvements, please feel free to submit them to the GitHub repo at +[github.com/csswizardry/csswizardry.github.com](https://github.com/csswizardry/csswizardry.github.com/blob/master/max-age.md). diff --git a/newsletter-nearly-there.md b/newsletter-nearly-there.md index 6b011103..d7d4015e 100644 --- a/newsletter-nearly-there.md +++ b/newsletter-nearly-there.md @@ -1,7 +1,7 @@ --- layout: page title: Nearly There… -page-class: page--newsletter +page-class: page--contact page--newsletter meta: "Last step before signing up fully!" permalink: /newsletter/nearly-there/ --- @@ -11,13 +11,9 @@ need to click the link in the email I just sent you. There are also a couple of other things you might need to do: -1. **Check your spam or Promotions folders** because the first email(s) might - end up in there. +1. **Check your spam folder** because the first email(s) might end up in there. 2. **Add `harry@csswizardry.com` as a contact** so that CSS Wizardry emails get - whitelisted. I’m sending from a personal account, so you’re not adding -anything corporate or spammy. + allowlisted. -I really wish there weren’t so many hoops for you to jump through. I’m sorry. - -See you soon! -_Harry_ +Speak soon! +_Harry_ diff --git a/newsletter-thank-you.md b/newsletter-thank-you.md index e086e4b3..20fbcfda 100644 --- a/newsletter-thank-you.md +++ b/newsletter-thank-you.md @@ -1,24 +1,21 @@ --- layout: page title: Thank You! -page-class: page--newsletter +page-class: page--contact page--newsletter meta: "You’re on board!" permalink: /newsletter/thank-you/ --- You made it! Welcome aboard. -From now on, you can expect infrequent updates about +From now on, you can expect infrequent updates about: -* upcoming conferences, -* discounts for events, -* insights and findings, -* interesting resources, -* and exclusive content. - -Here are all of the previous newsletters that you may have missed: - -{% include newsletter-previous.html %} +* upcoming conferences and workshops, +* discounts codes for events, +* first-look insights and findings, +* interesting resources and articles, +* thoughts on work and the industry, and +* exclusive content. Right now though, here’s a screencast showing you how to troubleshoot rendering performance: @@ -27,4 +24,5 @@ performance: -[Head back to the homepage](/) +See you in there! +_Harry_ diff --git a/newsletter.md b/newsletter.md index 2e0b2495..b6c5f9e0 100644 --- a/newsletter.md +++ b/newsletter.md @@ -1,49 +1,21 @@ --- layout: page title: CSS Wizardry Newsletter -page-class: page--newsletter +page-class: page--contact page--newsletter meta: "Join the club!" permalink: /newsletter/ --- -I maintain a small and infrequent newsletter in order to share more detailed and -exclusive content with those who want it the most. +I run a small and occasional newsletter—my _secret blog_. It’s where I share +thoughts and insights that don’t make it onto this site: lessons from +consulting, client tales, takes on the industry, and other part-formed ideas I’d +normally only share with pals. - +Join over 4,000 others who like being in on the action: -The format of the newsletter will evolve over time, but for now you should -expect: +Sign up -* Exclusive content, screencasts, demos. -* Members-only discounts for upcoming events and workshops. -* Links to interesting articles and resources from around the web. - -And you should not expect: - -* Spam. Honestly, it’s the worst. -* Updates for the sake of updates. I will only publish when there’s something - worth sharing. - -Sign up - -Not that fussed about email? You can still catch me [on -Twitter](https://twitter.com/csswizardry) instead. - -## Previous Issues - -{% include newsletter-previous.html %} - - - - - - +## Sponsors If you’re a product, company, or event who would like to sponsor issues of the -newsletter, please do [get in touch](/contact/). +newsletter, please [get in touch](/contact/). diff --git a/offline.md b/offline.md new file mode 100644 index 00000000..6bc1e41d --- /dev/null +++ b/offline.md @@ -0,0 +1,38 @@ +--- +layout: page +title: "Oops! It Looks Like You’re Offline" +page-class: page--offline +meta: "CSS Wizardry’s offline content" +permalink: /offline/ +--- + +It looks as though your device is offline. Not to worry; I’ve prepared some +offline content for you to read while you wait for your connection to come back: + +* [head to the homepage](/); +* [read a little more about CSS Wizardry](/about/); +* [learn about the services I offer](/services/); +* [see how I helped Ocado level up their CSS skills](/case-studies/ocado-workshop/), or; +* [find out how best to get in touch with me](/contact/). + +Or if you’d like to read something: + +* [Understand Cache-Control](/2019/03/cache-control-for-civilians/) +* [Core Web Vitals and SEO](/2023/07/core-web-vitals-for-search-engine-optimisation/) +* [CSS Performance](/2018/11/css-and-network-performance/) +* [Does DOMContentLoaded Still Matter?](/2023/07/in-defence-of-domcontentloaded/) +* [Improve Web Performance on iOS](/2021/02/measuring-network-performance-in-mobile-safari/) +* [Optimise Largest Contentful Paint](/2022/03/optimising-largest-contentful-paint/) +* [Speed Up Google Fonts](/2020/05/the-fastest-google-fonts/) +* [Can We Drop Our Build Tools Yet?](/2023/10/the-three-c-concatenate-compress-cache/) +* [Get the Fastest Possible LCP](/2023/09/the-ultimate-lqip-lcp-technique/) +* [Diagnose Time to First Byte](/2019/08/time-to-first-byte-what-it-is-and-why-it-matters/) +* [What Is the Maximum max-age Value?](/2023/10/what-is-the-maximum-max-age/) + +I’m next speaking at: + +
    + + {% include speaking.html %} + +
diff --git a/performance-audits.md b/performance-audits.md new file mode 100644 index 00000000..43781178 --- /dev/null +++ b/performance-audits.md @@ -0,0 +1,153 @@ +--- +layout: page +title: Site-Speed Performance Audits +page-class: page--services page--code-reviews +meta: "Detailed site-speed audits that surface every bottleneck, prioritise fixes by ROI, and get you passing Core Web Vitals within weeks—trusted by the BBC and Sky." +main: "https://res.cloudinary.com/csswizardry/image/fetch/f_auto,q_auto/https://csswizardry.com/img/content/audit-trello.png" +permalink: /performance-audits/ +lux: "Services / Audits" +--- + +

+ + + +You could be leaving hundreds of thousands of dollars of revenue on the table +every year due to a poorly- or un-optimised website. Slow websites are one of +online consumers’ biggest frustrations, and a fast way to miss out on sales. + +Whether you want to boost revenues, improve conversion rates, reduce churn, or +improve retention and engagement, a well-optimised site is a key way to get +there. + +{% include promo-fix-it-fast.md %} + +## How It Works + +All it takes is five straightforward steps to turn your site around: + +
+

Harry’s performance audit gave comprehensive, forensic insight across the full delivery pipeline. Clearly highlighted priorities brought rapid benefits and a plan for continued improvement. Genius.

+Peter Gibb, ICAEW +
+ +1. **Survey:** To begin, I need to know a lot about your organisation, the + problems you feel you face, and what we need to concentrate on. I’ll send + a series of very focused questions that will help me to understand the + business’ needs immediately. +2. **Audit:** Remotely, I roll up my sleeves and dig in! With an encyclopaedic + knowledge of all things web-performance, nothing will evade me. From + infrastructure and the network, to assets and payloads; from CSS and fonts, + to runtime and rendering (and everything in between), we have a lot to pay + attention to. I’ll spend at least five days looking through everything I can + get my hands on. +3. **Report:** Once I’ve uncovered everything, I’ll put together a full report + outlining all of the issues and problems that exist, as well as preemptive + optimisations we could make in order to be even faster. The report will + contain actionable and prioritised tasks that you and your engineers can + begin to implement in a sensible and considered order. +4. **Handover:** Once you and your team have had chance to read and digest the + report, you’ll likely have some questions or comments. We’ll hold a formal + handover session to ensure that you fully understand the entirety of the audit + document and know what you need to do next. +5. **Reconvene:** One to three months later—depending on what would be most + helpful for you—I’ll drop back in and conduct a brief re-audit against the + backlog that I left you with. This phase ensures you’re accountable, as + well as shows me where any regressions may have happened or what you may have + struggled to overcome. + +
+ +
A full Trello board forms the basis of your Performance Sprint.
+
+ +## Existing Issues and Opportunistic Optimisations + +
+

Harry’s focused, practical approach allowed us to implement significant +changes which improved our user experience and overall performance +dramatically. I recommend him wholeheartedly.

+Rich Fogarty, Concrete Playground +
+ +As well as uncovering existing issues that are impacting site performance, I’ll +also be sure to make recommendations where opportunistic optimisations are +concerned: are there any new web platform features we can utilise? Different +approaches we could be taking? Bleeding edge features that we can begin to +introduce? **Instead of just making your site better, let’s make it +a class-leader.** + +## Deliverables + +Once the audit is complete, you receive: + +* **Executive Summary:** A high-level, non-technical Keynote highlighting the + biggest findings and their implications, as well as immediate- and short-term + strategic advice for fixing the issues in question. This document is designed + to orientate and align everyone with a shared understanding of the task at + hand. +* **Performance Backlog:** A Trello board that I populate as I review the site + will be made available to your team. Cards have clear checklists covering + everything from common pitfalls to long-term optimisations. Key tasks are + created and loosely prioritised in order for your team to hit the ground + running. +* **Half-Day Handover:** Scheduled for some time after delivery of the report, + we’ll set aside a half-day for a call in which your engineers can ask + questions about my findings, I can explain anything that requires it, we can + look to discuss longer-term strategies, and generally close up the project + with a formal handover session. +* **Check-In:** Rather than simply leaving you to get on with things unassisted, + I will check back in within one to three months to see what progress has been + made—and maintained!—as well as to see what outstanding issues or unresolved + problems there might be. + +Arrange an Audit + +- - - + +## Fix It Fast! + +Sometimes, a weeks-long audit is a little more than you need. Perhaps you only +have a very specific issue you’d like to tackle; maybe you’re not sure how much +input you need at all? For you, we have the _Fix It Fast_ option: a quick-fire, +tactical, and straight to the point screencast covering the most immediate +problems you face. + +What does that look like? Here’s an audit I did for the [Yorkshire Air +Ambulance](https://www.yorkshireairambulance.org.uk/) service in summer 2025: + +
+ +
+ +You tell me the issue, I run some tests, and then record myself solving it. At +the end, you’re left with a screencast showing exactly how I went about +troubleshooting the issue, as well as its solution. + +_Fix It Fast_ is a very pragmatic response to the need for short, targeted +advice that doesn’t require a full audit engagement. It can also be used to +triage the extent of performance issues with your site. + + + +
+ + + + diff --git a/robots.txt b/robots.txt index 0afd6f7a..9c5e7ac8 100644 --- a/robots.txt +++ b/robots.txt @@ -1,3 +1,39 @@ User-agent: * -Sitemap: http://csswizardry.com/sitemap.xml -Disallow: +Allow: / +Disallow: /demos/ + +# Block AI bots from accessing articles for training purposes. +# +# This is a little brittle, but it works on the basis that all my blog posts +# were published at some point in the 21st century. +# +# TODO: Update when I’m 109. + +User-agent: GPTBot +Disallow: /20* + +User-agent: ClaudeBot +Disallow: /20* + +User-agent: CCBot +Disallow: /20* + +User-agent: cohere-ai +Disallow: /20* + +User-agent: AI2Bot +Disallow: /20* + +User-agent: Diffbot +Disallow: /20* + +User-agent: Bytespider +Disallow: /20* + +User-agent: Google-Extended +Disallow: /20* + +User-agent: Applebot-Extended +Disallow: /20* + +Sitemap: https://csswizardry.com/sitemap.xml diff --git a/sentinel.md b/sentinel.md new file mode 100644 index 00000000..3c6b1110 --- /dev/null +++ b/sentinel.md @@ -0,0 +1,178 @@ +--- +layout: page +title: "Sentinel: Your Web-Performance Watchman" +page-class: page--services page--sentinel +meta: "I keep an eye on site-speed so you don’t have to" +main: "https://csswizardry.com/img/content/sentinel/speedcurve-003.png" +permalink: /sentinel/ +lux: "Services / Sentinel" +--- + +**I focus on site-speed so you don’t have to.** + +Keep getting hit with performance regressions? Site-speed unstable and +inconsistent? No time to triage performance issues? No one taking ownership of +site-speed? **Sound familiar?** + +Even the most performance-conscious teams rarely have the time or resources to: + +* **define** appropriate performance budgets; +* **procure** and set up monitoring software; +* **identify** regressions; +* **separate** signal from noise; +* **triage** performance issues. + +**That’s why they use _Sentinel_.** + +Outsource your performance monitoring to me, your web-performance watchman. + +
+ +
+ +## What is Sentinel? + +- - - + +**sentinel** /ˈsɛntɪnəl/ +noun +A soldier or guard whose job is to stand and keep watch. + +- - - + +Most companies simply don’t have dedicated performance teams (or even +individuals) to keep a constant eye on site-speed. Engineers have product and +feature work to do, and even with the best will in the world, performance ends +up falling off the radar. Regressions sneak in, go unnoticed, and never get +fixed. + +
+

Service undersells what Harry is providing here. It looks like a comprehensive monitor/triage/root-cause/impact high-touch service from one of the best.

+Patrick Meenan +
+ +_Sentinel_ is a service I offer to a small number of trusted clients: I become +your eyes and ears so you can get on with what you do best. Using my own +monitoring, I’ll work with you to define performance budgets and set up +relevant dashboards and alerts to make sure you stay fast. + +The moment a regression is detected, I receive the alert and get to work. Your +developers don’t get interrupted by emails from monitoring software, and they +don’t need to wade though meaningless data to uncover meaningful insights. In +fact, they don’t need to do anything at all—that’s my job. + +I’ll jump in, honing right in on the issue using bespoke dashboards and +performance budgets designed specifically for you. I’ll identify the problem and +hand over a report containing the timing of the regression, its cause, its +severity, its impact, and its fix. + +
+ +
+ +

+ Learn more… +

+ +## What Does Sentinel Look Like? + +There are three key aspects to _Sentinel_. + +### Setup + +Firstly, I’ll conduct an initial audit of your site to identify and address any +current slowdowns—there’s no point monitoring a slow website! + +Then, we work together to outline the key metrics we’d like to track. Want to +monitor Largest Contentful Paint? Sure! TTFB? You got it! Total Blocking Time? +Done! Once we have a handful of metrics we’d like to keep an eye on, we gather +key pages to monitor—we could monitor all metrics on all pages, or any +permutation of the above. It’s entirely up to you. + +Once we have our key metrics, it’s time to set some budgets. Most teams find +performance budgets paralysing, but that’s not your job anymore—it’s mine! I’ll +calculate relevant budgets for each of our chosen metrics, and set up the +corresponding dashboards and alerts for them. + +
+ +
+ +### Monitor + +Now, we wait. + +If any of our key metrics regress beyond our budgets, I get alerted immediately. +Alerts get sent to an expedited email address (that you also have access to), +shooting right to the top of my inbox. + +From there, I begin analysing data, comparing charts, and running tests. I’ll +cross-reference many different vectors to hone in on the problem, working out +what happened and what might have caused it. + +Once I have a reasonable idea of the issue and its solution, I’ll put together +a report and send it over. This could be via email, or directly into your issue +tracker. It’s entirely up to you. + +
+ +
+ +### Report + +What if we don’t have any regressions?! + +This is great news! But don’t worry—you’ll never pay _Sentinel_ for nothing. +Regardless of how many incidents you experience, including zero, you’ll receive +the following reports every month and each quarter: + +Monthly, you’ll receive a general performance report. How many incidents did we +have? How is the site faring compared to the previous period? Did the site +behave consistently throughout the month? Did we notice any patterns? Do we have +any opportunities outside of our key metrics? + +Quarterly, you’ll receive a more comprehensive benchmarking report where we +compare your site against competitors and industry peers. How do we stack up? Is +anyone making great progress? Do we need to catch up to anyone? Can we identify +any opportunities? + +

+ Arrange a call +

+ +## Pricing + +**_Sentinel_ costs $5,999/mo.** + +* USD +* Billed quarterly +* 20% discount for annual billing +* Minimum commitment of six months + +### What’s Included? + +* **Initial [performance audit](/performance-audits/):** We’ll conduct + a thorough audit before we begin monitoring. This allows us to start from + a healthy baseline. +* **Metric and budget definition:** We’ll work out your key metrics and their + corresponding budgets. +* **Monitoring software:** No need to procure your own monitoring software—I + have it covered already! I’ll set you up in my SpeedCurve and Treo accounts. +* **Always-on monitoring:** The main event—I keep an eye on your performance + budgets and tackle regressions as they happen. +* **Monthly status updates:** At the end of each month, I’ll summarise the + previous period. Is site-speed trending up or down? Did we improve on last + month? Did we have more incidents than normal? +* **Quarterly healthchecks and benchmarks:** Every three months, I’ll run + a suite of tests against your closest competitors and peers to establish our + position within your industry. Are we leading the pack? Or do we have + opportunities for improvement? + +## Learn More + +If you want to know more about _Sentinel_ and how it can help your team, let’s +arrange a zero-obligation call to discuss it further: + +

+ Let’s talk Sentinel +

diff --git a/services.md b/services.md index 1bdfd916..ed8372a4 100644 --- a/services.md +++ b/services.md @@ -1,29 +1,61 @@ --- layout: feature -title: Services +title: Web Performance Optimisation Services page-class: page--services -meta: "Services offered to clients of all shapes and sizes" +meta: "Audits, consultancy, workshops: CSS Wizardry delivers end-to-end web-performance services that shave seconds and grow revenue for teams worldwide." permalink: /services/ +lux: "Services" --- +## How Can I Help? +

Harry’s tailored -workshop was nothing short of fantastic, and a real eye-opener, helping our team -level up their scalable CSS architecture skills. The entire team left it -learning something new, and to say that what was covered will have a large -impact on our work is an understatement. We can’t recommend him enough.

Addy +workshop was nothing short of fantastic—a real eye-opener, helping our team +level up their scalable CSS architecture skills. The entire team left learning +something new, and to say that what was covered will have a large impact on our +work is an understatement. We can’t recommend him enough.

+
Addy Osmani, Google
-For many years now, I have worked as an independent consultant, helping some of -the biggest companies in the world to improve their products by providing -consultancy, audits, code, workshops, and more. +I help companies of all shapes and sizes to assess, identify, and fix site-speed +issues. Through a combination of audits, consultancy, and training, let’s find +out what web performance means for your business, and how to ensure we’re on top +of things. + +{% include cta.md %} -With a strong focus on performance and efficiency, my work aims to leave -companies with faster code and faster teams. + -Thinking of hiring me? [You’re in good company](/#section:clients). +
    -
      +
    • + +

      + Masterclasses New + Bite-sized courses for your whole team +

      +
      +
    • + +
    • + +

      + Sentinel + Your web-performance watchman +

      +
      +
    • + +
    • + +

      + Performance Audits + Forensic site-speed examination +

      +
      +
    • @@ -37,7 +69,7 @@ Thinking of hiring me? [You’re in good company](/#section:clients).
    • - Consultancy and Development + Consultancy Help, guidance, and implementation

      @@ -53,19 +85,10 @@ Thinking of hiring me? [You’re in good company](/#section:clients).
    • - -

      - Code Reviews and Audits - Remote code reviews and performance audits -

      -
      -
    • - -
    • - +

      - Contact Me - Get in touch right away + Downloads + Assets and resources

    • diff --git a/sitemap.xml b/sitemap.xml deleted file mode 100644 index 7dfccc37..00000000 --- a/sitemap.xml +++ /dev/null @@ -1,661 +0,0 @@ - - - - http://csswizardry.com/2009/12/typographic-work-planner - 2013-12-22T09:56:04+00:00 - - - - http://csswizardry.com/2010/01/a-suitable-alternativeon-proper-use-of-alt-attributes - - 2013-12-22T09:56:04+00:00 - - - - http://csswizardry.com/2010/01/a-reconsiderationin-defence-of-b-and-i-or-people-fear-what-they-dont-understand - - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2010/01/the-importance-of-proper-punctuation - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2010/01/the-three-types-of-dash - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2010/01/iphone-css-tips-for-building-iphone-websites - 2013-12-22T09:56:04+00:00 - - - - http://csswizardry.com/2010/02/css-bar-charts-styling-data-with-css3-and-progressive-enhancement - - 2013-12-22T09:56:04+00:00 - - - - http://csswizardry.com/2010/02/upside-down-domainsregistering-an-international-domain-name - - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2010/02/mutiple-column-lists-using-one-ul - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2010/02/typographic-phrases-or-how-to-turn-sayings-geeky - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2010/02/type-tipsquick-tips-on-all-things-web-typography - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2010/02/usability-in-everyday-items - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2010/02/suzanna-haworth-redesign - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2010/03/a-quick-note-on-border-radius - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2010/03/moving-forward-is-holding-us-back - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2010/03/30-days-without-an-iphone - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2010/04/building-sites-without-using-ids-or-classes - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2010/08/semantics-and-sensibility - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2010/08/zebra-striping-rows-and-columns - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2010/09/set-then-unset - 2013-12-22T09:56:04+00:00 - - - - http://csswizardry.com/2010/09/a-quick-counter-to-the-digital-agencies-of-the-future - - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2010/09/keeping-code-clean-with-content - 2013-12-22T09:56:04+00:00 - - - - http://csswizardry.com/2010/09/css-wizardry-personal-content-and-getting-things-for-free - - 2013-12-22T09:56:04+00:00 - - - - http://csswizardry.com/2010/10/in-response-to-invisible-captcha-to-prevent-form-spam - - 2013-12-22T09:56:04+00:00 - - - - http://csswizardry.com/2010/10/designing-in-the-browser-leads-to-better-quality-builds - - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2010/10/good-developers-vs-good-salespeople - 2013-12-22T09:56:04+00:00 - - - - http://csswizardry.com/2010/10/hyperbolic-title-using-the-word-sexy-to-describe-some-code - - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2010/10/your-logo-is-an-image-not-a-h1 - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2010/10/things-are-changing-at-css-wizardry - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2010/10/unsung-heroes - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2010/10/i-hate-that-i-love-writer - 2013-12-22T09:56:04+00:00 - - - - http://csswizardry.com/2010/11/mark-up-a-semantic-accessible-progressively-enhanced-mobile-optimised-progress-bar-bonus-style-the-numbers-in-an-ordered-list - - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2010/11/design-and-education - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2010/11/improving-css-tooltips - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2010/12/let-it-snow - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2010/12/tweet-this - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2010/12/css-camel-case-seriously-sucks - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2010/12/the-implementation-appreciation-rule - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2010/12/simplified-page-borders-in-pure-css - 2013-12-22T09:56:04+00:00 - - - - http://csswizardry.com/2010/12/remote-controlled-hyperlinks-or-multiple-links-in-one-hyperlink - - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2010/12/media-queries-handier-than-you-think - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2010/12/mo-robust-paragraph-indenting - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/01/a-new-year-a-new-css-wizardry - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/01/the-real-html5-boilerplate - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/01/scrolling-overflowed-content-in-ios - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/01/a-new-year-a-new-css-wizardry-ii - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/01/html-elements-tags-and-attributes - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/01/maximising-hit-area-for-usability - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/01/client-respect - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/01/html5-and-text-level-semantics - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/01/using-the-body-element-as-a-wrapper - 2013-12-22T09:56:04+00:00 - - - - http://csswizardry.com/2011/01/link-recreating-the-lukes-beard-social-icons-with-css3 - - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/01/create-a-centred-horizontal-navigation - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/01/forget-responsive-web-design - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/02/announcing-in-focus - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/02/in-focus-a-case-study - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/02/css-powered-ribbons-the-clean-way - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/02/pure-css3-accordion - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/02/creating-a-pure-css-dropdown-menu - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/02/mobile-business-card - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/03/problems-with-the-sans-serif-hack - 2013-12-22T09:56:04+00:00 - - - - http://csswizardry.com/2011/03/link-technical-web-typography-guidelines-and-techniques - - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/03/coding-up-a-semantic-lean-timeline - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/03/ideas-of-march - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/04/introducing-inuit-css - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/05/on-negative-hovers - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/05/jquery-placeholder-plugin-polyfill - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/05/font-sizing-with-rem-could-be-avoided - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/06/annotated-figures-in-html5-and-css - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/06/dibi-2011 - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/06/introducing-igloos-inuit-css-gets-plugins - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/06/styling-alt-text-on-images - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/06/what-is-inuit-css - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/06/namespacing-fragment-identifiers - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/06/fluid-grid-calculator - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/07/responsive-images-right-now - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/07/net-magazine-awards-nominee - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/07/hry-rbrts-me - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/07/borders-on-responsive-images - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/08/more-logo-markup-tips - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/08/updated-cv - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/08/good-developers-are-illusionists - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/08/building-better-grid-systems - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/08/two-titillating-table-tips - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/09/when-using-ids-can-be-a-pain-in-the-class - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/09/do-designers-need-to-code - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/09/writing-efficient-css-selectors - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/09/ordered-and-numbered-lists-the-differences - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/09/the-nav-abstraction - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/10/the-island-object - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/10/reset-restarted - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/10/build-along-testing-the-water - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/10/the-css-wizardry-build-along-is-go - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/10/fully-fluid-responsive-css-carousel - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/11/sam-penrose-design-process-and-write-up - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/11/css-wizardry-build-along-1 - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/11/build-along-1-reflection-and-reasoning - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/11/create-a-notched-current-state-nav - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/12/measuring-and-sizing-uis-2011-style - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2011/12/on-html-and-css-best-practices - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2012/02/breaking-good-habits-the-digital-barn - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2012/02/pragmatic-practical-font-sizing-in-css - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2012/03/hacker-news-rebuttal - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2012/04/comments-on-css-wizardry - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2012/04/introducing-faavorite - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2012/04/my-html-css-coding-style - 2013-12-22T09:56:04+00:00 - - - - http://csswizardry.com/2012/04/the-single-responsibility-principle-applied-to-css - - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2012/04/front-trends-2012 - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2012/05/keep-your-css-selectors-short - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2012/06/single-direction-margin-declarations - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2012/06/the-open-closed-principle-applied-to-css - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2012/07/quasi-qualified-css-selectors - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2012/07/shoot-to-kill-css-selector-intent - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2012/07/video-breaking-good-habits-front-trends-2012 - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2012/08/tags-in-css-files - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2012/09/canvas-conf-2012 - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2012/09/inuit-css-v4-oocss-sass-and-more - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2012/10/announcing-pr-ofile-me - 2013-12-22T09:56:04+00:00 - - - - http://csswizardry.com/2012/10/a-classless-class-on-using-more-classes-in-your-html - - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2012/11/code-smells-in-css - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2012/12/my-git-workflow-for-inuit-css - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2012/12/open-sourceome - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2012/12/a-new-css-wizardry - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2013/01/discussion-via-branch - 2013-12-22T09:56:04+00:00 - - - - http://csswizardry.com/2013/01/front-end-performance-for-web-designers-and-front-end-developers - - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2013/01/your-logo-is-still-an-image-and-so-is-mine - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2013/01/mindbemding-getting-your-head-round-bem-syntax - 2013-12-22T09:56:04+00:00 - - - - http://csswizardry.com/2013/01/you-know-your-context-on-critical-thinking-and-thinking-for-yourself - - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2013/02/responsive-grid-systems-a-solution - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2013/02/introducing-csswizardry-grids - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2013/03/net-award-nominee - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2013/04/shame-css - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2013/04/shame-css-full-net-interview - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2013/05/the-flag-object - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2013/05/scope-in-css - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2013/05/hashed-classes-in-css - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2013/07/writing-dryer-vanilla-css - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2013/07/leeds-hangout - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2013/07/speak-the-web-discount-code - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2013/07/make-it-count - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2013/10/lets-work-together - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2013/10/its-because-youre-polite - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2013/10/workshop-make-do-leeds-november-2013 - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2013/11/code-reviews-as-a-service - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2013/11/workshop-smashing-workshops-zurich-december-2013 - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2013/11/taming-data-tables - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2013/11/the-problems-with-crafting-code - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2013/12/my-setup - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2013/12/i-wrote-part-of-a-book - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2013/12/workshop-event-handler-london-february-2014 - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/2014/01/extending-silent-classes-in-sass - 2014-01-07T13:13:09+00:00 - - - http://csswizardry.com/404.html - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/about/ - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/archive/ - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/ - 2013-12-22T09:56:04+00:00 - - - http://csswizardry.com/speaking/ - 2013-12-22T09:56:04+00:00 - - diff --git a/speaking.md b/speaking.md index 50155ede..2e622f3b 100644 --- a/speaking.md +++ b/speaking.md @@ -1,111 +1,101 @@ --- layout: page -title: Speaking -page-class: page--services page--speaking +title: Public Speaking and Conferences +page-class: page--speaking meta: "Harry Roberts’ past and upcoming speaking engagements" +main: "https://res.cloudinary.com/csswizardry/image/fetch/f_auto,q_auto/https://csswizardry.com/img/css/masthead-medium.e55920c9.jpg" permalink: /speaking/ +lux: "Speaking" --- -Having spoken at well over 50 public events, sharing my knowledge with -development and product teams is something I am both very experienced with and -hugely passionate about. If you’re running an event would like me to speak, I -have prepared [some information for you](#section:request). +**Practical insights, delivered.** -As well as speaking at development conferences, I can (and indeed do) speak at -private engagements for companies and their staff. If you are a company who -would like a tech talk to be delivered on-site to a private audience, please do -[get in touch](mailto:csswizardry@gmail.com?subject=Internal%20Tech%20Talk). +I’ve spoken at a lot of conferences. [Over one-hundred](#section:past-events) of +them. Sharing knowledge is one of my key motivations, and is a large part of why +I chose to become a consultant in the first place—I love to help. -If you feel like you’d like something a little more involved and in-depth, then -you’re probably looking for a workshop. I’ve run countless workshops for both -public events and private clients. Read [more about what that involves](/workshops/). +
      + +
      On-stage at performance.now() 2024, Amsterdam. Photo by Richard Theemling.
      +
      -Want to see where I’m speaking next? [Check out the list.](#section:upcoming-events) +From local meetups to international events, I am an enthusiastic, engaging, and +professional speaker. My focus is on web performance and site-speed +optimisation, from both a technical- and business-perspective. +**Want to see where I’m speaking next?** I have a fairly full international +[schedule](#section:upcoming-events), so hopefully I’ll be in a city near you +very soon. +**Want me to speak at your event?** I’ll probably say yes. I usually say yes. +Take a look at [my preliminary questions ](#section:request)and then [drop me +a line](/contact/). +**Am I any good?** Check this keynote from 2019’s [performance.now() +conference](https://perfnow.nl/). It’s a good representation of me and my style. +
      + +
      - +As well as public speaking engagements, I am available to deliver talks +in-house, directly to you and your colleagues. This means we can tailor the +content to provide the most focused and valuable talk possible. [Contact +me](/contact/) to talk about possibilities. -## Upcoming Events +Looking for something a little more involved? You might want [a +workshop](/workshops/). My workshops are renowned. -
        -
      1. -

        Talk

        - Design Exchange, Nottingham, (UK), January 2017 -
      2. -
      3. -

        Talk

        - IceWeb Conference, Reykjavik, (Iceland) January 2017 -
      4. -
      5. -

        Talk

        - DublinCSS, Dublin, (Ireland) February 2017 -
      6. -
      7. -

        Talk

        - Bulgaria Web Summit, Sofia, (Bulgaria) April 2017 -
      8. + -
      9. -

        Workshop

        - White October Events, London (England), April 2016 -
      10. +## Upcoming Events -
      11. -

        Talk

        - infoShare, Gdańsk, (Poland) May 2017 -
      12. +### 2026 -
      13. -

        Talk

        - DEVit, Thessaloniki, (Greece) May 2017 -
      14. +
          -
        1. -

          Talk

          - SmashingConf, New York (US), June 2017 -
        2. - -
        3. -

          Talk

          - SmashingConf, Barcelona (Spain), October 2017 -
        4. + {% include speaking.html %}
        - - -## Request to Speak +## Invite to Speak -I would absolutely love to speak at your conference! However, I do just have a -few questions to make the whole process a lot simpler and upfront for everyone +I would absolutely love to speak at your conference! However, I do just have +a few questions to make the whole process a lot simpler and upfront for everyone involved. If you could [fire me an -email](mailto:csswizardry@gmail.com?subject=Speaking%20Request) -answering as many of the below as possible, I’d be really grateful. If you don’t -have answers to everything just yet, please don’t worry—this is just a rough -starting point, not a test. Please also remember that **there is no right or -wrong answer** to any of these questions. +email](/contact/#so-you-want-to-send-me-an-email) answering as many of the below +as possible, I’d be really grateful. If you don’t have answers to everything +just yet, please don’t worry—this is just a rough starting point, not a test. +Please also remember that **there is no right or wrong answer** to any of these +questions. * **When and where is your conference?** I once [travelled 12,000 - miles](https://www.google.co.uk/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#safe=off&q=distance+leeds+uk+to+wellington+nz) + miles](https://www.google.co.uk/search?q=distance+leeds+to+wellington) to give a talk; I’m not afraid of a commute. * **How many attendees do you expect to have?** Rough figures or previous sizes are perfectly fine. @@ -115,13 +105,17 @@ wrong answer** to any of these questions. other speakers who run the risk of delivering similar talks. * **How long does the talk need to be?** Do you have a set talk duration? 45 minutes is usually ideal. +* **Do you have any specific AV limitations?** I prefer to use headset or lapel + microphone, and would definitely rather use my own laptop to present from. * **Do you cover speaker expenses?** Flights, hotels, train journeys, etc. -* **Do you provide a plus-one ticket?** Is there a chance to bring someone along - who might also be interested in attending? * **What kind of talk would you like?** I usually give technical talks (CSS architecture, performance, etc.), but am open to discussing other topics. * **Do you require a brand new talk?** Writing talks takes a lot of time and effort: forewarned is forearmed. +* **When can I start publicising your event?** Do you want to keep the lineup + quiet for a while, or can I add your event to my speaking list immediately? +* **How much does a ticket cost for attendees?** I like to have a rough idea of + the cost of the event if possible. * **Do you plan to compensate speakers?** I usually charge a fee to speak, however its value is open to discussion for indie and non-profit events. @@ -132,7 +126,7 @@ available to attendees for the entire duration of the event. I will attend all social activities surrounding the event. I will deliver a quality talk of practical relevance. I will gladly allow you to record and distribute my talk. [I hold myself to a high -standard](http://csswizardry.com/2016/06/speakers-checklist-before-and-after-your-talk/). +standard](/2016/06/speakers-checklist-before-and-after-your-talk/). Sound okay? Get in touch! @@ -143,301 +137,922 @@ standard](http://csswizardry.com/2016/06/speakers-checklist-before-and-after-you ## Past Events +### 2025 + +
          + +
        1. +

          Talk

          + performance.now(): Amsterdam (Netherlands), October 2025 +
        2. + +
        3. +

          Talk

          + Web Unleashed: Toronto (Canada), October 2025 +
        4. + +
        5. +

          Talk

          + JoyConf: Amsterdam (Netherlands), October 2025 +
        6. + +
        7. +

          Talk

          + Shift Conference: Zadar (Croatia), September 2025 +
        8. + +
        9. +

          Talk

          + ANWB Front-End Summit: The Hague (Netherlands), June 2025 +
        10. + +
        11. +

          Talk

          + CMS Experts: Leeds (England), June 2025 +
        12. + +
        13. +

          Talk

          + Infoshare: Gdańsk (Poland), May 2025 +
        14. + +
        15. +

          Talk

          + Devoxx Greece: Athens (Greece), April 2025 +
        16. + +
        + +### 2024 + +
          + +
        1. +

          Talk

          + London Web Standards: London (England), November 2024 +
        2. + +
        3. +

          Talk

          + performance.now(): Amsterdam (Netherlands), November 2024 +
        4. + +
        5. +

          Talk & Workshop

          + Web Unleashed: Toronto (Canada), October 2024 +
        6. + +
        7. +

          Talk

          + Middlesbrough Front End: Middlesbrough (England), July 2024 +
        8. + +
        9. +

          Talk & Workshop

          + WebExpo: Prague (Czech Republic), May 2024 +
        10. + +
        + +### 2023 + +
          + +
        1. +

          Talk

          + performance.now(): Amsterdam (Netherlands), November 2023 +
        2. + +
        3. +

          Talk

          + DEV: Challenge Accepted: Sofia (Bulgaria), September 2023 +
        4. + +
        5. +

          Talk

          + State of the Browser: London (England), September 2023 +
        6. + +
        7. +

          Workshop

          + Web Summer Camp: Opatija (Croatia), September 2023 +
        8. + +
        9. +

          Talk

          + Infoshare: Gdańsk (Poland), May 2023 +
        10. + +
        11. +

          Talk & Workshop

          + WebExpo: Prague (Czech Republic), April 2023 +
        12. + +
        13. +

          Workshop

          + Beyond Tellerrand: Düsseldorf (Germany), April 2023 +
        14. + +
        15. +

          Talk

          + Stories On The Road: Leeds (England), March 2023 +
        16. + +
        + +### 2022 + +
          + +
        1. +

          Workshop

          + HelloWorld: Belgrade (Serbia), December 2022 +
        2. + +
        3. +

          Talk

          + DaFED: Novi Sad (Serbia), December 2022 +
        4. + +
        5. +

          Workshop

          + HURA: Zagreb (Croatia), December 2022 +
        6. + +
        7. +

          Talk & Workshop

          + Modern FrontEnds Live!: London (England), November 2022 +
        8. + +
        9. +

          Talk

          + Øredev: Malmö (Sweden), November 2022 +
        10. + +
        11. +

          Talk

          + performance.now(): Amsterdam (Netherlands), October 2022 +
        12. + +
        13. +

          Talk

          + 🌍 Web Unleashed: Remote (Online), October 2022 +
        14. + +
        15. +

          Talk

          + Infoshare: Gdańsk (Poland), October 2022 +
        16. + +
        17. +

          Workshop

          + Digital Labin: Labin (Croatia), September 2022 +
        18. + +
        19. +

          Talk

          + DEV: Challenge Accepted: Sofia (Bulgaria), September 2022 +
        20. + +
        21. +

          Talk

          + Smashing Conference: Freiburg (Germany), September 2022 +
        22. + +
        23. +

          Talk

          + Web Summer Camp: Šibenik (Croatia), September 2022 +
        24. + +
        25. +

          Talk & Workshop

          + Smashing Conference: San Francisco (US), June 2022 +
        26. + +
        + +### 2021 + +
          + +
        1. +

          Talk

          + Beyond Tellerrand: Düsseldorf (Germany), November 2021 +
        2. + +
        3. +

          Talk

          + 🌍 Web Unleashed: Remote (Online), October 2021 +
        4. + +
        5. +

          Talk

          + Infoshare: Gdańsk (Poland), October 2021 +
        6. + +
        7. +

          Talk & Workshop

          + WebExpo: Prague (Czech Republic), September 2021 +
        8. + +
        9. +

          Talk

          + 🌍 Stay Curious: Remote (Online), August 2021 +
        10. + +
        11. +

          Workshop

          + 🌍 Smashing Conference: Remote (Online), May 2021 +
        12. + +
        + +### 2020 + +
          + +
        1. +

          Talk

          + 🌍 Web Unleashed: Remote (Online), October 2020 +
        2. + +
        3. +

          Talk

          + Frontcon: Riga (Latvia), August 2020 +
        4. + +
        5. +

          Workshop

          + 🌍 Smashing Conference: Remote (Online), May–June 2020 +
        6. + +
        + + +### 2019 + +
          + +
        1. +

          Talk & Workshop

          + performance.now(): Amsterdam (Netherlands), November 2019 +
        2. + +
        3. +

          Talk

          + ffconf: Brighton (England), November 2019 +
        4. + +
        5. +

          Talk & Workshop

          + ScriptConf: Linz (Austria), October 2019 +
        6. + +
        7. +

          Talk

          + JAMstack JAM session: Linz (Austria), October 2019 +
        8. + +
        9. +

          Talk & Workshop

          + Smashing Conference: New York (US), October 2019 +
        10. + +
        11. +

          Talk & Workshop

          + Digitalab.in: Labin (Croatia), September 2019 +
        12. + +
        13. +

          Talk & Workshop

          + Finch Front-End: Edinburgh (Scotland), September 2019 +
        14. + +
        15. +

          Talk & Workshop

          + WebExpo: Prague (Czech Republic), September 2019 +
        16. + +
        17. +

          Talk & Workshop

          + Front Conference Zürich: Zürich (Switzerland), August 2019 +
        18. + +
        19. +

          Talk & Workshop

          + Clarity: San Francisco (US), August 2019 +
        20. + +
        21. +

          Talk & Workshop

          + CSSCamp: Barcelona (Spain), July 2019 +
        22. + +
        23. +

          Talk

          + DEVit: Thessaloniki (Greece), June 2019 +
        24. + +
        25. +

          Workshop

          + Pixel Pioneers: Bristol (England), June 2019 +
        26. + +
        27. +

          Talk

          + Tinel Meetup: Split (Croatia), May 2019 +
        28. + +
        29. +

          Talk

          + Shift DEV: Split (Croatia), May 2019 +
        30. + +
        31. +

          Talk & Workshop

          + Infoshare: Gdańsk (Poland), May 2019 +
        32. + +
        33. +

          Talk

          + IT-Konekt: Niš, Kragujevac (Serbia), April 2019 +
        34. + +
        35. +

          Talk

          + JSHeroes: Cluj-Napoca (Romania), April 2019 +
        36. + +
        37. +

          Talk & Workshop

          + JS Fest: Kyiv (Ukraine), April 2019 +
        38. + +
        39. +

          Talk

          + Front End Sheffield: Sheffield (England), March 2019 +
        40. + +
        41. +

          Talk & Workshop

          + Spotlight: Web Performance: Toronto (Canada), March 2019 +
        42. + +
        43. +

          Workshop

          + New Adventures: Nottingham (England), January 2019 +
        44. + +
        + +### 2018 +
        1. -

          Workshop

          - White October Events, London (England), November 2016 +

          Talk & Workshop

          + FrontEnd Con: Warsaw (Poland), December 2018 +
        2. + +
        3. +

          Talk

          + Topconf: Tallinn (Estonia), November 2018 +
        4. + +
        5. +

          Talk

          + ColdFront: Copenhagen (Denmark), November 2018 +
        6. + +
        7. +

          Talk

          + performance.now(): Amsterdam (Netherlands), November 2018
        8. -

          Talk

          - London CSS, London (England), November 2016 +

          Talk

          + Heapcon: Belgrade (Serbia), October 2018
        9. -

          Talk

          - FrontMen Guru Sessions, Amsterdam (Netherlands), November 2016 +

          Talk & Workshop

          + Web Unleashed: Toronto (Canada), October 2018
        10. -

          Talk & Workshop

          - Topconf, Tallinn (Estonia), November 2016 +

          Workshop

          + Web Summer Camp: Rovinj (Croatia), August–September 2018
        11. -

          Talk & Workshop

          - Beyond Tellerrand, Berlin (Germany), November 2016 +

          Talk

          + CSSconf Argentina: Buenos Aires (Argentina), August 2018
        12. -

          Talk

          - Code4Life, Warsaw (Poland), October 2016 +

          Talk

          + New York Web Performance Group: New York (US), July 2018
        13. -

          Talk

          - WDC, Bristol (England), October 2016 +

          Talk

          + Smashing Conference: Toronto (Canada), June 2018
        14. -

          Talk

          - FrontEndNorth, Sheffield (England), September 2016 +

          Talk & Workshop

          + Frontend United: Utrecht (Netherlands), May–June 2018
        15. -

          Talk

          - WebExpo, Prague (Czech Republic), September 2016 +

          Talk & Workshop

          + Infoshare: Gdańsk (Poland), May 2018
        16. -

          Talk

          - Shopify Webinar, Remote/Online, September 2016 +

          Talk

          + DeltaV Conference: London (England), May 2018
        17. -

          Talk

          - MK Geek Night, Milton Keynes (England), September 2016 +

          Talk

          + webclerks: Vienna (Austria), April 2018
        18. -

          Talk

          - Frontend Conference, Zürich (Switzerland), September 2016 +

          Talk & Workshop

          + IT-Konekt: Belgrade (Serbia), April 2018
        19. -

          Talk

          - CSSconf Argentina, Buenos Aires (Argentina), August 2016 +

          Talk

          + JS Fest: Kyiv (Ukraine), March 2018
        20. -

          Talk

          - CSS Day, Amsterdam (Netherlands), June 2016 +

          Talk & Workshop

          + Render Conf: Oxford (England), March 2018
        21. -

          Talk

          - ScotlandCSS, Edinburgh (Scotland), June 2016 +

          Talk

          + DaFED: Novi Sad (Serbia), February 2018
        22. -

          Talk

          - Front-end United, Ghent (Belgium), May 2016 +

          Talk

          + Osijek Software City: Osijek (Croatia), February 2018
        23. -

          Talk

          - Front-Trends, Warsaw (Poland), May 2016 +

          Talk & Workshop

          + Awwwards: Berlin (Germany), February 2018
        24. -

          Workshop

          - Topconf, Linz (Austria), May 2016 +

          Talk & Workshop

          + Beyond Tellerrand: Munich (Germany), January 2018
        25. +
        + +### 2017 + +
          +
        1. -

          Talk

          - Hey!Stac, Leeds (England), April 2016 +

          Talk & Workshop

          + Code Europe: Wrocław (Poland), December 2017
        2. -

          Talk & Workshop

          - Render, Oxford (England), April 2016 +

          Workshop

          + HURA: Zagreb (Croatia), December 2017
        3. -

          Talk & Workshop

          - SmashingConf, San Francisco (US), April 2016 +

          Workshop

          + Graaft: Manchester (United Kingdom), November 2017
        4. -

          Workshop

          - White October Events, London (England), March 2016 +

          Talk & Workshop

          + Pixel Pioneers: Belfast (Northern Ireland), November 2017
        5. -

          Talk & Workshop

          - Webstock, Wellington (New Zealand), February 2016 +

          Talk

          + CSSConf Budapest: Budapest (Hungary), October 2017
        6. -

          Talk

          - Topconf, Linz (Austria), February 2016 +

          Talk

          + CSS Dev Conf: New Orleans (US), October 2017
        7. -

          Workshop

          - Work in the Web, Leeds (England), January 2016 +

          Talk

          + Paris Web: Paris (France), October 2017
        8. -

          Workshop

          - White October Events, London (England), January 2016 +

          Workshop

          + White October: London (England), September 2017
        9. -

          Talk

          - Web Perf Barcelona, Barcelona (Spain), January 2016 +

          Talk

          + CSS Minsk JS: Minsk (Belarus), September 2017
        10. -

          Talk

          - Beyond, London (England), November 2015 +

          Talk & Workshop

          + Reasons to:: Brighton (England), September 2017
        11. -

          Workshop

          - White October Events, London (England), November 2015 +

          Talk

          + Tinel Meetup: Split (Croatia), August 2017
        12. -

          Workshop

          - White October Events, London (England), September 2015 +

          Talk

          + Smashing Conference: New York (US), June 2017
        13. -

          Talk

          - From The Front, Bologna (Italy), September 2015 +

          Talk

          + J and Beyond: Kraków (Poland), June 2017
        14. -

          Talk

          - SmashingConf, Freiburg (Germany), September 2015 +

          Workshop

          + DEVit: Thessaloniki (Greece), May 2017
        15. -

          Workshop

          - DotYork, York (England), April 2015 +

          Talk

          + Infoshare: Gdańsk (Poland), May 2017
        16. -

          Talk

          - CSSConf, Melbourne (Australia), March 2015 +

          Talk

          + WeAreDevelopers: Vienna (Austria), May 2017
        17. -

          Talk

          - Frontend.fi, Helsinki (Finland), March 2015 +

          Workshop

          + White October Events: London (England), April 2017
        18. -

          Talk

          - Reasons:London, London (England), February 2015 +

          Talk

          + Bulgaria Web Summit: Sofia (Bulgaria), April 2017
        19. -

          Talk

          - dotCSS, Paris (France), November 2014 +

          Workshop

          + Xebia: Amsterdam (Netherlands), March 2017
        20. -

          Talk

          - DaFED, Novi Sad (Serbia), November 2014 +

          Talk

          + DublinCSS: Dublin (Ireland), February 2017 +
        21. + +
        22. +

          Talk

          + IceWeb Conference: Reykjavik (Iceland), January 2017 +
        23. + +
        24. +

          Talk

          + Design Exchange: Nottingham (England), January 2017 +
        25. + +
        + +### 2016 + +
          + +
        1. +

          Workshop

          + White October Events: London (England), November 2016
        2. -

          Talk

          - Trondheim Developer Conference, Trondheim (Norway), October 2014 +

          Talk

          + London CSS: London (England), November 2016
        3. -

          Talk & Workshop

          - SmartWeb Conference, Bucharest (Romania), September 2014 +

          Talk

          + FrontMen Guru Sessions: Amsterdam (Netherlands), November 2016
        4. -

          Talk

          - The Geek Gathering, Osijek (Croatia), May 2014 +

          Talk & Workshop

          + Topconf: Tallinn (Estonia), November 2016
        5. -

          Talk

          - DotYork, York (England), May 2014 +

          Talk & Workshop

          + Beyond Tellerrand: Berlin (Germany), November 2016
        6. -

          Talk

          - Industry Conf, Newcastle (England), April 2014 +

          Talk

          + Code4Life: Warsaw (Poland), October 2016
        7. -

          Talk & Workshop

          - Future of Web Design, London (England), April 2014 +

          Talk

          + WDC: Bristol (England), October 2016
        8. -

          Workshop

          - Event Handler, London (England), March 2014 +

          Talk

          + FrontEndNorth: Sheffield (England), September 2016
        9. -

          Workshop

          - Event Handler, London (England), February 2014 +

          Talk

          + WebExpo: Prague (Czech Republic), September 2016
        10. -

          Workshop

          - Smashing Workshop, Zürich (Switzerland), December 2013 +

          Talk

          + 🌍 Shopify Webinar: Remote/Online, September 2016
        11. -

          Workshop

          - Make Do, Leeds (England), November 2013 +

          Talk

          + MK Geek Night: Milton Keynes (England), September 2016
        12. -

          Talk

          - #TIDE, Scarborough (England), October 2013 +

          Talk

          + Frontend Conference: Zürich (Switzerland), September 2016
        13. -

          Talk & Workshop

          - Fronteers, Amsterdam (Netherlands), October 2013 +

          Talk

          + CSSconf Argentina: Buenos Aires (Argentina), August 2016
        14. -

          Talk

          - CSSconf.eu, Berlin (Germany), September 2013 +

          Talk

          + CSS Day: Amsterdam (Netherlands), June 2016
        15. -

          Talk

          - Hey!Stac, Leeds (England), June 2013 +

          Talk

          + ScotlandCSS: Edinburgh (Scotland), June 2016
        16. -

          Talk

          - Beyond Tellerrand, Düsseldorf (Germany), May 2013 +

          Talk

          + Front-end United: Ghent (Belgium), May 2016
        17. -

          Talk

          - Industry Conf, Newcastle (England), April 2013 +

          Talk

          + Front-Trends: Warsaw (Poland), May 2016
        18. -

          Talk

          - Digital Barn, Barnsley (England), September 2012 +

          Workshop

          + Topconf: Linz (Austria), May 2016 +
        19. + +
        20. +

          Talk

          + Hey!Stac: Leeds (England), April 2016 +
        21. + +
        22. +

          Talk & Workshop

          + Render Conf: Oxford (England), April 2016 +
        23. + +
        24. +

          Talk & Workshop

          + Smashing Conference: San Francisco (US), April 2016 +
        25. + +
        26. +

          Workshop

          + White October Events: London (England), March 2016 +
        27. + +
        28. +

          Talk & Workshop

          + Webstock: Wellington (New Zealand), February 2016 +
        29. + +
        30. +

          Talk

          + Topconf: Linz (Austria), February 2016 +
        31. + +
        32. +

          Workshop

          + Work in the Web: Leeds (England), January 2016 +
        33. + +
        34. +

          Workshop

          + White October Events: London (England), January 2016 +
        35. + +
        36. +

          Talk

          + Web Perf Barcelona: Barcelona (Spain), January 2016 +
        37. + +
        + +### 2015 + +
          + +
        1. +

          Talk

          + Beyond: London (England), November 2015 +
        2. + +
        3. +

          Workshop

          + White October Events: London (England), November 2015 +
        4. + +
        5. +

          Workshop

          + White October Events: London (England), September 2015 +
        6. + +
        7. +

          Talk

          + From The Front: Bologna (Italy), September 2015 +
        8. + +
        9. +

          Talk

          + Smashing Conference: Freiburg (Germany), September 2015 +
        10. + +
        11. +

          Workshop

          + DotYork: York (England), April 2015 +
        12. + +
        13. +

          Talk

          + CSSConf: Melbourne (Australia), March 2015 +
        14. + +
        15. +

          Talk

          + Frontend.fi: Helsinki (Finland), March 2015 +
        16. + +
        17. +

          Talk

          + Reasons:London: London (England), February 2015 +
        18. + +
        + +### 2014 + +
          + +
        1. +

          Talk

          + dotCSS: Paris (France), November 2014 +
        2. + +
        3. +

          Talk

          + DaFED: Novi Sad (Serbia), November 2014 +
        4. + +
        5. +

          Talk

          + Trondheim Developer Conference: Trondheim (Norway), October 2014 +
        6. + +
        7. +

          Talk & Workshop

          + SmartWeb Conference: Bucharest (Romania), September 2014 +
        8. + +
        9. +

          Talk

          + The Geek Gathering: Osijek (Croatia), May 2014 +
        10. + +
        11. +

          Talk

          + DotYork: York (England), May 2014 +
        12. + +
        13. +

          Talk

          + Industry Conf: Newcastle (England), April 2014 +
        14. + +
        15. +

          Talk & Workshop

          + Future of Web Design: London (England), April 2014 +
        16. + +
        17. +

          Workshop

          + Event Handler: London (England), March 2014 +
        18. + +
        19. +

          Workshop

          + Event Handler: London (England), February 2014 +
        20. + +
        + +### 2013 + +
          + +
        1. +

          Workshop

          + Smashing Workshop: Zürich (Switzerland), December 2013 +
        2. + +
        3. +

          Workshop

          + Make Do: Leeds (England), November 2013 +
        4. + +
        5. +

          Talk

          + #TIDE: Scarborough (England), October 2013 +
        6. + +
        7. +

          Talk & Workshop

          + Fronteers: Amsterdam (Netherlands), October 2013 +
        8. + +
        9. +

          Talk

          + CSSconf.eu: Berlin (Germany), September 2013 +
        10. + +
        11. +

          Talk

          + Hey!Stac: Leeds (England), June 2013 +
        12. + +
        13. +

          Talk

          + Beyond Tellerrand: Düsseldorf (Germany), May 2013 +
        14. + +
        15. +

          Talk

          + Industry Conf: Newcastle (England), April 2013 +
        16. + +
        + +### 2012 + +
          + +
        1. +

          Talk

          + Digital Barn: Barnsley (England), September 2012
        2. -

          Talk

          - Canvas, Birmingham (England), September 2012 +

          Talk

          + Canvas: Birmingham (England), September 2012
        3. -

          Talk

          - Front-Trends, Warsaw (Poland), April 2012 +

          Talk

          + Front-Trends: Warsaw (Poland), April 2012
        4. -

          Talk

          - Digital Barn, Barnsley (England), February 2012 +

          Talk

          + Digital Barn: Barnsley (England), February 2012
        diff --git a/supporters.md b/supporters.md new file mode 100644 index 00000000..bc0f2906 --- /dev/null +++ b/supporters.md @@ -0,0 +1,179 @@ +--- +layout: page +title: "Supporters" +page-class: page--blog page--supporters +meta: "" +main: "" +permalink: /supporters/ +lux: "Supporters" +supporters: +- name: Joan Leon + url: https://www.nucliweb.net/ + avatar: joan-leon.jpg + tier: insider +- name: alessioalex + url: https://github.com/alessioalex + avatar: alessioalex.jpeg + tier: subscriber +- name: Rich Holman + url: https://richholman.com + avatar: rich-holman.png + tier: supporter +- name: Risko Ruus + url: https://www.linkedin.com/in/risko-ruus/ + avatar: risko-ruus.jpeg + tier: seeker +- name: Hekla + url: https://hekla.dev + avatar: hekla.png + tier: insider +- name: Robin Marx + url: https://www.linkedin.com/in/rmarx/ + avatar: robin-marx.jpg + tier: insider +- name: Andy Bell + url: https://bell.bz + avatar: andy-bell.jpg + tier: insider +- name: Paul Calvano + url: https://paulcalvano.com/ + avatar: paul-calvano.jpg + tier: insider +- name: Matt Zeunert + url: https://www.debugbear.com/ + avatar: matt-zeunert.jpeg + tier: seeker +- name: Sylvain Laneyrie + url: https://www.linkedin.com/in/sylvainlaneyrie/ + avatar: sylvain-laneyrie.webp + tier: insider +- name: Patrick Meenan + url: https://bsky.app/profile/patmeenan.com + avatar: patrick-meenan.jpg + tier: '' +- name: Speed Kit + url: https://www.speedkit.com/ + avatar: fabian-krumbholz.jpg + tier: insider +--- + + + +These wonderful people support CSS Wizardry. + +Become a Supporter +or + + +- - - + +{% assign shuffled = page.supporters | sample: page.supporters.size %} +
          + + {% for person in page.supporters %} + {% assign slug = person.name | slugify: 'default' %} + +
        • + + {{ person.name }}’s avatar + {{ person.name }} + +
        • + {% endfor %} + +
        + + diff --git a/testimonials.md b/testimonials.md new file mode 100644 index 00000000..11739be3 --- /dev/null +++ b/testimonials.md @@ -0,0 +1,510 @@ +--- +layout: page +title: Web Performance Testimonials +page-class: page--case-studies page--testimonials +meta: "Read real client testimonials for Harry Roberts’ web performance audits, training, and consultancy. Discover why top brands choose CSS Wizardry." +permalink: /testimonials/ +lux: "Testimonials" +--- + +I’ve done a lot of great work with a lot of great people, but don’t just take my +word for it—here’s what they had to say about me. + +Below are client and peer reviews of my **web performance audits, consultancy, +and training**. Whether audits for large enterprises or one-day workshops for +small independents, these testimonials show why top brands choose me. + +If you want to join them, [get in touch](/contact/). + + + +
        + + + + + + + + + + + + +
        +

        Hex

        +
        +

        Harry was excellent from start to finish, fitting us in at short notice and finding a solution that worked to our budget and timeline.

        +

        The one-day audit was surprisingly in-depth, flagging up numerous areas we could improve on with clear next steps and a great Trello board in which to manage them. It was exactly what we needed to take our website from excellent to incredible, with confidence.

        +

        Performance optimisation can be difficult, like pulling levers in the dark and hoping they give the desired changes. Harry broke down exactly what each lever does, why they’re sometimes doing something counter-intuitive, and which ones we need to focus our time and energy on. It was well worth the investment.

        +
        +

        Jamie Warburton, Head of Engineering, Hex

        +
        + +
        +

        MKM

        +
        +

        We engaged Harry to help with site-speed and take a deep, specialist dive into our codebase. Having spent many years in the industry, and being in receipt of numerous reports where we need to repeatedly ask for amendments and clarity over a number of versions, I was thrilled to receive the high-end report he produced—not one change was requested!

        +

        It is of such a high standard: easy to read, gives clear and direct advice for points of action, and explains the investigated areas in such a way that it is accessible for all, technical or not. Thank you, Harry—this is a career first for me not having to ask for the report to be redrafted so that it’s usable!

        +
        +

        Anna O’Connell, Scrum Master, MKM

        +
        + +
        +

        Southern Alberta Institute of Technology

        +
        +

        Thank you so much for the excellent session, Harry—it was a lot of fun. The team was jazzed by what they learned and were amazed by how prepared you came and all of the ideas you helped spark for ways forward.

        +

        We appreciated your thoroughness, insights, expertise, and the thoughtfulness you brought towards your prepared materials.

        +
        +

        — Jonathon Olenick, Manager, Digital Experience, Southern Alberta Institute of Technology

        +
        + +
        +

        Google

        +
        +

        Harry helped our team level up their scalable CSS architecture skills, and to say that he had a large impact on our work is an understatement. We can’t recommend him enough.

        +
        +

        Addy Osmani, Google

        +
        + +
        +

        Akamai

        +
        +

        We engaged Harry to provide our go-to-market teams insight into the latest industry web performance challenges and tuning and debugging techniques to address them. Harry’s infectious passion and knowledge for the subject shone through, and he left us equally as excited and passionate to share our new found knowledge with customers. We look forward to working with Harry again in the future.

        +
        +

        Michael Gooding, Akamai

        +
        + +
        +

        Smashing Magazine

        +
        +

        Harry is very knowledgeable, experienced, and hard-working, with a vivid passion for web performance, tooling, and productivity. We’ve received incredible feedback from his sessions and the insights he kindly shares. Highly recommended!

        +
        +

        Vitaly Friedman, Smashing Magazine

        +
        + +
        +

        BBC iPlayer

        +
        +

        Harry gave the team a strong footing for identifying performance issues on iPlayer. With his knowledge, we were able to roll out quick fixes to our audiences without the need for big rewrites, all within just two days.

        +
        +

        Matthew Burrows, BBC iPlayer

        +
        + +
        +

        Beyond Tellerrand

        +
        +

        I could start and say how great it is to work with Harry on projects, but I assume many other people before me did this already. Therefore I’d like to mention the many reasons why it is great to have Harry Roberts be a part of your events.

        +

        Harry is a reliable and well prepared speaker who finds the right balance between giving a technical talk and still entertaining the audience. He’s never let me down and always come in on time. Next to the things I mentioned and which are obvious, it is important for an event organiser like me to have speakers at your events that engage with the audience and do not hide backstage, for example. For the delegates, one of the best things at such events is when speakers are accessible, and when they can ask questions and exchange after a talk is done. This is what Harry also is excellent at and never disappoints.

        +

        But most importantly over the last nearly-ten years, Harry became a close friend of mine and I am always happy and looking forward to seeing him!

        +
        +

        Marc Thiele, beyond tellerrand Events

        +
        + +
        +

        Superfein

        +
        +

        Harry is a truly inspired and gifted teacher, and a web performance master. He is gracious and patient, taking the time to answer every single question, always making you feel comfortable and easy. The web performance workshop was so complete and comprehensive, it covered every aspect of performance-first development. What became clear very quickly, is Harry’s completely holistic approach to web performance, where every single development decision is questioned and tested, to ensure it is performance driven. The workshop has helped me change my career path by giving me the tools, the knowledge, the confidence and the skills necessary to work and grow in the web performance field.

        +

        Harry brings a lot of brevity and lightness to his workshops, they are fun, inclusive and very inspiring. At the beginning I called Harry a teacher, but during and after the workshop, it felt like he was not just a teacher, but a mentor. And that is priceless. I encourage anyone who is serious about web performance to take a workshop with Harry Roberts.

        +
        +

        — Zach Miller, Front-end Developer, Superfein

        +
        + +
        +

        Tim Kadlec

        +
        +

        There is a short list of people I whole-heartedly recommend for detailed performance work and Harry is right there at the top.

        +
        +

        Tim Kadlec, Web Performance Consultant

        +
        + +
        +

        Canonical

        +
        +

        We approached Harry as although we had a good grasp of the fundamentals of web performance as a team, we needed to dig deeper. We got Harry in for a two day on-site and were hugely impressed by the depth and breadth Harry was able to cover in such a short time. Crucially, we were left with a long list of tangible actions to take away which have since resulted in a measurable improvement in the performance of our sites across the board.

        +
        +

        Barry McGee, Senior Web Developer, Canonical

        +
        + +
        +

        Adobe

        +
        +

        Harry’s workshop was excellent; we left with tons of new ideas and techniques to improve both the CSS architecture and overall performance of Behance and Adobe Portfolio.

        +
        +

        Jackie Balzer, Adobe

        +
        + +
        +

        Coingaming

        +
        +

        When we first connected with Harry, he was a totally unknown quantity to us—he’d simply met one of our UX designers at a conference and mentioned that he might be able to help us with some site-speed issues we were facing. A few weeks later and he was sat in our office in Tallinn, digging into the problems right there alongside our engineers.

        +

        The impact of his work cannot be overstated. Within just a matter of days he’d identified and rolled out fixes that took global load times down from 18 seconds to just six. The results of his work could be seen immediately in our KPIs and showed a severalfold return on investment after no time at all.

        +

        But, he wasn’t ready to stop there: after focusing on tactical and high-return tasks, he turned his attention to longer-term strategic goals, including geographic monitoring and fostering a performance culture within the business. He always spoke about we, fully embedding himself in the team and making himself a core member. It really felt like he was there with us the whole time.

        +

        He works quickly, methodically, and incredibly forensically, and has a wonderful ability to manage both the business- and technical challenges of web performance. Though clearly technically very proficient, his ability to speak in relevant and jargon-free dialogue allowed him to pull all facets of Coingaming together to better understand and support site-speed efforts. From Business Insights to Marketing, Product to Engineering, and right up to me, the CEO, everyone was left aware of the importance and impact that site-speed has on our business.

        +

        He has remained a part of Coingaming in some way for over two years now: we’ve rehired and retained him a number of times to help keep us on the right path as our business scales and evolves, and as we add new products and team members to our family.

        +
        +

        Tim Heath, CEO & Founder, Coingaming

        +
        + +
        +

        Better Collective

        +
        +

        We worked with Harry for one incredible week, in which we created a tailor-made CSS framework from scratch, complete with naming conventions, documentation style, attributions and an object oriented architecture. Pretty impressive, especially considering that we were only three persons: Harry, a designer and a product manager. Harry was the driving force behind the architecture and for every question we asked, he had well-thought out answer. We managed to make decisions very quickly, which enabled us to move extremely fast toward actual implementation. Without sacrificing quality in any way.

        + +

        Working with Harry made us confident that what we are building will last and be a pleasure for us to work with, and for the next person joining the project. So far, we are still enforcing the rules and methods, we learned from Harry and we are loving it!

        +
        +

        Alette Holmberg-Nielsen, Better Collective

        +
        + +
        +

        Stac

        +
        +

        I’ve worked with Harry on numerous projects over the years and each time he brings huge amounts of value with his detailed knowledge of performance and front-end architecture. Specifically, on the NHSx project, the techniques I learned surrounding ITCSS changed the way I build web applications. Without a doubt, Harry is the consultant you should bring in if you want an authority on how to build well-architected, fast web apps.

        +
        +

        Josh Nesbitt, Consultant, Stac

        +
        + +
        +

        Web Summer Camp

        +
        +

        Harry held a full day workshop at Web Summer Camp, an event I organize every year. I knew about his expertise on optimizing performance of web sites beforehand, but he still blew me away with overwhelming details he delivered and the dedication to share his knowledge to the crowd. The workshop was to be six hours long but he continued for two more hours and most participants remained to hear his valuable advice, tips, and tricks. Some of them were literally applying his advice on their projects during the workshop and doubling the speed of their sites.

        +

        But what I like most about Harry is that he is a very approachable and friendly person, great to communicate with, all in all, a great bloke.

        +
        +

        Ivo Lukač, Web Summer Camp

        +
        + +
        +

        Jannik Lehmann

        +
        +

        I visited Harry’s Web Performance Masterclass and can’t recommend it +enough. It has been five sessions where we really focussed on the topic, what +it’s about, and how to handle things best. Harry wouldn’t end the workshop +before making sure literally every last question was answered, and there were +very few questions he didn’t have an answer for. In the rare event that he +didn’t, he really cared and made a great effort to provide an answer at the +beginning of the next session.

        +

        The vibe on the workshop was really nice, I blame this on Harry quite +a bit: his endless patience and impressive in-depth knowledge on the topic made +it a really valuable experience. The resources we got were great, it was easy to +follow along, it was well prepared, and made the deep-dive feel really easy.

        +
        +

        Jannik Lehmann, Freelance JavaScript Developer and Consultant

        +
        + +
        +

        UNOPS

        +
        +

        Spending a week with Harry has turned my approach to large CSS projects on its head. For years I’ve struggled to find a way to effectively structure large, complex CSS projects and his ITCSS methodology has delivered. Now I have a small, flexible SASS codebase and more performant CSS. Whilst guiding me with ITCSS, Harry dropped in many nuggets of CSS & SASS wisdom which were excellent and will prove invaluable to me in the future. I now feel equipped to use Sass & CSS in my development workflow with the most challenging projects.

        +
        +

        Justin Waugh, UNOPS

        +
        + +
        + + diff --git a/uses.md b/uses.md new file mode 100644 index 00000000..37779da4 --- /dev/null +++ b/uses.md @@ -0,0 +1,406 @@ +--- +layout: page +title: My Setup and Tools +page-class: page--uses +meta: "My setup and toolkit" +permalink: /uses/ +--- + +I often get asked about the tools and setup I use, so I’ve decided to try and +keep a canonical reference at this URL. I’ve split the list into two loose +halves, [software](#software) and [hardware](#hardware). + +* [Software](#software) + * [iTerm2](#iterm2) + * [Vim](#vim) + * [Operator Mono](#operator-mono) + * [Git](#git) + * [CLI Tools](#cli-tools) + * [Dotfiles](#dotfiles) + * [Chrome](#chrome) + * [Adobe Creative Cloud](#adobe-creative-cloud) + * [Sketch](#sketch) + * [Slack](#slack) + * [1Password and ZenMate](#1password-and-zenmate) + * [Netflix and MUBI](#netflix-and-mubi) + * [Dropbox](#dropbox) + * [Priority Pass](#priority-pass) + * [Misc macOS](#misc-macos) +* [Hardware](#hardware) + * [Office](#office) + * [MacBook Pro](#macbook-pro) + * [27″ Thunderbolt Display](#27-thunderbolt-display) + * [iPhone](#iphone) + * [Nexus 5](#nexus-5) + * [Shure SE425](#shure-se425) + * [Apple Watch](#apple-watch) + * [Aeron Chair](#aeron-chair) + * [Blue Yeti Mic](#blue-yeti-mic) + * [Minaal](#minaal) + +- - - + +## Software + +Naturally, as a web developer, software is pretty important to me. I use many +different tools depending on what I need to do, but the following is the kind of +stuff I use daily, or would be one of the first things I install on a new +machine. + +### iTerm2 + +When I worked at [Sky](https://en.wikipedia.org/wiki/Sky_UK), developers were +issued with a MacBook Pro and a corporate Windows 7 desktop. The MacBooks came +with PGP pre-installed, and didn’t have solid state drives, so every read +from/write to disk took an age. This meant that most engineers just used their +MacBooks as Spotify and Outlook machines, and blitzed their Windows box in +favour of a Linux distro. + +After several months of trying to run a large LAMP application on a commodity +hardware Windows box, I soon followed suit and opted for Ubuntu. My first foray +into Linux turned me into a CLI convert (mainly because the Linux/Ubuntu UI is +too painful to look at for any length of time) and I soon started doing +everything from the command line: filesystem traversal, Git, managing files, and +editing text. + +I just use stock Bash, because I’ve never found it lacking for anything I’ve +ever wanted to achieve. + +I haven’t used Ubuntu for a long time now, but on macOS I still do everything +from the Terminal, which in this case is [iTerm2](https://www.iterm2.com/). This +means that my workflow is pretty seamless—I don’t need to frequently jump +between many different apps because everything I need is right here in the same +window. + +### Vim + +> How do you spot a Vim user at a dinner party? Oh, don’t worry, they’ll tell +> you. — [@csswizardry](https://twitter.com/csswizardry/status/831929830103011330) + +I’m a very avid and unashamed [Vim](http://www.vim.org/) user. I’ve been using +it for about five years now and still learn something new every time I fire it +up (a text editor with over 40 years of history has a lot to be learned). + +I use vanilla Vim and not a derivative or wrapper (e.g. Neovim or MacVim), and I +use it from the command line. + +I do everything from my text editor, from drafting emails, writing code, writing +articles, taking notes, arranging thoughts, etc. + +I use a small handful of plugins, the key ones being + +* [gitgutter](https://github.com/airblade/vim-gitgutter): Git information + (insertions, deletions, modifications) right in my text editor; +* [editorconfig](https://github.com/editorconfig/editorconfig-vim): Make it + super simple to follow other peoples’ coding conventions—particularly useful + for me as I work with so many different teams; +* [auto-pairs](https://github.com/jiangmiao/auto-pairs) and + [closetag](https://github.com/alvan/vim-closetag): Autocompletion plugins. + +I don’t use much more than that—five years of using Vim means that you soon +learn to achieve things without plugins. + +I think the reason that most Vim users become so evangelical is because + +0. Vim is just _fun_. If you like learning things then Vim has a limitless + amount of things for you to delve into. It becomes addictive; +0. once you’ve ‘mastered’ it, you begin to see glaring inefficiencies in any + other text editors. The idea of using anything else feels pretty outrageous. + +### Operator Mono + +I use [_Operator +Mono_](https://www.typography.com/fonts/operator/styles/operatormono) in both +Vim and my terminal because it’s just beautiful. I spend most of my days looking +at code, so it ought to be presented well: + +
        + +
        Screenshot of Operator Mono in terminal Vim. View full size/quality (271KB).
        +
        + +### Git + +I only really have experience with the [Git](https://git-scm.com/) VCS, so it’s +all I’ve really ever used. I adore Git for so many reasons, but my favourite +thing has to be just how cheap it is to use: with how simple it is to create a +repo, or how fast it is to make new branches, there’s no excuse for having +unversioned work. It’s such an elegant, powerful tool—I only wish I knew more of +it. + +### CLI Tools + +I use a bunch of handy tools from the command line on a daily basis: + +* [Ack](https://beyondgrep.com/): A better source code search for programmers. I + absolutely _love_ Ack. Read more about why [you should use it + too](/2017/01/ack-for-css-developers/). +* [ghi](https://github.com/stephencelis/ghi): View your repo’s GitHub issues + from right there on the command line! +* [Parker](https://github.com/katiefenn/parker): Static analysis for your CSS + projects. My buddy [Katie](http://www.katiefenn.co.uk/) made this and it’s so + good. Here’s how you can [make the most of + it](/2016/06/improving-your-css-with-parker/). +* [Wget](https://www.gnu.org/software/wget/) and [curl](https://curl.haxx.se/): + I feel like I use Wget as more of a utility, mainly for just saving files to + disk, and curl as more of a debugging tool (inspecting headers, for example). + +### Dotfiles + +I host [my dotfiles on +GitHub](https://github.com/csswizardry/dotfiles/blob/master/.vimrc), if you’re +interested in taking a look. There’s nothing really remarkable in most of them. + +### Chrome + +[Chrome](https://www.google.com/chrome/browser/) is my browser of choice for +just about everything: browsing, building, testing. I use it on my desktop and +my phone. + +For cross-browser testing I have every other macOS-compatible browser installed +on my machine, and an account with +[BrowserStack](https://www.browserstack.com/). + +### Adobe Creative Cloud + +I have the full [Creative Cloud](http://www.adobe.com/creativecloud.html) +subscription which gives me access to the entire Creative Suite. I mainly use +Photoshop, but it’s nice to have Illustrator to hand for diagrams and other +vector work. + +### Sketch + +I worked on [a project for the +NHS](/case-studies/nhs-nhsx-elearning-platform/) a few +years back and the designer was using [Sketch](https://www.sketchapp.com/). I +bought a copy so that I was able to properly translate the designs, but haven’t +really used it much since. I really admire what Sketch is doing—proving that a +small team can compete with the big players whilst making quality, affordable +software—but I still find Illustrator way easier to use. I guess I’ve never +really had a decent reason to fully immerse myself in Sketch, so I’ve only +maintained a very superficial knowledge of it. + +### Slack + +I must be a member of over 20 [Slack](https://slack.com/) channels—nearly _all_ +of my clients use it. And with good reason: Slack is great. I have a paid Slack +account for CSS Wizardry Ltd. that I use for people I mentor, and for projects +where it’s not possible or appropriate to use the client’s instance. + +### 1Password and ZenMate + +I use [1Password](https://1password.com/) to manage passwords because, well, +because why wouldn’t you? Hyper-secure passwords that can be changed at the drop +of a hat. + +[ZenMate](https://zenmate.com/) is a great little VPN that I use to spoof my +location or access the internet over public or insecure networks. + +### Netflix and MUBI + +I really like [Netflix](https://www.netflix.com/), but really _don’t_ like their +region locking (especially since they began blocking my VPN). It’s a super +first-world problem to have, but I might be halfway through a series in the UK +and want to catch up on it in my hotel in, say, the States, only to find that +the content is unavailable. I’d actually happily pay triple the amount for a +Netflix Worldwide subscription that I could access everything with. + +Another criticism of Netflix is that there’s a clear focus on quantity over +quality: there are some absolutely amazing things on there, but it’s so hard to +find them for all of the other noise. I started using [MUBI](https://mubi.com/) +a couple of years ago after a client recommended it to me, and it’s _great_: only 30 +films on the site at any given time, and each day a new film is added and the +oldest one is removed. This means you can watch a new film _every single day_, +and they’re all curated and handpicked by film critics and reviewers. + +### Dropbox + +I tend to drop nearly all of my non-dev project files into +[Dropbox](https://www.dropbox.com/), because I don’t really want to keep much +data actually _on_ my machine (plus it makes setting up new machines much +faster). + +### Priority Pass + +This is more of a service than it is software, but [Priority +Pass](https://www.prioritypass.com/) deserves a special mention. If you take +more than (I would estimate) eight flights a year, you should probably get +Priority Pass. + +Basically, most airports have lounges that offer wifi, food, drink, showers, +places to nap, and/or any combination of the above. Lounges are usually only +available to business class travelers (and I _never_ fly business) which makes +sense—it’s a slightly more luxurious way of traveling. + +But if you spend a lot of time in airports then it’s more a necessity than a +luxury. In 2015 I visited 26 airports in a 60 day period, and at that frequency +you really do start to need a little more stability than a 24 hour Starbucks can +offer you. With Priority Pass, regardless of what travel class you are, you get +access to over a thousand lounges worldwide just by showing the staff your card. +I use this at least twice on every trip I make. I can grab some food, jump on +the wifi, take a shower (I’ve actually only ever done this once—on the way back +to the UK from New Zealand—but it made an enormous difference), have a drink, +and regroup my thoughts and senses mid-journey, and all for no more than the +yearly cost of the Priority Pass membership. It’s effectively all free, if you +treat the membership as a separate expense. + +Honestly, you should probably look into it. + +### Misc macOS + +There are a handful of other tools that I make a point of installing on day one +of having a new machine: + +* [Alfred](https://www.alfredapp.com/) +* [Caffeine](http://lightheadsw.com/caffeine/) +* [BetterSnap](https://www.boastr.net/bettersnaptool/) +* [f.lux](https://justgetflux.com/)[^1] +* [ImageOptim](https://imageoptim.com/mac) +* [JPEGMini](http://www.jpegmini.com/) + +- - - + +## Hardware + +My hardware needs are pretty simple: I’m an Apple user (though most certainly +not a fan, of late…) who travels a lot, so lightweight is my key consideration. + +### Office + +
        + +
        +Fun fact; that’s actually me sat near the brick wall. +View full size/quality (628KB). +
        +
        + +I have [a desk](http://duke-studios.com/workspace#desk-rental) at [Duke +Studios](http://duke-studios.com/), a co-working space in Leeds. I travel a +_lot_ for work, so having an actual office to ground me when I’m home is really +important to me. Duke has a really diverse set of residents, from accountants to +software engineers, copywriters to landscape architects. It’s also got [Grub & +Grog](http://www.grubandgrog.co.uk/) right there in the building, which is a +treat. In the event that I’m working remotely—or I’m working on business and +admin tasks—I’ll probably be at Duke. + +### MacBook Pro + +I recently moved from a MacBook Air that I got in mid 2013 and opted for a more +powerful [MacBook Pro](http://www.apple.com/macbook-pro/). I absolutely love the +form factor of the Air, but its limited memory and storage—and lack of +expansion—were reason enough to switch. I got a MacBook Pro around the beginning +of February 2017. + +I decided against the new Touch Bar version because of hearing lots of +less-than-favourable reviews, plus after spending ~£2,000 on a new machine I’m +loathe to spend half that amount again on new adaptors and cables. Instead, I +got a top-spec previous-generation model: + +* 2015 13″ MacBook Pro; +* Retina; +* 16GB RAM; +* 3.1GHz i7 processor. + +I went from a 4GB Air to a 16GB pro in one move, and it’s been noticeable! It’s +a really great machine, not too heavy, but I do miss the slimness of the Air. +This is also my first retina machine and oooooh wow, it’s so nice! + +### 27″ Thunderbolt Display + +Whenever I am in my office, I hook my machine up to a 27″ Thunderbolt Display +that I picked up in 2013, when I first started working for myself. It’s a +beautiful (if a little overpriced) bit of kit in and of itself, but I _really_ +notice the lack of retina nowadays. You can see pixels everywhere! I’m going to +stick with it though—it’s too expensive to replace for such a superficial +reason. + +I also use the standard Magic Mouse and a wired Apple keyboard alongside it. The +gestures on the mouse are very nice to work with, and I still really like having +a numpad on my keyboard. + +### iPhone + +I’m really tempted by the Google Pixel, but I feel too invested in the Apple +ecosystem to make such a drastic change. I currently use an [iPhone +6](http://www.apple.com/iphone/) which—despite the handset itself being less +than a year old—runs awfully slowly. I’m convinced that software updates are +designed to slow down previous generation devices in order to encourage users to +upgrade. It’s a tactic that works, because I’m already thinking of getting an +iPhone 7 (it takes a number of seconds to switch between apps on my current +phone). I’d _love_ to get an iPhone 7 Plus just for the camera, but I really +don’t want anything of that size. + +### Nexus 5 + +I have a [Nexus 5](https://www.google.com/intl/en_uk/nexus/5x/) which is use for +performance profiling. Its continued prevalence coupled with its modest spec +make it a great testing device. + +### Shure SE425 + +I listen to a _lot_ of music. I guess more accurately, I listen to music a lot. +I have a number of different head/earphones, but my all-round favourites are my +[Shure SE425s](https://www.shure.co.uk/products/earphones/se425): they’re +in-ear, so nice and discrete; comfortable, so I can wear them all day; +astounding quality, for what I need at least; very robust, so they travel well. +If you’re looking for some good quality earphones then I would wholeheartedly +recommend these. + +### Apple Watch + +I own and wear an [Apple Watch](http://www.apple.com/watch/), and I wish I +didn’t. I feel like I wear it out of some weird Stockholm Syndrome kind of +reason (I really like the daily calorie and move goals), so on it stays. It +lacks any individuality, brings annoying notifications to yet another device, +and needs charging once every 1.75 days. Honestly, I would not recommend one. If +you want a smart watch for sports then there are probably much better and more +purpose-built ones on the market. + +### Aeron Chair + +I’m pretty tall (190cm) so have a bad tendency to slouch at chairs. When I +started working for myself—and was in charge of what equipment I could use—I +decided to treat myself to an [Aeron +chair](http://www.hermanmiller.co.uk/products/seating/performance-work-chairs/aeron-chairs.html). +I bought it brand new, although I hear that refurbished models tend to be great +quality. + +I barely notice that it exists, which is half annoying considering how much I +spent on it, but obviously great because it means it’s doing its job perfectly. +The last thing you want is a chair that you notice you’re sat in. + +### Blue Yeti Mic + +If I’m appearing on a podcast or making a long or important Skype call, I’ll +plug in a [Yeti](http://www.bluemic.com/products/yeti/) microphone. For the +price it’s _okay_, but I think I’ll need a slightly better setup if I want to +ever do anything more in-depth like screencasts etc. + +### Minaal + +As I mentioned previously, I travel a lot for work. I always used to check in a +suitcase which I was totally fine with, but after meeting Jimmy from +[Minaal](https://www.minaal.com/) in New Zealand I’ve been using a Minaal bag +for about a year. Now I travel everywhere with just hand luggage, and it made me +realise just how awful checked luggage is. + +Since using the Minaal travel has become a lot smoother—I don’t need to arrive +at the airport as early, I don’t have to entrust my belongings to anyone else, I +don’t run the risk of airlines losing my luggage (which has happened to me twice +before). + +The Minaal is designed specifically with frequent travelers in mind, and it +shows. It has a well placed compartment for every occasion, and it holds _so +much_. I did two weeks of travel with it and didn’t need to do any laundry or +wear any item of clothing twice. The capacity is astounding! + +- - - + +I think that’s about everything. If there’s anything more specific you’d like to +know about just [drop me a line](/contact/). + +If you liked this, you’ll probably like [Wes’](http://wesbos.com/uses), which is +where I got the idea. + +[^1]: f.lux is still [better than Night Shift](https://forum.justgetflux.com/topic/3655/f-lux-vs-night-shift-in-macos-10-12-4/8). diff --git a/view.html b/view.html index 46cd7851..d9dfad7f 100644 --- a/view.html +++ b/view.html @@ -3,21 +3,43 @@ + + Build view @@ -25,11 +47,15 @@ - + + + + +
        - + - + diff --git a/web-performance-back-to-front.md b/web-performance-back-to-front.md new file mode 100644 index 00000000..1b85e9e5 --- /dev/null +++ b/web-performance-back-to-front.md @@ -0,0 +1,77 @@ +--- +layout: page +title: Web Performance Back to Front +page-class: page--services page--workshops +meta: "Remote-friendly learning for all of your team" +permalink: /workshops/web-performance-back-to-front/ +--- + +Taking you on a journey from the back-end all the way to the front, Web +Performance Back to Front is my first workshop designed specifically to +be delivered remotely. It looks at all of the ways to audit, assess, and fix +performance issues starting way back on the server, across the network, and +right into the browser. + +## Curriculum + +
        +

        I can’t thank you enough—it’s been brilliant and we’ve learnt a lot (to say the least)!

        +

        You never quite realise how little you know about a subject until you meet a real expert, so we’re really grateful for your time.

        + Tom Houdmont, Solution Architect, Box UK +
        + +Web Performance Back to Front is designed to take a look at all +aspects of the site-speed spectrum. Starting with a look at everything that is +happening on the server and CDN, everything across the network, all that takes +place in the browser, and each bit in between—we’ll cover it all. + +In order to keep the workshop engaging, relevant, and practical, it takes the +form of a real-life performance audit of your own sites and projects—a true +insight into my own process employed on some of the largest sites in the world. +We’ll work together over a series of sessions to audit, inspect, and uncover +performance bottlenecks on the projects that matter to you. + +The workshop is divided into five key topics that seamlessly follow on from the +last on our journey from the back-end to the front. + +1. **Getting to Know a Website:** How to quickly determine the topography of + a site, how to get our tooling set up to be the most forensic possible, and + using other tools to complete the picture. +2. **Server, CDN, and Network:** Analysing and troubleshooting back-end issues + from the browser, determining whether our CDN is working as expected, and + looking at our sensitivity to network performance. +3. **The Browser and Assets:** How does the browser handle resources and + requests, and how can we set the browser up to best take advantage of that? +4. **Third Parties:** Peeling back the layers and stepping confidently into the + minefield that is third parties. I promise you, it’s not as bad as you think. +5. **Performance Culture:** Setting performance budgets, monitoring, and keeping + on top of things. + +## Remote by Default + +With the move to remote work rapidly spurred on by 2020’s Coronavirus pandemic, +I went right back to the drawing board to design a workshop format specifically +optimised for remote delivery. Short, focused, and intensive sessions with +a clear topic, all recorded for you to keep forever. + +However, day-long video calls are tiring. It’s difficult to stay engaged and +it’s easy to lose focus—this is the last thing you want when you’re trying to +learn. To combat this, the five sessions are delivered over five consecutive +days: 5× two-hour sessions run across the course of a week. + +Each day, we meet to take on a new theme, each compartmentalised into its own +micro-workshop with very clear confines and remits. This means that rather than +trying to juggle a whole week’s worth of learning, we can hit the reset button +each morning and look at something new. Because all of the sessions are +recorded, you can dip back in whenever you like. Need to recap third parties? +Skip to session four! Want to relocate a DevTools setting? Check your notes from +the first session! + +By the end of the week, we’ll have covered the entire web performance gamut in +five individual sessions; we’ll have actionable insights and action points for +our own projects and work; we’ll have a whole host of new resources and tools; +and we’ll have it all recorded to keep forever! + +Sound good? + +Organise a Workshop diff --git a/workshops.md b/workshops.md index b770f600..0422e81c 100644 --- a/workshops.md +++ b/workshops.md @@ -1,88 +1,82 @@ --- layout: page -title: Workshops and Training +title: Web Performance Workshops & Team Training page-class: page--services page--workshops -meta: "Workshops and training events for clients" +meta: "Hands-on web-performance workshops—remote or on-site—that equip your team to find, fix and prevent speed issues, guided by consultant Harry Roberts." permalink: /workshops/ +lux: "Services / Workshops" --- -The vast majority of my working life is spent running workshops and training -events for clients all over the globe. From the smallest of independent -companies, to organisations with over 300,000 employees, I have taught hundreds -of people who to write better, more scalable, more maintainable CSS, and how to -make substantial savings on their load times. - -I have a number of pre-written workshops that are suitable for one- or two-day -engagements, or we can work on something a little more bespoke—just [get in -touch](/contact/). - -With a truly international reputation, my workshops have been delivered from New -Zealand to Romania, Uruguay to the US. You’re in good hands. - -Workshop clients include: Google, General Electric, Etsy, Kickstarter, the BBC. - -- - - - -## Front-end Performance - -The newer of my workshops, the Front-end Performance masterclass will help -developers to deliver websites to users in record times. You will learn - -* the moral and business impact of good performance; -* how the network really works, and how to play to its strengths and weaknesses; -* how to optimise our assets for most effective delivery; -* how to trick the browser into downloading things ahead of time; -* how to detect and troubleshoot performance issues; -* how to measure performance successes; -* how to prepare for the performance landscape of tomorrow. - -
        -

        We hired Harry to provide [front-end] performance consultancy on a high - profile and highly trafficked website for one of Europe’s most recognised - authorities. His detailed and intricate knowledge of how both the network and - the browser work allowed him to improve performance by over 400%, all without - sacrificing or removing any assets or features from any of the website. By - analysing how the site was put together, and how browsers were dealing with - it, he managed to optimise and restructure things in such a way that load - times went from around 6.25 seconds to just 1.5.

        - Tom Faller, Parallax +**Your team armed with my knowledge.** + +
        +

        I got a lot of feedback from the attendees here and they loved it. They + asked if we could do more with you, possibly get more time. People who do + workshops for us are appreciated, but the feedback I got with what you did was + something else.

        + + Marcus Mazur, tretton37 +
        -My performance work has been implemented on very highly trafficked and -high-availability websites, making dramatic improvements to page speed without -sacrificing the quality or integrity of any of the website’s content or assets. +As a consultant, it is my job to inform and educate. One of the most effective +ways to do that is through practical, focused workshops. +With a 99% approval rating, my workshops are not your typical corporate training +session. They’re intense, intensive, and packed with real-world, practical +insights. I’m a teacher who _does_. +
        + +
        Workshopping at Digital Labin, 2022. Photograph by Ivica Džambo.
        +
        -Request This Workshop +Topics, format, and content can be worked out together to best suit your needs, +but generally speaking, we’ll be focusing on the entire gamut of front-end web +performance: tooling, techniques, case studies, insider knowledge, tips, tricks, +and a whole lot more. -- - - +We’ll look at your own sites and products as I take your team through the exact +steps needed to correctly identify and address site-speed issues. At the end of +it all, you end up with an up-skilled team and a faster website. It’s a win-win. -## CSS Architecture +Organise a Workshop -My signature workshop has been constantly updated and running for almost three -years now, with new materials introduced as they become relevant. Attendees will -learn +## Core Web Vitals on iOS -* how to refine the design process to aid our architectural efforts; -* how to modularise and decompose UI components in both designs and code; -* strict naming conventions to make code more self-documenting; -* the ITCSS architecture for scalable and maintainable CSS; -* how to handle layout in a responsive world; -* theming and customising views; -* and a whole host more. +Core Web Vitals are coming to Safari! But it won’t be all plain sailing. Get +yourselves prepared before the end of the year—we don’t have long! -
        -

        We loved having Harry at Kickstarter! His CSS workshop was tremendously - helpful in getting our design team ready for our own CSS overhaul, and his - visit left us with some much needed guidance and motivation. He’s a great - communicator with great ideas, and he really knows how to get a team on the - same page.

        - Christine Tadler, - CSS Architect, Kickstarter -
        +Get ready for iOS + +## Lockdown Learning + +Missing conferences? Wanting to keep your team sharp during times of no travel? +I’ve written an entire workshop, Web Performance Back to Front, +designed specifically for remote delivery. Delivered to teams anywhere—or all +over!—the world, optimised for highly practical online delivery, and recorded +for you to keep forever. + +Learn more… + +## Try Before You Buy + +Want an idea of the topics we’ll cover? Take a look at the slide-deck from my +canonical _Front-End Performance_ workshop. + +Buy Front-End Performance workshop slides + +If we go on to work together, I’ll fully refund the cost of the slides—I don’t +want you to pay me twice. -I have run CSS architecture workshops for some of the world’s largest and most -well known organisations. +## Got Questions? -Request This Workshop +{% include faq-workshops.md %} diff --git a/wp-content/uploads/2017/02/screenshot-parse-001.png b/wp-content/uploads/2017/02/screenshot-parse-001.png new file mode 100644 index 00000000..6d284e18 Binary files /dev/null and b/wp-content/uploads/2017/02/screenshot-parse-001.png differ diff --git a/wp-content/uploads/2017/03/commit-message-small.png b/wp-content/uploads/2017/03/commit-message-small.png new file mode 100644 index 00000000..de1b97e8 Binary files /dev/null and b/wp-content/uploads/2017/03/commit-message-small.png differ diff --git a/wp-content/uploads/2017/03/commit-message.png b/wp-content/uploads/2017/03/commit-message.png new file mode 100644 index 00000000..903ce080 Binary files /dev/null and b/wp-content/uploads/2017/03/commit-message.png differ diff --git a/wp-content/uploads/2017/04/duke-full.jpg b/wp-content/uploads/2017/04/duke-full.jpg new file mode 100644 index 00000000..07ff092c Binary files /dev/null and b/wp-content/uploads/2017/04/duke-full.jpg differ diff --git a/wp-content/uploads/2017/04/duke.jpg b/wp-content/uploads/2017/04/duke.jpg new file mode 100644 index 00000000..3862c04b Binary files /dev/null and b/wp-content/uploads/2017/04/duke.jpg differ diff --git a/wp-content/uploads/2017/04/operator-mono-full.png b/wp-content/uploads/2017/04/operator-mono-full.png new file mode 100644 index 00000000..d811bff6 Binary files /dev/null and b/wp-content/uploads/2017/04/operator-mono-full.png differ diff --git a/wp-content/uploads/2017/04/operator-mono.png b/wp-content/uploads/2017/04/operator-mono.png new file mode 100644 index 00000000..49b958be Binary files /dev/null and b/wp-content/uploads/2017/04/operator-mono.png differ diff --git a/wp-content/uploads/2017/05/screencast-vim-brace.gif b/wp-content/uploads/2017/05/screencast-vim-brace.gif new file mode 100644 index 00000000..c1cf0b7f Binary files /dev/null and b/wp-content/uploads/2017/05/screencast-vim-brace.gif differ diff --git a/wp-content/uploads/2017/05/screenshot-caps-lock-full.png b/wp-content/uploads/2017/05/screenshot-caps-lock-full.png new file mode 100644 index 00000000..e063ac71 Binary files /dev/null and b/wp-content/uploads/2017/05/screenshot-caps-lock-full.png differ diff --git a/wp-content/uploads/2017/05/screenshot-caps-lock.png b/wp-content/uploads/2017/05/screenshot-caps-lock.png new file mode 100644 index 00000000..c3848614 Binary files /dev/null and b/wp-content/uploads/2017/05/screenshot-caps-lock.png differ diff --git a/wp-content/uploads/2017/06/tunnel.jpg b/wp-content/uploads/2017/06/tunnel.jpg new file mode 100644 index 00000000..2e1a9c8b Binary files /dev/null and b/wp-content/uploads/2017/06/tunnel.jpg differ diff --git a/wp-content/uploads/2017/07/screenshot-bottom-up-full.png b/wp-content/uploads/2017/07/screenshot-bottom-up-full.png new file mode 100644 index 00000000..2defd459 Binary files /dev/null and b/wp-content/uploads/2017/07/screenshot-bottom-up-full.png differ diff --git a/wp-content/uploads/2017/07/screenshot-bottom-up.png b/wp-content/uploads/2017/07/screenshot-bottom-up.png new file mode 100644 index 00000000..c85ac37d Binary files /dev/null and b/wp-content/uploads/2017/07/screenshot-bottom-up.png differ diff --git a/wp-content/uploads/2017/07/screenshot-charles-throttling-full.png b/wp-content/uploads/2017/07/screenshot-charles-throttling-full.png new file mode 100644 index 00000000..bde61a38 Binary files /dev/null and b/wp-content/uploads/2017/07/screenshot-charles-throttling-full.png differ diff --git a/wp-content/uploads/2017/07/screenshot-charles-throttling.png b/wp-content/uploads/2017/07/screenshot-charles-throttling.png new file mode 100644 index 00000000..29d49510 Binary files /dev/null and b/wp-content/uploads/2017/07/screenshot-charles-throttling.png differ diff --git a/wp-content/uploads/2017/07/screenshot-outage-full.png b/wp-content/uploads/2017/07/screenshot-outage-full.png new file mode 100644 index 00000000..3c53504f Binary files /dev/null and b/wp-content/uploads/2017/07/screenshot-outage-full.png differ diff --git a/wp-content/uploads/2017/07/screenshot-outage.png b/wp-content/uploads/2017/07/screenshot-outage.png new file mode 100644 index 00000000..9d4e698b Binary files /dev/null and b/wp-content/uploads/2017/07/screenshot-outage.png differ diff --git a/wp-content/uploads/2017/07/screenshot-request-blocking-full.png b/wp-content/uploads/2017/07/screenshot-request-blocking-full.png new file mode 100644 index 00000000..e54aaba3 Binary files /dev/null and b/wp-content/uploads/2017/07/screenshot-request-blocking-full.png differ diff --git a/wp-content/uploads/2017/07/screenshot-request-blocking.png b/wp-content/uploads/2017/07/screenshot-request-blocking.png new file mode 100644 index 00000000..f0b09e5a Binary files /dev/null and b/wp-content/uploads/2017/07/screenshot-request-blocking.png differ diff --git a/wp-content/uploads/2017/11/relative-requirements-01.png b/wp-content/uploads/2017/11/relative-requirements-01.png new file mode 100644 index 00000000..28ff6c49 Binary files /dev/null and b/wp-content/uploads/2017/11/relative-requirements-01.png differ diff --git a/wp-content/uploads/2017/11/relative-requirements-02.png b/wp-content/uploads/2017/11/relative-requirements-02.png new file mode 100644 index 00000000..29d1cc89 Binary files /dev/null and b/wp-content/uploads/2017/11/relative-requirements-02.png differ diff --git a/wp-content/uploads/2017/11/relative-requirements-03.png b/wp-content/uploads/2017/11/relative-requirements-03.png new file mode 100644 index 00000000..cb4639dd Binary files /dev/null and b/wp-content/uploads/2017/11/relative-requirements-03.png differ diff --git a/wp-content/uploads/2017/11/relative-requirements-04.png b/wp-content/uploads/2017/11/relative-requirements-04.png new file mode 100644 index 00000000..f2b30a77 Binary files /dev/null and b/wp-content/uploads/2017/11/relative-requirements-04.png differ diff --git a/wp-content/uploads/2017/11/relative-requirements-05.png b/wp-content/uploads/2017/11/relative-requirements-05.png new file mode 100644 index 00000000..d2e42c0c Binary files /dev/null and b/wp-content/uploads/2017/11/relative-requirements-05.png differ diff --git a/wp-content/uploads/2017/11/relative-requirements-06.png b/wp-content/uploads/2017/11/relative-requirements-06.png new file mode 100644 index 00000000..a0fa8ea4 Binary files /dev/null and b/wp-content/uploads/2017/11/relative-requirements-06.png differ diff --git a/wp-content/uploads/2018/03/screenshot-no-js.png b/wp-content/uploads/2018/03/screenshot-no-js.png new file mode 100644 index 00000000..6d83d4b8 Binary files /dev/null and b/wp-content/uploads/2018/03/screenshot-no-js.png differ diff --git a/wp-content/uploads/2018/03/screenshot-print.png b/wp-content/uploads/2018/03/screenshot-print.png new file mode 100644 index 00000000..5657c360 Binary files /dev/null and b/wp-content/uploads/2018/03/screenshot-print.png differ diff --git a/wp-content/uploads/2018/04/ath-m50x-full.jpg b/wp-content/uploads/2018/04/ath-m50x-full.jpg new file mode 100644 index 00000000..abd656bd Binary files /dev/null and b/wp-content/uploads/2018/04/ath-m50x-full.jpg differ diff --git a/wp-content/uploads/2018/04/ath-m50x.jpg b/wp-content/uploads/2018/04/ath-m50x.jpg new file mode 100644 index 00000000..425755aa Binary files /dev/null and b/wp-content/uploads/2018/04/ath-m50x.jpg differ diff --git a/wp-content/uploads/2018/04/dragonfly-red-laptop-full.jpg b/wp-content/uploads/2018/04/dragonfly-red-laptop-full.jpg new file mode 100644 index 00000000..41a593c8 Binary files /dev/null and b/wp-content/uploads/2018/04/dragonfly-red-laptop-full.jpg differ diff --git a/wp-content/uploads/2018/04/dragonfly-red-laptop.jpg b/wp-content/uploads/2018/04/dragonfly-red-laptop.jpg new file mode 100644 index 00000000..af08e79c Binary files /dev/null and b/wp-content/uploads/2018/04/dragonfly-red-laptop.jpg differ diff --git a/wp-content/uploads/2018/04/dragonfly-red-phone-full.jpg b/wp-content/uploads/2018/04/dragonfly-red-phone-full.jpg new file mode 100644 index 00000000..5a70a170 Binary files /dev/null and b/wp-content/uploads/2018/04/dragonfly-red-phone-full.jpg differ diff --git a/wp-content/uploads/2018/04/dragonfly-red-phone.jpg b/wp-content/uploads/2018/04/dragonfly-red-phone.jpg new file mode 100644 index 00000000..8411278e Binary files /dev/null and b/wp-content/uploads/2018/04/dragonfly-red-phone.jpg differ diff --git a/wp-content/uploads/2018/04/ottava-full.jpg b/wp-content/uploads/2018/04/ottava-full.jpg new file mode 100644 index 00000000..230019f4 Binary files /dev/null and b/wp-content/uploads/2018/04/ottava-full.jpg differ diff --git a/wp-content/uploads/2018/04/ottava.jpg b/wp-content/uploads/2018/04/ottava.jpg new file mode 100644 index 00000000..6efb58eb Binary files /dev/null and b/wp-content/uploads/2018/04/ottava.jpg differ diff --git a/wp-content/uploads/2018/04/screenshot-tidal-flac-full.png b/wp-content/uploads/2018/04/screenshot-tidal-flac-full.png new file mode 100644 index 00000000..78f57db0 Binary files /dev/null and b/wp-content/uploads/2018/04/screenshot-tidal-flac-full.png differ diff --git a/wp-content/uploads/2018/04/screenshot-tidal-flac.png b/wp-content/uploads/2018/04/screenshot-tidal-flac.png new file mode 100644 index 00000000..7da1d884 Binary files /dev/null and b/wp-content/uploads/2018/04/screenshot-tidal-flac.png differ diff --git a/wp-content/uploads/2018/04/se425-full.jpg b/wp-content/uploads/2018/04/se425-full.jpg new file mode 100644 index 00000000..e33dc42c Binary files /dev/null and b/wp-content/uploads/2018/04/se425-full.jpg differ diff --git a/wp-content/uploads/2018/04/se425.jpg b/wp-content/uploads/2018/04/se425.jpg new file mode 100644 index 00000000..ddc53c09 Binary files /dev/null and b/wp-content/uploads/2018/04/se425.jpg differ diff --git a/wp-content/uploads/2018/05/requestmap-csswizardry-full.png b/wp-content/uploads/2018/05/requestmap-csswizardry-full.png new file mode 100644 index 00000000..28044944 Binary files /dev/null and b/wp-content/uploads/2018/05/requestmap-csswizardry-full.png differ diff --git a/wp-content/uploads/2018/05/requestmap-csswizardry.png b/wp-content/uploads/2018/05/requestmap-csswizardry.png new file mode 100644 index 00000000..89aadf5c Binary files /dev/null and b/wp-content/uploads/2018/05/requestmap-csswizardry.png differ diff --git a/wp-content/uploads/2018/05/requestmap-full.gif b/wp-content/uploads/2018/05/requestmap-full.gif new file mode 100644 index 00000000..9457698b Binary files /dev/null and b/wp-content/uploads/2018/05/requestmap-full.gif differ diff --git a/wp-content/uploads/2018/05/requestmap.png b/wp-content/uploads/2018/05/requestmap.png new file mode 100644 index 00000000..82648735 Binary files /dev/null and b/wp-content/uploads/2018/05/requestmap.png differ diff --git a/wp-content/uploads/2018/05/wpt-block-full.png b/wp-content/uploads/2018/05/wpt-block-full.png new file mode 100644 index 00000000..fcb36bd0 Binary files /dev/null and b/wp-content/uploads/2018/05/wpt-block-full.png differ diff --git a/wp-content/uploads/2018/05/wpt-block.png b/wp-content/uploads/2018/05/wpt-block.png new file mode 100644 index 00000000..424d079c Binary files /dev/null and b/wp-content/uploads/2018/05/wpt-block.png differ diff --git a/wp-content/uploads/2018/06/chrome-bg-invisible-full.png b/wp-content/uploads/2018/06/chrome-bg-invisible-full.png new file mode 100644 index 00000000..668c0639 Binary files /dev/null and b/wp-content/uploads/2018/06/chrome-bg-invisible-full.png differ diff --git a/wp-content/uploads/2018/06/chrome-bg-invisible.png b/wp-content/uploads/2018/06/chrome-bg-invisible.png new file mode 100644 index 00000000..ac495462 Binary files /dev/null and b/wp-content/uploads/2018/06/chrome-bg-invisible.png differ diff --git a/wp-content/uploads/2018/06/chrome-bg-visible-full.png b/wp-content/uploads/2018/06/chrome-bg-visible-full.png new file mode 100644 index 00000000..c30cc695 Binary files /dev/null and b/wp-content/uploads/2018/06/chrome-bg-visible-full.png differ diff --git a/wp-content/uploads/2018/06/chrome-bg-visible.png b/wp-content/uploads/2018/06/chrome-bg-visible.png new file mode 100644 index 00000000..440fd2a7 Binary files /dev/null and b/wp-content/uploads/2018/06/chrome-bg-visible.png differ diff --git a/wp-content/uploads/2018/06/chrome-img-invisible-full.png b/wp-content/uploads/2018/06/chrome-img-invisible-full.png new file mode 100644 index 00000000..53a50699 Binary files /dev/null and b/wp-content/uploads/2018/06/chrome-img-invisible-full.png differ diff --git a/wp-content/uploads/2018/06/chrome-img-invisible.png b/wp-content/uploads/2018/06/chrome-img-invisible.png new file mode 100644 index 00000000..7d616600 Binary files /dev/null and b/wp-content/uploads/2018/06/chrome-img-invisible.png differ diff --git a/wp-content/uploads/2018/06/chrome-img-visible-full.png b/wp-content/uploads/2018/06/chrome-img-visible-full.png new file mode 100644 index 00000000..ad442b94 Binary files /dev/null and b/wp-content/uploads/2018/06/chrome-img-visible-full.png differ diff --git a/wp-content/uploads/2018/06/chrome-img-visible.png b/wp-content/uploads/2018/06/chrome-img-visible.png new file mode 100644 index 00000000..4b6b6a5e Binary files /dev/null and b/wp-content/uploads/2018/06/chrome-img-visible.png differ diff --git a/wp-content/uploads/2018/06/edge-bg-invisible-full.png b/wp-content/uploads/2018/06/edge-bg-invisible-full.png new file mode 100644 index 00000000..1d6068e3 Binary files /dev/null and b/wp-content/uploads/2018/06/edge-bg-invisible-full.png differ diff --git a/wp-content/uploads/2018/06/edge-bg-invisible.png b/wp-content/uploads/2018/06/edge-bg-invisible.png new file mode 100644 index 00000000..3b5cea5b Binary files /dev/null and b/wp-content/uploads/2018/06/edge-bg-invisible.png differ diff --git a/wp-content/uploads/2018/06/edge-bg-visible-full.png b/wp-content/uploads/2018/06/edge-bg-visible-full.png new file mode 100644 index 00000000..1c1d387e Binary files /dev/null and b/wp-content/uploads/2018/06/edge-bg-visible-full.png differ diff --git a/wp-content/uploads/2018/06/edge-bg-visible.png b/wp-content/uploads/2018/06/edge-bg-visible.png new file mode 100644 index 00000000..52206845 Binary files /dev/null and b/wp-content/uploads/2018/06/edge-bg-visible.png differ diff --git a/wp-content/uploads/2018/06/edge-img-invisible-full.png b/wp-content/uploads/2018/06/edge-img-invisible-full.png new file mode 100644 index 00000000..82bf6c76 Binary files /dev/null and b/wp-content/uploads/2018/06/edge-img-invisible-full.png differ diff --git a/wp-content/uploads/2018/06/edge-img-invisible.png b/wp-content/uploads/2018/06/edge-img-invisible.png new file mode 100644 index 00000000..c0906e44 Binary files /dev/null and b/wp-content/uploads/2018/06/edge-img-invisible.png differ diff --git a/wp-content/uploads/2018/06/edge-img-visible-full.png b/wp-content/uploads/2018/06/edge-img-visible-full.png new file mode 100644 index 00000000..1e0c89e5 Binary files /dev/null and b/wp-content/uploads/2018/06/edge-img-visible-full.png differ diff --git a/wp-content/uploads/2018/06/edge-img-visible.png b/wp-content/uploads/2018/06/edge-img-visible.png new file mode 100644 index 00000000..48e42964 Binary files /dev/null and b/wp-content/uploads/2018/06/edge-img-visible.png differ diff --git a/wp-content/uploads/2018/06/firefox-bg-invisible-full.png b/wp-content/uploads/2018/06/firefox-bg-invisible-full.png new file mode 100644 index 00000000..9d23b7a7 Binary files /dev/null and b/wp-content/uploads/2018/06/firefox-bg-invisible-full.png differ diff --git a/wp-content/uploads/2018/06/firefox-bg-invisible.png b/wp-content/uploads/2018/06/firefox-bg-invisible.png new file mode 100644 index 00000000..8966942f Binary files /dev/null and b/wp-content/uploads/2018/06/firefox-bg-invisible.png differ diff --git a/wp-content/uploads/2018/06/firefox-bg-visible-full.png b/wp-content/uploads/2018/06/firefox-bg-visible-full.png new file mode 100644 index 00000000..d1077e74 Binary files /dev/null and b/wp-content/uploads/2018/06/firefox-bg-visible-full.png differ diff --git a/wp-content/uploads/2018/06/firefox-bg-visible.png b/wp-content/uploads/2018/06/firefox-bg-visible.png new file mode 100644 index 00000000..9cdc4045 Binary files /dev/null and b/wp-content/uploads/2018/06/firefox-bg-visible.png differ diff --git a/wp-content/uploads/2018/06/firefox-img-invisible-full.png b/wp-content/uploads/2018/06/firefox-img-invisible-full.png new file mode 100644 index 00000000..ae11671a Binary files /dev/null and b/wp-content/uploads/2018/06/firefox-img-invisible-full.png differ diff --git a/wp-content/uploads/2018/06/firefox-img-invisible.png b/wp-content/uploads/2018/06/firefox-img-invisible.png new file mode 100644 index 00000000..3a78b2f1 Binary files /dev/null and b/wp-content/uploads/2018/06/firefox-img-invisible.png differ diff --git a/wp-content/uploads/2018/06/firefox-img-visible-full.png b/wp-content/uploads/2018/06/firefox-img-visible-full.png new file mode 100644 index 00000000..b61ad7e1 Binary files /dev/null and b/wp-content/uploads/2018/06/firefox-img-visible-full.png differ diff --git a/wp-content/uploads/2018/06/firefox-img-visible.png b/wp-content/uploads/2018/06/firefox-img-visible.png new file mode 100644 index 00000000..8c080098 Binary files /dev/null and b/wp-content/uploads/2018/06/firefox-img-visible.png differ diff --git a/wp-content/uploads/2018/06/opera-bg-invisible-full.png b/wp-content/uploads/2018/06/opera-bg-invisible-full.png new file mode 100644 index 00000000..2e3524f5 Binary files /dev/null and b/wp-content/uploads/2018/06/opera-bg-invisible-full.png differ diff --git a/wp-content/uploads/2018/06/opera-bg-invisible.png b/wp-content/uploads/2018/06/opera-bg-invisible.png new file mode 100644 index 00000000..4572c936 Binary files /dev/null and b/wp-content/uploads/2018/06/opera-bg-invisible.png differ diff --git a/wp-content/uploads/2018/06/opera-bg-visible-full.png b/wp-content/uploads/2018/06/opera-bg-visible-full.png new file mode 100644 index 00000000..49bab7e9 Binary files /dev/null and b/wp-content/uploads/2018/06/opera-bg-visible-full.png differ diff --git a/wp-content/uploads/2018/06/opera-bg-visible.png b/wp-content/uploads/2018/06/opera-bg-visible.png new file mode 100644 index 00000000..9f565417 Binary files /dev/null and b/wp-content/uploads/2018/06/opera-bg-visible.png differ diff --git a/wp-content/uploads/2018/06/opera-img-invisible-full.png b/wp-content/uploads/2018/06/opera-img-invisible-full.png new file mode 100644 index 00000000..8ae3de59 Binary files /dev/null and b/wp-content/uploads/2018/06/opera-img-invisible-full.png differ diff --git a/wp-content/uploads/2018/06/opera-img-invisible.png b/wp-content/uploads/2018/06/opera-img-invisible.png new file mode 100644 index 00000000..1b6659b1 Binary files /dev/null and b/wp-content/uploads/2018/06/opera-img-invisible.png differ diff --git a/wp-content/uploads/2018/06/opera-img-visible-full.png b/wp-content/uploads/2018/06/opera-img-visible-full.png new file mode 100644 index 00000000..1ecbaa8a Binary files /dev/null and b/wp-content/uploads/2018/06/opera-img-visible-full.png differ diff --git a/wp-content/uploads/2018/06/opera-img-visible.png b/wp-content/uploads/2018/06/opera-img-visible.png new file mode 100644 index 00000000..e010aad2 Binary files /dev/null and b/wp-content/uploads/2018/06/opera-img-visible.png differ diff --git a/wp-content/uploads/2018/06/safari-bg-invisible-full.png b/wp-content/uploads/2018/06/safari-bg-invisible-full.png new file mode 100644 index 00000000..7ea38f5f Binary files /dev/null and b/wp-content/uploads/2018/06/safari-bg-invisible-full.png differ diff --git a/wp-content/uploads/2018/06/safari-bg-invisible.png b/wp-content/uploads/2018/06/safari-bg-invisible.png new file mode 100644 index 00000000..9def677b Binary files /dev/null and b/wp-content/uploads/2018/06/safari-bg-invisible.png differ diff --git a/wp-content/uploads/2018/06/safari-bg-visible-full.png b/wp-content/uploads/2018/06/safari-bg-visible-full.png new file mode 100644 index 00000000..71e132f7 Binary files /dev/null and b/wp-content/uploads/2018/06/safari-bg-visible-full.png differ diff --git a/wp-content/uploads/2018/06/safari-bg-visible.png b/wp-content/uploads/2018/06/safari-bg-visible.png new file mode 100644 index 00000000..60c78f47 Binary files /dev/null and b/wp-content/uploads/2018/06/safari-bg-visible.png differ diff --git a/wp-content/uploads/2018/06/safari-img-invisible-full.png b/wp-content/uploads/2018/06/safari-img-invisible-full.png new file mode 100644 index 00000000..ea545969 Binary files /dev/null and b/wp-content/uploads/2018/06/safari-img-invisible-full.png differ diff --git a/wp-content/uploads/2018/06/safari-img-invisible.png b/wp-content/uploads/2018/06/safari-img-invisible.png new file mode 100644 index 00000000..44a7ac10 Binary files /dev/null and b/wp-content/uploads/2018/06/safari-img-invisible.png differ diff --git a/wp-content/uploads/2018/06/safari-img-visible-full.png b/wp-content/uploads/2018/06/safari-img-visible-full.png new file mode 100644 index 00000000..73422c07 Binary files /dev/null and b/wp-content/uploads/2018/06/safari-img-visible-full.png differ diff --git a/wp-content/uploads/2018/06/safari-img-visible.png b/wp-content/uploads/2018/06/safari-img-visible.png new file mode 100644 index 00000000..42bef1cf Binary files /dev/null and b/wp-content/uploads/2018/06/safari-img-visible.png differ diff --git a/wp-content/uploads/2018/06/waterfall-bg.png b/wp-content/uploads/2018/06/waterfall-bg.png new file mode 100644 index 00000000..303afc9e Binary files /dev/null and b/wp-content/uploads/2018/06/waterfall-bg.png differ diff --git a/wp-content/uploads/2018/06/waterfall-img.png b/wp-content/uploads/2018/06/waterfall-img.png new file mode 100644 index 00000000..00cbd54c Binary files /dev/null and b/wp-content/uploads/2018/06/waterfall-img.png differ diff --git a/wp-content/uploads/2018/10/screenshot-devtools-full.png b/wp-content/uploads/2018/10/screenshot-devtools-full.png new file mode 100644 index 00000000..d6fd6e3e Binary files /dev/null and b/wp-content/uploads/2018/10/screenshot-devtools-full.png differ diff --git a/wp-content/uploads/2018/10/screenshot-devtools.png b/wp-content/uploads/2018/10/screenshot-devtools.png new file mode 100644 index 00000000..d116b5bf Binary files /dev/null and b/wp-content/uploads/2018/10/screenshot-devtools.png differ diff --git a/wp-content/uploads/2018/10/screenshot-ga.png b/wp-content/uploads/2018/10/screenshot-ga.png new file mode 100644 index 00000000..37a630c0 Binary files /dev/null and b/wp-content/uploads/2018/10/screenshot-ga.png differ diff --git a/wp-content/uploads/2018/10/screenshot-speedcurve-budget.png b/wp-content/uploads/2018/10/screenshot-speedcurve-budget.png new file mode 100644 index 00000000..dee6aeeb Binary files /dev/null and b/wp-content/uploads/2018/10/screenshot-speedcurve-budget.png differ diff --git a/wp-content/uploads/2018/10/screenshot-speedcurve.png b/wp-content/uploads/2018/10/screenshot-speedcurve.png new file mode 100644 index 00000000..9664035c Binary files /dev/null and b/wp-content/uploads/2018/10/screenshot-speedcurve.png differ diff --git a/wp-content/uploads/2018/10/screenshot-wpt.png b/wp-content/uploads/2018/10/screenshot-wpt.png new file mode 100644 index 00000000..2c423cde Binary files /dev/null and b/wp-content/uploads/2018/10/screenshot-wpt.png differ diff --git a/wp-content/uploads/2018/10/testing-diagram.png b/wp-content/uploads/2018/10/testing-diagram.png new file mode 100644 index 00000000..07253a6a Binary files /dev/null and b/wp-content/uploads/2018/10/testing-diagram.png differ diff --git a/wp-content/uploads/2018/11/itcss-01.jpg b/wp-content/uploads/2018/11/itcss-01.jpg new file mode 100644 index 00000000..cfc88562 Binary files /dev/null and b/wp-content/uploads/2018/11/itcss-01.jpg differ diff --git a/wp-content/uploads/2018/11/itcss-02.jpg b/wp-content/uploads/2018/11/itcss-02.jpg new file mode 100644 index 00000000..f815b13a Binary files /dev/null and b/wp-content/uploads/2018/11/itcss-02.jpg differ diff --git a/wp-content/uploads/2018/11/screenshot-async-js-blocked-by-css-fixed.png b/wp-content/uploads/2018/11/screenshot-async-js-blocked-by-css-fixed.png new file mode 100644 index 00000000..f5ddbb07 Binary files /dev/null and b/wp-content/uploads/2018/11/screenshot-async-js-blocked-by-css-fixed.png differ diff --git a/wp-content/uploads/2018/11/screenshot-async-js-blocked-by-css.png b/wp-content/uploads/2018/11/screenshot-async-js-blocked-by-css.png new file mode 100644 index 00000000..70463d7e Binary files /dev/null and b/wp-content/uploads/2018/11/screenshot-async-js-blocked-by-css.png differ diff --git a/wp-content/uploads/2018/11/screenshot-chrome-import-blocked-by-css.png b/wp-content/uploads/2018/11/screenshot-chrome-import-blocked-by-css.png new file mode 100644 index 00000000..4fa270a6 Binary files /dev/null and b/wp-content/uploads/2018/11/screenshot-chrome-import-blocked-by-css.png differ diff --git a/wp-content/uploads/2018/11/screenshot-chrome-import-unblocked-by-css.png b/wp-content/uploads/2018/11/screenshot-chrome-import-unblocked-by-css.png new file mode 100644 index 00000000..2553f568 Binary files /dev/null and b/wp-content/uploads/2018/11/screenshot-chrome-import-unblocked-by-css.png differ diff --git a/wp-content/uploads/2018/11/screenshot-css-media-all.png b/wp-content/uploads/2018/11/screenshot-css-media-all.png new file mode 100644 index 00000000..748e12fb Binary files /dev/null and b/wp-content/uploads/2018/11/screenshot-css-media-all.png differ diff --git a/wp-content/uploads/2018/11/screenshot-css-media-split.png b/wp-content/uploads/2018/11/screenshot-css-media-split.png new file mode 100644 index 00000000..987af69b Binary files /dev/null and b/wp-content/uploads/2018/11/screenshot-css-media-split.png differ diff --git a/wp-content/uploads/2018/11/screenshot-ff-import-blocked-by-css.png b/wp-content/uploads/2018/11/screenshot-ff-import-blocked-by-css.png new file mode 100644 index 00000000..2678cfff Binary files /dev/null and b/wp-content/uploads/2018/11/screenshot-ff-import-blocked-by-css.png differ diff --git a/wp-content/uploads/2018/11/screenshot-ff-import-blocked-by-js.png b/wp-content/uploads/2018/11/screenshot-ff-import-blocked-by-js.png new file mode 100644 index 00000000..a70a2215 Binary files /dev/null and b/wp-content/uploads/2018/11/screenshot-ff-import-blocked-by-js.png differ diff --git a/wp-content/uploads/2018/11/screenshot-ff-import-unblocked-by-css.png b/wp-content/uploads/2018/11/screenshot-ff-import-unblocked-by-css.png new file mode 100644 index 00000000..74fafaee Binary files /dev/null and b/wp-content/uploads/2018/11/screenshot-ff-import-unblocked-by-css.png differ diff --git a/wp-content/uploads/2018/11/screenshot-import-after.png b/wp-content/uploads/2018/11/screenshot-import-after.png new file mode 100644 index 00000000..d69701e6 Binary files /dev/null and b/wp-content/uploads/2018/11/screenshot-import-after.png differ diff --git a/wp-content/uploads/2018/11/screenshot-import-before.png b/wp-content/uploads/2018/11/screenshot-import-before.png new file mode 100644 index 00000000..c33f6de2 Binary files /dev/null and b/wp-content/uploads/2018/11/screenshot-import-before.png differ diff --git a/wp-content/uploads/2018/11/waterfall-js-execution.png b/wp-content/uploads/2018/11/waterfall-js-execution.png new file mode 100644 index 00000000..2eff068b Binary files /dev/null and b/wp-content/uploads/2018/11/waterfall-js-execution.png differ diff --git a/wp-content/uploads/2019/01/waterfall-01-full.png b/wp-content/uploads/2019/01/waterfall-01-full.png new file mode 100644 index 00000000..be168761 Binary files /dev/null and b/wp-content/uploads/2019/01/waterfall-01-full.png differ diff --git a/wp-content/uploads/2019/01/waterfall-01.png b/wp-content/uploads/2019/01/waterfall-01.png new file mode 100644 index 00000000..9d3cdc33 Binary files /dev/null and b/wp-content/uploads/2019/01/waterfall-01.png differ diff --git a/wp-content/uploads/2019/05/big-query-rawgit.jpg b/wp-content/uploads/2019/05/big-query-rawgit.jpg new file mode 100644 index 00000000..7fd7abd8 Binary files /dev/null and b/wp-content/uploads/2019/05/big-query-rawgit.jpg differ diff --git a/wp-content/uploads/2019/05/wpt-dep-tree-off-site.png b/wp-content/uploads/2019/05/wpt-dep-tree-off-site.png new file mode 100644 index 00000000..0de915d1 Binary files /dev/null and b/wp-content/uploads/2019/05/wpt-dep-tree-off-site.png differ diff --git a/wp-content/uploads/2019/05/wpt-dep-tree-self-hosted.png b/wp-content/uploads/2019/05/wpt-dep-tree-self-hosted.png new file mode 100644 index 00000000..6956e143 Binary files /dev/null and b/wp-content/uploads/2019/05/wpt-dep-tree-self-hosted.png differ diff --git a/wp-content/uploads/2019/05/wpt-off-site-3g.png b/wp-content/uploads/2019/05/wpt-off-site-3g.png new file mode 100644 index 00000000..6791416f Binary files /dev/null and b/wp-content/uploads/2019/05/wpt-off-site-3g.png differ diff --git a/wp-content/uploads/2019/05/wpt-off-site-cable.png b/wp-content/uploads/2019/05/wpt-off-site-cable.png new file mode 100644 index 00000000..036f8061 Binary files /dev/null and b/wp-content/uploads/2019/05/wpt-off-site-cable.png differ diff --git a/wp-content/uploads/2019/05/wpt-self-hosted-3g.png b/wp-content/uploads/2019/05/wpt-self-hosted-3g.png new file mode 100644 index 00000000..6fd6cc26 Binary files /dev/null and b/wp-content/uploads/2019/05/wpt-self-hosted-3g.png differ diff --git a/wp-content/uploads/2019/05/wpt-self-hosted-cable.png b/wp-content/uploads/2019/05/wpt-self-hosted-cable.png new file mode 100644 index 00000000..cae597b1 Binary files /dev/null and b/wp-content/uploads/2019/05/wpt-self-hosted-cable.png differ diff --git a/wp-content/uploads/2019/08/cloud.typography-before-after.mp4 b/wp-content/uploads/2019/08/cloud.typography-before-after.mp4 new file mode 100644 index 00000000..55e16b6e Binary files /dev/null and b/wp-content/uploads/2019/08/cloud.typography-before-after.mp4 differ diff --git a/wp-content/uploads/2019/08/screenshot-server-timing-full.png b/wp-content/uploads/2019/08/screenshot-server-timing-full.png new file mode 100644 index 00000000..7dcd6662 Binary files /dev/null and b/wp-content/uploads/2019/08/screenshot-server-timing-full.png differ diff --git a/wp-content/uploads/2019/08/screenshot-server-timing.png b/wp-content/uploads/2019/08/screenshot-server-timing.png new file mode 100644 index 00000000..5793edde Binary files /dev/null and b/wp-content/uploads/2019/08/screenshot-server-timing.png differ diff --git a/wp-content/uploads/2019/08/screenshot-ttfb-full.png b/wp-content/uploads/2019/08/screenshot-ttfb-full.png new file mode 100644 index 00000000..23ac91af Binary files /dev/null and b/wp-content/uploads/2019/08/screenshot-ttfb-full.png differ diff --git a/wp-content/uploads/2019/08/screenshot-ttfb-iplayer-full.png b/wp-content/uploads/2019/08/screenshot-ttfb-iplayer-full.png new file mode 100644 index 00000000..23c7f1c0 Binary files /dev/null and b/wp-content/uploads/2019/08/screenshot-ttfb-iplayer-full.png differ diff --git a/wp-content/uploads/2019/08/screenshot-ttfb-iplayer.png b/wp-content/uploads/2019/08/screenshot-ttfb-iplayer.png new file mode 100644 index 00000000..6965cce1 Binary files /dev/null and b/wp-content/uploads/2019/08/screenshot-ttfb-iplayer.png differ diff --git a/wp-content/uploads/2019/08/screenshot-ttfb.png b/wp-content/uploads/2019/08/screenshot-ttfb.png new file mode 100644 index 00000000..977226bf Binary files /dev/null and b/wp-content/uploads/2019/08/screenshot-ttfb.png differ diff --git a/wp-content/uploads/2019/08/wpt-cloud.typography-blocking-repeat-view.png b/wp-content/uploads/2019/08/wpt-cloud.typography-blocking-repeat-view.png new file mode 100644 index 00000000..b98f2e67 Binary files /dev/null and b/wp-content/uploads/2019/08/wpt-cloud.typography-blocking-repeat-view.png differ diff --git a/wp-content/uploads/2019/08/wpt-cloud.typography-blocking.png b/wp-content/uploads/2019/08/wpt-cloud.typography-blocking.png new file mode 100644 index 00000000..cdca5b2d Binary files /dev/null and b/wp-content/uploads/2019/08/wpt-cloud.typography-blocking.png differ diff --git a/wp-content/uploads/2019/08/wpt-cloud.typography-unblocking.png b/wp-content/uploads/2019/08/wpt-cloud.typography-unblocking.png new file mode 100644 index 00000000..9b49cc59 Binary files /dev/null and b/wp-content/uploads/2019/08/wpt-cloud.typography-unblocking.png differ diff --git a/wp-content/uploads/2020/01/fully-loaded-budget.png b/wp-content/uploads/2020/01/fully-loaded-budget.png new file mode 100644 index 00000000..d3b2a979 Binary files /dev/null and b/wp-content/uploads/2020/01/fully-loaded-budget.png differ diff --git a/wp-content/uploads/2020/01/start-render-budget.png b/wp-content/uploads/2020/01/start-render-budget.png new file mode 100644 index 00000000..33c5ba79 Binary files /dev/null and b/wp-content/uploads/2020/01/start-render-budget.png differ diff --git a/wp-content/uploads/2020/01/visually-complete-budget.png b/wp-content/uploads/2020/01/visually-complete-budget.png new file mode 100644 index 00000000..69b44ea3 Binary files /dev/null and b/wp-content/uploads/2020/01/visually-complete-budget.png differ diff --git a/wp-content/uploads/2020/04/react-dom-brotli.png b/wp-content/uploads/2020/04/react-dom-brotli.png new file mode 100644 index 00000000..ad6606da Binary files /dev/null and b/wp-content/uploads/2020/04/react-dom-brotli.png differ diff --git a/wp-content/uploads/2020/04/wpt-advanced.png b/wp-content/uploads/2020/04/wpt-advanced.png new file mode 100644 index 00000000..1b6222d9 Binary files /dev/null and b/wp-content/uploads/2020/04/wpt-advanced.png differ diff --git a/wp-content/uploads/2020/05/anim-preconnect.gif b/wp-content/uploads/2020/05/anim-preconnect.gif new file mode 100644 index 00000000..9b13fae7 Binary files /dev/null and b/wp-content/uploads/2020/05/anim-preconnect.gif differ diff --git a/wp-content/uploads/2020/05/filmstrip-foit.png b/wp-content/uploads/2020/05/filmstrip-foit.png new file mode 100644 index 00000000..5a433d43 Binary files /dev/null and b/wp-content/uploads/2020/05/filmstrip-foit.png differ diff --git a/wp-content/uploads/2020/05/screenshot-header.png b/wp-content/uploads/2020/05/screenshot-header.png new file mode 100644 index 00000000..a1723f73 Binary files /dev/null and b/wp-content/uploads/2020/05/screenshot-header.png differ diff --git a/wp-content/uploads/2020/05/video-comparison-csswizardry.com.mp4 b/wp-content/uploads/2020/05/video-comparison-csswizardry.com.mp4 new file mode 100644 index 00000000..db1b67e2 Binary files /dev/null and b/wp-content/uploads/2020/05/video-comparison-csswizardry.com.mp4 differ diff --git a/wp-content/uploads/2020/05/video-comparison-harry.is.mp4 b/wp-content/uploads/2020/05/video-comparison-harry.is.mp4 new file mode 100644 index 00000000..4f72a419 Binary files /dev/null and b/wp-content/uploads/2020/05/video-comparison-harry.is.mp4 differ diff --git a/wp-content/uploads/2020/05/video-devtools-foit.mp4 b/wp-content/uploads/2020/05/video-devtools-foit.mp4 new file mode 100644 index 00000000..a4f8fe56 Binary files /dev/null and b/wp-content/uploads/2020/05/video-devtools-foit.mp4 differ diff --git a/wp-content/uploads/2020/05/waterfall-vitamix.png b/wp-content/uploads/2020/05/waterfall-vitamix.png new file mode 100644 index 00000000..2681146d Binary files /dev/null and b/wp-content/uploads/2020/05/waterfall-vitamix.png differ diff --git a/wp-content/uploads/2020/10/ga-slow-urls.png b/wp-content/uploads/2020/10/ga-slow-urls.png new file mode 100644 index 00000000..58b50d21 Binary files /dev/null and b/wp-content/uploads/2020/10/ga-slow-urls.png differ diff --git a/wp-content/uploads/2020/10/milestones-chart.png b/wp-content/uploads/2020/10/milestones-chart.png new file mode 100644 index 00000000..600ff8f5 Binary files /dev/null and b/wp-content/uploads/2020/10/milestones-chart.png differ diff --git a/wp-content/uploads/2020/10/milestones-spreadsheet.png b/wp-content/uploads/2020/10/milestones-spreadsheet.png new file mode 100644 index 00000000..3b71222c Binary files /dev/null and b/wp-content/uploads/2020/10/milestones-spreadsheet.png differ diff --git a/wp-content/uploads/2020/10/wpt-milestones.png b/wp-content/uploads/2020/10/wpt-milestones.png new file mode 100644 index 00000000..2a35c585 Binary files /dev/null and b/wp-content/uploads/2020/10/wpt-milestones.png differ diff --git a/wp-content/uploads/2021/02/inspecting-chrome-01.png b/wp-content/uploads/2021/02/inspecting-chrome-01.png new file mode 100644 index 00000000..54c3f1a7 Binary files /dev/null and b/wp-content/uploads/2021/02/inspecting-chrome-01.png differ diff --git a/wp-content/uploads/2021/02/inspecting-safari-01.png b/wp-content/uploads/2021/02/inspecting-safari-01.png new file mode 100644 index 00000000..975565ba Binary files /dev/null and b/wp-content/uploads/2021/02/inspecting-safari-01.png differ diff --git a/wp-content/uploads/2021/02/inspecting-safari-02.png b/wp-content/uploads/2021/02/inspecting-safari-02.png new file mode 100644 index 00000000..23d5976d Binary files /dev/null and b/wp-content/uploads/2021/02/inspecting-safari-02.png differ diff --git a/wp-content/uploads/2021/02/ios-android-loading-comparison.gif b/wp-content/uploads/2021/02/ios-android-loading-comparison.gif new file mode 100644 index 00000000..6d472918 Binary files /dev/null and b/wp-content/uploads/2021/02/ios-android-loading-comparison.gif differ diff --git a/wp-content/uploads/2021/02/ios-developer-settings.png b/wp-content/uploads/2021/02/ios-developer-settings.png new file mode 100644 index 00000000..e794a3ee Binary files /dev/null and b/wp-content/uploads/2021/02/ios-developer-settings.png differ diff --git a/wp-content/uploads/2021/02/ios-safari-settings.png b/wp-content/uploads/2021/02/ios-safari-settings.png new file mode 100644 index 00000000..7e6d9c28 Binary files /dev/null and b/wp-content/uploads/2021/02/ios-safari-settings.png differ diff --git a/wp-content/uploads/2021/02/safari-01.png b/wp-content/uploads/2021/02/safari-01.png new file mode 100644 index 00000000..cecbcdec Binary files /dev/null and b/wp-content/uploads/2021/02/safari-01.png differ diff --git a/wp-content/uploads/2021/02/wpt-ios-devices.png b/wp-content/uploads/2021/02/wpt-ios-devices.png new file mode 100644 index 00000000..be8585be Binary files /dev/null and b/wp-content/uploads/2021/02/wpt-ios-devices.png differ diff --git a/wp-content/uploads/2021/02/xcode-devices.png b/wp-content/uploads/2021/02/xcode-devices.png new file mode 100644 index 00000000..4554e2cd Binary files /dev/null and b/wp-content/uploads/2021/02/xcode-devices.png differ diff --git a/wp-content/uploads/2022/03/chart-full.png b/wp-content/uploads/2022/03/chart-full.png new file mode 100644 index 00000000..0cc9a351 Binary files /dev/null and b/wp-content/uploads/2022/03/chart-full.png differ diff --git a/wp-content/uploads/2022/03/csr-lcp.png b/wp-content/uploads/2022/03/csr-lcp.png new file mode 100644 index 00000000..8f79baf1 Binary files /dev/null and b/wp-content/uploads/2022/03/csr-lcp.png differ diff --git a/wp-content/uploads/2022/03/fade.png b/wp-content/uploads/2022/03/fade.png new file mode 100644 index 00000000..40ef173c Binary files /dev/null and b/wp-content/uploads/2022/03/fade.png differ diff --git a/wp-content/uploads/2022/03/image-m102-full.png b/wp-content/uploads/2022/03/image-m102-full.png new file mode 100644 index 00000000..c222c6db Binary files /dev/null and b/wp-content/uploads/2022/03/image-m102-full.png differ diff --git a/wp-content/uploads/2022/03/image-m102.png b/wp-content/uploads/2022/03/image-m102.png new file mode 100644 index 00000000..a2cb8201 Binary files /dev/null and b/wp-content/uploads/2022/03/image-m102.png differ diff --git a/wp-content/uploads/2022/03/image-m99-full.png b/wp-content/uploads/2022/03/image-m99-full.png new file mode 100644 index 00000000..f87ee041 Binary files /dev/null and b/wp-content/uploads/2022/03/image-m99-full.png differ diff --git a/wp-content/uploads/2022/03/image-m99.png b/wp-content/uploads/2022/03/image-m99.png new file mode 100644 index 00000000..2f3e8cf3 Binary files /dev/null and b/wp-content/uploads/2022/03/image-m99.png differ diff --git a/wp-content/uploads/2022/03/initial-lcps-sm.png b/wp-content/uploads/2022/03/initial-lcps-sm.png new file mode 100644 index 00000000..59d8210c Binary files /dev/null and b/wp-content/uploads/2022/03/initial-lcps-sm.png differ diff --git a/wp-content/uploads/2022/03/initial-lcps.gif b/wp-content/uploads/2022/03/initial-lcps.gif new file mode 100644 index 00000000..634ead3d Binary files /dev/null and b/wp-content/uploads/2022/03/initial-lcps.gif differ diff --git a/wp-content/uploads/2022/03/initial-lcps.png b/wp-content/uploads/2022/03/initial-lcps.png new file mode 100644 index 00000000..08ef1198 Binary files /dev/null and b/wp-content/uploads/2022/03/initial-lcps.png differ diff --git a/wp-content/uploads/2022/03/late-modal.png b/wp-content/uploads/2022/03/late-modal.png new file mode 100644 index 00000000..4b9b6c1b Binary files /dev/null and b/wp-content/uploads/2022/03/late-modal.png differ diff --git a/wp-content/uploads/2022/03/lcp-by-type.png b/wp-content/uploads/2022/03/lcp-by-type.png new file mode 100644 index 00000000..334a119b Binary files /dev/null and b/wp-content/uploads/2022/03/lcp-by-type.png differ diff --git a/wp-content/uploads/2022/03/lcp.jpg b/wp-content/uploads/2022/03/lcp.jpg new file mode 100644 index 00000000..f652690a Binary files /dev/null and b/wp-content/uploads/2022/03/lcp.jpg differ diff --git a/wp-content/uploads/2022/03/treo.png b/wp-content/uploads/2022/03/treo.png new file mode 100644 index 00000000..5bfdc884 Binary files /dev/null and b/wp-content/uploads/2022/03/treo.png differ diff --git a/wp-content/uploads/2022/03/waterfall-bg-hack.png b/wp-content/uploads/2022/03/waterfall-bg-hack.png new file mode 100644 index 00000000..d113d174 Binary files /dev/null and b/wp-content/uploads/2022/03/waterfall-bg-hack.png differ diff --git a/wp-content/uploads/2022/03/waterfall-css.png b/wp-content/uploads/2022/03/waterfall-css.png new file mode 100644 index 00000000..3fc1b286 Binary files /dev/null and b/wp-content/uploads/2022/03/waterfall-css.png differ diff --git a/wp-content/uploads/2022/03/waterfall-img.png b/wp-content/uploads/2022/03/waterfall-img.png new file mode 100644 index 00000000..d2d4dc1d Binary files /dev/null and b/wp-content/uploads/2022/03/waterfall-img.png differ diff --git a/wp-content/uploads/2022/03/waterfall-lazyload.png b/wp-content/uploads/2022/03/waterfall-lazyload.png new file mode 100644 index 00000000..f0139318 Binary files /dev/null and b/wp-content/uploads/2022/03/waterfall-lazyload.png differ diff --git a/wp-content/uploads/2022/03/waterfall-svg.png b/wp-content/uploads/2022/03/waterfall-svg.png new file mode 100644 index 00000000..70e2ba64 Binary files /dev/null and b/wp-content/uploads/2022/03/waterfall-svg.png differ diff --git a/wp-content/uploads/2022/03/waterfall-video.png b/wp-content/uploads/2022/03/waterfall-video.png new file mode 100644 index 00000000..c2302086 Binary files /dev/null and b/wp-content/uploads/2022/03/waterfall-video.png differ diff --git a/wp-content/uploads/2022/08/priority-hints-after.png b/wp-content/uploads/2022/08/priority-hints-after.png new file mode 100644 index 00000000..c60d9414 Binary files /dev/null and b/wp-content/uploads/2022/08/priority-hints-after.png differ diff --git a/wp-content/uploads/2022/08/priority-hints-before.png b/wp-content/uploads/2022/08/priority-hints-before.png new file mode 100644 index 00000000..42166eb3 Binary files /dev/null and b/wp-content/uploads/2022/08/priority-hints-before.png differ diff --git a/wp-content/uploads/2022/08/user-timing-chrome-full.png b/wp-content/uploads/2022/08/user-timing-chrome-full.png new file mode 100644 index 00000000..cdac7362 Binary files /dev/null and b/wp-content/uploads/2022/08/user-timing-chrome-full.png differ diff --git a/wp-content/uploads/2022/08/user-timing-chrome.png b/wp-content/uploads/2022/08/user-timing-chrome.png new file mode 100644 index 00000000..bd0a1f2c Binary files /dev/null and b/wp-content/uploads/2022/08/user-timing-chrome.png differ diff --git a/wp-content/uploads/2022/09/critical-filmstrip-02.png b/wp-content/uploads/2022/09/critical-filmstrip-02.png new file mode 100644 index 00000000..26e3ccd1 Binary files /dev/null and b/wp-content/uploads/2022/09/critical-filmstrip-02.png differ diff --git a/wp-content/uploads/2022/09/critical-filmstrip-03.png b/wp-content/uploads/2022/09/critical-filmstrip-03.png new file mode 100644 index 00000000..3dbcfb84 Binary files /dev/null and b/wp-content/uploads/2022/09/critical-filmstrip-03.png differ diff --git a/wp-content/uploads/2022/09/critical-filmstrip.png b/wp-content/uploads/2022/09/critical-filmstrip.png new file mode 100644 index 00000000..b17b0379 Binary files /dev/null and b/wp-content/uploads/2022/09/critical-filmstrip.png differ diff --git a/wp-content/uploads/2022/09/waterfall-blocking-02.png b/wp-content/uploads/2022/09/waterfall-blocking-02.png new file mode 100644 index 00000000..65debd99 Binary files /dev/null and b/wp-content/uploads/2022/09/waterfall-blocking-02.png differ diff --git a/wp-content/uploads/2022/09/waterfall-blocking.png b/wp-content/uploads/2022/09/waterfall-blocking.png new file mode 100644 index 00000000..3fd30d26 Binary files /dev/null and b/wp-content/uploads/2022/09/waterfall-blocking.png differ diff --git a/wp-content/uploads/2022/09/waterfall-critical-02.png b/wp-content/uploads/2022/09/waterfall-critical-02.png new file mode 100644 index 00000000..93c65082 Binary files /dev/null and b/wp-content/uploads/2022/09/waterfall-critical-02.png differ diff --git a/wp-content/uploads/2022/09/waterfall-critical.png b/wp-content/uploads/2022/09/waterfall-critical.png new file mode 100644 index 00000000..1a5cc12e Binary files /dev/null and b/wp-content/uploads/2022/09/waterfall-critical.png differ diff --git a/wp-content/uploads/2022/10/waterfall-async-snippets-after.png b/wp-content/uploads/2022/10/waterfall-async-snippets-after.png new file mode 100644 index 00000000..46544376 Binary files /dev/null and b/wp-content/uploads/2022/10/waterfall-async-snippets-after.png differ diff --git a/wp-content/uploads/2022/10/waterfall-async-snippets-before.png b/wp-content/uploads/2022/10/waterfall-async-snippets-before.png new file mode 100644 index 00000000..fbed64ac Binary files /dev/null and b/wp-content/uploads/2022/10/waterfall-async-snippets-before.png differ diff --git a/wp-content/uploads/2023/01/cpu.png b/wp-content/uploads/2023/01/cpu.png new file mode 100644 index 00000000..dfd2474e Binary files /dev/null and b/wp-content/uploads/2023/01/cpu.png differ diff --git a/wp-content/uploads/2023/01/document.write-early.png b/wp-content/uploads/2023/01/document.write-early.png new file mode 100644 index 00000000..215c1ebd Binary files /dev/null and b/wp-content/uploads/2023/01/document.write-early.png differ diff --git a/wp-content/uploads/2023/01/document.write.png b/wp-content/uploads/2023/01/document.write.png new file mode 100644 index 00000000..8099063e Binary files /dev/null and b/wp-content/uploads/2023/01/document.write.png differ diff --git a/wp-content/uploads/2023/01/lighthouse.png b/wp-content/uploads/2023/01/lighthouse.png new file mode 100644 index 00000000..a9503743 Binary files /dev/null and b/wp-content/uploads/2023/01/lighthouse.png differ diff --git a/wp-content/uploads/2023/01/sync.png b/wp-content/uploads/2023/01/sync.png new file mode 100644 index 00000000..b7e95696 Binary files /dev/null and b/wp-content/uploads/2023/01/sync.png differ diff --git a/wp-content/uploads/2023/06/dcl.gif b/wp-content/uploads/2023/06/dcl.gif new file mode 100644 index 00000000..9695400c Binary files /dev/null and b/wp-content/uploads/2023/06/dcl.gif differ diff --git a/wp-content/uploads/2023/06/defer-crux-dashboard.png b/wp-content/uploads/2023/06/defer-crux-dashboard.png new file mode 100644 index 00000000..f779298f Binary files /dev/null and b/wp-content/uploads/2023/06/defer-crux-dashboard.png differ diff --git a/wp-content/uploads/2023/06/defer-google-analytics.png b/wp-content/uploads/2023/06/defer-google-analytics.png new file mode 100644 index 00000000..33c9592d Binary files /dev/null and b/wp-content/uploads/2023/06/defer-google-analytics.png differ diff --git a/wp-content/uploads/2023/06/defer-waterfall-abridged.png b/wp-content/uploads/2023/06/defer-waterfall-abridged.png new file mode 100644 index 00000000..d600c000 Binary files /dev/null and b/wp-content/uploads/2023/06/defer-waterfall-abridged.png differ diff --git a/wp-content/uploads/2023/06/defer-waterfall-full.png b/wp-content/uploads/2023/06/defer-waterfall-full.png new file mode 100644 index 00000000..d1b67aa2 Binary files /dev/null and b/wp-content/uploads/2023/06/defer-waterfall-full.png differ diff --git a/wp-content/uploads/2023/06/defer-waterfall-minimal.png b/wp-content/uploads/2023/06/defer-waterfall-minimal.png new file mode 100644 index 00000000..ac22c2b9 Binary files /dev/null and b/wp-content/uploads/2023/06/defer-waterfall-minimal.png differ diff --git a/wp-content/uploads/2023/06/devtools-console.png b/wp-content/uploads/2023/06/devtools-console.png new file mode 100644 index 00000000..40cdc0bd Binary files /dev/null and b/wp-content/uploads/2023/06/devtools-console.png differ diff --git a/wp-content/uploads/2023/06/devtools-dcl.png b/wp-content/uploads/2023/06/devtools-dcl.png new file mode 100644 index 00000000..dd1a6932 Binary files /dev/null and b/wp-content/uploads/2023/06/devtools-dcl.png differ diff --git a/wp-content/uploads/2023/06/devtools-user-timing.png b/wp-content/uploads/2023/06/devtools-user-timing.png new file mode 100644 index 00000000..1a80404b Binary files /dev/null and b/wp-content/uploads/2023/06/devtools-user-timing.png differ diff --git a/wp-content/uploads/2023/06/site-speed-topography-01-large.png b/wp-content/uploads/2023/06/site-speed-topography-01-large.png new file mode 100644 index 00000000..56b133d1 Binary files /dev/null and b/wp-content/uploads/2023/06/site-speed-topography-01-large.png differ diff --git a/wp-content/uploads/2023/06/site-speed-topography-01.png b/wp-content/uploads/2023/06/site-speed-topography-01.png new file mode 100644 index 00000000..dbf37e68 Binary files /dev/null and b/wp-content/uploads/2023/06/site-speed-topography-01.png differ diff --git a/wp-content/uploads/2023/06/site-speed-topography-02.png b/wp-content/uploads/2023/06/site-speed-topography-02.png new file mode 100644 index 00000000..60dc13c1 Binary files /dev/null and b/wp-content/uploads/2023/06/site-speed-topography-02.png differ diff --git a/wp-content/uploads/2023/06/treo-dcl.png b/wp-content/uploads/2023/06/treo-dcl.png new file mode 100644 index 00000000..bc4fcf96 Binary files /dev/null and b/wp-content/uploads/2023/06/treo-dcl.png differ diff --git a/wp-content/uploads/2023/07/cards-at-once.png b/wp-content/uploads/2023/07/cards-at-once.png new file mode 100644 index 00000000..a34a580e Binary files /dev/null and b/wp-content/uploads/2023/07/cards-at-once.png differ diff --git a/wp-content/uploads/2023/07/cards-round-robin.png b/wp-content/uploads/2023/07/cards-round-robin.png new file mode 100644 index 00000000..278eec53 Binary files /dev/null and b/wp-content/uploads/2023/07/cards-round-robin.png differ diff --git a/wp-content/uploads/2023/07/cwv-map.png b/wp-content/uploads/2023/07/cwv-map.png new file mode 100644 index 00000000..ccc39d4a Binary files /dev/null and b/wp-content/uploads/2023/07/cwv-map.png differ diff --git a/wp-content/uploads/2023/07/cwv-metrics.png b/wp-content/uploads/2023/07/cwv-metrics.png new file mode 100644 index 00000000..b1ab50b9 Binary files /dev/null and b/wp-content/uploads/2023/07/cwv-metrics.png differ diff --git a/wp-content/uploads/2023/07/cwv-seo.png b/wp-content/uploads/2023/07/cwv-seo.png new file mode 100644 index 00000000..7b048497 Binary files /dev/null and b/wp-content/uploads/2023/07/cwv-seo.png differ diff --git a/wp-content/uploads/2023/07/inp-email.png b/wp-content/uploads/2023/07/inp-email.png new file mode 100644 index 00000000..9b5e1741 Binary files /dev/null and b/wp-content/uploads/2023/07/inp-email.png differ diff --git a/wp-content/uploads/2023/07/page-experience.png b/wp-content/uploads/2023/07/page-experience.png new file mode 100644 index 00000000..ea514f0c Binary files /dev/null and b/wp-content/uploads/2023/07/page-experience.png differ diff --git a/wp-content/uploads/2023/07/pass-fail.png b/wp-content/uploads/2023/07/pass-fail.png new file mode 100644 index 00000000..df3f4e93 Binary files /dev/null and b/wp-content/uploads/2023/07/pass-fail.png differ diff --git a/wp-content/uploads/2023/07/playing-cards.png b/wp-content/uploads/2023/07/playing-cards.png new file mode 100644 index 00000000..5b4c9ea8 Binary files /dev/null and b/wp-content/uploads/2023/07/playing-cards.png differ diff --git a/wp-content/uploads/2023/07/psi-field.png b/wp-content/uploads/2023/07/psi-field.png new file mode 100644 index 00000000..8024ad5f Binary files /dev/null and b/wp-content/uploads/2023/07/psi-field.png differ diff --git a/wp-content/uploads/2023/07/psi-lab.png b/wp-content/uploads/2023/07/psi-lab.png new file mode 100644 index 00000000..050b30df Binary files /dev/null and b/wp-content/uploads/2023/07/psi-lab.png differ diff --git a/wp-content/uploads/2023/07/psi-legacy.png b/wp-content/uploads/2023/07/psi-legacy.png new file mode 100644 index 00000000..7c33a2f1 Binary files /dev/null and b/wp-content/uploads/2023/07/psi-legacy.png differ diff --git a/wp-content/uploads/2023/07/trello-preconnect.png b/wp-content/uploads/2023/07/trello-preconnect.png new file mode 100644 index 00000000..33587fa8 Binary files /dev/null and b/wp-content/uploads/2023/07/trello-preconnect.png differ diff --git a/wp-content/uploads/2023/07/url-table.png b/wp-content/uploads/2023/07/url-table.png new file mode 100644 index 00000000..f281ff71 Binary files /dev/null and b/wp-content/uploads/2023/07/url-table.png differ diff --git a/wp-content/uploads/2023/07/waterfall-h2-waiting.png b/wp-content/uploads/2023/07/waterfall-h2-waiting.png new file mode 100644 index 00000000..c89cf86a Binary files /dev/null and b/wp-content/uploads/2023/07/waterfall-h2-waiting.png differ diff --git a/wp-content/uploads/2023/07/waterfall-h2.png b/wp-content/uploads/2023/07/waterfall-h2.png new file mode 100644 index 00000000..33052ae8 Binary files /dev/null and b/wp-content/uploads/2023/07/waterfall-h2.png differ diff --git a/wp-content/uploads/2023/07/waterfall-preconnect.png b/wp-content/uploads/2023/07/waterfall-preconnect.png new file mode 100644 index 00000000..40011237 Binary files /dev/null and b/wp-content/uploads/2023/07/waterfall-preconnect.png differ diff --git a/wp-content/uploads/2023/09/csswizardry-lcp.png b/wp-content/uploads/2023/09/csswizardry-lcp.png new file mode 100644 index 00000000..f221b129 Binary files /dev/null and b/wp-content/uploads/2023/09/csswizardry-lcp.png differ diff --git a/wp-content/uploads/2023/09/csswizardry-lqip.png b/wp-content/uploads/2023/09/csswizardry-lqip.png new file mode 100644 index 00000000..6badfecd Binary files /dev/null and b/wp-content/uploads/2023/09/csswizardry-lqip.png differ diff --git a/wp-content/uploads/2023/09/csswizardry.com-lcp.jpg b/wp-content/uploads/2023/09/csswizardry.com-lcp.jpg new file mode 100644 index 00000000..11b59c49 Binary files /dev/null and b/wp-content/uploads/2023/09/csswizardry.com-lcp.jpg differ diff --git a/wp-content/uploads/2023/09/just-right.jpg b/wp-content/uploads/2023/09/just-right.jpg new file mode 100644 index 00000000..1e839695 Binary files /dev/null and b/wp-content/uploads/2023/09/just-right.jpg differ diff --git a/wp-content/uploads/2023/09/lcp-devtools-upscaled-01.png b/wp-content/uploads/2023/09/lcp-devtools-upscaled-01.png new file mode 100644 index 00000000..4cee6737 Binary files /dev/null and b/wp-content/uploads/2023/09/lcp-devtools-upscaled-01.png differ diff --git a/wp-content/uploads/2023/09/lcp-devtools-upscaled-02.png b/wp-content/uploads/2023/09/lcp-devtools-upscaled-02.png new file mode 100644 index 00000000..d1769f06 Binary files /dev/null and b/wp-content/uploads/2023/09/lcp-devtools-upscaled-02.png differ diff --git a/wp-content/uploads/2023/09/lcp-grid.png b/wp-content/uploads/2023/09/lcp-grid.png new file mode 100644 index 00000000..15190de4 Binary files /dev/null and b/wp-content/uploads/2023/09/lcp-grid.png differ diff --git a/wp-content/uploads/2023/09/lcp-h1.png b/wp-content/uploads/2023/09/lcp-h1.png new file mode 100644 index 00000000..12818579 Binary files /dev/null and b/wp-content/uploads/2023/09/lcp-h1.png differ diff --git a/wp-content/uploads/2023/09/lcp-same-size.png b/wp-content/uploads/2023/09/lcp-same-size.png new file mode 100644 index 00000000..00d15ee5 Binary files /dev/null and b/wp-content/uploads/2023/09/lcp-same-size.png differ diff --git a/wp-content/uploads/2023/09/lcp-spec-diagram.ai b/wp-content/uploads/2023/09/lcp-spec-diagram.ai new file mode 100644 index 00000000..eb5e4f4c --- /dev/null +++ b/wp-content/uploads/2023/09/lcp-spec-diagram.ai @@ -0,0 +1,1380 @@ +%PDF-1.6 % +1 0 obj <>/OCGs[23 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + application/pdf + + + lcp-spec-diagram + + + Adobe Illustrator 27.8 (Macintosh) + 2023-08-30T23:24:43+02:00 + 2023-08-30T23:24:43+02:00 + 2023-08-30T23:24:43+02:00 + + + + 256 + 144 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAkAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYqpy9Riq nirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVRGKuxV2KuxV 2KqcvUYqp4q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FURi rsVdirsVdiqnL1GKqeKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux V2KuxVEYq7FXYq7FXYqpy9RiqnirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd irsVdirsVdirsVRGKuxV2KuxV2KqcvUYqp4q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq 7FXYq7FXYq7FXYq7FXYq7FXiXkT82bnWvO9ron+LLvU5PrNwkulx6LBC4WCaZCLmeOefhGqyJ+8C qGCxgEP6ysq91xV2KuxV2KqcvUYqp4q7FXYq7FXYq7FXYq7FXYq7FWndUUsxoo6k4pAtR+v2X+/0 +8Y2y8KXc76/Zf7/AE+8Y2vhS7nfX7L/AH+n3jG18KXc76/Zf7/T7xja+FLud9fsv9/p94xtfCl3 O+v2X+/0+8Y2vhS7nfX7L/fyfeMbXwpdysjo45IajpUe2LEim8UOxV2KuxV2KuxV2KpXZeQ/I9hq Q1Sx8u6ZaakrtKt9BZ28c4kcFXcSqgfkwYgmu9TiqeYq7FXYq7FVOXqMVU8VdirsVdirsVdirsVd irsVdiqH1D/eKb/VOAtmL6gxjIuydirsVdirsVXcKCrHj4eJxRbi9NkFB498VpkGj/7wJ82/Xkg4 Gf6kbhaXYq7FXYq7FXYq7FURirsVdirsVdiqnL1GKqeKuxV2KuxV2KuxV2KuxV2KuxVD6h/vFN/q nAWzF9QYxkXZOxV2KFwQ0qx4j36n5DFFu5AfYH+yPX+zFaW9dzil2KWRaP8A7wJ82/Xkg6/P9SNw tLsVdirsVdirsVdiqIxV2KuxV2KuxVTl6jFVPFXYq7FXYq7FXYq7FXYq7FXYqwXUdc1UXN7CLg+m hmCrRSAEDce3tlZJd3i02Phia32Y/wDp/Vv9/D/kXH/zTkeIuw/K4+77S79P6t/v4f8AIuP/AJpx 4iv5XH3faU9sdQu2vY1LilCfsqNwlfDxyQLg5MUeEo9iWJJ3J3JwuO1il2KuxVkWj/7wJ82/Xkg6 /P8AUjcLS7FXYq7FXYq7FXYqiMVdirsVdirsVU5eoxVTxV2KuxV2KuxV2KuxV2KuxV2KvN9S/wB7 r/53H6myovRYfpj/AJv6GOZF2LsVZLYf73x/6p/5NnJB1uX6D+Oqb5JxHYq7FXYqyLR/94E+bfry Qdfn+pG4Wl2KuxV2KuxV2KuxVEYq7FXYq7FXYqpy9RiqnirsVdirsVdirsVdirsVdirsVYzdeT5J p7iUXQHrmQhSh29SvevauQ4XZQ14AArlX2JZ/wAq4uP+W5P+RZ/5qwcDk/yuP5v2u/5Vxcf8tyf8 iz/zVjwL/K4/m/amlt5RlinWU3KniKFeJ/l4+OSEXGnrwRVI3/D7f7/H/A/24aaPzXk7/D7f7/H/ AAP9uNL+a8nf4fb/AH+P+B/txpfzXk7/AA+3+/x/wP8AbjS/mvJMbK2NtbrEW5UJ3pTqa4Q4+SfE bV8WDsVdirsVdirsVdiqIxV2KuxV2KuxVTl6jFVPFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F XYq7FXYq7FXYq7FXYq7FXYq7FXYqiMVdirsVdirsVU5eoxVTxV2KuxV2KuxV2KuxV2KuxV2KuxV2 KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KojFXYq7FXYq7FVOXqMVU8VdirsVdirsVdirsVdir sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiqIxV2KuxV2KuxVTl6jFVPFXYq7FXYq7F XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqiMVdirsVdirsVU5eoxVTxV2 KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KojFXYq7FXYq7FVO XqMVU8VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiqIxV2Ku xV2KuxVTlBqMVWUPhirqHwxV1D4Yq6h8MVdQ+GKuofDFXUPhirqHwxV1D4Yq6h8MVdQ+GKuofDFX UPhirqHwxV1D4Yq6h8MVdQ+GKuofDFXUPhirqHwxV1D4Yq6h8MVdQ+GKuofDFXUPhirqHwxV/9k= + + + + proof:pdf + uuid:65E6390686CF11DBA6E2D887CEACB407 + xmp.did:12f0a7dd-1490-46d6-b4ae-50d3c704c238 + uuid:a50f338b-eada-2b40-b238-594f6bb19b99 + + uuid:48530a2d-2ce2-45ea-a0a9-45ff087881e9 + xmp.did:34b468f4-5a2e-1544-a98c-cbef738ecd6d + uuid:65E6390686CF11DBA6E2D887CEACB407 + proof:pdf + + + + + saved + xmp.iid:12f0a7dd-1490-46d6-b4ae-50d3c704c238 + 2023-08-30T15:11:31+01:00 + Adobe Illustrator 27.8 (Macintosh) + / + + + + Web + Document + AIRobin + 1 + False + False + + 1600.000000 + 1000.000000 + Pixels + + + + + MyriadPro-Regular + Myriad Pro + Regular + Open Type + Version 2.106;PS 2.000;hotconv 1.0.70;makeotf.lib2.5.58329 + False + MyriadPro-Regular.otf + + + + + + Cyan + Magenta + Yellow + Black + + + + + + Default Swatch Group + 0 + + + + White + RGB + PROCESS + 255 + 255 + 255 + + + Black + RGB + PROCESS + 0 + 0 + 0 + + + RGB Red + RGB + PROCESS + 255 + 0 + 0 + + + RGB Yellow + RGB + PROCESS + 255 + 255 + 0 + + + RGB Green + RGB + PROCESS + 0 + 255 + 0 + + + RGB Cyan + RGB + PROCESS + 0 + 255 + 255 + + + RGB Blue + RGB + PROCESS + 0 + 0 + 255 + + + RGB Magenta + RGB + PROCESS + 255 + 0 + 255 + + + R=193 G=39 B=45 + RGB + PROCESS + 193 + 39 + 45 + + + R=237 G=28 B=36 + RGB + PROCESS + 237 + 28 + 36 + + + R=241 G=90 B=36 + RGB + PROCESS + 241 + 90 + 36 + + + R=247 G=147 B=30 + RGB + PROCESS + 247 + 147 + 30 + + + R=251 G=176 B=59 + RGB + PROCESS + 251 + 176 + 59 + + + R=252 G=238 B=33 + RGB + PROCESS + 252 + 238 + 33 + + + R=217 G=224 B=33 + RGB + PROCESS + 217 + 224 + 33 + + + R=140 G=198 B=63 + RGB + PROCESS + 140 + 198 + 63 + + + R=57 G=181 B=74 + RGB + PROCESS + 57 + 181 + 74 + + + R=0 G=146 B=69 + RGB + PROCESS + 0 + 146 + 69 + + + R=0 G=104 B=55 + RGB + PROCESS + 0 + 104 + 55 + + + R=34 G=181 B=115 + RGB + PROCESS + 34 + 181 + 115 + + + R=0 G=169 B=157 + RGB + PROCESS + 0 + 169 + 157 + + + R=41 G=171 B=226 + RGB + PROCESS + 41 + 171 + 226 + + + R=0 G=113 B=188 + RGB + PROCESS + 0 + 113 + 188 + + + R=46 G=49 B=146 + RGB + PROCESS + 46 + 49 + 146 + + + R=27 G=20 B=100 + RGB + PROCESS + 27 + 20 + 100 + + + R=102 G=45 B=145 + RGB + PROCESS + 102 + 45 + 145 + + + R=147 G=39 B=143 + RGB + PROCESS + 147 + 39 + 143 + + + R=158 G=0 B=93 + RGB + PROCESS + 158 + 0 + 93 + + + R=212 G=20 B=90 + RGB + PROCESS + 212 + 20 + 90 + + + R=237 G=30 B=121 + RGB + PROCESS + 237 + 30 + 121 + + + R=199 G=178 B=153 + RGB + PROCESS + 199 + 178 + 153 + + + R=153 G=134 B=117 + RGB + PROCESS + 153 + 134 + 117 + + + R=115 G=99 B=87 + RGB + PROCESS + 115 + 99 + 87 + + + R=83 G=71 B=65 + RGB + PROCESS + 83 + 71 + 65 + + + R=198 G=156 B=109 + RGB + PROCESS + 198 + 156 + 109 + + + R=166 G=124 B=82 + RGB + PROCESS + 166 + 124 + 82 + + + R=140 G=98 B=57 + RGB + PROCESS + 140 + 98 + 57 + + + R=117 G=76 B=36 + RGB + PROCESS + 117 + 76 + 36 + + + R=96 G=56 B=19 + RGB + PROCESS + 96 + 56 + 19 + + + R=66 G=33 B=11 + RGB + PROCESS + 66 + 33 + 11 + + + + + + Grays + 1 + + + + R=0 G=0 B=0 + RGB + PROCESS + 0 + 0 + 0 + + + R=26 G=26 B=26 + RGB + PROCESS + 26 + 26 + 26 + + + R=51 G=51 B=51 + RGB + PROCESS + 51 + 51 + 51 + + + R=77 G=77 B=77 + RGB + PROCESS + 77 + 77 + 77 + + + R=102 G=102 B=102 + RGB + PROCESS + 102 + 102 + 102 + + + R=128 G=128 B=128 + RGB + PROCESS + 128 + 128 + 128 + + + R=153 G=153 B=153 + RGB + PROCESS + 153 + 153 + 153 + + + R=179 G=179 B=179 + RGB + PROCESS + 179 + 179 + 179 + + + R=204 G=204 B=204 + RGB + PROCESS + 204 + 204 + 204 + + + R=230 G=230 B=230 + RGB + PROCESS + 230 + 230 + 230 + + + R=242 G=242 B=242 + RGB + PROCESS + 242 + 242 + 242 + + + + + + Web Color Group + 1 + + + + R=63 G=169 B=245 + RGB + PROCESS + 63 + 169 + 245 + + + R=122 G=201 B=67 + RGB + PROCESS + 122 + 201 + 67 + + + R=255 G=147 B=30 + RGB + PROCESS + 255 + 147 + 30 + + + R=255 G=29 B=37 + RGB + PROCESS + 255 + 29 + 37 + + + R=255 G=123 B=172 + RGB + PROCESS + 255 + 123 + 172 + + + R=189 G=204 B=212 + RGB + PROCESS + 189 + 204 + 212 + + + + + + + Adobe PDF library 17.00 + 21.0.0 + + + + + + + + + + + + + + + + + + + + + + + + + endstream endobj 3 0 obj <> endobj 5 0 obj <>/ExtGState<>/Font<>/ProcSet[/PDF/Text]/Properties<>>>/Thumb 28 0 R/TrimBox[0.0 0.0 1600.0 1000.0]/Type/Page/PieceInfo<>>> endobj 25 0 obj <>stream +HMkA +tlKنRJJ]h};8 %,h @˻@a9qV"ayϏ Y+I˴IF*}KffQ3C~,"ŽzTjbZ$^Qv$Tգ:U-ZP)zhtTdF %[@gvg#z L07&qiZXcj4nÇMm-Wcqd.?2Yԓ7X Bg +M}&Nabj~U_j+…cߨj9&qL٥yD7sFrjъ6ص"ĮD-{Y~9V%'L>Wo endstream endobj 28 0 obj <>stream +8;Z]`5n:aS&-YnuIu1=I`C40gX+-\#.$U%9RYEQn1VXg*E<3e6Uk$GT2IU(n6J+DZ +,"<68Ls8:1EmF'ecnZ%LBk>r[jB(J_]F\&>P\'6bb0F)>3IUJ(m]@4#\q9)gb4f)< +>tNOXe*]%\YNZa+S^bWD5-/U!)ZRAST7$:Z[n3QT'&k+%oYX7h/b8D:O*pB@drZ+^ +64lfXcdR!^;^>9kU@(.g(]D8KBF(5e9uQ1&'JZ'/6u3o6&Yk1YA?f5f?c`WT!<<'! +!!*'!!rsfO=`F~> endstream endobj 8 0 obj <> endobj 9 0 obj <> endobj 10 0 obj <>stream +%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 24.0 %%AI8_CreatorVersion: 27.8.1 %%For: (Harry Roberts) () %%Title: (lcp-spec-diagram.ai) %%CreationDate: 30/08/2023 23:24 %%Canvassize: 16383 %%BoundingBox: 74 -826 1436 -63 %%HiResBoundingBox: 74.09326171875 -826 1436 -63.0000000000009 %%DocumentProcessColors: Cyan Magenta Yellow Black %AI5_FileFormat 14.0 %AI12_BuildNumber: 268 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%RGBProcessColor: 0 0 0 ([Registration]) %AI3_Cropmarks: 0 -1000 1600 0 %AI3_TemplateBox: 800.5 -500.5 800.5 -500.5 %AI3_TileBox: 404 -806 1196 -194 %AI3_DocumentPreview: None %AI5_ArtSize: 14400 14400 %AI5_RulerUnits: 6 %AI24_LargeCanvasScale: 1 %AI9_ColorModel: 1 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 1 %AI17_Begin_Content_if_version_gt:24 4 %AI10_OpenToVie: 29.4998990107179 44.2827350401922 1.05208545330495 0 8113.40939387159 8126.71629775095 1788 1099 18 0 0 6 64 0 0 0 1 1 0 1 1 0 0 %AI17_Alternate_Content %AI9_OpenToView: 29.4998990107179 44.2827350401922 1.05208545330495 1788 1099 18 0 0 6 64 0 0 0 1 1 0 1 1 0 0 %AI17_End_Versioned_Content %AI5_OpenViewLayers: 7 %AI17_Begin_Content_if_version_gt:24 4 %AI17_Alternate_Content %AI17_End_Versioned_Content %%PageOrigin:400 -800 %AI7_GridSettings: 72 8 72 8 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 %AI9_Flatten: 1 %AI12_CMSettings: 00.MS %%EndComments endstream endobj 11 0 obj <>stream +%AI24_ZStandard_Data(/X~F . MklPx#n{߭~+7]1irx49T + knhO\cO.S/}W !({@(m8BԹ*Go3wP0w4Zx$ɑ`,CLHޝ5 Rm-JlM BJcbQ `xB±HDH + K2T,PZ#[X;y8F)GMd2$i dP$YEh8]aV[jH3G dxq +;M/H3}'͈WNT,' 4LymNB2~R2R.qꉰ2A.DkPxF 4Q(~vHRSTe~dX@E. a60HI:wZ94#"ڐ3K+MHdcx2+,cE?<ͽZцw;7PQVGG46-yE\%#ZJ]#w`4. Zd5AcXcTW9l" ch0Q*U}PԳb,Y0{c1,*jts -5r\]Qq -R T[@3̈$3LP4,'Ip2qL 57hat@H/la5ESbb(Rt,0G(VFgh @jE,r4$b(2P4bqo1hbH ą"H,EBUC$)T -tXD@DHH4J.).]&]~=2^:_5T7q(l9b$k\Bxqc +$0H\ @${s̻D+]2n52bH #t#M>XjhB v"8 rBh8l&FY^P Ow $Q|bQKr +Kh2 !NiFʈ@ ai!#Q<5!=+$Y$G9Z9@BӨ~+W6ӮԪi*}:Λ m[WKԓuyݻE:Md 2Y7TNíɆ^LsykWy覯;ta݇ $Ȃ #v{ /;N>T W$EÖ$&O>AeGɂh!ALH*EH:+rBEDI$$VfF1a DDzff!D!53@7Z(%,*"K.yQLHZHP !@>5PscwWoh$ +$ 4`AI4D.>BwlcdŽ: ]BVRG:LRD.-+d Tq1а1nq~zxwvu>:1laҐ322G5h=r(h0*Y$ZieB VzךNm 5h`P$9vi)UBB$;* +E)Wkk0<+vv0Er ++V|FVH(!r:)HA_<3BD"YhP΄Xq-.H *(L0pp a%-(<"0``Aq1!"caE &0Ã&  J"h@D#% (&@$"&xpA@< GDŽ ,x<48LH08 pP  HDL88h E!" +J% $LH + hcb @PaB Lxp  @D0`Ia!2`Ay^̫§{iļu\vQ-Վu¡ۻ4GZƼQ\VMcLŚs!Guh.?hf^:Zh{6ՐUTCI:5=rݩ!.:ۼ\˟|^Bi5ѿ q ti'YMWv{_:t M7ɇS6J%敿z^~-.Әy0LCO;6lh)UHsuZDVU<&V֩PoKZMQіRyxBnXj^vy$BYJJCotZNBt-sk O\ \SօFO>mV͹4yvT4L>]x/gj4F6މ8v=lF6۬63'oᒞ6h!?GgeeR۽Ƶz7^HhZn4_.Mw~ICeɧyKfZ1mQ›M} ^N O6ݿ>*JRyzM_&7VZxSQ Hz$ߤ2ifm*/y*ܩ26o񤈣cջaM Kտ=UԴݔMEtfg:eޮ3ZG#a;hs|5/ͦNM>wwS{m}D.\9٪Se$%oMO>cX"nzX2X]P3g\3+M]ѣ+Y3>j6qkV鍬s͜}閾jm{x$"}ΪB›gzuWZo7>Pt֟<]-F6.vIgTXtI+s>.Φغ蕍_U3nzAtu.ӹ-sCʻɟj 7jCjFxJTv, 7!߭ ZgMl.exXz_sãүxWcN8grEh7K? Vfx;96!R*Xlf /̧j)/3MJx*3S3EB ]0.JE3ݱ%gi[bKVlfY9]=32{~UŷITNY[kkʪZNEpeIu?,|ATRͽGdO%R4bwD{R< 4GUʲ*]HDsvU$$ż:=ɪ]#*q-x;Ϯ2]o\LskS[Tֵ7_JңӳbMBLJ>0o5z9)R7˛G-g5X콚RR.,%l(7l_ ?Q.iV2]y'J`%%   +$P "2 @`,4@.ݸ +/lgQ9h]-z=qVtsZz߮pvu+_Z1l8ʪ-OoShfbXKeWe\i(eHXh測85VZ-4@J -ڭbs[Mn9[3VnRyV>d8Y'zu2Kim6UsYnMdkqoRKGQfLWᝌj4;Zb&okvWc#%|yeTB|9RՐ5|Qw]PG_C,KQu5{ŝӛH(WQmҽjvKitY]"bmXKJk,ѣR&oכoμvëi7KJ.ڦIxIN3[cѠREcϱ։㴾xZSzGdѨIK5OKɅ/o KVjdz$jE1=->8):pon8ENҩ-ӖNdyDwSyy>"u1x#4ʓ'qS/&tUmQWc[{kUWc~V ״eZmuaa-GhsDO"ukƩ9Y~'}kjm*<4=cq*hE:?YEێ%Y]ZuND6Wg6hHCgs~n=ضiY|͕V auj BXGC?_R͒MӞI'Di77.;h g>w:xw ڐ:Iخ&wǻdR-VZ UZ7[ 6xWcnQ{O.)=L=l }JxꢬɆ5)k*xulMU>q)\I5xݕ5GuԕpGSgyqa%0dFç㵹R˔ڀEc,ixzWXdkv+n/mWO jMڮZim/]xc4*H5m_54CM{ugj۽GzR"21ڍg][;$׎4o\%ח|Ugܛ]-lxs< tdmNk8wejfpK?u_۩{9k2BNO:;~%UnZ^کݙcu6e3ʢ}l~7۬YZ5_YqndmODڱCvdB-G,Tr__uk6zЦ4C#4줯=fXV;ivWfɲ3;;&mU{}c-y\Ɇ2?ҝ*үEs=MU%ReЋLv/5~NW.-i%-*TS\:$u6+ՕjZw-w|7zL4˦Y*}AK]bݸ:8<{wjlKwKו[JR[ݙvZt̳~ֹUqRm'4ɘ^<;_ϬKE$Ni>Ku}zRKI]>* + LhhP$ Ą +%3 @Z%[ijrkGhIUߡսhkj ۦ≯x:DZ<^AZWw +ֻlNtK7Hj. +T{Hsh[u*<뿇/P>I63jZ̴-f*-&-f_jayqK-Ucv^+饥MuSCc^tZJɴlTJ.f5KK4TO_j*מ[O<;4=[C.}/w+} ; -Hu+՛W=yuJhM,9#*aUiz|y̳]"؋ge/i4,~EkZmڡ^tt*^^skL~U[v?1}]Vznw?ci9D"W9ݱ*s[걪*ޙJ|6ME۬SzQҥfk4iM~9jk2HSUFdd.|1m>KBIx_I/aƗwӥQԯ4īߝtϗ UgʳY;QY.zWT%Eu:Rs7FDJz}jMg*Q%WjTi&-eK3L}6p5F#!toȎR}'/m^B=TCKʺͣ5Yhv֮kM5L^6zjLWZj{j;g}MDeknW+Ӝ-l]lʨ!馕v:ռ!fg&jqKFk_| ZZ49kw1m8[uEԫbNqݴ +nhդCigIODz;Zeh)9V4HPcL!0H4 aZ~BZ6GK5!@0LQ]Ô˞_4H3fn4L8".(8#k#<椤ߩX( &-dB?#D+;c,5P )Gq4C~n33&@BMdn%t}zf^KwrTMI8KV;P@@:*&Խ{?n(H#Ysk-׷K0YDfV4oAM%h8i[ƼN8CaO|9yޯ腲'cLPr}z$N5֜I )v>2]g хdyD N$*1~2m="!D|$Ō,A.PMjFZA]`_Tx'oK *.T`5;bWcSQI\בM*A2$clҜ83T~? 2߄!LN#p)%["lRz<%7ACIbjP!"M90[%92%6?XMwӫ !Rߠ{m/n8kk0Ai5~t`*DZ#?ē\b¸?[r+z+!1'K"gbgnRP# gzyw4175@lKyX;]~ +pGQa'3eHef}F]7S+(^X0:tBy﵀s sT|D}6cb)yCYߥ"鴁!}E3D\a{gȪ*D8ǂ5د\ f.!|D:?=FUIp=?7Elwb$:N +#_Tk u%]A(IJuğgÚ|A:a`.dxVR'~A6ތNq߽|V4EB,4]9̂-Hٍb=K pjKR`Y|;8˴|M2U'/޻,"G!8tU.v6)Eօt-*Ε/NssqPc&}F+WZwb)tۂf`7HDʃ 1RXɎMDp +*PjF\d  xM`8W̭}tتUĉ~vpCqn 7pT3ϙdH&{zގ N_ C*rxz`%$X5bm zhk499}_] +c[⛾M<֋*f@iX}8Y CMUjOn}+6b(X¹|pcxP Dl卩vH1ᇽR1joƃ~Kyٙͅ7 :2Q&Bh*N+m?l}]@ZԖ) 0q0crvkcnj +EϵBO#CE_) YdrLOva=vI.+ ZUaLD[V|SrVdXiAGE@z6T>Gyn(rIA>,؇ru#€*։-~ׁ1YO3m7{x0arc8KEN5(șS]Gp6Gnfz^F 6ePW/n+M1&('pd"2rn>+9s)8NuhmH2G/%%JDi$)舥TO@a)[0^ز|K"Nƾ˺jA &23gTVۨ4CK17kܨƱГj"_I`P 3ڏt[1/n=@{O\,'] +P|m2V%x +{SPR} m,0ԪDΐ +Y0HB:DUjDfq 9.~0o4鬴Il" .wŬH B4hNxh+<9|FV5a{&S&ǔvIG"Owm5Q؄"I9`0( Dž 8,!b;$ xMZoKDa\UH&qgьiWR}HRveEdX2Gs5/an_/cŭls^^#X#Z~S/3i+VaIՕ0/ܾ$Ʃ6hhfc]S,o1t*x&RP~M3m0^{P7OD{y6i 'c+" (ɅL>A+=5gspS d9-7X vÖ]͹f,PK*/K_ct?3wk wnJ5T e}rh7jwd#HOPԹNF#:G_iJm،<+W`B\9>NROh5#HU8~ 5aɆV$_*MSDL{daqZPvq7|PZ0t-؃QM8Y>Yk )%Y^&o߄7?:~c e \g}|w3/` _w werԳ ̛ dZzLKl 5_Gk@Ӵ&JvFl\8[.h<%Q+iJ2P2SpŘm@á\ugeGi$e t~0}B" +hZFU clKfH +QG#h䞳ɉo>x #&؞/`FD G^2IlVfOKf6`Ttn] S#.==E5.?[-;`'wbnz41IQLIL0|WnF춺 ߗ0xVc +N2 c"ɽeC Bpz5.Bg^rs_޼!\5L]&'xiUFӼ$B5ЄDg1h|!RFX!sG-Q8U2;VC=:0b-hKKWOauy.H 0e-Ҳ}fmRѫʥ51TP;kd0Y-;;VfnVW*9ۨ(r&!.q7F8>P>"Zl/LIX)&bƊFbe=gqX2Ր9 dd4FꓻK! ftKhuE@~rvBe*G N'믊_T48))ͅa&aJ+ڕc3gS?¨H,u +3*BaHq܊(πe'/?̜VLbhH$5"*X[b\WԒL ٨p#eh&09Cg! C?`046#1tsWaHOF +mvޤg ג?}T[h_07ՂUaD!j.dyiH4ÆkM B tggz<;YEZYX[V "C8?8ΨR${ +1. # +EϏ~oVfx* ic&!^۵ݿ\/ 0ʝcyY@4 C/ެ1,OZ_ݻxtZ + +ni;4h`ػVr]׻ +VAY읢ΘKMpS0i0 CN`Qh:ᄳҬwݳ^6ӄURp$YDZP_ +fKVuBs8~ te;-UʼeS};2<,Zfל t>P9qSEr39ع"ddux1p Ϝ3%>:0'{2˾/iũ~Yu~@Mo MH8W{/cnVa1 6A2ndL+m.A魮(2K4W"'}y1 Lh(ҘVCǛmwX ,0|ZKw!RdzF"޽xK&移J. _ȐҊ&CXgkWuC&=fkSYi .<8*a3#,.=`F=}7&S;˞X/$Y&v!ă@f`!;G`QQdZ/6s +%  o\F58O}J;11AT#R롞*g mlٳƬT.?~71(6/U#z wM #,){,*W sB63`UBĚJ@ϒUfR?FK$Mq[MTuPk´y1貯Mk5w ħ}%̴q;gIՃ0Y/:A쒡|˨BO~%Rßn CSB0ހe?`gB,~K+*@'|#遤:E + +RNw>;\'lb0_>˥ORyݨnp ~4xo[f{ĥQ/ۖ_3rȯ^441h!'uU{}!+2@Re,$="FzSy!x>^JMI$+{Ih(ʢE2-s#3`1FS9ufwK0 +Cݳ|l$q?CF  Q#n\zhw (kGb~uP(gS3s"L)ƽ+J`ɠ+Tyw]">akd_o#Du뫳#ٮfp9ϊr/pYOU\4T{l+?<-ZՆ.ަ5,/XKh5ǧn{dT$^ T8P屓r"EE6>=DvbZpJ8#̙AnR\t e6.ګqO\d[})OEVJ zݲ6}M}ghaS0LT{M*#1.j!4ҩ1} *cA<&~m.!R.Mr7w&ODz"aW쥅x`(vd͋}ʦӌ{o_ufA KKRR-;VGs2׹"_iK@>&{Z豵E,YҨG\ZU"R{sU~~O}>ƾ@axtWg>235 '! 8e%/ 䭞EW,CvAӷ@혔Hj _<$ Se}bFU9w 7p|"^~ďVVKIά\e:'8--לAFIYxYUyyB +{c2No WC Mz*G>agz|bgӃi,1xw `hGOo0"{I58#r훚zZ`}~@Ί|PdtR&S,u'$`)^!y@n.TҮ V=˷.li0/^zO8}I^n(OD$A ad#4$"x@fAGjy˜ۤxr *8=P5)o)~1N<;-eDĦ%_5\̴H3n3OrcY;cτ>)g4q4# f8ksO NvF7!Ҽt`]cY q1Nm%et3^:Ql>Ni6D +x}Tt>8y w3{Ldp&8liVj$l1to qu&2Ta;6DTʎh&PB+ +xmqJQMu ť|<6퉓:ҊidIAEs +8+ze9kH'DEuK9ʃ汏nY'W9sVjj'O+#);dFr;R :D6J2.tml/N/Ͱ֧g0 //,4X{nE*kP 4f7܂UBr$:E 2O@8az>-Ô;\p47'^b"hvkU.:r눢ڌᇮ]¥OScdogO;(*ΑU2U+pyNxGb[ksMtpuK?0Atv,Ug`FKg\ʏ'*^:vҙ!QoG^:gԱiMf:¼ Ӂo=`r6%<ey-a ^ơrJ(nc:!%ڣe+6LdU?A!ǒ>|j +"bPqrrd[:&( edy[㌸6 Yq wk +MTDUٍ{#,֐.a k_}[#ֻϴT>+i#[GPkn)=!۲,gjNZKV4s2%tL\&z +UqC~M[v#=& Cw`z/FHˋ< 3=KM|Y#Yzr8ХIK 0=݊].(.R,z{t&\j>]La@4A1r[-yU*naM+ڒh]9b'OezaZV!:6,`lJ7 +n\ 2f(3901Mv*& [^s% +"%O]̈r?Ȟ?kIo7~@pY~rL]_^RS{-WvÙA^NW"\yxlW~L6ʮzFDgժ<ŵo镎[+mPJc@/%y^)"}l\24X/3`k~'ʺ&Et ? _FӁ~kM &`%(S [/$'ѪOBPhX~+}|Dgz;KLJD"Vӌ~rX˔;q@ i[XqH퐥{*\gp8&[&L>f(55@I;kFf\Gj*'騁ȍqLX?:w)~L2ab3#l?쎠nj*Tԟ>XMAlO1DY6?&YS`a/AEȪ,ݝ=R`Kch35&5iwG$An(fڑ}hfZcRFxT,V~C.0&].6X@qPX$wD`X$.i¤PH<]f^.1էл[RF5Pe[u9\s<ƤPj8oRT;DGj]6pVӠ~hE#ӕRQƅ9u[+ /P""b[jtTVK-(g(ab[K}'Y||W{ykZy0lSsdU3Sm`7C4< +jy)` o!*xىGJ/6y4ZhLbj7o#RG")v6@2g4Lo[zVbq+PdN +:>X_O&Vapl=E eſ` ŀ+hg榸ҍSƀ^ukFl"@uRY> ;)rPƃAs=<%JJ +0¯F\,[O;r +Cs tCUJhFl;>oGዽ6>tjk^8FD++BV<{8i`o92'O} +*9Deg<a<c:ZP <-leTwܬ@z7IE~BƝ6yɟ<^eG' X <Qī0#.JK9[~r&h!AZ#1@m te Zi9x- ̀-w"K]2=ЏW2 Tj4 ͂V%1Pq SqO(lշKOkXy/A҃U2ob c;@Zul7 +WؕϢL7x6" Uyhzghf5*Oȑpi XQj iB_`.נgBQѱ_ra![uEӆK M^SּAGyX"OX| +'$6'7ZMK;q#+a6'aȬĉqMR>MlB1f\):eɲ|ira/a'']Z~0~`).n VOBջMia8ш{;)Lb(ԼΤf3)V(LH+kqO4FS<$;w_86죆<i\/lD~H :mrP`E]UE^/Gc"@{n2D8 aQ<jYw4 +pC*Kֳ#Q5(Z iPrbE܄Xhs2JVKVTPۆZJrHޓhKuMW|8oĒSÀҌGFtn%sU=*U_`Ɏ=UI,t+6hx(*Rq.vrK6$ 8JJhAH.pٴ(4;cVJ,E`pS˫XqXk5EWMڱ SLh#v1вV)k**dG܊6Cj^ 5*hϴRӖ:-y%BeƱV'@c#.ڦkR0|Zŏ'8uUXD_ǥ'Z~jl;1>Hx*WY5s6V 퇊!$v}gzٲ^0<hA?Drsne;8!#tCoE5YR}z{LZh8%-PC>yά'>xtnS@y:M6|_RH]Fs/!'N^i z@1Nq?s^^F.I苫tp|*֮j+ +lpC R.s8Eb )9y圀u s&-C~KkE5 -?GD~ W'ߠq!#bxZm@{dz$W z,ZyPqL^x/{BY7~/>̼dޙ=jĶXqUE+A EC6z[đ0W@ˉJ,>ӋG H7NbPB'Mj5p0-'7hѴa _#7W51 +ħ먛.9 9RDAbr$ށKN4UP#0f$NŬCJƗ5po:@ c|bN\ž}NߪSz^l'/>ps='5n/ +3vXR~4J3緍qpIMYC8z A-qJv^Xo#{\@G9%T ԨN9 M~~j4-SPnyB%ײW1570){+Z7}eLX@Zs4+7er7D``_@MB_U4i<`pL +8|YZ/$i4Cf"SYJU +&F'$r QN2Dc!br%="Ѣϼq\&J?%4I22%R͂3ch?(Pp$ +k*,f%gOfdn &iFĊS̻tP/aT7L1xr܏GΕ@J>8ӥ,1r4J\ ]:T' X8\uSy8J̇ق^\-lY0 +Q6+-kZ[#doU-jr&.WVnJpC״tiӞ}durtK,kf9^鉁p/)UY)vWj4=h(WS_ yRda9rt$2o*[| +tEK쳺:Σ`|,p&X1[cmL 1h:50p4! +Oi%g7 6`Ggs.UFZTs̯ *ssLcg;rRb]USR,,#$SI=N!߁ZsEhfv wk- gSۤ)3g $ZAȆNwhHM,K6SO..0s,pUΦ.цg*ڷS?iZ-Wco㸻`Ιc]+E>œG5@ͧ.}$Vfe(v"Ȇf ?hě^8+1pSgxcib0$h|ͯMeu?Z%uN|f1C:tccFs:b`,7V: &ufaUpiAF|E")+nn6Ksrh@ڛ^|S3WB{3f6xsqQ4:[U-v(e6e*[mn`as3L6TxQF.j7 1Unp6e-kU޼ݱYw@x95^>i{Aa ]*@:Rp) 7,śtr:KO`+0(G GEQ4z?Z} kAQDRG@9?(Qtw ]Y~'CFnRI*یݽFZTTjQA^^(b<먢Dø1䔢vu)iOQ+㜅 1>)o+r'jo% ^'9J}iW7ЪuagyDi<C 類,t*,QEtjN,Ofn;P48Tk^n|p{Km1 G1xWjqd(Q*p`\hhAҴp!PEX!/5i_zPLy"A=>ECuZDf؛:5Df[d-Uz#ww`] #_BqK*_3oXB)/`M4n-hOo잳Sҗ+k'A4Me 2̊RUj |% =[E~1a@~(_mhCЀj=v uHY t0Zґg+| *ɝLY҄051."!*{ ~!xmT\Dh]g0U7nLU<}d0,DΝ)@rY*4W{x eH-jj'ԒҐSqCgr1kAa ]R }`l#(> *0yHZd1Kdcc$'eD{;S>_5Ap DׂJP^3XJw1ICΏ\=[F;e ':+94ŷ< +PŬ밲rO%fM4S̟4'M#eϗ.2S.m̴eTrl, 7@RPAZ9{T9/=J)#X\ SSs27ԥ?؏Rj2͕6NOԵ){[w ͟rm6_# +m>#gh Jub8`vd, [ڥ??lE]cp-R^QIDD WUyW +]$U$/Bm;1c'L]xie`l}Rb,  J8_z%^Q\ o&K3k}Jl4 L&hx6*트%cڌB}QIKPsLpuyǽӅt'1{T[@А1~,M2hN+,5<Hi w!g/eSшR +AȴE K#P3|ז2L*Ln>rw4\K/gW{Гìj=Ra bآ9ЇE +胃=7PSpfoRq$`ʯu_[N1K&G xp k;8 h¹,Y̋Ѫ榌E39ľ ?zù5qquE-|)*EFMD'P/:~մNyy]U#N?zQP*kA֓&s<=K9Nӵ}g:ȲXP<vmfs={rZҫItJ)QY !C:P ! 9hhDXn*HPaʇ<<|G@|A* c·`S6nHG[񆺥cihN'k 2 [~*/|-fu.Wkܼ3hbT>Ȑ!I0D]'qF3oU *zz:$*6 +&HU 8 H1K_~GjPb0|U|0Se9NF!K<$Gx|i![vjvC+v2,#l[e8I=n7A>};Mn=_Yj( v;XE4CdQd Ȏ^ ±:-œf3D @єb[ѥthRA=*ڢv3^X#Vl "d:(svو%hZ_AE5*AҟS;G7W[P [f[QtLyT&Y}d%ы1 Ӛ+NOe`W"wKq`tW[h#P4nAJI#Vsݴv+kJ*juDZP{FGXx:fc'dV]ׁOe#26 +s]:X KDsOdɏy+ +0R^,Gwם<50<TrM".T)D{oZKZk&j#LːV3,pg7{ف_XJEٝ9֬Xxea>w 3_ૻ^cv%mDHV<[RulC (8I+JtC00& g94Em`qIxc(etcFz (аE[`(vqthnL+sC IQ*@^׎wTXrǖ3Вt88I2](d"ТQ/@1iX.ѐ=t7gכH{8mBYI@ ==mɂK,`%%RP0qggGnm8܀r>/ +B|-p O{P,N?ChX%`վ.30vF:95={0U%瘛UG {yGT44Gho nIJH&@Gpyo6HPm]sߍ2))7h ;7+t~\/ +( % N2gLHlQa6 pP}M8RAG}/J#}>xkVf'/Bj/'## .qa'Bc:MUN;Bי[b;d2v+!,qZ3LgIf~+5B +>`S +eSWSz!%$p@+Q-]7[*_T`/+Pe02{ȐX"jpj9Y%:4,#`BB?!G>d Dta}n6g\#能츯WVF ?ww=Pk@CPzB=ΖSoa/Ũ(Y8MA? /`b/%y#TTr ܄gnWl&]=IU( >[?Y}F0!a.d3Mp?2فӘAˬ;,͐8)VZu6*`-WBPc*AL\İtmw|pji4Ӹ`"եFTi>bIJ}֎ EW;yÿJpEWZ`I˞_7 +tTd7}$;Viiݓh GR6yd=q{b#ԡTfU'Ǭ)򣮑%B, + VRoBG0AEG7p_5<2Pqm%xK^nn;&\M_-}/!W(А1BK&K:kk䫠0֘*_ڤ[SMʵ2^4PktsU .*t:/bps! QءpdBEedE@ա,M&LذHDP(b Ӥ&  NT$T1!2`I BHbz$(<!!7HU.8B0P4D9Ę$CJlSH Nt 20CDZ AT&A `D  (u]8C'Q{ɃLaȩ}EH?O|fcd^DZ<FV +DLfilCH/ّy[mȊ}I)*EExSq)Ѩh\;"-*ӴKf\k_1sC|6Ӥb֕dLb2i$HH! KRJ9zQ#t<ڑ%-D܅s (ƯP>FBLf߰B-W^$(AAEqr5AT=\^j$f4 55n1G^lDL҂.ժdC 4%zZ>q{ e(=)qΛu^(Oh6m Im̥Uև4!`rR5n#XiHXDr*Q2QR,)JVFXU pfJa: +J:O VBUn (%"|W2`ݻjhN B]Ti+ݵtrCy\AL+UUH +SIO ((}^12 AFfA5@ 8Jd+s.*z5.Q0S 3'TF"h+ Pa+|zJ0EY\AL.|4 +ݺp@ Ctz6BCBA( +9$-ҏL +EN 16;8iUd m3tiy?}YMb}I}#4D6@^LhuDj+j|4#jxF̄~@X}`+ (/"nij?VW8zr/ h>ӠTRRE۸z59Tgp0t7 4'&ƒ|ѿ2n7mqNbkj&F D rf}եkh4NH;"uRYNys-?!xPu`.h,buDU:c]Ġ{%JuG]y!dk $>qSHb[*=zӀnI2Avd{illho%7 F^GMz'?'w1l3!LDSo߂tP (@5D:^*5piH*r,$_stsFdrg4=oPBZ-<~思R2T!Yo_JEavGi;(}(6x$rLn#`BM7՘sArZSk-׶OtuhT1[Q0o ]>jG4R +:3h@N#>|b.UԅkyEpA,bɐD*H=KDo8Ʌ) .ʳ`svAe(F +ϯ.~s,As#`6u_i#JJ:&QU]WcyvXؚxPD ^yoyӗP!8:s* ":seUqnHh0Vk<](jѓ# BuUE_j$>SR;6)$h{5›$be+~dʳf40̽"FA bYC +T 8Bnɀt#|d;`e:~K)/sͭ/gh/6ԝ] xVEs2#Yͪۜ'3 "=Z&tƠ;8n0'P) ta7۞u}1Ri'a񄔱pal"S8jdI?ƒine3]ߤԞAl ,`oNL0jf&7xhtdC1RQ޴=m0Dj$8++JKʯ$ +åHx㌪kmP2㇬WzQ].14vLlb h)ƎC4I{乘v`l!hnKji+֗t\UȽN廐{p!=;жgj= 1alf"2QÍU2e\ ` R-bּO ڗI("=@N 1r1CGȇ\d7KM!dQX2,r`\!&xyx/>V25' =Vd9kKpE}sp~}#*Cjȳ Q"!z*{uZ/%Ke4r]h&n$iU*9m'K~5JR"3KbiB˭ktvq h_BeboC"™FeMR{ƺCë/Y_:6ą[+A +VPɚxÚVLY.TwϓьY[T"u afoG Wzyۖ1,࠹deœpՈ0CP&}Y"lxF'c۰' Aaz#BP'7 +am0!H4'w涴!k%t籋{vwl\%JO{ỏR%Pljlc ƆwHD'2ȝK L, _! X9^ j&z`Q섮 Ew+EPBv_+s|$:H[~cΫb9V U ` $lxmz_Qv,Im"pK`)\Cp%}[cߺ`R4()0AX禔/M +BF[ v[-` cv'Z5% &+6@j!; m[bhݲO "|?_I%alT.$aI/OYw@m}ILv;0N2bB%슁XDZQfmv"FSlΔ ʚ|ȤjἨ쵰|fw~0I ^NdW6 l~:ÀFw~!S֟<ʁ7i zc?4d9f?:K<^\# +kc\;AOX@ e3KW[{>dte;JDfu-1$Xt oUrIa$AM'yfse5w'B8сT@eKtmo@EJe>%V }g%DmI>$8XDWSi]m|Ft{̖9͘  翪63 jxF(.rx _%3@uۿ.裳M62rk%v̯)ߙLLBI'ȐSEV-2z3H'p"? 䴣u{ +)!AUYGF E(^;=Rk"[I,c4=-U6 =Yh z^sMF6bMqK,$W_Age eAb9Is̽ğ_XӐP#Qp"i¥+oE.p̰vyX6ohe.D±N˜NDtyAn.WH@7iBpuscbx wtPZ Ӱ+7Ni>y`+-lv#/0e3|+߅mity6w ȗ%(Ql v M(Hj,Qw(:껌~:4 "JA `eJe/?;ۈZ͵Zj1lxf=p"jO1*ݜݨaU+ҏAH UG[?6?PKv +e +x LoԇmI(@Mv5h!DqRlFG~1=cg;s'P^jZ`0û.2bdqOX0N ^vv': 'x0LbS0H5PU끸7 5ջ/y4=fX?vO֍R x]c b*;KuYiᾡ4_]h $lf Ҵ2dٻE3?1@":Bc#@/̎Ԁn YKߙI. l_Ʈx~?xʵqD +]qd`|=A\m@}¨D%GDı;?Ș7ndzc޺qRN7lK"כXU/b+3:6'(Mh\;|,`,:yMD't1d;!L) θd|l +uZf.`b&кeATjr7u]j*ţ0Ŕ6~0S}*rS=E$.מI94Ml~uRi(a2҅HJ.@v~ /00h s(wk!Giϋ +([%#!=HM fo@t/ +S>X$Z Jf-oغޒڙY 373w9voeI.a<&j6rzhv>sjg7/O&i.y+-ןL^K%+ܘW$dp>9y5TB:#ӯeKґ sHĀN{gGd/c~m>ia#Ν\yY{+aԙUۮ~#CZh`ƕM]Uф[,r^ -_ִ'R@oƏn(Y< 0<Ƴ/bk˙Z8s_hτQ 3mb.oHl>g+1'6KE@{A")NX>4l?guD\PQKâCK #QbɍS])Z TjH%=гSZNΰR?+Qn?[ay+^u0UU'jY#ʲ2Bsvl-/Ra|oN-]ž&_-!!xf*q|IpQjT)>R$ +rq1Fj*;X1aawGC%EDsjklQAdBdt`5PJMZf[l1Rcxcs']bde/KZM tL5ͧ1Їb|{ƙ)Y]u7: +1yyjmWBH7m>>dbvsr@ND +"n2*jektBy;ݢDM#mqHENp/(R, )T" bU5 N:a65eƢ(gPHtp?mCP3LV3hB=s]I(R(uc{ FpMZLw: (g<(|y +UcD%ߺ|6NX(;->p9_ 5Ğ-27{,'z)cDtq'nJr.~9{V,wM՟/ lP&w zjmcFJGե8xVWL2~c;%)ϒqp'J z]l*rɺ}1z^%ɢ#~AW?ȱ5kAuܤ1 y@cȒ"Dk Ydo}fs! + 70cE6 s%0 300(i1Yڄ xP HO~)E36.pѵ hg3"pA A* qwâMf|DW-E0f$=6@TDp7rAoӚxoP(p8 OdH9XD2HsrxT +6pV_g`q_`YD[yx(=%vz&D|0ADz2A|!Ӈ{m`B!!~έaasy`K7a q1?| !  \g!Ry?+hDk!"CrOXf%j )mIB?rqP#g/$hBB #v9F\9CYtj8~1 $,1*](UGLW[%qIܣ |P (%H J\5,Q%dہh0IJ@6o4L`*]r`L 2e3X 7H5᷉'8 qH PӉXH_N`Оp8m=8Pkp& h;H(t‱o5v" oh0,$kvmqa}G Cp:DX X=:4ơC1Bڧ#8tKƍ8G:Le|ft@eAb q~AZ39Xe n }́{ @5wEr@"{4̛`$l_hi؂(hh:$805ǁװGq #.6l>Jk8 P6|a8$Psp8 {~z \`6G;+7oDƕQwC9߰93bڒyo787@Cݍ<5RR7 icA(oqN QǷQ9~%]mr\6X2_). IiE(P?$9J046p7]}6fC`ӱ%H"YDOl!W6Wq2"L:!>IcCmC_1drMMذt65|iI^1G蘿5@Kx[cpD?߬QY&V]ء㚙@mj9R95Ds}psQH r5t: :WiM@pӈsjiMQnChIxEpFcSs$M4R*CWA]H$Khd9B醗eW9tq34IicqUr.gH{TpP4(lƽ04U2Qq4(IE1YQT 4/\F|{e`We 2B9+G&~$#y +"cdP691xV$kF#*}5ĎѯrD1ib)GXC'+nY \r$x 90f:"0 0Ea=c@`1: +rB`Ĩ#`l__D/J)m942_hAMFK.džd_f٨0rC#pB9u߈Cr|x0-q@_s\3s@>_:νp>hދrXE*zɼ7yA :H "pŞ#uq㛺.0.8#3|r9 xak \PoqW:>~XXDž8-P(vaֲqExZݎ+BjpO T--hA< +L &,!y@VZpo,?x@z XЌ6ł 酅?8X8vBT~_a?|$+,Gz²WXLivp}dZ#[!%? +E֊L%fG?Mw'& Dn:ƜHAN,ND&tPsH(kBJ9.;$U%lv𮙈Y&pѮR^waTlg^]o:]萸1K !FJP@iQ $ZY3%!&H {Eg %>\Nbk"YL dIdD&(a'8LJlp59sj7щ쁾:We%EvN3T$Źsȃ40(xX-},PuC8f\Ef}$ƵZ<;EGu'QDwT*h'0<OSDz/!Tܿ|;Q eCx=;Nv`U{j5Z8>U|Q Lz|H )vs(ϝg6Rw(Z4êx ;1qP4ӧ}qN0@N:7@7TNzxC ^GX۰6:'kssRm('N3ʉ A$=lDu Qul I8֠/-[RNQ R-R? 蔱Ц89Ioފasbhh"| B:1N;`+l'DE|yd'ߪz2؟apOP πoPr D#4P. 9ʝ ec}(j  =KV ΰl^ꀧCh1>pkAH!d+?T?` b~ƇΎ፞(z C6QnB1'h~8CaV5h(EB C?WADgQNC|eΰ+ +2V25RD[\2+Z+*QܤJ1QDfk3Fd {C1!% q:FJaIc@'%E1P)X +PK6 K 0ea.Slk0!Cja/z-' +>- +u[|1Bs͠\`Ȁ> + j| z?\m ޖ"1'.p…ts揺Nl]삲0]6& ׿c/9@˕y9%Uzyi/GQ{/#WHb$l?_\) Ih_Q!A ^cGp!0uqG31)`1EXKYy w@0c9U-G1gdʙȥOvXfNO9?A&΁Jq3mNW8X\ 78"zHPn)[| +ACc6Ȍh* 6څ XS%xҜO%6b$PN1ꌴs-{#@uF92ڋ~c:gAqq&TѫX'"h=zx "iMCC +ш;g;_AH,I{PCh=KP6P1VkUѾ7j +B@lJjPU>ւ#}=ܩ:ʳ!H|V'$@T@EP|@DM rd?; G:z %ᛥ巘d8xMH&)&誻w@}xL'|w/:'57_gÇD2S)FӰ#rSi(4eX[/N–w'lXa}\)wߤCۀܩnKs:yskm aS0&[6Z`96!B1HrՀVL2dL%ۆb/ Ĉܙ,8dcڱ/T! wYǀFnAcb kBa|`3T}B04uDV ʏ;dһik(u8 +OW ˲^Z *b~a@`bJbD*o~  .@F6225WMQ|ْ^6b_Ve\WN@I/T) c&3E!333h*g_}TVIJRѡWp*G4 9W$-!_u+M[hWlnQh8h?y-{$!>?Mi!r!r:Ā:E`ՋA? Vz_uXٺ$rqBT +93ђNpTJ~Aw5*+9`rsX|&! +zwk@+bCw{ze" +2 +h1Pݝ2۞rnpJ/$P2$$x!$ܤ@~| K26I N 뎒95 P1b E f&,%kiP|FXF"ۭP A!' m@  w?ĸ&U!}xl+ JGčMu8PX`vhb"/ @ TBA;TnHbipi>05AM&4D)Qtaxptz@w f 4T/11f-z1F]@Y Stةx>.,u.8 +̨fX?5\b@0c;ƭssMݒ;q!.}6=XM;ظLXku:yrrn4I_Ͽ[>TJs/6߉ؖt͡$v3fG?7ԫRh>tƦ]`牴?I~>0 `)JgS #Zce{f5:\HؽBT9h@ЂW)+Kk!y H`󑀲~x㢻dZ?RДC#)өJ/i]wϰL sj։_TCN{ +`yt~MoB? MZ/y'dts v71pC33;5M=tF=]fS"шߗ-gsAGEh2_\X^u`ېۿѡ?wۅCZ<տXP2ac WG4ej_-c+TIKQ?b_эN>`͓ VJC0q~E7?y{ύZj{jYէCU}1jJ~(=gq9kKYC=Ei}-(-*} C^dR9 OwAȪ륺,yw;aN^p[Zb)'܆g~&!Lo|yo֪'ϺTo%LZ.Ѷϗ$0$8})/Ew +_ǹ71ט^sLzj煡F +0Q~Uӛ,3i }% (7U/` #^[{Q>=LRDF7mLYE,.&/34CѨgw ,qx)2?Anp#f +s +rOV{-*&_+{]|K FlS w] Y{`UUa +T'4t5&0~) B!Oc"ʈ",f>'@+?7b'N |&>bM|lLd Kw;b_ U\0Vs` xe4d9@AJ|B1]z<FQ7/m,k7T]M1'MVV=+3$ 7ܾFl+y<#ݿ-It+,^ŋ۠۞"|v1݁q\M~ʨ\mWi0SOo;_hﰙ!/+K' ++x̑ c9'{N M*W>j+M$&2wb!. գmCq`f>Fʷ>daQi? ½K%K3"4NWG7>jU9ճ^)^6 +3郬hCj/lH2dK=co=9g঱JѡPam |軐_d6i_pkG?mЇ >Pi;UQf7":N|I\aꀚ SwV+z1磢#rE &2'GIAVq/8a'~7A` ]h[4:i;Q&VbV482cgfO +9Hd=,kرHOjRfC3 zG!HuyMZJC_,xm[yN f'[w\H, <Ҩ y||=}Ìd!dȤlB%3#*6IFFVU(?9(&$ +=GyP AvtT[B'+ ހO>4~a*g|VB>葘3-\^sK}y垼%o'Lؓ!c>@&i x5%fZ҇E?PdFNՕ<<y2v;:ȯfa5^ٱoQαg]op +U6^'zNx|NT-ׇhxy0WJ.>֌|+O< oܙ99+Q!cNo4p5/$ihVT^mi4NEjV Qe74^ +r#@tk9텧pbSD3+c /NE/ +qr>N҇~eKq%gw8[gqQ$.W?Ԟ®߀o%O_w DWNC:4k$,S2F vҬ\٫1Eiz%Nk2%Ӽ ASd'^g +5#ภ|ѝm,Ͻ+o찹oƱ0iWct~TMrPsK:r1[۸#Fm%vk0^?-868 +cws·2r|wsB (+oZb^e ef')*%tkhX;)QKp:XyB-a;yDr+ikz_2;R{;icWO:ΞXѧƯl9{nD1{3*B p8ˎ&Yv t 7?Qv.ue=G\jܦ?((qc?GĪ>gD{ 2 +2\b߀՞SjX(us_Pq:Nkص!efo{ijaj_7vZA=GXd[c]_0Sa[̺bܞ\\s[@|>W׵`;[/f&fE& i';!Pk_0UB, +^bBǺGV 1w+7p:WQ})CGwWrhV˼L(yV_KujJGOaghi>Zq#P~|[6%E;,Aj |;{7.8^eT"K;_Idkk|c!-|͉k6Y*_H2tnL}Chxs;gέ[1?f3kBaYoVn Kw[uø6giR\ʓ| +c-3PmY9^=tK9c4G-ua[7-*I@aNҨJN0׏k:Z!`8)P+=C*/״V 4P<|tQIO\fya,eۏ B1WX%ˏ7p<6P᭼:7*uc*:wRQT5#t2!YB=!*QrPΏ.dR+nCtub% Ơf(ߘ|z[Zؖ¾\ 0p%f8@JM+ +GNRW9cn". u܏EH/ Zp +!ߣk̓}'d +0<}'s\^O_*{xAlħz(FjP/N^C&zDSnD]F}RY!5svuh~ wSAD Sjf(T :7j޽fB0xNYA0L~ܠ1HH >Q;Wjə$:U ,VA]"oSgM[oɅaI+>58 Ā9$)58v]'(m,a}m +wYoe;9nʑԮ?KpE?r:16ZSȊQc18! A|ڇ;Q$~˒W'K9V_ACĜtߧۃfp>pa4pX (ڶ7gT8Ee 3x8k~!*q~HaRwbPHSQ"}.P eV6iLIa[2l{o{̳ҘjoRA{/s–!)NxѳiC(T=usF۳neƤ!*c ʆLCnw% 󏈽 &Yo% +e&fF' Hoxq@jfˬHUwpȚVP$rW5 >CHb;4p^W֯'s{Zw.&2!U~8iAwcȳ9yJxf;ؒ <2{ٍHY~R$uWDHnv;+V7/H!\w~R7ڊ(#a}aEX-Nr+MD=@].#qK&WAh%t*65 ƢyC o6Z0D!RN`|- +i )荜s'] +Lߘ{#kӍF(c0z F^L/Xw̍P F{;VO`̽~{\yPJɪʗ17fd7+~9`s[ nGe4 +1llLA1)-`kYSE!;X+'67q+567Ӿ)KPF[/ߐ~>vl.|TNZYs(3ӹ=5ẘhLe.]om 1d OCT$j:C=5bҹuZUFܹ>/\:ꭾ7d7܄>Tn} ԠQcs*\}ntT>w~F{sB stҹ{N!w_/=> +c^/`UnmSsKs36FwV1XYTs NT:~~"t! snR |hܜTι0iJOMjn! endstream endobj 12 0 obj <>stream +5dəH5w\t7h ,YRs -O5ݮ2wsK#}n;cE^I1D>1Mң|Pw;ҹ+ Xs07VAJYx *1С~Q ׯ ./X3kĠq7 "nN p7YČ~s_ADPq)Կ]l1\|bn=ciA׎q8m!IǏ2r.iF6LOQ8n'*RY$mO7)guVU$ bDl#apW͙b7ۺX69hy|iu6CiƕmڊXtS<b#iLxoeD[p!JhtL[F%wϞ,dQ6os6_(5BZ ak7H@m_fgf!7Cb>U7yMcME/YQUe',KJc/Lz-L +`hеoh-*r|>c==?6XStK6ѵ6v܈]0A2j.Ħb߯h T[3*y}#A9v +9gb֪ +I)J1Fu4sw94G 6ˉK+ ok0] -H$hk靝lF +^]׀ֲ^R"Pc "]n$=V(+Ma.w J续py:RVWqs߬Եz):u>@ nŸxj3)'9f!]izk&=zozd]Lb֐{@:G[& /aX9U˯lI.džA&@ S\.E\ O N W,X%GҲƒ#[n\J fCa}~;-IkKH }5DPy /31fJR VZBɂwg5Ar,k>/?8=SΪ ̀ABTմ,`T9&z׏SLT#c9Y!{RP 񳼦ޤۚ5ϧ=&/ڌ5kB iSJRh]𤊅lB(d?a},h5jZըuXAmQ!h&QAtjU6ԁ3%cfOdzոy(F#°a4t0G=#˶CV9PPvzsnR:im*9 CI/8]t"j|\I[ZFC28Hvy2l(`8ߍLq#siRG2kZb* 2%W?/j0k0s -=1~gJ>k;Y'}vwqH0=[HHϹ {ޘ\{L KMokZO-&yK^乣txTu<*NY;zCLl+n,qQܣ84R8WzV=;u 暑oO4NeB yO*g}9qZbgoj5~Y%ߙ[;A*8Htʉ-{'="=kyO>#?ch4Nڮ%?!vQ Vf +Vє# AK߼ +Ne"O>hy6?E[aYhNj U 0PqʙHBꈚ>S+8&ͼF٢%@y=hGbh X[LꏎC*w[9HnE-O>䂀U#2lՙI+\"\G :)^PkЛ^s[?uQt̙؆傿^h`0_6e[db q !06nNPL܆5ۇU9>؁ + 0(.+!0T D"tg|ڛV%|D+̘l$8T{(R vXW^e 8ZruY㓕VfK+33j6D<lx,lzKh_qDU|F u'iI;-K-isOxڏ(AA +s՚|ڍǷ5\dך5XH9ʩmEf+Nm#{z,mDd5n 3ԧ{nLu{7"&8h́B~-oU> in =0IyNqͰwdܷK1ձZw){6 Dr;ppintrMSYJƬ1Ʃ@kJ^ kt7kb!)NPQ +vM(6sˆ]CmWV]3vvN7i!s+q#Dq$r{.oɻ%)w[Aἂ E~z=t{f%=7{ ۡh)Cy&"OK%VBp0^_߭*uΏ.z Hbjߛ$1xGr$[X3=U8WՃ\9_-.MA"#5i`JT`7BweGF>=UR#Y&B\&MDs>u#L-/h +]U~YLt7eX<[ AdVgZܴTGJ%J(J#BHf%n$Z0ë?5Y{> +IJNg! Nf^~J!A֜O=0/,?sv}reM˾55 јq0 B:ܺ{Qj6ؿ*jtsf_;qԿG7ӽ_*rW}R@>yɵ@[;jtCm$`Ba|~O/-[3# +2,IMH_kF_(D:mR)b%' lȹ~ė;Tޖ b5CDZ$aLF|?+o /qٝo׭؊LD:[""0e (J'NǻW*t_+tb\8 ܼ2+ïΐ1\__rߓ--мjer_FE"ZOMj}mi`rj#I}StŹ/h8Zk2Ê}kY*ǀ8[@}ゼXe3kkQ_PJ{|Pf4ZIǩ f=\a +3=9m tﲱs}ִUPǣS:oY;Ӱrsd_N}͠ nCe߯tf_0C١}K&)h5Kcjh2E\쭾0/Μ N;<3ڷ|1@cѾ3EM֒#Y`cղ;wIg IX)3R1^nފY>%:ix`in]S?"Q!|q-Y+pdyklvqD3(GJ9 jcA͏;yo 3T /q0c3?R^cjs܅ ۃ#>.2FodIXFO!{ >-}E(zx]3Ԧ=)#.)a~ِq_Q"n#dDt-"‘HGQg%9ϬpX(ɘȆz2w@i1I!m +$ $/|J@DN5 +PLZBgY:3䌓>%T5K$bVE ;~K2=p!(apŽpq(gNbTrjL%|T0Z*1FxH]drURa?K¸䷲B;K\r]&A\IBRQ!HKw_ r!,՜ 4O.ywIVI3ΧJ%G^3O['=Z\Viwfɝ UH9V,ozrdQ9$d<A=A 2A%wt"&W 1\,hd˘y+{MޝVz5MkŒ.g Ɉfg\6-3"SM-pw)#Er9) +t?6H4$nZYl.ʂ,/KX2c_:b~eӧW>;ᗍvJq6f,NkK"&33B Y@CGfv&řHZ + ;` &H3UL)GDrL9Kt4ysRjgwy~PvJ-J$cl7}88i d@@϶>bS,{Вva3Jdc^IOX^sқh*rǯhҎbdiZaj. Kcbz:5}b-=6Ӌl^tU O;6 uMd)5eԆ<DtF-%R%|댯vW:xc}*WʿPLFYИI=5`AN b#-P2w$Ϥƾn=w'Tw8B׎٣vt@K=j!*ף!o2aPR {E-S*2BVE]*F7h~と}пONfQۥ^"YԴrQuFM:l(P$}>3GĹZJC]#JSYuD)Dh2&= 5.@s:pu-@$ jMB5P{ + +iaf`r"4²ÎfNYk +(8Poqixjn6PK%UimҴ!z lci?퍧]PܝȚ/Q%҃@E/q 9>4o@iBX@LRE#cmŴq-5կbdo7I$u$'v䷱xf6uԧnx#T̽~T^3ȕ;-WpUWϭ.v6%O: <ٽqjCSWt׀"hbYdBҬe;ލ Xkݧ9|IZ"ϐ-6BZ ﹰ +`:]bh}-XYD^cjPgYڕ՚o@ kmm^.(^YՓF9֜6\aZuu{G[+ּgP/y>%Hz>q)êXS\5iŵny>mv$ŏezW\4U,ݰH^K-v)Gw[?_654[hz[֊v1=#I*>Vz) o=ەfwݴ뙿bۼV|eDgzگ&"-R} [#>Q"̈c59vPAv@QN4A7Hf -vTmvB 6ٙ^D` #u?6 HH͹2emv%ص3`S_eCAim/9!XF`d?t.{Wܘ]ϸ1bq`,m +Nq"\]x+{CtfL152vw`NL]${yappL;L|Q`7]HBJf;Em{6Loo'<81r <- 8/g_089 ڲ%7ԅ y5ر o\tkOhqc=yk;&/kLHƣ4.E sth8d;ѧ[=unA~`n9#_LƋy&G6|4ʙں?) +s\&,vҊ@L\̽4sȌNbKGto.5M}96vF In& sDɶ `rASt/tkчn"tV玞sEw2qC[ر!DHR9y>ri@#@@-urV7HMǴ+ը[A*bbVYEsZ\7~ueu^P78gͱ}.O f$Ө"Rr_i 3ڝ.%SSP^CtWIpc]@8qw]Fw ;cmGj./~{ƨ|c1=Ÿ%bj)>ul{neP/b<.xlR_uD;Iǎo>>Zx*x|:' ͥ@%x&"~|`!9$+CWu xeɤbŜ!١oNxŋmɝ.n" \ T:}A @22a\w|0[t. PK)\<^Q=lW^7Ƀ7_^NʛXybwܾ<ݞyq ;97NG7$'OO@ZlSIN{A+QŊWzI- i88Ej)=*3}s!.c5o{SV'<}~B֏}v]w}:K̰bpȾ2L3{Yhpj.G%7φ\нLP8hһUU={竚{Ձ?d܇uwQޯp&R5's3=/&Z` ěm4(+Z,8Urƴђj}]R@1FkANa&++F37VПk+H/S\40%ieӧ]JibAV8`!L.f|>LaUCqAbkU/8z)Hj`$)l@W醊y;&]x1Đ=u)^J,Vgfį0T5 :-z)=!1zdq0G8wv['UfqSծ7(K/vȵU(Xrr5. +֪s:Ud!-CTMl).  +چpR=56 n;!Zf,B;Bdi (7LLàXI8;]7x*b Z]^ilߗ[|;n2dÎմ™"P$Ge vk +P5G1+2\f jxX=e߉:h8) )$l}y̸b#|,8 p0Kkn0.. E82U8휩Gqnt3< ">q^pI;o`{zKRR=JWݪ{!c#J#2*b_~&PC{Jҁ٣Z}0EO3{j5km:cߐd WFژү#(Xqv7- |  ְpr\#Fq5p!\Vk0.6&u4Qә y@9mያk|bMdiZ<{rW٨U1&a{!N{Ŋx3~gOdYĻc<: FfN`3Jw|[R$q/j0=F)Hs8b/!( Acg Zc&<Z>k&szTlgЬ. w9?~ Tl+8X''4g?"Q>6;A7*A>kuz}>ZGlg<I̳2~K^e٬}qbߏ Dtj){9A!D\LB g-5b'}vD }Ob=F:tIm412{i43}ktݙV:x36o9¦[4C:uf`6r]fέl#M@jNPBƺY{M)90A\:gԳ\@Q +zSǝed\]3G@Tl7m0}XNsX77~ :JbGPb#`IJIv%6$މ4|7)e_#uv?5!͚j'mNn +5Fl!/ZQ W-!% Lg4P~JE^EDڽe=Y/zï8v_&oŽ(swFsYL '-zZ[<>$/5~pƕqr6'S8gJ>Bdtz-$$OH?ڵT}4V MA anώjU?Il'\@z'Sq=}H?;ugQa@~QA̳m< =}YfMSzGGCZ~-ǒ/"U0HMR~PϮ{{ZEOvУ]a ~ː6F<ލӍ56rS;R(/@ur%㑬Y>(%t"RIydmuÒfqIX uE N?(n ~Fg}out`o cF`"a8a:oz#_gigh?8G=JA?¹WFĕ6q3hu^-SFtDs Fdo 2ۃ&R)/8Eݯshqt(ҁ% # x,taQܣkpO$_tصzxn),!\\F>ү/\E2 +SF,^CmoioZ5R#H=ƾ49]sW1>}MR%{!s@)R7XtD +M?>jU1/ ܻ"mp{a6s~Fﭾ =a(6jh'x'x =LE6!y3* bD!KN#6cl-63 +Qnú !oB>1H_il F,~%A;r>̻c昹9;E}YN00u}eiyvhW10%$oƢqٽ HD}%UVb1F-K`e= nJ55oL\9رrP-H 4o3W yboUcs蜽n-LA/@9x`TS'=$h>},a|Tш&*@#ezm&PC[>_*O@/zľpW5ou`[AG> FILDPƪQShyzwb?.H?#stA|6Q堐r>|vPd=4g=A}wNر3zn&Mw yCh(7~uvΠ-$Us67f6,u?}:/6?{ +dǺI4/v'[ +]m~úKJK `ZVFF"B;kI,! ( щ4|'i~?bޯs4lfxlD:Oaʶ1zgٖ F}23qttٻe,v[a^=y]jyoM!sv݆u1^(=_29G`5h yuH:I\CPhF;`qE.$M7bgBv’^f?~>[oL=փ l S* &ؖZ<=9^;;uއqN0}!I?s,}8s}M}C:;/4(}QfO~d +N4Tg=y)⿢Y#h0}>6fVPj=}>wx͠3iN*Lb`EwOC&o97+9ױ|Pv J}8l+uuH2aF?{jy/!u jE>!^a}E=OXVNt9uxMA@{_H.Q!mlEyCJUK`Lb_9ؑ:Hsyv)]cLhI$ ~"_0 g_NTl#mz}Уy|a9CIv5QF&>$O#ލ鵟Pmbrb{{7=DgEEw׮ u;;HmB~v׮|!>{eG]Hv6,~bސ%cӝl!HTFi|L v2wf5|k7~˜Lu4ZȲK@N,vIed4&0EވS 6`\m#Wu8o#qv/ƾ2k| D1zetL|Sk3:­4n埧c:w^(pLq39lϢojA:Zauļ"Ρkkj"KT +*P U0EOsv={W++v_E4^\W5, +oTla~H,4D#~7P?jU6@Glg,K?[4}@[i|NA5|r]Ǝ?}Rזh7@pNm%NNm&Q#MAɓЎqhGr8 d]kWHݏ@|MaQvD 6p> 7g H&ؾص;3f$}-s 8p{+y}@|?G\WjGcX6~PeY9.g62wS8yj=Fcj23g[aζ3{ju !k1ti4b ^xQzJI]\W9;ZЮ QzdO߀)RMO;sw&#yT$;k3?M[*B=06TJ]O~ l A +~ Ǿg/}D=ȑ}/HTC;Fj.}}7N᜗SkĽcxo|η y<{|g:k((T顝 mB +x/qGP$rB]va?[4zowļ#XgBnTG0IA>6!H@mg ?xФ1ue4[1ܯa VM;Sw6pM7yoܟco 0xց, !Ǻu˚'{i^=FG 2i2MZžZ,r<6kgf}9ےCap>Ǖc[ll ߭ŲYCV!v͏u.#c ~M\ILG mA#Jۀ_~E=_CVcݺvks ǽ_Yp#vzg">{?',{ŊhC*P +{ a]S82( 7%gq-sVе=zGQ<7PAK)k }Bc,$MB.ѤSWt Kaf7,c&1ui81CwPߍw q*˚<\&O0 T=@zx;ry>nGgںM\7,`Pvfm0g=6uC;FǾIn"HvФqض{C=,,A9ݹ g1v7Wžyfkg3y]0z\2'\#y Y4X]Od^\fa[~&&¶&M9|ko v{[2{i[ź1Ё`%Mu&3:e^ĸMVa1,Ú&l9^sxg=zѦQ}?ٵ6 f`u, MVm(:ԫw#jB oƽﳈw|~XζtE7jbx/o6Y\T`":OW/h^bbʶ;b;f02zl ^<6(yI#w&.gj\yoZN[1qh56/y6kg;ChG,=qg|-$gMv4*?Nݷ7s&P$PDF]}#NAcc]T)h3u&O0(^J`1QƐ;hs߂u(C#ēgC1xS;\:ćE&RLPA1QD%_"8 (C@mvo@N;y2R~.<͒2F,Y|j:N!9(1:L5qtj6Xҵ땒a$C~z))p1-*^AkK^ZVBYVV I° +: `sGMY,!,G_%3dgI&*m{Ȳ'`DLGd߫}]&VȁӑH#f ,i=e)qc& M@j`~w<"V6u\IYP%^.4:Fv 4Ee'$ . JQҿM"W&BTCdf) E@'?l5U!x`|&|hd~hD7.di.0?o`x(W7& +lG<;M(;[V2 !z - cjX DJZ/;SPi<2n,n, Ӆ4T"( dE^bߔE-sF4S@Yԕe#fPܐMܓMܘ2IduI/stffLqpO"F +%al17^ ;-doc,c+9O\i,dRZǤ !GF\ +ADIzB!L*l$؁< d&sTw 8~0ۅy +"JQ׽L%=:?Dr7nՎo}TC1g)v9!栐/. $42’oN%bP *o`%T$-poP@W&lGYDI@#mg,0 nj BcrVy[H0 ;-6_ZվUu{ׄǿ!  fxNviVRh[X؟K +5n&R9Ǯb9r>A42 r .R rЈ J$8(c ?&:*$4BS|d & +m'qpeG[*jNJIeE H7 ++lNB%A%e-6-eN4%+lݏei^aFP-kCXE=F *j29Hr#J$)fn]tZ184ؖƥ0tfR~ < Zdd+ҥLJ\hp\-4ي Y+e,G!?pB, DMG1?P AY)AOL8!1y?hq/PQ;@a;악mKii*)eEp,!ʨ̡ +r>R@=(g"^trYRc ؖ)pc^# ] ݕ uۖ8j(9z|fQY-1m.d8cBKB㛽OL`PPS:T{dDZg#ܱWdՃ]I|]G:g9 W[%%t=¾G 9!,̐ON|<&5K~pWpx4ܠmḟEܠ4a +b& +qʕ9" +f +,j?`a 8@"/V!l e7~c +ik+V+4)LAPU5 }(Fbi ^4v+=sb% RH,+|nHܿ9ʾh<1{id0sh QDُh| [J}e 1SZ82+5^teव9qaÆ`W{!!`ǶFP堅6[m?iќKX9ʉhUX|7,6m_aAeѹ[^b?@bńVCZ XTe +SL.!2WyӾ*]t΀DFpg$0&^L +PE3TI+H)hT7&k KF +VNe/+r$ RNk"-~fjHXܶ?qѵVPдˉ̀uNb\PuuEJ+TABX:g:RB|(4|M=ʊNeD-&ED *<̵΢YkݰP<3#ISog"g%fdNR +PDk1&g1*iDVƼ-8X1,eVCZiKQ), 4+L)+'=sќZzTv?mXdnP@ZqvLJ9QV$E'x7SZx2ZG&D"]=4k&RZL(^PV2ܤO;C"UX`r1ᔩ|PUA(纊ndŗ}5ː=BPTmNdsTv)=~uXP>j)(jD:!Qai-LA+H)|t\@8E@GBG@GDg KFe NJiLT+J[x5-LAhbTP"{*ƤOpB F+dc@R+89\a^Me/${y˕SZJSpba(-,l!hŴ0eU1q#~xW3$$u#s $w#uv??Zz&1ECXf% MH;HG`‘^~#ƻqPe|pv WPk N5RqQ1*w8[Xh1` !aZF!_bL t(S'u^Дx &T2 =Iհ H? $9jx|>̜KgocdMzK&mV"p]=&7tL SW[ԥmgǼ~}3j!\ %}&he "$$bM J(EG +R&oiBpґI+~iHvEϠţ7>zue_j!ٻ|W34iU1&T ބ*黄]C<4ܙRO“UTZ&T*R}ȞCsƚa٫hHvӋuPTdtҡ9SOm9Dz D@E>Q';WSl +km9WX0(4R +FhS +N48$u$@+8#B~T@|6'ax Y +P C%ОZXD +B4EgiuG*PwB+ PqH/h:uIA뇤oZ~@8Vž}2:N❎Xo{I5~r4W2yj]G*jTm +Df PUK:+eҁE7*5N>U UBJIPBϚ +G$mźĚXECSΪ9'8`R!N m"JB h\v4ԈtufL@j"S`Tnv:)uş鵋0 +Lqr stn&%AQaB,~*=Ju9 +<;3I2R0rQ@ WzP N($_(9EvT⿂1BA{ߦy==`hT aAC];~,Ŝ/]O G3zo5O؎CHgԝ/h?9 OJi.R2AŞ :ἚHn@Cf #"f]gٌǐdGH$IL`_ФW4p*L3{j5aصbZcؔPuiaWB93`a9GP +%$^Iv"+f]?LD +nH@ UsЬ\h~Q3lG*R@]D:ӏ̛NLŵIAҭWTyf"ऴg(}خ \FE z`^U +LJg.2ؑTP=Ύq:$P\apՌ>]qB}\S[ E3Ix^DN܂6J`Ĥo4L4J<;ɳЎ䓎dTZHۄ?-M۬OBTYY '$f\O$&UqccqI'hA:w^0F ±)a+1hhv DF}vM3f^S5 T +n@N#g&/w Z\O[*w2 B}vZo9 ƕizУgHԕطŲm7 1i+}5zp7]}7gةy,q +>*4)]Q#mz}`$aYkp%!v>y}fύrPUHۉ4|ܵܞXNb8\/.fgqruϤSG I= %m t_Qk鵩XTP4p4Cv6p=zH@ťt1H!82F,~)W3,{W~JEA}X?ü3{l~f ە-u~o#HBnOX&z4ܧRyxK. L0zLJ[xYX[{|]A:iO9JcLaȧ +*-&%2Q71OP{&2^²C.SD3\$IhBjAF?QGHjhV1,{Q !^?%_ی3Xsu͟ܯያedhyOs7qg u>wi05l>*D_ +1ti3_jq"l5-$3O6*-~dn9@Bń|sdTUm₾ONv TZe9 FouÒrI7Q%'/.+-$ A9#v;! 2m؋Lx X4v\ ciH #G4m$Fpl#X7 ]qvk0#G UqzkIHS4SDH#u~;*/ZX>00&k1.g%N=>/T e:aY,y|վ,ڗ3:m0AB`yyqm Hvg([,3- [J>DzOkd3'*@A)]zu&Z1+"jOky1[@`D+ 6j"񽚘T0*kT k] )=lq&,Pށ Kgm̵kjC}\# t7a썠ݜ2xk[l6g=p `] ",v$+N-ƷddڶO$k j-pYVZҪ6pc%-zD6M , @6 -緾¹%rbvSrjEXeFJpŤ )]L@HkCfPN;w3#t +)H1nlR+kº6bAL; qv2Vgs6chźb0xܬc||!Ty : yTS " L5#SN±jǥ`E$}YWj"@3A9g0ܡˈ«V)4LaKhG6(/5Yz9-Fƹ̝۬Z鵫`@p >DoU\@AG-9[U]3pٝI;9mEm c2jcL"me)c +0Z(1`Dя^`%~T7'y"dUN6V_nqD>X,׎qԓvC@k5Y1wid3pڙ,=dID 8DĀi5< fH; cH7Xg/ sg6r? "Ę3DV&G7Rc@sؐǶV눨Vmmf7MI_*UsdUj*C I?(Yg"b;G~Y+8,L4L[ e;i6k&e"yqOb82{kZ:pnA +}jFJ8j'$ (Ⱦp+,ȶ/Ъ}XMJW䄍ů)c1'3Ppe5[S6Q)sӈ=YK`;n1޽Hǭ{/e}[=w6gX<ƒ  |BC۾yb0v:9֏HO J1&cB٢NDI8#89rBրm(ZO%UN0cfPcE& i`KTDL8LhK7&FJpg&" OP FL\K DLH;葏cVcjYMRÌ4WmO#̻Ptq^Xy,l+#aQ1 +zD°w4 @ĢͰ011*ED#Nn.֒lW9ܣwAi,-h j)@lrߌJ– eSE賐.H %`GS-,eZXimvr$*Gsbv0R*Mt9ko3.Ż*1ʾhsp +J'ټܥW(P TxЃ>2q +a]h *FIF!.ұ'IP6 bQV:Dtwns@}rmNKyhp{V=w+rC֮* o(IJ⳧RCA34糘}q"x0 ucc19T - wa(P1LDո%`gc*ahc)a:<(BVIAl%'yH1bZG"ۢє&,~X}9Ima +`E$# (,P!eZ +[+&ЄT($n"qΆqv{z:1âmBNڲ?Te6 ~EP~cYcrX2pj0Cq -L*qcGHw9!j}:Hrf8ȭp0̘gAB +ҹ5F^)dTt+WDw)wBeH eRšQoCۘ2&m3}j3[[8.L]Z،CS I4Yqc<}w`6ޢ8GqZᡫ 0QeӺb*Fe6h6."hLJB L$8Wz@yUlDl(&iv֬@Y),d%/ +ѹ(RCt`l3e!_)@q[ &Qϲc >zۮ xÌ7[GxyLx1h,1yp1cZVw!_~jH ^A(xMKq_0@u 'm錀#-T$~YMsrPhXDYrg[22k|Vø/ +a|++f1xeZ%R FVo+F 7^l H`X0_ztxwK5@IG M0Ah5 't9(CXq{){1$ Lĵ H[Yi\;}.z)=BU9猕TkS[SiHcϸ[ml?e_Å :ttAZ)D!]$ +؁8RA9H,bXILŞJ\)>9N n24gRu5Va '2!zDg^8G|Ɗ +TXmaJKhVS1Y* ٚ O !0ĬmeҴ3iۢ9&ҰnHXpŚT)GmFhB -!"[W(ȰddGjBl7wth\Æ-GBGMx|<&kB+1*+c*>  Zy*$lȥ = @0_<-2ЀausdטHq1,K.:f0N٨1 @U{RڊFe +2N(4ڦ0΃Llɴk)2 p1r̊JiX؆XJ7;40@̏0kȢ6WߐE]*pr'] H`gǯ[< Pa\Bŷ>k +1M H/PY-GOBϽڰKe-#݉r(@yBt"qI~ĊpC^X[QfXGX`-p.d.OS6<z)@4pq bc%`E.,!D![1$8'5tĝv~RMO?fPU] \kկ,j; -"5. + c`!'C֢*3A)W.. YI@M+Ǵ C8JolE F"Z+bJ'cSQ06g1q21mx؇1XHc 8uID<J$tHX J+@=㒄~b׬a%mSF5)0I^DžlL$K]?`Et``eV7@`DRغ $ | +06L-y(kqŀg_ kЀm`S0C:8lN5?1&Ѯ@6VxI e?C F?['KumJn +c@1Kzq_@R86|Y_`H ;_ 2!^2X;Y}QĄq Y"^RcƭvDnOpDI/!^s q8DX.#>OᨄXlٿ.[bEa^/4y|^rw?a;^A8cDV80A!8 :Dhpi(Y˜1Fb B10_i8ÂdCg)~awX`7IH4D^ |M@A"%%ȫ`Bh~uxq㲻&$gV&`>0:hsxIeP` RB̌+Gdħvx'D1@<)F+"ޣ3sjkِ)I HDd!I?u.TQdREU%s$jY],\0u4vC +FpȰ+*'N3pb8QB ~o%0P-{0.6a3ƶDD([0̂9g!L܌gp"^GD )@5xd/(9!K0AFX 86G2D4QA'[>@ hd%a^A48hm( iRH )XX1 %&$A–``N2{%acq8D\A!I Γu ; ĝf8L A<݁H!V8 ]hpx"ӻHK;ē:~dƮ0# gOàx'nͬxؓJ2ZFCJ3hxaw83q% G0?J8ɅJ"]WKvD1-L"$g5J&L%G:4 +t,UI[؀0 R|HvP` >ͤ&@D<"S>C<oCq($n43}@_2ٰ p:.#.ucċB&c=5Bd\X]52=vdzw$,ӻcFa?L7ybpj"xc31ff )1 +:O +!pSF98 /$">dĵ%'$q$q2D܇Nk(GyDdfGM_(:;vtzu +1CH'D)2ktvo\i>\y-Y/݊{3,_ʉcH*V9A|3R1BIƇ#a{=pNÛdt860P2@ Ñ:|腇+q 0< +cWV0E61 fF1̼Ry9PiWND?\I six!3DI0Yc#Ai*%Ծ}-'Sď83|Ɔp !~S]:h"뀡cf$^ ;^A=xz{(jIf)EE(STxz{4C#Ʀ A0o[124a p(! c9Lla2p/kc*\`_ +$GLo^546Vdsj*/4\gs9p9s_x 6.i8psxG\HÕI[ٰ}ݤ샂ω '} 3.A3R@|,h9#C `/.[Md:t:֖V)*6+45*6*55*.)3-65*54--6,+)+)),*.46+;\ZZ[MU]YMkrgi&3,Tgnvr^WTUlXXW\YgXVSgZU\SZX\XSVTghSWU[V]Tk[Z&,+^kjuiotkklgW[lgWUV\Sl[j]SVkTXSXjgXSZhUYh[jhR8zx^eTU 4%(**[; ÇAޚ^YvCswA +j쀅K0gȬF$3}m4s'Ô6%vlУ`k+PĔN] Z< `HT . 5Ox\ +C6gwIź}&' THHS$ F㸗Db?"~H?B%j&$I[4 ~߂HU'uzqIWpI_͸Uc_@G>vph'qs`cѸPofP^=X86e-Ԉɹ#m~?RiRxxMb?&u4'1o~U,006+co"=E3 M +N6ӨpX :P̅TD eNP /j3vgyz~|R# kO+"?)QJD ڙ5Z)^dY5:VŦ}I#FH`#XNS)_xMbdN6Qz=Ab{H2=g$Z@[wXB}_|:_@Cb)< ]T)f=ZHFC +Z$#BߣwYhPA +HLb +IVŏ/2gt-EHR2rmm8W:Ἲih `<P=N ɗ[L?k&E7? ͹Y-ׂVoqrQqM`qșX8v?xQ$MWLm,$])VU/$גS*G4;,z8!y Z8\?"&z/eh#NAF۩uJ{"4WY+U{vV%.Q gC.~.= ƥ zh3z'DOcؤvt\94$:Fg"K`beKdhC::%Aj5^pKhCEǂQ\" T@z!'bٽ~Q&-EBѦzqIsxl ^LV{e_䣉6k$z#[ +-sv+n}M;Sw:w~'BHsCS{ nd9xG*I[NIg,3taZVkmRzRY^RcbJWJ}S( Գ0o#ʯbeIWH"ZoIF:&o6TWr( '"VV-2&m#c蚽7Sh( ?7V QH`{ EIhG`92~mYB9kןX}&.3߁ +a-8)#IA8n\Z tW%Ӈ!I\\v* MHe@Bg+7bTN8B*k'>Y)hWD*.c"פֿ+_VۓgcŠ Fpm6r] +HNR+#mmzAG6,XmJB~9CFI_A +nIcd,c8-6 @Ej<#Ǖi藶9?0igs\͠0r\LYn;XQ_Ȝ8\M{RM\/X(ÇVcEmah6?ǖ鵑.ܟľH>*D4&wo2֭ahq^4>"Ho[uZ)۱uvu,|)G`Z [E<_TP'# YVm2?3oܝYȵJZ 1Qѯ'~{ԈDϲI{! .nЬbhv BNUKz!JܡK4jxK'@,BKpIޏSHe;5ouof8re=|6M99@J;.޾4Xa͖jXvXD^rUʾ@cR$C @9(xôqi iNbQYWᠬ6ޙmmXZ]bV,l1cR?N*f ժ8`.aYQ%4 m#{r+XvuqT0r7=ç$vu4i>.& F\LB{^C~dMc 9Yfk%= +zɽW&q +z FFuw~fOKyh% T#qr3Hǐ^FB޷"zԉ^!ʩ,D`$f[H/&Ҧ7Qr1s:fK0he4]c̷>m8rGP}&Hǥεct9EܟS7s::{Mbl&|3˒=.v1%w&t%ǶecֲDu M +ȟJIU\?HL@Sj{kHKsPR)4 -8)5@1/#+e_2ףXTZ4m3j +ǀ6i׺Mu~&R4BkP=9uع:K#6cp21,eh!˾t]7u^$CCn[J jsvԲ& 'R$b;kq1 `0uf[^hY\ PZ(Ud.#_ٓj.`dA{zϡ/$O9_:;f,8߷{G\wc-\mcҴ7a7[)ܤ"i~'D2yif 7mǻ:6z 4p/?~ӚǧZqt4#$ +J0$o 萤̠/tusq͘ +$UN:X3IG@xTP$=(!֏̹BSقi f!-DΊֳej웗LVkuw FCв HBT?#6?z~E%=BU/g3Zy,mMB_G@%SCb.v($R?Ҧ#@~܇3is(4#3T|2vjixoCwyR(Òz`^IeUV!(? IdCT 0š , ul|^Y+`E})AI]k3Y tzN·qUJ\$›^-6=u96&ϞifQXUMt8/&hRQYo0BjS@ZuFףRT+o$&k7xŻ:Jbg.NnQ{(AɹI +{m +R@kb}P&(ؔVߡO"m"ĽA >gx_ED?}dlȪEZ1i}7,։  NJk SJiKF NB!ǽ!zd-!閂Q:kA7t9xOY[pRZ[RJgHzw VkF<6(VEF" +zK]H4k/,sQƺٙ@i`BLW͠H^߄ +VDK`ӭwzux <}No^BK"cPrJ?Y9uV ?φA}~ ɪ-71ѳlj2vOC>8Z.f~tv76?T };W?o$m'Tq/f}?xR6ke>6zIe2tl6]Q#8X;(`yܣ,Йe& YTbZL, `u%p_;bn#׏4fȩ=a(6FPȩ,0EkȬhJ_ډ5ܹpX4.;SiA0dJzkB+< +D"GuҨڡIkZ[x2Z?Pgdܭ [>y +d2}j6W O!{CV,j !vA7x59Nb=jw N8 +@<~QT\:8" Ѻf]d9h8^Ť`##mޙlgsn=C6cѼ2Wƞq1ug8_ǃx؆ |AMN۠“Lk;tG;(?)^gYfԞ +@6Ee`c@RڥD8no=P1xf3ab2vj/$>voþq>|ӈEo;{Aۊq^_\kgEm Yx ӧAgd,'8q4x :Z.'Z]X ]LB +R8 ˽I)41à~)#j 5Nk\5J!RHvu# wn* KHD?YCQ6 }%_SeԶ8st% sG̕0t\Y3=ϹVRLL| I@iM^cG@‘2yh3mA~vӧ!φ/g۱Oƹd`|l~q2~jYB=DP}8EN@}4 \̌ +xuݓI^̊F6ۯl\^Uk.e2f(m$}EvBOja+ !7$A^K;)Yo]Kb㺖Fܣgն/j6Ώ6s3gq,׎6IBxWܡ܏CAY gFVͩixfºHs/ktVaXf_Et*6s^Ly3'(UKZЮy.%[t$O"]dIhHBBJ{`r5b^z@ǰU +$ϯTTEUJ)GX[yߊ2}mۢN$Z:\cX7t={r'mcд>}[MWN~Yɀ(j*Gz)8$:Mr)<^\MQV + 4|ps_d +DH0,ѩ$zgjF:衍anT Śe9pׅC,jnx`njbB[)awԸ)qD9S [æ_U.O ΁i_LoF )$"l TPhdL4.0N}TixEd1xg!\Dc4j_w ǦIih,K`e2|i2d _9H eEҪ!4wjA9zRKpV7,-%r+LKSA0mhe"!|ZpBJEuv3E"|PYRKikAtХ_N= *F} [Dl%8)"@liHH@a@BrAk1S0HĢlz<AgL!CDDDDDDDDJ$BgCF9T%X|'\y٪ڜDy/}S BgYV_+7) 8_WQI50Tn.h,*)%2>h>E;G+oPhxفE燑^`~,β{y8>Wɮ?jz<yv!%mEgQ:xb`OO/茶'k~\x#="_Pzj =홺.Hꗞ}sjߑN|j<#~':KBʹ4,->D?+q֩ݪY? |1pN(zOG^6H`F+-M9ޓ)e<5c3U'J=$l6 z3?JS^R@*\wqcG`~L.dp'}³cZcҡg%dQ/ pMv׭D 랄l@ٺ%l1!.p5'jY̎g4;(nKYUMg˸va{^_8>oӃ,3;g;њJ#i'M)^vòaV!bpxkC ~<"hbH7h,mDں4 ;"W_ +Qq?"ɃW&&ώ2/c-m@W%dh_Sp]Vke/zM"'A]((wӝb> i0'L6e:=*jQS:qgXhΆKkbyMA{qͮy7]|(5{Q&&C7`Vnw' {6 e{HЕcf7V*_=dl ;HY/$&i5n -S-ecm7Üȥ~:*k`䇽towa~̕6g;aQYi_=Z*u%vl[#*k_L':g,k])!wEY7vژٸVX,> i +;^h$e+дF138;Oaǐ9|ޜTi=Hm9)",Lb|[Z&l;9DGh}|x;V(/hkU?X4u<bȗ=P=0?\nx[CS`ĻLB~7ڨLWj+Ng{(o?>0^<%l|efG +s6c SEޑ ϼ" +Lc'CV߯M?* ]f?9%$ϼױ-Е^žox3 +6%y r%Bga!VVq\qhycR3$9~/0z& :&[>c52ےj03Qշ]a+"ajw!iћ.(x[róN/c󟐔zN4]'pbݷ٦IO 07K+N Z(]_k`>$RY;3 0C/ $apf"Bh*ЅT >@0W{xwH?!>hĚ HR1M.g$ 7n &KIX$ c!B 7Vl0GMŠzI=f=nIY۞lBU!~nT72: 9s !$,G"}v" +C@,SG5%y!fkKdٳqEb=sI GZn^b9_!vetA'Ʀi*v`Z 0Ld1݁Jߵ?u AW{@[?kŧrJwJ%;jcDd5E iư=#K8ql$#p#CrO1RCYv=d9#SQ\[68BD'b]Gذ.ťyLYμ 䑚ѧ#ϮX.\i+WRFP&Co와@v2ꗣH޳] .$Af{~҄2A?qJ 6-aJب +ꉚw|m y8~wOCTm5UX\Ẇbe@{o'ȸ@.- H4 +/t r{v , ?ݏNnd1 +1!jS.guA"9^zg˹j?L,+JW?kW\v" +ѪC2);ٔٚ/& $gV%_DPK /W,S'R_<3zq~A xt鲚hW+OټGxb8䉅M[jҠR D|8фaOBLYVD1xQ8C!΢jbw)M#88prº֟L=DRc~=~ھ +dž.Nwp$ T +2bec6e51c-3bc0-482f-aed4-6fb32ed00cddab26b842-765f-4d94-8cbb-1fc8129b426a90 678.252376dad5342-730e-42d7-8c31-e08c2fb9f87e906a6442-b806-49dc-b80d-4ca4d26fc2392512513/ 1!"<'tP Y*} [!G%3̙ +/;g_K{e&e0%,W!ϭd 5߅nbBcl'F]n\5_4mĮ_p⯅[n[zG")\mQHZ3^JSJJ)2Oc  <"dt2vC_n:bEœFy>r4ƚq@@-<{ e tHtg~uowX?"[7L:J(X6{> +$ yHw; HO)ϱ\ݛ;j,a9؜-?~_)˹\/DDwݛ|04]rX&+ݭ%ªQԢމgfw38q[IGHw +bx1 tW4 .ƽ嵨A:druIX5V|& +'<@QN%- dcyZp)<-@QB6?ĞpBQdn{|2"kNT1T :iJFڼaw(LjtF |[VtjFH&pyw4 Q.YYgzQQQQQQQQQQ( +(΢jw4Uã[1oڲ\1kN1/&e=Ǣczco#قL10&-M*_k.q=Tfa 6򵏲A[`ӴƩZbZsMC1܋Ad޽WՈdgi94htϱslS R +$IJsHpHT ͥr$gFX0c`@ 0")( +BX%p& +V4K ~ o鳒w₧eJ7`+n%X_Bl6:a_2ifÐʁ#E)FDb~BCY^49-_ w4yy,RD(sAH!C 7l/)c#&:qiF?Mg:G3Α򅌔1/1VQxx +U$SYqYʩg "of/P\|w!) q@ERcU +&OH[>4; +38'SHߛڄk +|H!2QanNHjƃO?m*$|N4ނFوs/q +p}uZqBl_~4nsʝ0X&G!Ќ8,xANPw?: L9rXFFL2c5FP}P+"^yYR2k R/K%DZBO %P4|v"E¿\9u{JBc{*B/ + :q!E)R h9\Z\`ىkZ'A@%,L%l :#ȵ3s3~?.̍whfn&}q)h(KI|X2%0^%-a”gmP0OW wf89%ɗ=\ڱ)k|}UIln?8p&G\H1d'z63_YE\_.h6#,av bd ׍޻F)2wy_Xu:_)r m_fvT@ԑ]G qetFeei^UIv0HmÃXi@bcBXG+V#.++F"=")GEuamlU9QqV4lQ|pNPSjN7]lnbV~z" F6"HDp + + etAX)]]G8wR \ YnhRڳ:bh +1>'iEaMρk$k7>'@P> wʰZ_(㏷ +)'4g\RnXId1j6?JXl\blý&J02PaUL,gZI`8o}#'<`eqMOXF|{ hhQֲjpKBHr$r4O$} \#,"޿fp@ OHr9wLuCdcPjʤEm8-ЫU/9"1 +zA&hb2L4MkWo&G}0Ϝ+פQc. R6y(Ł9=,L~Le C/YƏ}G\~iCuYvzu呇E*w%K"k5#)@&z7ImQ,F± +#iisЍJ:CD:N7ʛ5Phz>;]b^ "q2SI%Vs,8-cNn{7̜2͢BNz1(YL~ |8ݨGOvQ.7&gSȷq%mfRva#Cw^o|v9f:%T%AθIfDủ"Urɓ%ۯ!n0Z7g.P&V~Hؔ8]hgԝ c1L 1L2b$ t12ĸ]kaD"-W0 +z=Ȳ`Wu Lqϕ=_[^i7ݎ(>g0S1@.]q|) :s@- +P1>5R%XS|tKcF82a>S8TlQcyjkIN:׊~KTɦulLΚԓ(,ƽL6?oD}Y83ύh*I-c3ǀZp8~Q صI#6u#W[С`wzձQÀ1pϴ3A$V2'M[Tc #zBѴJ_Ēf4\l 5"j >JzT HbN,hCdY +4)z!\JZ nsyŸ7b(I&_F-2kK!8ʐ̥§WF><bSYޱ%;d`J +v=#%@dwhm"ک&ʚչpI/rO3}X6oIaϸy_̌`}Rv7`/@2^IĈdo#hjI*"fHT/W U ' W փ0҂ʅ";@'fn7V~ +γw{ tLhi4-p25& (;L}c#m*3W' +TpM}~c`Y1XxsصF`4w8Dq7AXu"`{,lJ]њC5tdL30 +-j# +^-IS+(Y,e,F|?(PUf)PB+z7l}*1 +u2%gxͦtj UBk~7|$ĤiȒNcnEꕔY] ]u.C}1K [d8R2ҎtJҲDR2Q5"cڔ$&9XgX]:pq#j]*7N9k0""(kNeDHpƒRi0 7I " kZ\UN$IsWzT/a۬ءZ&7[xf^Vʯ噴\_qsrAbbä%lyiÜ j\#^hlb>w>q;`bi%=xf7{U#_y~-ƶnZ ;~9g˹zV|V|7vk4m\g\bsZn^Kuּ[Mi_nW؞lZӷ<;qγkg>MlgK/7g.5\gjyw尥qvv+|9}̫yZ{vkJgVҟfo3U_oqIt<_ۿm??SJ{)?v;\䝳k1̽u=urrOo{tSi}O/iV{is8NN9Szi!'Ζ㥭UJ[b_7ݖn~j:rszsoYO/g;[S;~鞸b7wj=i@}wxl37?oͼ+9̻Tg.N{ʼl}w[S]U֩s}j;&{֭i8?ś9ۙoo)?k3$R埳|m?oue}m{kmz3άx;OL<8ى6֝ޛ|j[{557}mu [fi)}zܴZygMk>tY2լ2/=fެ^o/k3ϕk=Q~<3?3saof^\[l)Ɯ5ݫ妶$(뷕u}vssnn5^I)75t\-圭RWy5,߻}[~=O\fnz]"{oqmM6-<+m^iҖmJ絴Җ(߄MSF{@\*e܉g ʔQebxϘ?=gnuy16^ɼlm{oi6ZZ?euTm+ݙ뷖r3/lf^8_1վuY/hrK-m0WkuiƹjoR좘KyO;6[d}~j/y/ί\9vW+d0AҴNifH#)m])m҆qiL]i+miK=̊DiM~W[QNa{1{֜O'yŽ_zcsW_ DbC(mM/:sWV7~J[i+,`Bl>2 L.鞫ZӺ/Zuiq|gL57?knn]w[M]5zΗr1ƶj4kֻ7o;\\ɼlӽl2o.1jseif `ȹ\wwk~s]3Ѭ]{}un|w{s9cys檸Vk+Vy6s}֊kusu}}9}Nl4]ݏ5797q̛Mu7cu]_w=1{>7Ι7375͜&z=μ9mNv_{w5XƵW1Ũzyxԙ\r\5n3άi-ySOkʹvjMki<.sikQ㷙e <'Y5ϵf'ݚ7:gfRmuIL[[sZn~fܬ[sss/x;ο3άlN{gzfOn{-^nΫ6sL5k,FAK,X-\s}0ș& +|)CGla0:`/UH(j5LIԨ&QcllpVƓjU# +8`Ӊ +KO+(k"EZI_a+xJBPFrDY.U)U--_)15Z(S+>:QV[uQߊ$IJ`aaDaO CD +#&b$OX|> %G袮ZNz @J +pD:sU&j5P N"$c4Q 2QK\C>z3QoNҨ3ODvYDI|ip96;9Qᨚ^74[lI5Ο! +4:)#7`+Lhu +WOZa\|2&, [_a^ޗ8 EMPW, FdV ѿİ IAth M?TiAF폳v>+1&:b0G L72z&u}V\WLNaH'Wz$.$c'K@%0@Z.-# (md O҆zHJLMPT2+c $q i QB2W$(=q`.4aaTGQly$I 2}r$`@K- iXUpEbz`C`I@7/qI* [J6IJ;Fe +W(0&@ V +xz}49/,Vj]ڲy)m݆4ۄ)du#֝n?Ϲ/v}mjoڎ]w}zkc>SzWK1ێuZ_jkƷo۫|Ǵb{1Ƽyλں\oj51y=߼gkqUksk{csf|3twgݘV\?>3o~_Zqrk֜W̟߻nڷknYۻ}Nk̯bZϵ=g׎f|&W~n/ǟ_WmX[7L͌1i}q뭹j뾶suynV+~gsǚk1~Z5k3y9׾9L7kk1Ώfڽ?cZkk<_5q}sMyyst{xW[9sնWxg~uj͟;xgw~[yWjiXW}s8tc>skzsϬflź[͵kij6ּߺҞ13kZ=nknnxuoiX[k|cs\Mn1lk;s8sZus}1b>4H\Wo^Dj84ޕo7͛{Wf׻i~]|l㼱\cƹWfiHO"B}Q 0[zH}R <[9el_Wo_YƔ!(HMe?:H#MpS`7QF@gꇉ#gđi5–+IIm,s+_o4{͝W޿c}{jo= Ia t}!';U3A-KJJ&fw_gk]_gKWuݘVlyŶc[^;g~=_Z37￴־ִf k7s~5[zmuӺjZic+bkmZyי[ߺs5Zls֘?ۼqm~~A Z]ۻk[_c}/ϫfItS.tlLmS!]V,Bdd9@iV!uWgq5N2 f9j.sؠaZ\2 94SF q@9wk}mC56M7 `erV` fh^aI\ D. +^⦡o '%3IQGMPBD3iMP"c+TpFC l²|Q\^Rd^z*l}0 3p4IPڲLzjM)`Fș eZEeH#cZXAƴ#.A,鶈z9,>yE$BX Tpʸ$.c-)h}0 5,LHpU,HHklYSx !j \ъpWHT%iAAID,Nj ش3sE…hJOON[Q*S2F(h@`bbit@E@|w*+02XdBxQYIJ%Rၖ(;HQh ar/<Åi@b BLᶱNEƄP݄ + + +oqQ +o5@ +?ۊ gb dT&N"J@RYиiN&5F86NRi" IFeV"`dp@xH'ʃ)U$#Pphp j0pq "iJa6I_`pK]h %FY, BǷ`9*l,xDtcQRPx(Tt">86]Ah?iT@<&B򶬳%71rW bA!V+Bfll0~FhsxiL&P&R(.PI4N*ilYEa`p.0C & TՅCjDD<.Jh w0tH GP!6@|L BY6j6@7[V90:WwH"T*B@u4aw5 McP&!D\> F<؂Ũ1`m8 a-"R&DIP\8̘dnFa JSLP f3aa2(R NQA9(I-_IA@x2x>L q`+pbc@2`)~!fU ]%ۃG8HAna PXq\cB"Ͳ-[AM؂!}C$-.4y4(6()\U)O.yl>ٱ#z.)J&.I  L `.ʦ- U=ۣ77c}8yxv@P$VGJc&,zq[|xQB0(o' mD/FpT1*x@#Th#   PlsKEp\Z/=$|Te:-DSQEWBV ʼn",2k!81J"64\%q"X&s3N;<ӂ%KXBk%evP.Ҩl㫌JcQjbr*%ʅj2TĒRq(_D 'B(QXd@\hʣB) Fɼ12L8IČIAbbфl|&0dB3@#0A GTD"hFɢ ,@PVjc * |6 ǖi$X7XxD&px`ÊJ=8 +G A~.\H~&qS8y 0!0)[#p96&B  29Jp4N8 Nj"Ԃcd9Z'`xƱ118 +Ha pH" +܁0[u|HQ 6ǃJ<:C k)ӆ 11@O\i^`(a,!Ch1`hAB۲Du,ЈAhAâI 5&-!#mR1PJi=` !G!h@Uu0B&F۲t"0 =]â5HCjj&_c Um™ѱ4 9*%Hh"3*ZS"ږ DV{L+)p,m iiT.J<MӴ 6i>@6$&2qh;#8B94и<2"Qǹ\ט" +7擲b$YH pYFMM[nuu,B8 *c"ATSgDD_ڸJ4:O HC3e%Jn^f2SXN1<^O:&@^y +<1l -[0`@NlXP.C[t`XNcCE%[6`~\:ՠi>O,.7 1t!Ѵ҂iiFBDFMei QEI=L4mlY%Z]:NX ABFdȨ+!]iMe.ƍ%p6P$ũ0u.$ u<qR K51NQLLS Ѵ]}LF{i$@9y8ᦣi`4*OC4E4F>[怙hqMC4D4e`ߎ!tD"M6. i +whưiR]li(iڇi6`ee9"MdL4m0b |`a!Z5MzQat…s3 !ziږY&O 'PhC\.|#l"4Su . / + endstream endobj 13 0 obj <>stream +a`akCZSID+ArVK> nY90@]f17@p!l.p@&V #qR^ʋ`6T%΂T̔m^b^^b0( J !ٍLeX?(ヒHL}P +R#gm`WٰxOTnc¢]çqw Yt:k!#Qd!LelJQd 7K@j(us/Jl#yt x' +6x0|&pGo=*HTye +dGȎ6DEMCDžy&&Lx4l@Fl d@|4  " Pud"屐>N q܁T1g".YL 1v <HmNrǒFW " !d8 _۲ ݤHD)Ͷ! K-l,Ȱd@2DFb&b3+r|{ǧSTݰeQcѩp,:`lⓁl(h(<`=xxxp4,Ek.,Rd(ʋy>SɶLdꦖ>>+}`u>ħg$=\a v5|WcH` 0(+%< j`pYTF7,.I l: p!%&O8>UCO~E^ÀA%1i( ꎎMd*#1hȀDGfJq> A.,H"b}27!AՑFT*+Kx&b2&b[0Le>('2T>v|D,*Β0\N 1ˋ;i,KbXhMt0PHRȆ'S@saLA<>v08ٲncБT:`yK`с$|2!/:m,:[L^؈ꖉ̖H̖,n%A4 < I@udtM +&l[FQm*d* QSʃ.\]:R 7TuAFFˡj`a"a:+Sِb'@PV0e6V)6jX@;Xz*r7MֶeԪ8&& F8C@P  \ RZAc瓵c0&J% Taxj0IVPBT"a"vc8qh(?1aC$ +1&ȋ.,q$.58m6LEJ-6hE#a@XE{V* l}`b UCRl7f +r s!-:M6Zn`o0LFJH4p*mD5 iAL* L"ڈe #C4&~&в^"!De pay$C=EzehE2E 'C6Cex^ t + h.VoS]X/uaDp1RHz[zD퓩ĸw)WdCPU`K X-z&W&B.T""U8c4H R 5n4܅x8A=K +lFeOT` Rޥڴ_FnrZ[Bce> 2$-S8XDl*Th k,"NJ@I`'VDC r0>=#r"\*8Ace*9m HF+Je6> ABQѾX"h_ + 5; pFÅ20Tnf˶~wa;QF8]^I &R^JxˆR0 +:u*j= +{FvtUЩyX BjNm@E}]$f;hDj-Ip{A;LwyBG*}t2`,3hV]O)c_>/ЧSXTE˸OBvOua}7E c$=q,!(|Bl% v#Wt7ӿ(̒ !iBi/D~Fe!q{0F1"d2]3ԍ[Y 1]E(3['z840%o!/ CGU?M,]t#"UwV`-5͈8 p;O038ҭ{c+FhPyJ|8!ABf*.$SutnTg^*t#菓Px+c CBwV+CFJOYgYaLu.} ۙ󰒡cfet5-_"nPgUL+Cuܕ!3Ofif+{Lę.)G珳 #'(dI p阯@FYkh{L0N$I±$$\*o*zaYVH`e-A8 Z-~Xd?7Ybi.XQ>-z TL$|bQCƇK FdGzuc/asqgʑsb1 ݸ+ʁG߳JYĝ sdȪkV݂3H$jڳU T Q޶<;+ȡ#y=)taÙ,_HCTrX9B[( nEn`9˴s^.-KK ou+R w/)D`TÃ/X3IxW8[ pv@Te@z32lR˻vf9>c҅:Ru=}JpN+wnſQ)-~?f=5 x, zT3q"Q VRt3&Orէoϴ!Y +y# +W^gKo(Cyq2S](XN +U:*7¢6&b|WY!>iF bF**kܑ-2sp1E|Y\ ] Tx0'v˷߿rrio1Y=Vo ځl!׍PY ш/ү⌍fyL/0J WT}f0^Β**!U.&{Ƨuv5x{e/.䫑KzN +5 Y!a"\ + 뒝c~p̀Mَ sI睗%neӛX5Ub= :pS5 jY:ije]M& +E|#)W +e_#yC{G҃nm0 vJz=&:@'GgoH/zml"N*ADR .v,^] #"AF-/z N>Ȑ\W83Bު+z~jIsКB PxƻO h핒j/ց\'d3fr%PpfBiax= 0f8^:XrhAP, +7,*3;7Ʋ I4W@̂X\men?9#7R1G>똼_#Su2g2mXDϻJ׎,ZoɭeU}ȴb|q'Ēftȧ1H|:VzeT`-԰Z2I#,2BuQ5cWB0%~*^ l?Nh=#K\}h/qh0>"킿0'U`D,qcFUJ6 z"JRS>)l4pˢȫE `f-Hn':؈9{(A o2-s%G:jBnA㞀,I5#Xଂpv?0;BIUNî/MrlG C,ƛ1&yGm 0{'y$qFhq\G ̯D:4:&*xD:J%Yy#W /)Wڭ`T[W!SQY wpD+o (hG(}"?KTw|YⒻ!0-U=du IDWۯhou#8>Q* [g(kqQ' u3S&1d8d)٧53ZC wHRݨK +J|@؂|8eaA۩@Y]0:pru9ubaM._ ^D}x2k{eQkZsSIύd@]VNM4&e=Vα0~ %:L^*['fֳc<]ȀR&w|yI%*kr Znrl[μOЉ4*S=2hL[೨ѫesLgH+aWm`APeCU`t5gP`[Ĵxb@r"vIXB3JE, 1qbԕ=> jwL8fb|+µ3bjnktA6O ei?e +X&۾FU PDRfsj,WcJx'q vhL 0݋W< s23kQ[7 S, I5sD;%l!2kcbmiD߼7όFЭDM:DGiHyO +wrhoLjA`"WѤ2K ?0?czm5oC?ŦT8֑v޼AAìÉ[t|NR7X_i*Y1:A$dC,$q&x'x͑hPZacx՘-AdNAFKۊt_a֝$j=wn_z.djm~#FcIH4R݇ +!()b_`ITA=mbO`P!h9k9 {a҇c[Cide$h#TwЫ3.X^g(RS`n17 .9wJa~lk39Vua+]̓ +sˬ});2脅b Ơ0dl8U ǥ(#ˢ@w7 Wl0lUϤ!{O(oEZى+wcs<]Kz վY+03s9ZFiQsN<ŹK%J-ṔїӮ71ZL"SDхl 9[;[ `K hh6lc&%jxX +~/ZeZb+n4A{af&+ +@wXZe,s[jQ-htã\-w~Ros@Rz"%àDEhY{Z%Ӑa`ӧSM3B0q6` ]q*PWцaR-Y=0)PQpN]H&wlF|2A; >U{ڍ +1Uƣ|hDzR7Z'͂O_,AJ x,4˓̕߀>9ݠlT%T9yAf>~rHN&03\Y~\O zD)aAy-`R5 A 3&Rd͐b9 8=P2 Aۺq(1uw0 ~"MY  xBL}}oi_S2uo",bHlNgkQm-թik=.jqH٣`&A ~v +kp +Q#*+Xc3ϜmSN$Յ4= IxŇ$; HFN41Nۗ)'YTZc N A])!é/3*-!TT@Dwq.,bXy7{ì +"t>Aa) 巷1؇5mHx'?f g<r#Gj÷ර+zl +YZ#y[ʗiV4z'@L&,6cmLU8ajSV(L8/g:_~h$;C:lj}~$On.;#q|l29TL3\Xgzn`I?<4ity0l)AO=@~3o`i@{W..V篛=Z9``hQ">/ܯNp6鵻8[?4ՁWilȀr.𣶴'R/'hdD4>'S\ i_Rg|τ"^y⌻Ll&:,,?&#Lz `l_`T<,ᯛ$< BFˬ$x+5 +\CI%a +M%Tf%fk;L1Y"h~[?vY2U/!5Sr5#@@3t@NrW  +?g@# ʁf(z`} j%Dt/@'kAn8XIF+W/nO0YnO䁄,!V0p-&|]ŰknJ{떵$snx2k7xCʒlBYW=lTYAwJO[҄,#ldH#n&/0Lwc +KU0;&2ekKی#D]cBZBjy9mطʐSkPߴG CCT޽N1 AIDdI,]LD +a 8s(,,7ԁd El3Ie ϕ9V_]xF)1)g0pƣp01.f+GT_ Y.˘M)v3'zS}ʆ1}N}9gf| 1TNւUcUDlz˭ A7r(vP4Re[:9:F&~JLHo*p&9RIz9; -qGB^,eO&Ѹ/>0n#Wrn=Bs'e4294w;ض R`d8cL R5o= fz"jԷ͈]2f;1⤢8~cVSgAlMعa.83)_Y`FgGI$P'ƚvA~s^ vU2_#D Q,X+qh>ЊN[Dg1,\h|QhOο#.kVr42-p- ^S˯`lhEN&m _b0)Wv(G5ۦTK+\Cn15 ְӵɛ#XTUCI\V nocN:Xn*K2NܛF>ʹ-alU0\ Vc +Pg+tâAdW|1[E^@_lF˸Z|6L0cy+yj5f!TX yTrs n߼j&d-v"hI*"jejWAr5Ɣwe<9 ; \5o;>]>)'w?qzU#|,QS.J ژkz{h)c$[*&IPvQ֣nPEC*A SGjVϢauPIdγӘ8#P@7YY .nRНYL^wfϐ2*\Mrnl. r B0϶}M^qZ2wHEAW@^g|T&P//00h3w6Ŷ"&}o&DgUGQ>k EN>?>׬T 9:Di~`Mp3JVN7BbWTB= s!ԯ@10Eý*x;7GW5eggijsvl\b+'J!W9oߞ2%W:gE#R]L 2&l_,m'!L6$*me̋pܼxsӳEN Oh<ԒHl3,d#+s3`$;;)%y[sCe~ 8Pzf 0L,HͶ԰a".Z8VBL[Q]hFf# bs 61CLTD ?ȦhC89$iG{6\z33p[awmS@!hoB(JGaktM貲nY@aj ҭj]8 X9G gKJ͗ B=?K9¨82^ $ȃE2BkdXI7ZR+3[WsDps.xw>qZ2Ox GNx cB'p +I0sU񸞛k; {LP,qJ'6dO/o#R'I 76 Cs4L} 3dzPY-DW Iy&^M +"Q+&J‘Gw6<nz0o8MMеމvXUM=/(NTCr> _vq*.lF~a; yI<5gLL[F++? +HPgᆤG&֎^qMPM8=İu_D|K*gd$63[T'=,?S"qR ĸ ݙƓY-)z8?$t;V+Vq)FHr%W*6ua4_H٧BH4#PNSfUN +}(=ȳ2<1ʐZh&ycdE\W#xWCX@ظj2ȩ}JuQǕ٣A>ғ& +fɂ¨zp9 PK)4F'E ]vh2 "6-ꚙj*>9vNepOOq5w.TLB>g'q0: +(/YYh-{ञG&"AiP8GEG(^`.Iz۽7_^3T˭RUc}>Pτ*x)x>d4uF@4P=CF/ަtv1EM?&mpm5X!JG#NFukKfjCjU'g.) +*5̸%}-󴤹xWCj)R8aH6^4FiUT;9q}[lZC4آI)y] pg;\V8! RHo=wNRD)t1" ᛱ;Y{%RK lvnB!ݍ${c *gQ8`Ȅ +w1$;=?"-M6U~VV&x["hǦOo*Psb9 sF% >,.O/Vz|t@\Z䠚'\?q+*Uѝ+AA+ OWz]oIߎJgy|>? hPW6).H"2ơH|DBzܥO a0;QA,[6o*eA0MbgkL@tl[}eGʒ ~5"pma +ğ_(vn j<~ H%h*skgA mqCK9n .zCǼCdջҧJ//( +41luYJmu~rf~Y˸$+, ++M ׊2oY2ɗI>{{"e]4kFyd:t-ݎ5߫ŖaO +cQrE +IxY`Rު;e0MQhDrLf K +ns%?+E(`f6ZR$ҩt d1,n f(:/pbā'ie'1_CrRVb_Gv3ԏ挦_"\o97P7h#`"@(5UNR>'|y-t+]va(Ac=8N`EVGn8rE=]tJB͇ 6y>'Ț:-_Z>9:wǿ{@sZlY-qM؊fg#,V a!Z+JT}L֟U$1&Q_"!)Y17Q0m@MJe462e>s{Y',)X2 WK DZa妁|ZxaU"|MX(4 +:9H}d:Vn( +V.BSW(F$}O t4Cm + =13ߑygg477W$Jr/r,eh#TblFVM$Y +=j8痮K~T[a#ʃ]OƦ9(*Z CĜ,v<\@jz,) +< E:$8q)hTv:n5D_w}:>zWQ18 aSѐ܊(㻲SHG^-{ (irDy:YB"Xͽn3P 4[ Y+e(_vK{yn5J Bq'GRY0y6g8C) z\-RZVMx^#P3gf^O?12Y"Y}J&D\cUJc-J+"fl<%q4CUs%",R >"teB8z0GuӤ--ڭy?am\)EʅlJm^!0f#j1:^]b&X}4 rSha X, `FLbkSJ>Dg/KMyx!CEQgQ9ءHV EQSc֑0fe祍l DZCz0€Zz-F&L9'D.pN& ӏAF2Xb&AeVG"q4@I0&fFf2'3KVR @dbFrW3]A}eKEŨ^ +USS-mR8'cŋ1j,X󲉁"t)j&Y&B (KA S2P;(%swE`a$ȊǕ9)D1ABekb7TMSPv@0|Elrͅgs mh! +C`A^sfM(RWLȄn1e:|cr G@>ZUABsH5lhpa IrnMח" 07Ќ^?%Q~|Ꭴi%_wrH1eR0EN ^rȃQ.6))I]( +n~&֨3L pMl"P&o jU~B'qyăkɨ/=Vx{ٞD f⬯:iuן8(01fWg2ZG<*8jx:HUŗsBW{~  GO=1e$5^e7ZqPTIV83S V!)28v͕,*|ll[[X*ih%"Qr!xkwu}eYľ95w5ye.CS6mЯl_!(XX̸"*ytrNaBL#A,央 d=$8eSpDg"dtQ2-Dq}&S lo@$b9IGZڅO$l:B䥒ڨ IVĞq.N'dVjE(sKݩ)OqVc[}.1a&#!LۋZF$^)dXjԾ=OΆV%mlXGj<̧Pqc2|QG7 8PR<( bTzV6[A[l Î {AEr'0 |'ٌFX#PmS_}2lB4}U0OQP| "CGqAs"`<:X>~&l 1N`<#Nu9Jd q0Շl'`݇zҬB2Mi(3ԒY5A+bR؁VifO.nCь^4v>ڪ+ :||:|k6R} +*k @&UWwJ͸G0E:{l5:CJ|ABvg%>IȂo UZKzs38kfC= e ;HEhݴjHPRGSl#IJwrD_M`(XnP 6:LI$Rj<sۿ)h`+ +-6.ucq+{sdNrSG<,}RDk8/n?y^WX}䥷eRtVAΈ{HvR ;I`LwsN'NF|DN~*#ikZ[]mu[4rXWrZ gYて/n.An6lO`ߓwtd Xt2mK Ъðd>N՛C!5L(2_#~ Qkł?C=c7:M"@8i Xdw[Qa@0a75 +(1kD9Ü;mS™[N) #PzJfx}=j7Qd!Wv*Fz^C,Z:7o XşkR?9x ZVVZk%m$ D~(}^ Ŵ}61AkբC$=NTw܄էHg6h̟<_Bh(wPO,VS-q[{؊)37|%ckJY^GbsN˚zk. q +Ջh5?q׼ R.d 8gv`׍pW,hؚHBbG)lj§ S-ky[ ekoZB0.ޠłBWVAӾ&^vᒄJ_ސ`P /msWX4 ZH܄vOޝUUU0Jصo^` ̇8}h-& Րn +lt~;^@T/m>8. hѬ3PEs0h^Cl|H[V'"eƏr /v'Qt ~)S8{#92N;[fH-8odX^oW!:-[@. [d<a:H!H>ѮoӃ7fsXJdJ.a gwM*M {~cfLCY>X.R WV9Iu"72A(] ^Qd8J;i<=x?XͪEcdѴqQ*e4im݀:O#`ZE:wPx6==ʂ( +z 0,p!ۮJwiz )^^o8süf8sK>$ Yz'"Rpuc *ZjE#x/n1Ǡ<،&4?X +O0|.ŧzI/(E`{IfM!ͭpPZ>nq PǣgA:sUP"L2Ǿ/t4/f:?'bCQ/̈sK@,U^(n'Dq> Y;;;;XVJHJ6Z3NYije\\GSf ZB. K57A @Bb0] E#PjP-*fJ.A{sX|ceaHw G$e 8:8+"{c]W{SShXOVv&&VCO4dm _[VqW[J.$TV #x5)^C{k(uԜ$Lh#x Io=`ؕ`o$s*y<{tT\6*dW*<3E3b] Rı rjj@%i,9et ׬WeKvvE~+b7]-T]ɂ@[/KvBa`N$HvaOc4+K*+ +zW' ɜdJV+2 h\ +xTD&Bb|kLd8Å K*'v2tsʏ1ّ1J%&t#)EJ-¾%, e+ + +$"2}y`,0͡))LPhinb5]5]"$N$un1C!/ +}HϤ +9X`+Xv9uI!IqKY)r'm|dм1iLEEa]ݩ=.X4Lb. bo00ߛ0_"tM! va!L"!jNχX .cs, >MweӴR/lG#GZ3.Veu[!LIP2?VRkUAP-hFj XkeD@iY5gYaR-V6VuX83teV[Gr+C(ѸE `+m.HoY (.4*Lfܶ]QtKSşşKS3Pסw (V7 gc z; A!hY]wn#V=V=Imi~Q3*ͼf=6=JxtJYg9^vt/pmxGS! ȄdU80UaA,`~rܛqݏ躟̂XpuN8h&(^5 i?tƌ85S&͝$fe (H8 +sFw>T˼:p@阂|"IR&4>`z& P'[+rrkJ젎ffSx(YE/צNlSC^2^*z)H$P:=5@1h@OqYG֑udY'V5Մ_LPX-̂m3ZvH2;\%]ڼQ{cJ \547Dp N$/"9̨ !`01ꘟȊcʇ:L1&uLޛP'%6:)iP%>.YFڤQ2D2Z +z܎ay)*~k(;*i\jt;!e`iӄ/UL"xؽar4bc8,r#wFo d[b4Kvok a_b#KGBƁRo8RK:!923ÿݿz1jlBlrp3|^D5|M>xHj- ã0G6⯍ϴ0^&& Kc"Ơ{ ; -S^\B jiI'ScPE ~@JlS<ĭY/E>0NN5$=Z=2qV]N#'rrZ 9GWpV"WC` iWpbcg-"z\+qgHIxq_N5<ja߫jxN,+)%<I{% PĨ` 8TR,jx6UE&_j)A,ǁR'3Se*9~#Q y{^/΋@ zh1EP<ؽCY|ǰ8ϋã_aeê%!MtJKŘUD3t{# ,>(JkTTUȢ⪆60USCf`e =NURF0)|qCz|fQt>LV$Iq XJ]x)5{p?̤H.yIeTI v^m1Bz< s3 P b +B >1T}HAHd:MjHzN5$WȟS OGOg\~s!]ij'Ox>BVbfȄZPv^bNuU⻷}qy>9.2sȧ}[8X9p2S+-2u/9d'qKH\r%ߛ(\cP$gn id⍳4G/瀒 RU*.1h +y:?#x +*K:XObO}Vee!0JSUVnۀ'JV*cr=]_Sr'd^h, w%`MS2$J3Gt: *uQ 1K.2jB|mB\V$,3 +xWGёJDq- ]_Ų\UX+lyLeq%Ӛ{1QusE>/u",,3ZǙIU}\ZTU"p J8Djȱ+FITkOr\OTs9p'n<ȧO6SY'iX©M1ap2SL{ȔȐ4SJ{BR9<:F*IQz0KJ$ "1qoUD#O@A!ǁ7#y+>_(@*dKvg]jo=ZG2 COmr\ Z",MTT>! :a[8N`|o[ÏQNnVЅmʡ4KJFMEVfTV A806;#c"AR{4q8S -5BY5$Muߍ˧IԯsxQLM2Mo FE:DUItrQGF4|,;9C5r$8Y(V|C!hJ]ËMBZ7 {&? ~ZZLX,!" M4E;h"/ m;:TExTC>?TAȓ?bN5H悄@ rXS bV;<+#?ĒR: $+qgV>0#'s""Y2?JͳY?r{^ +QRv4h7^@\z}Oһ4P +:+t0@7uon!w XIBd3K:HLUWIQ!"ʺE~oVۀFRunV31u۬Vȫ?xGXYb?]EJp~򴷽{bpy m QU{SO +_ tLǰg1B*sA\S +WsݛQ2Dr-\xmDDH SJ*MsyE$AhFdDA  xDcI>*LBD(, FP`GR00&HbR yJq ]3Lx5?8hw2 Qvjokt@LWjXd6~5TN`Wa,ii4pM˨e\>Ks +N,S*Dy'6]G=cͷ9bbn +#.W`w~.Z{EОך:.)$X"n/i8gwnn0&c| ./ž-, yYZbS*ᡮS,AZ.; 1#c_B]#6~ݦ5ZhD~Y)e=Ᏼ2v_#=h(L| Vxᶭ:t3djaD"3ҴfcgT0~)p9ʉvПj׏f4/gC |)@š%{?,s"4MB p^Ya*EH5A0fj.F|^:Tf +4K_ȧn^[^ÃrHߡDZJ w*T<&V+_HimW]Fd~  JCkHnXTle@ 40L+57oE v X G3L[1TA/xݩ|>U?Op-_C50Gl8qEҽŸ @%I%5yܦpDmy>vL4i͵DYcDfrC J_KT"/t(Հ%NωFhnUSGPZ#Ф1{z5z՚}sT?RmZ֓gaX}Շa. /.C'y1o%CţubVCV?;V $-ɷܳMJH@pHi">g56mK8y0^7 NuͪJu<([}6|mi/V{+t?ne[w9a2t7Iz/l0X-UzT}A/yħSC@_1@>F1v,uf8}QR|IҐlZ~t:%56d8὜f*lYb)(!vLQŲ$!;;2 f92K~8OpIKNoxq*(,\lQZVi ң-{T&mAL(v<.TYlA :8bB+GM=ɧu[ZbEu8LG.gª.s~8'"6vVhv/Y&t$7}9diL"&i!+B>&a0pKL.d7vxWcky0z\r +V,n~B?܀D +4#4v9v 4~hIBnd [2_G fZKB( qaR@63+N'%?YP@BJ,%~Q)vF~߲=>c$ +o-!܌Dva?X,\B%у1Vi_1׊ZYm5 +.(?=vsm(Zg$Z@nݴ.A194ȳw4:!gs~^=t +Ԗo#~f${ŦYd.b!Q3Fd?uQ# iț2o-5ظj5L5+~&QCƳR\D"L? +Jѥo${A Kdc4ɳ`5Z!徊RVqaaoNi۰؊.3¢ +N Ńr[X`OX<.ϲ.:|4ɨz?$BDv&=WUd~Q SSsC E8z|{KFV0c!> *8Sb'ڛ쩣y.sͭżW?ߑѳz xyk,o>o}&;-W|d۫ S"YMNe=&T +ҬS^䶆Ra;uc[(rP3 +EfY5~&oEȌrboˆ&$9Xf_2AjlR&V(۩X銺 L] Q* 鄻N E֠ <iWAeE3P `H43!YcB + + R,KRhgHćQYtg\GFq1ө6nXmp sӬIĬ#kUCE8Y{gD1s;# Fz71sYe6 Մ/E_E(bR'=FMr8TnyB R9 V(̈́6͖[ڇ +E`֙0eŰ2B=-Bئ]9D\IiT;P Ka}#=K805BkY09З5, Cɟߧ{dS~ M!s`M28VB,|B + X^i; Ċۅ4n=HD#q#1] ` W0~KXvp7:DO*WZ)dr[4NN|1֙IKލim㵯e).ʍQF᪹Լm7G 0ꊥ4Qhi"E_?F2opTc|<rSt{C`4Ro"H;i1G{=ReZo mh 7'$\DlU1W'tK϶[kH_vgugd-?BpC OO!=(KLS*ޓ,-[1Dh~'HA/tIS6Ӯ@_-CLR=@4,02b'CxTooRój cXk'c79N$0$(Fh'Y߯:$}d'Nb5TGMƝPUK[dr81J! ;)kh35 L ˂e!Ӵ@l @#~9އ5pQSX\BLMم3gΪ>r'W,6gpRWswSiJ)l "ӛ}1q8ρcO6*vsEO|}o5ٜ,뚦?nvߴ/o4i_CqzR'Xä]J-+Ӛ Ou_-|@=:ETC_D ?4f QPmOҫiΖ$\zm,7Ə)sFQݖT"TW\9iාYtVI[LN>TWaip'%lmTw}, k#1qlYsJ^ZI\!o~X}e&W R{eB`l.ePÇ$}7jʇAj1y^i;4a`ᰐFh< KNMA>rԾu?1I`\b/T9I*hʼs,٘G6#~=.&Z|V5B2#-I2M K!Ct _o]5nRY,nb׵UVcM_@[6*ݘNP8bHo/55M.PUĀG"7.l'Q]e!Y%!572u8\e˲hǎw~ͱ4@u`+[€TTsj`ꛢ"Ja(}QնD=6F$u7C[lV$ tr1kN 4y*B.ۀ'wcd.cUӈkkjRj jA +}[БM8 8D*7)JwnCtA-t3|xA,L8vޣ>0&SX3`4,Aug`t)gyw8F,.bW9e, b\Z mygށ#Τth[b˷=`/d͖}P5XV +Oq|;2I$W'˨xXnn-t 5L>R"ͦ۫*b+ㄹ2c*xҳ*!d]6 6E*]RgB51ǵ,^FHH;&$&{r@ 3tS 8#J} 85iOj~@jsq;h'7# ,Xc@`vHv7X31}i{cHvLr* D6OPvIS>i.QqfqcfDE;jżhA=p".$l˒ܟY6mcZ͢6,U(1_UGpyLۉ0"ӷ]-t:p{蝶u?" Rw;$ ^P+ M^g.cS#ԙfmO(Ҭ`DVtVkydI͐Lց^ZEԝz;Qc9}Hi K/ c=`ebgEٜY*a Hr~/OQ1챃" y%{.[,Q{,p3#u#' X;{`~zx+ߤ0[,3BQ?Xp}2zfs#5Quq_e_4ɶS:؈3dة{PBd1-1zH}`ML.ǘXՉLk![x9;@Z¬6,-Cy/SkwF[C+9BTE11FQM۾Q%Ȟ q2yo| vݖԆȝ1!`)K V`GId&#.ΞR|<#vXb(Ͳ8Ɇs?*b|zڨ +?Xj&yS+ VջẔZYvϷgſ3eNJ,/X7ΛR-]1,&[ +953Wrbr:po +k7&ҟ!0bDZ+de|]H:VVIVU78WI0C'r?ꨓ11>Q Ϳ`^5$)a]2&c>35氅*_P>da"_X !(r/PB.X湫{:uQ I (CYV N x2ULWW0Ue{%$0S㘣 mENI蒉 +.RͦmHR^/M9Gm'i8wZ,,ް/1=0q]|i}-m\ҩ='v򟲈@L a)9Ln!R5r ?Lpvef(sd%Co}w0׿x[ +ZߩܪMS%Ck!RL5vqҿvi¿M +u^ߥWY>G+@rvS yMLHbP4CS],('vZ~c~(|0"n BH"`KejWr0v0ɭJk^MI^@wE-1o~ȏSG9à)ͬu8e9~@:W"w Z{tq0&Ks* uHz L1+U3:QP>AWQ=Bl2(:S16#IHA6{M\%&2*21aկ? +LÅ+<(9z,ZXW?oS҇m!mbȾiڿ't(\m˱J#q[XÊb`ņN 'c)~ƄTcH==Yʴ`j9!'@|%F5:|!BkPe7F]0CAˇu`UPrQKm9{^k\CkRVDI^ LIBr "6L/{BHY }Ͼ3}>E>F!&taOLA] ݧ˅3~F\Ĉ+vXG[H<0H(OnwV,Yswse Nrz$ Pq@w,\gХgo ^⹴ A5U=!xX EW#'VcL~N-B_.; 0ԧCs1 +jT^tE_! + +,]ړSM1s̍+-& ]TBEze X)(?'|~ձH RPV qXaAKvܞ~aȏl'J]xwJ} rNJhZcs4cE__vXLTE: %Pu`CfJXqZN/G+$MLS'$C٨d=rkpƗc٧2]kl08DeUkeLBrHKB85KhQINʮ[ݭ.ŽiݭP؏qcb;$Xۓ;y&ݪwU 52eyi7ƻ9;e)ol+}JƟp7W{ֳ>E-֮:h;G&Q3_m9J$B{2=EӌcLKĝ@Wf!ܰx;qo- k$2h*Ųܭ6? 2ɛQ̐=0fpʩ +(^[iYCY=bgbG`]PSl'0[ +aRU~h,>1sɎ)QґQn +O1o8eB_eAvd2;-CNB+EM:>P\Mi$jU\vV} hmYal# \>$r 4z cU{2}vuSLV8/ 9]\?RrWS\F^Je8/[3~G򵾰müwBi@JxV} 7{:)AHB>zm'~8IKh&i邈!bu.;qnv;ˉ(U5>" F&$NO9屐mw^ ک)r1ę*nwHDUyAZ#וUBM!(qP8 +b2߆4 endstream endobj 29 0 obj [/Indexed/DeviceRGB 255 30 0 R] endobj 30 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX$6Ra!<<'!!!*'!!rrmPX()~> endstream endobj 23 0 obj <> endobj 31 0 obj [/View/Design] endobj 32 0 obj <>>> endobj 22 0 obj <> endobj 33 0 obj <> endobj 34 0 obj <>stream +H|TkPg%l"e]fm}@+"*⃢ >j Q %j-*TABPQGy#ߕx?~tCW޹Ν0'G,r'Uk4[ҒT +4.|(LtLd +nO&]0z*nIs3fy{}=Y^^^#-Vi8N^MDž$ǧ)JQ{r:4|=#N4Z}TbqV5jNϫԚm*~+bn)N̉d)bRǩ3))#*)iz^yXؙrjf 1 a Ɗ Vb?:9\L(LQ(Qx].?1 Iɗz^f6ҜzUxqE*ZC!hPT +4֮5_G [[Xʤdk {TQѴnɔ<̢oxy/ܩi9mg#׎ + +Ђ t78 Y`6.1J1LQq~d(1|sQzzFXw<%u;@I. 'pY'erCP˕˟~(C /qE[]I&+/(k ic=0kF7Y{0}-|EpT||d 6+w +c.5*j^`ٝ fKdSsΛ/~vjۨ{$& !IlpjqˌEfzsoL;FPJ${a0zaL]NVИwArTLuJ![]pL gehyR(rRZoW̃K}l>&nO| +z'ޘXqC&]X[3\:zr S\I[c" \F7ș^LLbMP=#Jl2Ř([yG擵wWsbID,Uuwc:b:zT! O)eF[qNHN-U{lfM%rS/Ævujw\}MpPIsZ4|,r{N]+o0y|_Kj,˱zd=9Y,T}xzk13 +9*է^ ,p|9=8Y|c8+`qD6NrB,eG&ϲ +;iZZhUƜ> endobj 26 0 obj [/ICCBased 35 0 R] endobj 35 0 obj <>stream +HyTSwoɞc [5laQIBHADED2mtFOE.c}08׎8GNg9w߽'0 ֠Jb  + 2y.-;!KZ ^i"L0- @8(r;q7Ly&Qq4j|9 +V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'Kt;\ ӥ$պFZUn(4T%)뫔0C&Zi8bxEB;Pӓ̹A om?W= +x-[0}y)7ta>jT7@tܛ`q2ʀ&6ZLĄ?_yxg)˔zçLU*uSkSeO4?׸c. R ߁-25 S>ӣVd`rn~Y&+`;A4 A9=-tl`;~p Gp| [`L`< "A YA+Cb(R,*T2B- +ꇆnQt}MA0alSx k&^>0|>_',G!"F$H:R!zFQd?r 9\A&G rQ hE]a4zBgE#H *B=0HIpp0MxJ$D1D, VĭKĻYdE"EI2EBGt4MzNr!YK ?%_&#(0J:EAiQ(()ӔWT6U@P+!~mD eԴ!hӦh/']B/ҏӿ?a0nhF!X8܌kc&5S6lIa2cKMA!E#ƒdV(kel }}Cq9 +N')].uJr + wG xR^[oƜchg`>b$*~ :Eb~,m,-ݖ,Y¬*6X[ݱF=3뭷Y~dó ti zf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4 +n3ܣkGݯz=[==<=GTB(/S,]6*-W:#7*e^YDY}UjAyT`#D="b{ų+ʯ:!kJ4Gmt}uC%K7YVfFY .=b?SƕƩȺy چ k5%4m7lqlioZlG+Zz͹mzy]?uuw|"űNwW&e֥ﺱ*|j5kyݭǯg^ykEklD_p߶7Dmo꿻1ml{Mś nLl<9O[$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! +zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km endstream endobj 24 0 obj [23 0 R] endobj 36 0 obj <> endobj xref +0 37 +0000000004 65535 f +0000000016 00000 n +0000000147 00000 n +0000037035 00000 n +0000000000 00000 f +0000037086 00000 n +0000000000 00000 f +0000000000 00000 f +0000038408 00000 n +0000038480 00000 n +0000038675 00000 n +0000040176 00000 n +0000105764 00000 n +0000171352 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000212047 00000 n +0000211860 00000 n +0000217033 00000 n +0000037520 00000 n +0000214341 00000 n +0000214228 00000 n +0000037987 00000 n +0000211286 00000 n +0000211334 00000 n +0000211931 00000 n +0000211962 00000 n +0000212339 00000 n +0000212655 00000 n +0000214376 00000 n +0000217058 00000 n +trailer <<885BA98963D8444D8A4F920CB583737B>]>> startxref 217277 %%EOF \ No newline at end of file diff --git a/wp-content/uploads/2023/09/lcp-spec.png b/wp-content/uploads/2023/09/lcp-spec.png new file mode 100644 index 00000000..7c9510cd Binary files /dev/null and b/wp-content/uploads/2023/09/lcp-spec.png differ diff --git a/wp-content/uploads/2023/09/lcp-upscaled.png b/wp-content/uploads/2023/09/lcp-upscaled.png new file mode 100644 index 00000000..d77e68b8 Binary files /dev/null and b/wp-content/uploads/2023/09/lcp-upscaled.png differ diff --git a/wp-content/uploads/2023/09/lqip-lcp.gif b/wp-content/uploads/2023/09/lqip-lcp.gif new file mode 100644 index 00000000..4ae861b0 Binary files /dev/null and b/wp-content/uploads/2023/09/lqip-lcp.gif differ diff --git a/wp-content/uploads/2023/09/lqip-verify.png b/wp-content/uploads/2023/09/lqip-verify.png new file mode 100644 index 00000000..ebfee35f Binary files /dev/null and b/wp-content/uploads/2023/09/lqip-verify.png differ diff --git a/wp-content/uploads/2023/09/same-event.png b/wp-content/uploads/2023/09/same-event.png new file mode 100644 index 00000000..67f12ead Binary files /dev/null and b/wp-content/uploads/2023/09/same-event.png differ diff --git a/wp-content/uploads/2023/09/separate-events.png b/wp-content/uploads/2023/09/separate-events.png new file mode 100644 index 00000000..60c7abb7 Binary files /dev/null and b/wp-content/uploads/2023/09/separate-events.png differ diff --git a/wp-content/uploads/2023/09/too-far.jpg b/wp-content/uploads/2023/09/too-far.jpg new file mode 100644 index 00000000..05ca33bc Binary files /dev/null and b/wp-content/uploads/2023/09/too-far.jpg differ diff --git a/wp-content/uploads/2023/09/train-lcp.png b/wp-content/uploads/2023/09/train-lcp.png new file mode 100644 index 00000000..849eb8f5 Binary files /dev/null and b/wp-content/uploads/2023/09/train-lcp.png differ diff --git a/wp-content/uploads/2023/10/brotli-3g-many.png b/wp-content/uploads/2023/10/brotli-3g-many.png new file mode 100644 index 00000000..7be59f9c Binary files /dev/null and b/wp-content/uploads/2023/10/brotli-3g-many.png differ diff --git a/wp-content/uploads/2023/10/brotli-3g-one.png b/wp-content/uploads/2023/10/brotli-3g-one.png new file mode 100644 index 00000000..e871bbf6 Binary files /dev/null and b/wp-content/uploads/2023/10/brotli-3g-one.png differ diff --git a/wp-content/uploads/2023/10/chart-all.png b/wp-content/uploads/2023/10/chart-all.png new file mode 100644 index 00000000..d5f2195d Binary files /dev/null and b/wp-content/uploads/2023/10/chart-all.png differ diff --git a/wp-content/uploads/2023/10/chart-compression.png b/wp-content/uploads/2023/10/chart-compression.png new file mode 100644 index 00000000..60839e1c Binary files /dev/null and b/wp-content/uploads/2023/10/chart-compression.png differ diff --git a/wp-content/uploads/2023/10/clear-site-data.png b/wp-content/uploads/2023/10/clear-site-data.png new file mode 100644 index 00000000..d36fb800 Binary files /dev/null and b/wp-content/uploads/2023/10/clear-site-data.png differ diff --git a/wp-content/uploads/2023/10/wpt-full-results.png b/wp-content/uploads/2023/10/wpt-full-results.png new file mode 100644 index 00000000..f8612b4f Binary files /dev/null and b/wp-content/uploads/2023/10/wpt-full-results.png differ diff --git a/wp-content/uploads/2023/12/bbc-news-waterfall-connections.png b/wp-content/uploads/2023/12/bbc-news-waterfall-connections.png new file mode 100644 index 00000000..6eff2bc7 Binary files /dev/null and b/wp-content/uploads/2023/12/bbc-news-waterfall-connections.png differ diff --git a/wp-content/uploads/2023/12/bbc-news-waterfall-dns.png b/wp-content/uploads/2023/12/bbc-news-waterfall-dns.png new file mode 100644 index 00000000..eb708390 Binary files /dev/null and b/wp-content/uploads/2023/12/bbc-news-waterfall-dns.png differ diff --git a/wp-content/uploads/2023/12/bbc-news-waterfall-initial.png b/wp-content/uploads/2023/12/bbc-news-waterfall-initial.png new file mode 100644 index 00000000..ea8f95e2 Binary files /dev/null and b/wp-content/uploads/2023/12/bbc-news-waterfall-initial.png differ diff --git a/wp-content/uploads/2023/12/devtools-request-headers-02.png b/wp-content/uploads/2023/12/devtools-request-headers-02.png new file mode 100644 index 00000000..3f935ac6 Binary files /dev/null and b/wp-content/uploads/2023/12/devtools-request-headers-02.png differ diff --git a/wp-content/uploads/2023/12/devtools-request-headers.png b/wp-content/uploads/2023/12/devtools-request-headers.png new file mode 100644 index 00000000..dc3eb6cb Binary files /dev/null and b/wp-content/uploads/2023/12/devtools-request-headers.png differ diff --git a/wp-content/uploads/2024/08/anti-flicker.png b/wp-content/uploads/2024/08/anti-flicker.png new file mode 100644 index 00000000..b09836e2 Binary files /dev/null and b/wp-content/uploads/2024/08/anti-flicker.png differ diff --git a/wp-content/uploads/2024/08/bbc.png b/wp-content/uploads/2024/08/bbc.png new file mode 100644 index 00000000..d6fd87eb Binary files /dev/null and b/wp-content/uploads/2024/08/bbc.png differ diff --git a/wp-content/uploads/2024/08/blocking-status.png b/wp-content/uploads/2024/08/blocking-status.png new file mode 100644 index 00000000..01405cbf Binary files /dev/null and b/wp-content/uploads/2024/08/blocking-status.png differ diff --git a/wp-content/uploads/2024/08/devtools.png b/wp-content/uploads/2024/08/devtools.png new file mode 100644 index 00000000..2cf39af3 Binary files /dev/null and b/wp-content/uploads/2024/08/devtools.png differ diff --git a/wp-content/uploads/2024/08/foft.gif b/wp-content/uploads/2024/08/foft.gif new file mode 100644 index 00000000..100daf69 Binary files /dev/null and b/wp-content/uploads/2024/08/foft.gif differ diff --git a/wp-content/uploads/2024/08/headers.png b/wp-content/uploads/2024/08/headers.png new file mode 100644 index 00000000..b33d0787 Binary files /dev/null and b/wp-content/uploads/2024/08/headers.png differ diff --git a/wp-content/uploads/2024/08/scalemates.png b/wp-content/uploads/2024/08/scalemates.png new file mode 100644 index 00000000..1d8e7680 Binary files /dev/null and b/wp-content/uploads/2024/08/scalemates.png differ diff --git a/wp-content/uploads/2024/09/carangola.com.br-h1.png b/wp-content/uploads/2024/09/carangola.com.br-h1.png new file mode 100644 index 00000000..a44dfd30 Binary files /dev/null and b/wp-content/uploads/2024/09/carangola.com.br-h1.png differ diff --git a/wp-content/uploads/2024/09/csswizardry.com-h1.png b/wp-content/uploads/2024/09/csswizardry.com-h1.png new file mode 100644 index 00000000..454093b6 Binary files /dev/null and b/wp-content/uploads/2024/09/csswizardry.com-h1.png differ diff --git a/wp-content/uploads/2024/09/csswizardry.com-h2.png b/wp-content/uploads/2024/09/csswizardry.com-h2.png new file mode 100644 index 00000000..db7d64b4 Binary files /dev/null and b/wp-content/uploads/2024/09/csswizardry.com-h2.png differ diff --git a/wp-content/uploads/2024/09/devtools-preflight.png b/wp-content/uploads/2024/09/devtools-preflight.png new file mode 100644 index 00000000..187dcbb7 Binary files /dev/null and b/wp-content/uploads/2024/09/devtools-preflight.png differ diff --git a/wp-content/uploads/2024/09/devtools-quic.png b/wp-content/uploads/2024/09/devtools-quic.png new file mode 100644 index 00000000..8d4f2c36 Binary files /dev/null and b/wp-content/uploads/2024/09/devtools-quic.png differ diff --git a/wp-content/uploads/2024/09/diagram-all.png b/wp-content/uploads/2024/09/diagram-all.png new file mode 100644 index 00000000..c173c0fe Binary files /dev/null and b/wp-content/uploads/2024/09/diagram-all.png differ diff --git a/wp-content/uploads/2024/09/diagram-h1.png b/wp-content/uploads/2024/09/diagram-h1.png new file mode 100644 index 00000000..e6e56c36 Binary files /dev/null and b/wp-content/uploads/2024/09/diagram-h1.png differ diff --git a/wp-content/uploads/2024/09/diagram-h3-0-rtt.png b/wp-content/uploads/2024/09/diagram-h3-0-rtt.png new file mode 100644 index 00000000..6db87f22 Binary files /dev/null and b/wp-content/uploads/2024/09/diagram-h3-0-rtt.png differ diff --git a/wp-content/uploads/2024/09/diagram-h3.png b/wp-content/uploads/2024/09/diagram-h3.png new file mode 100644 index 00000000..a5686e1c Binary files /dev/null and b/wp-content/uploads/2024/09/diagram-h3.png differ diff --git a/wp-content/uploads/2024/09/diagram-tls-1.2.png b/wp-content/uploads/2024/09/diagram-tls-1.2.png new file mode 100644 index 00000000..bebe1149 Binary files /dev/null and b/wp-content/uploads/2024/09/diagram-tls-1.2.png differ diff --git a/wp-content/uploads/2024/09/diagram-tls-1.3.png b/wp-content/uploads/2024/09/diagram-tls-1.3.png new file mode 100644 index 00000000..a2f0fde7 Binary files /dev/null and b/wp-content/uploads/2024/09/diagram-tls-1.3.png differ diff --git a/wp-content/uploads/2024/09/diagram-tls1.3-0-rtt.png b/wp-content/uploads/2024/09/diagram-tls1.3-0-rtt.png new file mode 100644 index 00000000..e1dc10c4 Binary files /dev/null and b/wp-content/uploads/2024/09/diagram-tls1.3-0-rtt.png differ diff --git a/wp-content/uploads/2024/09/rtt-csswizardry.com.png b/wp-content/uploads/2024/09/rtt-csswizardry.com.png new file mode 100644 index 00000000..cb462526 Binary files /dev/null and b/wp-content/uploads/2024/09/rtt-csswizardry.com.png differ diff --git a/wp-content/uploads/2024/09/rtt-diagrams.ai b/wp-content/uploads/2024/09/rtt-diagrams.ai new file mode 100644 index 00000000..8746cbeb --- /dev/null +++ b/wp-content/uploads/2024/09/rtt-diagrams.ai @@ -0,0 +1,1565 @@ +%PDF-1.6 % +1 0 obj <>/OCGs[25 0 R 26 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + application/pdf + + + rtt-diagrams + + + Adobe Illustrator 28.7 (Macintosh) + 2024-09-13T19:48:53+01:00 + 2024-09-13T19:48:53+01:00 + 2024-09-13T19:48:53+01:00 + + + + 256 + 68 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgARAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9QP9fSZnMsTW5KhIhGyu ORA3k5kH/gMVS/X/AC3oOvxxRa3YG6igLGONi5T4xRqrG1GH+sMjxMuFKNF8seSLKaTQtGgu7Jba Eo6Wk+oQwcXCtX1o5FjaT4qhuXP7VP2sINoIpk2naZZ6dC8NqHCSSPNIZZZJmLyHkxLys7fIVoOg 2woRETl4kc7FlBp8xXFWp1nMZEDqknZnUuvT+UMn68VQWoWMGp2Nxp2oQ/WLWWiSrGzRkjZ+oZWX fwbASkBi1x5A/LTRYLjUV0t7Q8zLI1q92kxeWM2xKLE4evCU/Z6E8vtb4OILwlMZ/wAtfJl3JNPc WUs011E8M8sl1dl2jl4lgxaXl+woHcAAClBkkMlBCukSii8SR7caD+OKr8VQwN6kn7ySORXdgiqj IQvElQWLvU7bmn0Yqx/XPy88ka5qEuo6zpAubyZY0klkaU1SE8lWiPxUV+1sOXeuR4mXChNI8n+Q riK40uwtLuOzs3eOS29fUIrXk0hciMGRYXCuvJeNeHVaVwg2xIT7RPKmgaJI8ml2v1d3ghtmPOR6 xWwYRLR2YfDzO/U964VTSJy8SOdiyg0+YriqndJeNGBaSxxSV3aWNpVpTpRXi7++KoG50bSL8ySX +l2t68qmGV5IYpC0asy8H9QGq0J2qepwEpAQOp2XkvT1jurrSLcu8ipGY7H1ZS/FqUVI2f7PIVA7 0748QXhKNj8q+VkJePR7JGehcrbRKWozOOXw7/E7Nv3JOFCMtLOysQtrZW0VrAQW9OFFjWq8V+yo A6YqryiUxsImVJSPgZ1LKD7qCtfvxVDLLeRfBMUmcAFmjjdB8RNNuUpHT3xo9GQFsd80+W/LmqJN qF1o36Xv4hFSBZnViImO8YDAJIquxU0Uk7VHYGxzCmKh5J8geR9MePWNJ0R9J1B6F4ZZpHkQojwj mnqypUo7V7mtTviCCgghmTuVZB/O1P8AhSf4YULsVUJzdIWkV4/RVSTGUJYkAH7fMDx/ZxVY9yhR knRSjAqyv8PIHYij/Cff4jjUvez4e5jMOkeWbbWE0oeULWCzRQbe/S2tRAi7SUYEKyt6ynZQQSA1 fCPEEcJZbDFDDEsUKLHEooiIAqgewG2SYtxuXUnpRmH/AALEfwxVbcf3Y/10/wCJjFVTFUAuq6NP qM2ni4ie/tk9SaCo5ohIHI+G5GAgdUgno3dRzyIgsrl4mDqzEL6qsqmrLycgb9PtZVME/Sf0tsCB 9Q/QutXv/wB2phiFtwWkolYv0H7Hp0/4fLmlGYqpxf3k3+uP+ILiqlqOoWOn2kl1fTJBaxj95JJs ortvirUUtjLFHNbyApKqyRGImjKwqrBV61HtkDQZiyh411OJ5CHF27GRoFm/cBULLRCyLIdh3K4M YkLs2nIQaoUjrdrhogbhEjl35JG5kUb7UYrGen+TljW6X+8h/wBc/wDEGxVUxVAWuq6LfzXMdvcR TS2TCO54n4o2NaAnt0ORIHVIJ6Lp455HgNpcPGscgeReHqK6UIK8mI617HK5AmuE9W2JAviC61e+ pCphi+r8RWT1W504inwenTr/AJX9MuaUXiqnb/3Z/wBd/wDiZxVD6pq+l6ZAsupXEdtDIwjVpTQF m7YqqkW6khGKsP2Y6mnvxFR94yGzPdC2seowuBJJ9adjKytLSLijMpCjiHrT3wYoyA3N7pyGJOwp HxGUxqZlVJSPjVGLqD7MQpP3ZY1rV/3of/UT9bYqgvMFxDb6TcTSLK1EKo1vCbiVWf4QyRgNXiTX w8cN0kEoXRVaXSoHmmuJ5W5sGuETmVLkpzUDgnwU22PjvkTIHpbMWFK0h1VNZubkSxz2swT6tEZX +F0jYNy2lVQfYk/wPhRHqHFxHnfL4NmWUTACtwnds120dbmOOKT+WNzIv/BMkf6sXHbuf955f9Rv 1Yq70Ih9kcD/AJHw7+9Ov05LiKOEJONJMfmU3ccLqJLMRfWVcqhMcpbg8a8VBHqVRqGvxA9BU8QP NNlT8zQagmi3H1RWM9YyOFeR/erWhh4t0/yMMNNjynhJ4Qe402Q1AgeKQsD4plBJqI9MRwRNAWb1 JHmdXHxmtE9I128WGV1TW017cyFkexmgVWWksjQcDRx04SO33jFXWEl4bVfr8wMtW5PEvGMqWNPi +Km232sphxgVPm3T4SfRyW22oaZLqktlEkj3UChnmMUhjoQCAJypQn4vs8q9ffLAA1klMckxU7b/ AHni/wBRf1Yq1NNJGCUgebatEKDfw+NkxVAevqDXycOMEDVNxA4Vpt41px4sw+E+FcqmJ8QI+nq2 wEeE3z6L9RvtPsrKW6vGklijpzjVWkcgsFA9FBVtz/LkhRYmwj41QIAi8V6hQOP4ZICmBK1v96E/ 1H/WuFVQmgJArTsO/wB+KoKe5nIBEDRMhYo8pj4EiNiD8Lk0r40wG625pjz3asnuDaxfXpgZuNJH jHGNvflv19jlUOID1ndtmBZ4Rss03UNNvLi5S1jk9W1cpLLJDIqlgSvwSuoWT7P7LHLAA1ElMckh Ttv954v9Rf1Yqp3F1PFKiR2ktwr/AGpIzEFTf9r1JEb7gcVQiTXxvUCuqWvGT1YaKZeZkNGFGbYA eGVSE+K/4G2Ijw/0rdqepaZYwpJeerMJHEYjSKSd+RBI/cxqx6L/AC5IUWJsJkoUKAoovYUp+GTY LG/3oT/Uf9a4qukdkUFY2kNaUXjX5/EVxVJNUuNXdrVrO3mhYzQfWVZ4l4wh25liDKtKb0B/phGL j/i4a39/k3YpQF8Xd9qLvucdhcXSzQqYY2kWSU/u04itXkbnRR3IAwcIHT5sOPuXaTEJtOgmuLiL UJJF5i6iB9JwxJVo1Z5eI40/ayXEWPEUZL/eQ/65/wCINkUKmKoW4uJTHIhtpApR6yEx8RQez8t/ liqKxV2KuxVTt/7s/wCu/wDxM4q64/ux/rp/xMYq20MTHkV+I/tDZvvG+ESKKCXLBq41eVWSE6ay c4bkMRMrAKvpsooW/abnz6bU7kEA8wkEjq7U21aGKE2YLt60YdQFk/d1+PZvT7f5WPhcXKXD7xfw T4gHOPF7vvREd1MiW6JaTSoyqGlUxBV6CrB3RvuU4oRmKqSojtMrqGUuNiKj7C4gqChNVtrsWEp0 0J9bUBoopWIibiwJQ1DKvIAgNx2O+Em+bISKskU4VWidWDAU4kqKe321P0KMHCPcniHVLdJ1HUJZ rn6zC8himlS2CiMFouScWrzoQPE09q4fClDnLivy5eTZmjEVw932pvazyzRlpLeS2YGnCUxkkeP7 t5B+OBobl/vIf9c/8QbFXNbwsxbjRj1daqx+laHDxFPEUts4dUN3dRXHpCNGrbzoxLsjsxUMo4Op VQASWPI74KB6MuNZql3qlrPYLCOay3KpcBeD0h4tyJ5mKgrTepPz6EjCZcpVXeOfk244wIN932/a jra5l4QoLaUoQq+rWMLThXlQuHpXb7Nfo3wOOi8VQ6wJLGeRP23qNiPtnswIyQlSpL5qY2enJJ9b ntV9ULztoHuG+w3wmLjMoXvXiKU98TR5rxSTUC4jApVR71UAe9PVUfcMHhjofx8WXGOqW6Fql9c2 8k00b3Ekc11Gip6KkokgCj+849PGn8SZYJY9pHiJ35Vz6MspgT6OVfb1TyGR5IwzRtEx6o/Ekf8A Alh+ORa2l/3of/UT9bYq3JBDJXmgNRQnvTwrhEiilK3sYrSP0rWkUXJn9OgK8pGLsex3ZieuGwtK JlvxecZoVFurD0JEYl3JjblVafDv75KQjwijv1Ygys3yV7a5mmaQSWstuE+y0hiIfc/Z9N3PbvTK 2a+5/wB55f8AUb9WKqmKuxV2KoL63cRBgllNOOb/ABRmEDd2/nkQ7UxVaup21zRI0nU8kNZbeeIf bXvIiDFUfirsVdiqnbf7zxf6i/qxVbcXcVvT1Fkatf7uKSXoCf8Adat4Yqgzf3S6gkEFo0sMzMZb lmCLFxjUqGU/H8VDvxplkYgxJJZxiCCSVW/02PUrZrW+CvbOQXhAqG4mvFuVQynuCu+RsMbCrDYW kUSQrGPSjUJGh3VQooAqnYbeAx4ivEVRv96E/wBR/wBa5FCoTQEnt4b/AKsVQT38T8WjjlYxu/wN G8XIqjbAyhF37GtPfCBZUN2NzqF1aRTTWwspnWskMjeoyMNivw8QfnXJzjEGgbbJxiDQNqdjoen2 TzyQJwlum9S4kU8Wdqk1Zlo7U5UHImg2yNsLR0cUUdeCBa9aACuAklSbW23+88X+ov6sCFG61K2t pRHIk7MV5Vit55lpv+1GjrXbpXFVBNVjS9jsRBO8kqyyrKIyIhxkI4mRuK8juaeA+VbBjuPFYbBj uPFYdqemy6nEkMsklvCG5MsMrozihormMxtSu9A/sajI7MNkZ9Xr/eSO/tXiP+F4/jjxLayK2t7e ZEgiSJCrkqihRUld6DGUieZQuu7yK1jEkqyMpPECKKSZq0r9mJXNNuuRVba3Ec8jyIHClF2kR422 Zv2XCt+GKojFXYqpy/3kP+uf+INiqpiqFuLuIxyRhZORR6ExSBdhT7RXj38cVRWKuxV2Kqdv/dn/ AF3/AOJnFXXH92P9dP8AiYxVUxV2KuxVBw6hYIkML3MSzMoAjLqGJCgkUrXauKozFVARRSPLzQNR 9iRUj4F6YQSEg0oalpMd9ZS2bXE8McoHJopGV9iGFH+2OnZhhtbRINygoVWQDupIb7mr/wASx2XZ AQ6zbPJNJco9hHbNJE0l2BEjUZBzRmPFlJ6GuGcOGtwbZThw1uDaOtb2zu4zJaTx3EYPEvE6uAaA 0qpPY5Bgul+3D/rn/iDYq70Ix9kcP9Q8RX5DY/TkuIo4UFY6OtjdXdzDPNM14weRLiWSRVNWNIwS VjHx9FXGwu6vcXrwNCrW8snqyCMtEOYWoJ5NTcKKbmmTjj4r3Gw6sZTqtlOHVdLT0bZ7yBbkqgEJ kQOSwFBxrXeoypmjsVU7f+7P+u//ABM4qqYq7FUPc3NvbzI88qRJwk+J2CjbiTufACuKrrW8s7uM yWs8dxGDQvE6utaVpVSfHFVy/wC9D/6ifrbFVTFXYqo3MkcZieRgiK5JZiAB8DdzirVrf2N2pa0u YrhR1MTq4/4UnFV9z/vPL/qN+rFVTFXYq7FUC2raXa1juryCB+TnhLIiGnNt6MR4Yq2NS065CpbX UM7kowWORXPESAE0BO1dsVRuKuxV2Kqdt/vPF/qL+rFVs97Z25pPPHEeJejuq/AtAzbnoKipxVCv q1lBfpaOzNPdszQKiswISNWPxAUG3TJxxkgnoGccZIJ6BffQ3t3bNDBLJYu1KXCGP1FINahWWVD8 jgoMaCpBazJBHHNcvMUVVZ9lL8RTk1N6nqaHG1tesSJcJxG5R6sSSTuvUnc4CbUlWJABJNANyTgQ hItQsLxomtLmK4UOamJ1cD4G/lJxVF4q7FXYqp23+88X+ov6sVUbrVdLtJBHd3kFvIRyCSyIjFfG jEbbYqrW/wDdn/Xf/iZxVUxV2Kqbf70J/qP+tcVbmuIIQpmkWMOeK82C1NCaCvsMVUra4guJGmt5 EmiZF4yRsGU0ZwaEbdcVRGKuxVTl/vIf9c/8QbFVTFUJLfWUsUkcdxE8jJJxRXUseHwvsD+ydj4Y qi8VdirsVU7f+7P+u/8AxM4q1cgFFqK0dCPnzGKquKuxV2KqdsR9Xi/1F/ViqpiqhHEvqTFSUPPq p23Ve3T8MIKCEPq9pqlxps8FhefVLt1/cXIVSyMCCCeQdSDSh+Hph2XdFiVlAEiNUbFgOQJ/2O/4 Y8K2oQX1pdXB9CVZPR9SKUDqrqVqDXDPHKNWOaIzEuSLyDJSmAMkBIrRzT/gGxVVxV2KuxVTtiPq 8Xsi1+4YqqYqpWwAjIAoOb7D/XOKquKuxVTYgXCV/kf9a4qqYqpKALmQgblEqfpbFVXFXYqpy/bh /wBc/wDEGxVUxVSugDbSgio4Hr7DFVXFXYq7FVO3I4Ed+b/8TOKr240+KlKjr412/HFW8VdirsVS 1/8ADn1uP1Pqf1vf0uXpepWgrxr8X2adMVTLFWhxq1KVr8VPGnf6MVbxV2KoS7/RH1eT639X+r/F 6vq8OHUc+XLbr1wm+qBS3Sv0L9Xb9E/Vvq/M8/qnp8OdBWvp7VpTAlGHjVa0rX4a+NO30Yq3irsV diqWN/hj62OX1L63yjpX0vU50/df5VafZ/DFUzxVpeNPhpSp6eNd/wAcVbxV2KobUP0Z6DfpD0fQ p8X1jhw48l689qcuP00xV1h+jOEn6P8AR4cz6v1fhT1Nq8uH7XzxVEfDyPTlQV8ab0xVvFXYqpXP 1X0j9Z4el39SnHoa/a26YqhdK/QPBv0T9V4V+P6p6dK7dfT+jFUc3HieVONPir0p74q3irsVdiqU 6l/hT1F/Sf1D1N+P1n0eXX4qc/frir//2Q== + + + + proof:pdf + uuid:65E6390686CF11DBA6E2D887CEACB407 + xmp.did:b6cd51b2-47a7-45a1-a43b-726173adc6e3 + uuid:2a54f497-7016-9c45-8072-8569071ddb1d + + uuid:48530a2d-2ce2-45ea-a0a9-45ff087881e9 + xmp.did:34b468f4-5a2e-1544-a98c-cbef738ecd6d + uuid:65E6390686CF11DBA6E2D887CEACB407 + proof:pdf + + + + + saved + xmp.iid:b6cd51b2-47a7-45a1-a43b-726173adc6e3 + 2024-09-13T15:16:13+01:00 + Adobe Illustrator 28.7 (Macintosh) + / + + + + Web + Document + AIRobin + 1 + False + False + + 2979.000000 + 1827.000000 + Pixels + + + + + OperatorMono-Medium + Operator Mono + Medium + Open Type + Version 1.200 + False + OperatorMono-Medium.otf + + + SFUIDisplay-Bold + SF UI Display + Bold + Open Type + 11.0d44e2 + False + SF-UI-Display-Bold.otf + + + + + + Cyan + Magenta + Yellow + Black + + + + + + Default Swatch Group + 0 + + + + White + RGB + PROCESS + 255 + 255 + 255 + + + Black + RGB + PROCESS + 0 + 0 + 0 + + + RGB Red + RGB + PROCESS + 255 + 0 + 0 + + + RGB Yellow + RGB + PROCESS + 255 + 255 + 0 + + + RGB Green + RGB + PROCESS + 0 + 255 + 0 + + + RGB Cyan + RGB + PROCESS + 0 + 255 + 255 + + + RGB Blue + RGB + PROCESS + 0 + 0 + 255 + + + RGB Magenta + RGB + PROCESS + 255 + 0 + 255 + + + R=193 G=39 B=45 + RGB + PROCESS + 193 + 39 + 45 + + + R=237 G=28 B=36 + RGB + PROCESS + 237 + 28 + 36 + + + R=241 G=90 B=36 + RGB + PROCESS + 241 + 90 + 36 + + + R=247 G=147 B=30 + RGB + PROCESS + 247 + 147 + 30 + + + R=251 G=176 B=59 + RGB + PROCESS + 251 + 176 + 59 + + + R=252 G=238 B=33 + RGB + PROCESS + 252 + 238 + 33 + + + R=217 G=224 B=33 + RGB + PROCESS + 217 + 224 + 33 + + + R=140 G=198 B=63 + RGB + PROCESS + 140 + 198 + 63 + + + R=57 G=181 B=74 + RGB + PROCESS + 57 + 181 + 74 + + + R=0 G=146 B=69 + RGB + PROCESS + 0 + 146 + 69 + + + R=0 G=104 B=55 + RGB + PROCESS + 0 + 104 + 55 + + + R=34 G=181 B=115 + RGB + PROCESS + 34 + 181 + 115 + + + R=0 G=169 B=157 + RGB + PROCESS + 0 + 169 + 157 + + + R=41 G=171 B=226 + RGB + PROCESS + 41 + 171 + 226 + + + R=0 G=113 B=188 + RGB + PROCESS + 0 + 113 + 188 + + + R=46 G=49 B=146 + RGB + PROCESS + 46 + 49 + 146 + + + R=27 G=20 B=100 + RGB + PROCESS + 27 + 20 + 100 + + + R=102 G=45 B=145 + RGB + PROCESS + 102 + 45 + 145 + + + R=147 G=39 B=143 + RGB + PROCESS + 147 + 39 + 143 + + + R=158 G=0 B=93 + RGB + PROCESS + 158 + 0 + 93 + + + R=212 G=20 B=90 + RGB + PROCESS + 212 + 20 + 90 + + + R=237 G=30 B=121 + RGB + PROCESS + 237 + 30 + 121 + + + R=199 G=178 B=153 + RGB + PROCESS + 199 + 178 + 153 + + + R=153 G=134 B=117 + RGB + PROCESS + 153 + 134 + 117 + + + R=115 G=99 B=87 + RGB + PROCESS + 115 + 99 + 87 + + + R=83 G=71 B=65 + RGB + PROCESS + 83 + 71 + 65 + + + R=198 G=156 B=109 + RGB + PROCESS + 198 + 156 + 109 + + + R=166 G=124 B=82 + RGB + PROCESS + 166 + 124 + 82 + + + R=140 G=98 B=57 + RGB + PROCESS + 140 + 98 + 57 + + + R=117 G=76 B=36 + RGB + PROCESS + 117 + 76 + 36 + + + R=96 G=56 B=19 + RGB + PROCESS + 96 + 56 + 19 + + + R=66 G=33 B=11 + RGB + PROCESS + 66 + 33 + 11 + + + + + + Grays + 1 + + + + R=0 G=0 B=0 + RGB + PROCESS + 0 + 0 + 0 + + + R=26 G=26 B=26 + RGB + PROCESS + 26 + 26 + 26 + + + R=51 G=51 B=51 + RGB + PROCESS + 51 + 51 + 51 + + + R=77 G=77 B=77 + RGB + PROCESS + 77 + 77 + 77 + + + R=102 G=102 B=102 + RGB + PROCESS + 102 + 102 + 102 + + + R=128 G=128 B=128 + RGB + PROCESS + 128 + 128 + 128 + + + R=153 G=153 B=153 + RGB + PROCESS + 153 + 153 + 153 + + + R=179 G=179 B=179 + RGB + PROCESS + 179 + 179 + 179 + + + R=204 G=204 B=204 + RGB + PROCESS + 204 + 204 + 204 + + + R=230 G=230 B=230 + RGB + PROCESS + 230 + 230 + 230 + + + R=242 G=242 B=242 + RGB + PROCESS + 242 + 242 + 242 + + + + + + Web Color Group + 1 + + + + R=63 G=169 B=245 + RGB + PROCESS + 63 + 169 + 245 + + + R=122 G=201 B=67 + RGB + PROCESS + 122 + 201 + 67 + + + R=255 G=147 B=30 + RGB + PROCESS + 255 + 147 + 30 + + + R=255 G=29 B=37 + RGB + PROCESS + 255 + 29 + 37 + + + R=255 G=123 B=172 + RGB + PROCESS + 255 + 123 + 172 + + + R=189 G=204 B=212 + RGB + PROCESS + 189 + 204 + 212 + + + + + + + Adobe PDF library 17.00 + 21.0.0 + + + + + + + + + + + + + + + + + + + + + + + + + endstream endobj 3 0 obj <> endobj 5 0 obj <>/ExtGState<>/Font<>/ProcSet[/PDF/Text]/Properties<>>>/Thumb 31 0 R/TrimBox[0.0 0.0 2979.0 1827.0]/Type/Page/PieceInfo<>>> endobj 28 0 obj <>stream +HW]|ׯG ==_v\rOvw@S=$EjW"G+Rۃ5_~u0ã5mr '/OkGC!a[hwxD8?7N_f_C?xC{ѧVvd~l\MkϛmO͞qٛ`ڟ6[=| RONيW07rx FvNJe +=ys퇭1nw3z*LsD^Ȟs$/,qp~os{+o+b"%D ZcۓǗ 3Ӕ42ٻYM6#O)\)Od});Y/"W)TJT( +B^QomVь엵DRM_]NR_&2$uNǮL6Qε[ywxu!Iz[꒨wx|'e=Q:]W*a/$9\'?F=5{nBej3TMY9lh/:??A@6;7ˎhA#>wz'Y +i?(GJ?"WJrĭ|Xxl$<}W_[~@cqQG:?@CQM@+x70ȹ X:@ʜlG0r,^/諘,yweQ<U$]wLͪD~ys{}kq/w"Mx=N4j R E)4U2VDY6Vu=M= +3/ W{+*(Q+0##w +TH`wqxqfg%AIq4' +K Npp&%,!VќJNse֟ +sra~BR1G)BGT4v]+@y߾b]oT/x0l"Fo5#X r0a6 T1M@}12+sy6}ɍSF^L}vwGޡ +΢q|Q]A|Ӷv=p) +؜wGǢ_GۏCo5bhv̶᡾2҆WoPg=,Vox#Aģ![.gPǮQҁlo<m:A@}Ԍ]Y{1m)`nYnv6Rks{Byu %V&Լ.j[ ívUޅ{1`za1-g/K&{ܵҊ)"{f\ (.rp;7X*X9c(n'Gz8bF` /$@I;y T\oBu+ -;NGk<>o|NPXə&!YIXq8pL.tMk l)y{0> endstream endobj 31 0 obj <>stream +8;Z\3bDjFo#jp-3gk+uYV?fhR>YNoRm4A7#g!"=hRqSW1muTfM]YMEQT*Xo?]0)6u +ierUg;.cZhr.l3@0M\knLVpQVE*ao4kV,g]!<@lhC&OSNB>ddLX(8OWL[uMUbsldc +/-/j\@J^lRL#dT;>gJ>^_ML#>/H5'L!/s&p]%TGKU3=n]?b2X;)B//4O;'O.=*Zae3B1G)[d1P+mM"h+C-fPPE!DKik7_)j3fQB!//[;Gj +j>3]jnj0MhLuMc]C(;"uB$kY5U[do8b5D,V95hLMp5C+T]aXIr:kFO#6s..j]LVVD +;:VR*9t>38XrsHZk@\"bpWHl:,YC%!!cI:Z endstream endobj 8 0 obj <> endobj 9 0 obj <> endobj 10 0 obj <>stream +%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 24.0 %%AI8_CreatorVersion: 28.7.1 %%For: (Harry Roberts) () %%Title: (rtt-diagrams.ai) %%CreationDate: 13/09/2024 19:48 %%Canvassize: 16383 %%BoundingBox: 90 -585 2198 -41 %%HiResBoundingBox: 90.001953125 -584.634765625 2197.01171875 -41.56787109375 %%DocumentProcessColors: Cyan Magenta Yellow Black %AI5_FileFormat 14.0 %AI12_BuildNumber: 142 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%RGBProcessColor: 0 0 0 ([Registration]) %AI3_Cropmarks: 0 -1827 2979 0 %AI3_TemplateBox: 960.5 -600.5 960.5 -600.5 %AI3_TileBox: 1093.5 -1219.5 1885.5 -607.5 %AI3_DocumentPreview: None %AI5_ArtSize: 14400 14400 %AI5_RulerUnits: 6 %AI24_LargeCanvasScale: 1 %AI9_ColorModel: 1 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 2 %AI17_Begin_Content_if_version_gt:24 4 %AI10_OpenToVie: 1595.75449111862 36.0053224943395 1.4027806044066 0 9315.42677375969 7905.0137741895 1788 1099 18 0 0 6 64 1 1 0 1 1 0 1 1 0 0 %AI17_Alternate_Content %AI9_OpenToView: 1595.75449111862 36.0053224943395 1.4027806044066 1788 1099 18 0 0 6 64 1 1 0 1 1 0 1 1 0 0 %AI17_End_Versioned_Content %AI5_OpenViewLayers: 72 %AI17_Begin_Content_if_version_gt:24 4 %AI17_Alternate_Content %AI17_End_Versioned_Content %%PageOrigin:560 -900 %AI7_GridSettings: 72 8 72 8 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 %AI9_Flatten: 1 %AI12_CMSettings: 00.MS %%EndComments endstream endobj 11 0 obj <>stream +%AI24_ZStandard_Data(/XTd . MIiX񩪙jfdDTެnfg= k "j,h&9NGjK-Q3 rhqHѠ;M/H3}'͈WNT,' 439kG8T[; Z*-KɤJ?ġr'DQ@"IKMQUQ{Eec_P4 XÈ"q" Vp3Ⱥ6)Ҋ(cdA8Ru4#h+1+,cuR- hMEKo^WɈ֡}׈m4qe [`( FAjUˆd!8KX% JC]fj\BKM*WWjT\C˼B<p8a .;d@:;3" S2 KI,b#`a lh㍤h8v#q0i,j!jY," L1DVFxVv4#EjE,r4#Xl5--B4"AX$乑bs\_J@ۂNIDD.DsҪeRg߳,uZCn{) q( +c ..;=ao'޹ZlC`F5P2Lx RP, +SX8⊻16:ql<1$g("Z1E-,LK*l!Y#Dw0+tڸF5`, + dH@ +]hQ$"A$xP< 0@@H3yLwɸ@Ȉ"Y0"M7a |b Lq!,\a" Ţ!dW0e{C0 <60DU]D-9z),FX28R,R +)#^Ga,#8Dc L(DaHr I%Ps4 " 8QVm]U-ҞUt7 m[WKTs^ntu8{CL~f $pkG35\evUv*kCektFX! `0Ȉ^0싆㎓bѰ%hɓ!OraE`4FAS(æ +d0*1򊜐uQD Qr0Q<B+AH͌/ 5 +ijf"i &KyveT,65@&8)E)B+A"3z>BwlcdŽ: ]BVRG:LRD.-+d Tq1а1nq~zxwvu>:1laҐ322G5h=r(h0*Y$ZieB VzךNm 5h`P$9vi)UBB$;*+ +E)Wkk0<+vv0Er ++V|FVH(!r:)HA_<3!@$LIH! +& $EG ,( &DDxL8LH<@8\*0`xx$ A B <phxD xCDJE4 a`xpDP$x`xL<(v,.? ~}fkyTnB%(iov*CI+kwG +#( W(x & dA]( Ȁa&4`'&@ax<``@``Q(  !   T;YW7AA]Mzs,D#4h&({W +P I 8HEwR8)  D #LLHDP(xV:1SWJ?3NfײݩF·ߥë]J|z(D:Wن'Sm?{M)KcB#ħzORx\Լx;`xdijr^z^гk5fG#DV6y#jwmV홓pIOteцTN9eK?W37ox{i#]kN;kxY{|7i& vR'/cgiiGXE ow45{95<٘w:q&3ҫލڙL-RW|$,+niS,IlvSs,v;kfh\H6.e5>孰{TѳѵhLdc i[abidcuA͜rͬ4uYGdOxĭR{[7΍6s[Qmzi\VF; + o;xt]H[]ukUz2TCQY.tx`ؽ&}Qa*^'L֣o8cW6~Wv}ٻO^.Yki# ZASBWz׳v2ĴDhsGPZlij+4=U wu#)[ZݝtNb51OF ^*ƲĪ;lUm直SV䚲*S/?r2|YkO& _;?K5UKSYl?~4JuxW;HUN_,x{U)˪t!!ڝ7Vu;t?N$ wZ X6>tSs12ͭNmASU[~)5KNϒ6 1)¼r\头Kj,oJ[6'b)jnvZKys,K/[Cܲߨ}7ΞgDyDfFZپtd8Y'zu2Kim6UsYnMdkqoRKGQfR* =vVwhdXJu׭B0h,  DkE +X 6r*r dq-| Zٚ/((# +F'dh(Ddѽ")T#CJkdK 2bg8O(7LF$ K;cbw~Yf1|K;5m-%4\Zs /zg+|iB,ګ)֍(}:crj+d6Wt,hX_q*ɦoN]wsurؚ-~*5vtoyg{UKZśUiT=9eӳ,tX4VwuKG2ԶYєڭ|䴯E,UXo%XUUץUWZ龯Ew߽C'zͥwB&Q}iSwz͉7yH'9=D$vGdZڹoP7ZA]%0]w2ɛӴrDjeT]=?ʎۗVDS uH]VC"~Eu]Cy}1γ/EyWxmRw +Oo"\EIvB- gvt]d*b.Q*GV:KyXi^o6vN;9,+d Oh&- 'զ:oFZZJKJ;m?z['::iM7]Gj&-8d?.%.-,[bͦDWQhx8D,\&_½}ʻ)ri:J8N[:i%NQs^ly,(OMUKFy_m1UU]U[5^:jie6vUCsƶ +󈥣湖ܵ#۝:zQ4srK[Xs[xn jy^bO׳WJXyԒ7ֻHv/DռVwM~_~Uz ݣIZdHHC  xhsDO"ukƩ9Y~'}kjm*<4=cq*hE:?YEێ%Y]ZuND6Wg6hHCgs~n=ضiY|͕V auj BXGC?_R͒MӞ'Di77.;h g>w:xw ڐ:Iخ&wǻdR-VZ UZ7[ 6xWcnQ{O.)=L=l }JxꢬɆ5)k*xulMU>q)\I5xݕ5GuԕpGSgyqa%0dFç㵹R˔ڀEc,ixzWXdkv+n/mWO jMڮZim/]xc4*H5m_54CM{ugj۽G-ڳUFHhZ^zs*ιi:+"K4ZՎwVT^b}foFrfc/E6NJMudnA2M Oi.x7,OU;Zr1%ȇWVR<}j2~4X?We-f!^pR/OwwֳiVΗ4YYisZCZwi3e[SVUODnPrufΩ+ILXpV=××"<nWOU ywܚ[Zݜ_Krvk +w?t[&\r mix^CJڢZb)aZb£}Ew6CxzڔOFRl[#+verWT˚gg1ӶRk|/,yv[J#sB4+\$3=k4뢎Lֲtű4/g7gtΝk%nJ[y_c^tZJɴlTJ.f5KK4TO_j*מ[O<;4=[C.}/w+} ; -Hu+՛W=yuJhM,9#*aUiz|y̳]"؋ge/i4,~EkZmڡ^tt*^^skL~U[v?1}]Vznw?ci9D"W9ݱ*s[걪*ޙJ|6ME۬SzQҥfk4iM~9jk2HSUFdd.|1m>KBIx_I/aƗwӥQԯ4īߝtϫYϔg~5f]JN%t 륤zoV̽՚T\="wKzK?՜tL[63˖L33gͱQ3mVjGMYCRߐN^4VT{VtuWGk~U/]y=P! tk;llՖ~rv0gLw2ݯW9[t_:٨Qs˧CM+!mtyCtQΤMԼQUyחi־33"Ai^Qsj7c2qJWŜZki-mvI{Kf5eQwRfsɬ4Υ)QvGs粬˯O]. ʮ>Kߍ]ᨩrrw0WZO2[VV_E*e!N3.;tXBZ8"A'rR!C` qհttz22J4ԭ)rM3(޹/XX$<IRj0Eh!A 9w%]ScaҗLjBc*$_5]30ķTI<CNz8yk/!ri3:Ly/aG|A@\%h^S0z[u\op%*D;k[&޻kȯ쯄-? ⯎?S)8$)2਺$^df)0eY15[i(CLxPKh*qmZ0YUsjl˜_.grMsۗϻFHٖ{5%LP,v|X*m6 + kAE8j3F 'zğle==3V P7<+.uVD~MHPZ::MKAP0aXz@c,z ;7 =3aO N]|6-\h.P:e(rCJ¤IIa(T=2'1~=;So +;R;샿s\ f(~մ^ڥ|C( Ե\Ž.)FkTp5}cg2܉Da;3@"S7YO!jP{"Pb IaJg`hcH>Vݸ$J4XC#?/3Y$BGd84`KBU~|F'LHg` 9[X1+&RPU;S润cӻc谞']z :hĊ'⒩1 ji:#&>,?5ZJ6au,؍ )4>:%[a:ֹhʛSogdOgI`Z|WZ7 Bϲ^КoaQfˡ}d^iXKgE"~`P:lj!6NOQ_\r5雦]6Ԧ5"TLŪkQJ ҹ-4* U+Ni҄DV5xUR& ^iVeB]?m)B-ʠ"@S#41$p>@\ je=6Qn虾H_NX +rhS?},}a47 1km~K\!jVƼb[ԭȒq |ISPL]EStU$Z;\Y!XP(~b/1LrZ 9ɷ(2duad#+jaYy<} 4+Mk)l:ҶaHo;4؋L%]yqvT?9x;1)˰gl]gby^_mQ0/Da5h! *hL!+B#3Es +%%?E +7NV|!V'nKQ+1_2E>;"-cs8ch#Za{\-x X#V]CÀ$U}tIU~خ"jvPimg`IQ%tDz@ZP7dZ_8^~=AjPs+ኘ%"hk~ +GKPYA X ZDBۇ5p`+&צNvۻ +j/ ^z?69Osc*ɏSע!b ewYenT"mPSaLҙyu?deT|} S6̈́vbQ<ь=*JaPeMmkai +X1y%hn̽m~q<iNBq=@TM ֐oD;| cxJ3,4EOKK b~໑ULI23'lPY!l+Ka1n8BѺzaHLs;&E/1!T4?'3.閴$Ah'l)rJNF4]*VS4#tN+ԱȬ=MV:4S 'XnFbwk{xҢʞy,4~'!m$9*JTP~'$UrbfBXȗ"XԛW/ZgNESA 4m +PX0}M>Zl]B5]spi,Sk]?4J$So>$)CGCg-Հ`9 @yt #^sR/j_s +Ɵ9Kn`FXLiv+Rv&Bb)Y@*.b +3j+ʟ:a5 +]";p0u 3z"$Wgw;\0;`S D >f/5)U4!ՑLP~.3J_8dQ~0xws) +?edE3Z|X.UC93wE h,$Y=5h`"^Bw\N$EɨLImlءoͺo` V2A.Q{1L`1֚Z Z +ͮh:0_azY 1r+\m@5Qv ̽s+vCmOl# +j&S/l ,\ocA5%?3vm ~W7uU" =>:JЅÞh'b}=3lƝYd)&_)_W= G X %⤝ѹCGИzMtzʹ?+UI}jyGA%[PZI3E ^`H ܛ[C=V!F<Ȫ*Ww +0I!"T9.#AYeн"=LvѴ2Նſf7ҔcNeQ(z}N`$fxh7Ao):·Ho + NÄ Wpg+gU޾U29R=l,54.`\EP!>Q +`-0U,(Cse~O0J~/fAyOgMdDU$ L JZsI X,)Xf-dR֓ԘxN|YL˨Ō;i=J+]m,[Ma}r +rغ.!D]$E}_EdEK>B{xIy3'RD1&e pCt5r{P; Ř&61$&]F7o$7~rVF/h@[~_v=0G/nj"y|F)l񉄦 %DgMnh>{ * v ╳paVm4`$_3vjOR8#>&$/iHWTu# *~u񂛳ʤ1V?g%_쌥9+@иGဆI._%"H6g&I83X9 dI7NTwT&Y +{q房ZMIC@(c1$-ueXeT]⛡໒(VTTO?F V:S6U(5*4cTqx_RPGE5kT ?n%>Ėƃ邛*Z׽R*Y1-Vk%²U,D C, +ؼͲdYX_e9ˀn;dg(Mh,/R# a#8KSk|F&ڞQ{#T%IKkЀiMFa7r ܵ!A{SRIdH [E(+eK_yvJL%O hl~+)GB4xx#xY}eИxn+d7Gr-Y`i) jr[6`{lk>S\=8vz# H],)?^HJX$ n5g!ݹd̥3̟Ϳ,-]*: N +N&Tw:K3|DaAnMH'` 00A/^d@ȈcRLeZ`tj)qf*&|Mp),fO.8q|i՛1?Xk:C?eie +"[ EwQJpHTs/xRoO!"1Jto H2 AjQTn)J/W~՝#q4MyQxQ*%[mgcB͊-W<ЈΛ+[SkXz=Ol=CiPieTe@aRHp +.Pb<ЛL&ޭDcd" XQ_{uAn aIۘ ;e+ i.K~"k/IaT> ^(jz`SιEo82%<3lů(G8:bݱQNF^elEoPx.'!hK~ Eh*m@,H7&2' F~vCLf,GHROO)?TĜ4=b)''>N'R>]>hϥ +!i=!qjx?< $'yħ c+EG7lY  03pTAM6-^!S*͠D0ls$G 5/ 3e; B2ԫ B8(K(s,YԱYs.X&wRH~pI$ЇD4ڇXmG$Zh2vň1kX( )wݛ fתNcP¬SD7 +/bg$1ȓ\Zd&/#(8)թVaKg!ÜVʀ ,`qKu6m,6X{z4Ny}bեy]5\:$jh{ƃ:̧9_tL^Ćym鼴W[?N2'< ~y1u%(dt Ye.RY)7*}HqŜ[yQ= qs@9W10GOlbGMc@pX 8XkKܹJBHj![GF.Э(e "DϗK*N+~!eZ.z*lzt:aQȐb#+h tqĬc.~b;._mlemOQ(ǯi]2^`x06ojg8B<QU>t5_&i +B&Y^f*PD\rvr캌"L1r31"gLT\fѢ'*.ذʢ97oixWqc_tph }<вZ/E԰rСkWk6DQuXr&5[ ^!ſϴ4 s(ttɠzꈙ( KLJ:?asDбLx o! Hܱ[xL|1TbaxWmLpWN/Jla2Lyx,n@WNAZH>غScnnF8?2\‘r_zV>#X Z!stn`Sm2]`kR²B|%T4=' oTחRo2Na3aQؑ0a#fHI>utz-zbCsq};0]& +r8WŘRrX$` K@aL@$BZP|yÙ&>b>AS?nW_*hvԄ܀PϬKT51g4Nx 3g!P#{EYmi +lkS刯t:`9"bF,an5YgWӅ[ nl<ѧ&H6-lC5Mir6}֊H?-u+{ͣ:@dߎLt>; q?;Pljb\6Ԅj-LH<&X1c,x5>2ځHa+;f}q_7}$ī)+VE`vQrؘͥIcT9R2{4:͆A DW0{0m/Lgi M~'3y9ĨtyKq%{@NtGc-%&֖ΓY( aVzD{ɺ0}q<׊Lkq&˯0q"uY佁R .e"&< eypYv\7 @̂ " rˑ_⡈߼t>R=U:ծ1gH~ۆ%{>VkڤYaA0hi-4v4xMO)4Y´&@MH T|E*4FxԕF4ۼ牍RA6D>ap (Pud!Ng!'5d+KdqƠ73qUși2SybfSXxR[z<=w}h?h}Şj_sRE}[i&4gx*АSQ*OHxށG?N0HzOQ I0 j!,OBH~QQtS&:Y A2=R+1%{sM/W<~;%K7J8XKW(ҋ ; 9l,#EbY XEJσ? ջwFT:bz쎁 +Zpi#m(m-.vYR7R eN.HxkFD.{P7'OX"tK:xn;@L͎"Gg]<цJ6"O{m=@~l]W$;k'Ňfڞc!54I"a}IΕ[:"uiWC0`MxqN;ncr͵( Sr &)iTԂJO:VVzi>CLj0%?>r{\[m#݅&i;e1m]&dz78&~2ccI8+NȮbv^47c,L.IPQح;S Ht"p),9@/nBrxE4_8t&iZ6ZyѓahNs1^":^ ޞ7?a!AQޝ񌞾s-!Q Ҭ{شOy!\iUAESgS,.x.7.Сe JeS0$diT R1{u#Qs@ag+\w>Wn!u88Vjddx>ҵl~k1gIFw;xjz`כ%/T'/o$lw`ά,oСl/Vj/?t 4t6[fOMbzEdI;T[a +yR(Al4|):rɎm쁺&}r Z qkco£1UO&i(.9Xiusc8Z"!uю B6`1o$WЋGz1 X9t~T5GI8x1!˜FK;$b{2G9^`t% +˜7nPq4ƌZ@igg;/ʞ)_i0襍*vkكaÂol{d?bT"MHtGobz[Fp%ff(0vh+&K4kr K4TsX tj? :BK)rGdB)Za LA_aR +GЌgX_~㧶k Àf>5]@ OΧgպ$ZD2tDec߰!ԾҾ' +]: +xA $p&:|9eTmmTV.|yOӮ=L(]վfR$Ǟ[Mha[pmb8wS/1€!h,;]B|(hk|7;-ure^o͏!|͊h$ƐC@ysYC|y0ZnDC⑜FM9cԣ8[%7neJM;v$CrI'2w3Y:TZbE_noW8@P#3 ZVczs3 CQCi]D'Q(zpMNvrlk¨K[a*tN<֜Gc9HK<&S>C7&pWτ[jXD#}! tc~ Ueb%q"`?r830cc~{/^<f9᪰=N^q&XƼruK]Xj@4<[_PPxcȕG Bb)1n?f3IahhÀr8wikgF.^=ʟVz@ik?MdIYX*%yH3 vp'_Ntj5Uxj8,AkJB#hsot@Єaf,/dARo +sׁ6 +oZt_F}IxBvjZ'Y _EoX'pTӳs("k%ϟ}%wc 4J ={x_T">>QyHx>\1qH/*W{K՚ZK_,I\CIrlEMTG͎5*IVJvy2g(l ԹRB[J{)1q`N?&?nۡ~#@PDe| {2U٥bONc>ܴq]jNj-jȄD=d n]k;[(ݥS!5]ܻ P8_b'g؍ apg"45wp`*wK-A=\\JT睭-2TCys} FDDXtIQVuBTw43MF /5 ֫ +@#PL΄15O WW|g +Oƚm@T~yz)FPP\ZTzgfnbW/# + b^?7pN:8Jx?$ѝ~8>mm:p#csQEXevuq׾H,${^,$4*Ez|v6O;>7Wf"îUʭ4o10>90J`d)]~Dm> Sh{M8~BMjVeZcl0r:%lHO!Zp +ϴSL% ;Ͳʜ zC?8l\g8y)gXeiEXT L˷4rʎA9J< mpd6 ipP|4 AѠѼ]%h %%ݓ C~-){_( !_+|"́= yMrCȍ"+R{ͩp)CZRAjm06t&Z,<pOrjl$Xw}ɾآ]d\T2@lG[y ;3DUU/Ŕb„zJ@q=Y C a!^4~dΔ~[k;T D/IxLOv0)enT+GeW$N$1V/0C`(9ȵ=؍?M$'n[]LpCΰ +V?C>ۯY>ZCg̀rȍ-6}'DJ O^[MO  +6ŬI*;˰v񔞔=jYlNPMkyOq3Bs[IYÓꭊ~\)WA(˯!2=@++;VU/,[ _Е}pgMUg`% {iy( _'Öʠn ~OoSE{YץF,;{7+EUDN6i::݌/)L,?/4vy]ޱm ʫK(ے^+B / {$}xz#G}F)q [L17c@ua'[f4yHQ2f (bO3FE (S F9VK~Pϴ0jqKISa$6*LToG(*8W̯0iamRzlΛ Y}_B)ԷIZpx\K D$0s=RA?Jrq;+C E`R9RVm].#? 8 4Řc"ة, I +{.`h62$lFts@Hy76 EKyX&75zkO +F.eTΌ䑨>^`W6|KZ]Q (HQoa^gN43,ixN[J_/c#u+(a"|dnn+;XAa8UnyX+[113-V,):u`@B] ~ķ~cnPVܜfєtA Y19ZN1fX/5>KE5$G*ta*J[S%ZͮYh4ww@>N.K?u&H"*M@$=#2]kA ⪫0}m+?}6&;%>bj`urT/qTBP%u2H1ic6k[5=#x-$BMFޒ' +BJfP9׍ln; +h@Nz_ Axn3vmw9Т}q( +N-7#0zd|AbyD49ft"%P#^ E*hi 1"7`:ЉyFH +"G3(48VFEl@V]- 7!vȸ1X#bԐ"r߉ L?}V 56ʻ)j4E 2W QDqK_TޏDզAYI"E9ɂNeb`Âf +\T@ c =Q?#]#B[Mm O-L`z-X +uX֌ _/66l kܦ-򴀥M"zR87k,pNu>k(fbB4V'}FUkujgX͇*5StZ7Hǫ2[woBty fa7e;HC}`?jOu]Ԛ >sr[_maS[pg: YI +Ax^;1n,Awg3[)|+%I3TZ}zˎHkgT-(a$G?G'm8Gv"7A$d~FKly8_NFi:() wO1$3A'T; %(߆N*jtbe4RN5xea'P+Aڒ%R%IJ3A +:\ AA}&G!YL|,_9{l@zÚ9i cJ5`nK:m)6y f&qu{5!=z,\}5P>Mnk/N [`j1dc8)2v8:yH6Slijʮ_ɻi[QvXm)ԣ$ [Ez qsN"D )o˹y>*9o7am)/ye<"Os ?~,ހW=d|Q Vz2d,󞁬xd8b^sOpPXP鍊K|U_V ? V&:PAIx]%=n#aI*Q k)D}sv&z(eQ̟7&zUM@0cv1hD`e6 I*B,$3`` +XXE|4 K~:Σ D jA4YZ`ʘchf*hN&ԟoЬ(?,_hϦ+ZGL*e*IBQC!qrf5~#VkC +0sjHFa/{㍩;/Ϊظ؝5:^1 ހ$@_\jWIjЇ_ಁ~Q$ؽ˿sVS fzJ920D?׌FKr|PjT[`%}ƷV6 v&EYж#m$l H:֏bo/vQAiױ^}ULYҕsDt[Ukov 3uҨ[ mU֫^*PM>!'mkaݢIbrЮY=Dצנ5N0ۯiҥC&Z>]n,N䪞 ӆWr]Ƌ!!7YtgnSom-[ZqtP +9lZfYBa |@aͬT߈!}pQ')hՑ*FE2w!:u5Hb GQp#Eϲl^/m@d"x6Z7+7Hr"9a;mk;-]̮s +Pa +Z1  +yEFQK];龜6JԆn4)JTv`81 #~@/leаt v/ۇ&6!dĆo.Xh$01&p[7Z%@~7ʱc.6'۸:@~9?GߎbJ~*=8K&~'cMg"IM+X9[&L|cxISꆮƔم},ڶ}!!R`q)Ķ+vpIdڥěm9]ںUj`(f^7GQ{Y s8iD <1!* t}(-{\$D3#WrU*}HW='h @M8J{ ux,/QuL |kG?CŻ\z@)3wԋ#t $'ZwÛ`:FpK঩O|Hj'?L^ g{ z)O])꧁lSFcg(!F11XO}m3 JK3&Wd9^7B~>M÷ v”э6tؙUaWt /7=$YWsڵA{DFyicaOQ6kdOXkA-]1؇*(3 u%NX|odx>U.ձx3WPo  ཬҫbүgjmTtg阚ە(] K${ +msDᵔ~xڮp mA6,iF62DNg&)+WȮ6 Gl;H3#s'*:4c>]@wko-;6>$ޛ6@|ڲf1b|}غ\00JJ< m@{KDF׆/p:/cӇ| "l,Pz 1RBƐ /ɼ8|Xx&T07ꇃ?g`Elm`\H/Ԅ3W7iv7&bwIzKUBT3YLLIONԣk)IkUMD:H iRԽLA].2UeGuopp7Xk:'Mg>C=uo~8*R?yx*Y`MA +xt;X jH)S)I?:.\E0'b(7/ fALoP%B¤o'R]ѩLjĖ )82O9eڨ4H9BڇЪ)$b-SV "bRC)Bt1X* +rIpIٴ6[W',꣭2)r|GD5Ay1ܼQ;:((CtO_*ȫ+ +4F&nO]hB-4ad&5j˲,1PCtkd`:KrBJ!*Ƙ)($RR(G("(q Q)c3N J`K%|>D! xp:l9oąB(Oglm wDUKI!vs ǃ8oۖx&!ɯ@B6mҁ.Yڣ= +}Vة? =!w !BD*| +2;9)Vl d:{ ) SSE%g*^5e XaJ`HFaaJBx[A*E U0!"zLI@5NyXUk- +V+)@s +5EjFB%BM Qd5Qh˂k'$T\6ñ>EBSEaQKdQؐ% Jv*6 Bь6.AR5e"fbm&$Vh:C3@Jr]!/u^SOt%Qsg!j=_akEh͜NQpjF-a璪XU2xOt^BjY/VhqǢAӊS- IC1sCJ̡FMMXcQ<|b*u"9C49sTS!?9B.)(tN`X2P4k<~E$4H2z}*Y[iM-h?7:ܨ׸9a;je/rT_3UE.QV"i_"l/1"S醽A2E4TS7+_he꠼OA|OUێ؁tl ;T5C.&r C AVġM8(D ,_: H7jCLm@dOY5xLg0-pxYd%H:xbZUR*"!%:X*[Fm2\&0\a78<(.K G~犋x<* %Ep!e۶m C5d}Ny0&K7 Q8mO5!/TmȑVE1ESQIwQT*$+,&=Fдs<1J9[~װ(h':)[xEUR- =fM=nQWc}%[9qAJܼ qD qdǯw;nے>Ԉ*'r޾j]/QdBm {K5BQXL0+F#j.8/DܔpGjYɡ(c˰8RmPH%kőEa%ؘ. T 2cR%~>Tb&DkUUUU9Tj|K&w~͙a #?4ᗞ111WE؄Lb465(|62㡡0TDL F.&ZFO_ECCxVCLVd&RӯBf, $g*da=IKzKfnF#nUWxlHu/ ^`YD5\R(cWJن>[ޡIBHuÛ1D%}{PZΎF⼈[gE$ Mr yȮgm4Ĺ If>7S|^t:*:sь9'αQdNP1:g +U˟Ͽ ~dJǏ}K^<*ұ "q~=URg!7Dڇ|ro`Ԝ!'fL:Itk(/3Yb c(|\4H3ff 9Ŷ*αlh 1"Y]6 6J6B:LDԐ!T|p# +IĂO̔g) xc~Um`dix +IJfF-w2S7~Ք/_PH+RTT sE94"hiq1I:[x4֟k4V0k|i̛Dhə(/)zlfsr7j6#?qz#gfjX37bE&YaqꆏdǕ><"OPW+mxۯ*M,bF]J!0qFaEM# +MH*p,~7+$f~w| %iMk"~ReEҹq}$(yQVZrl"4pFSy-5dPԕQrWG/R(bxyF&E.RŇ)왞je.{ۯY)wyZCcg_zˊ٦+ +NXwskj$XQ҅q} aۮ' +پj&-It6/$'\3gGMT.F5EgCġ1ג{uu&t+?Y5_ VdBWdYc2HiTR +G D!SZ|"#*FgY8Z{ ;qΛ+beyۈԐ4V*jhY$jUCLQ!Y6R"S$AjQHQ0„нjOʾF9kR m8#5eZ#dH,QBRBHh$4PIeH8eB)ȡeBR*C 9Ә:ɚG!fax9:3bDjeuR YF8XCK, # ՝jq^;kuS|e(yW%b*bD[.;=]~s.OD4qE*V^E]! i}ΦxT YR>$Je\jX'Vb{*Tꊖ0TxG00 `Gm HT7B:G07-D5CEQrh>AS*E;NzkƖ+,) +zNZg4XfjQUQu(.*F`}@)CD$Ԓ+ ]0S y{K֑~&< A`I 5+5 +ix +@shN,I"mFNCfd50<LAn1Ae; t8 X:6&>d~σXqjޘ/% +"RSX;EU;W]KF8#~k'tX:,AHQH R0Al ;O+.0w{X;4P\g*|2Cba)'԰!D'pH , $'EA4qɃ\ZzÉihaƮ~0̄PU8ݽL"S0JC[Ed( (= #[~XfyK`) !bkARHpqpQON%SňF8DbsUG +ڪVDLhTLh A3U$DGGK@!S&Q1EKsh[)tum"x"x;|`fZKJ-A%(h /$2BS$9.2[b g4\V F)UGFE-A1^E5+/u([hJg0dD 7m BQ}%AZ%lgEe)iYL„i&P+94("$^H[")da$X@:q(z#oɄ63f- b@"&<.{B10RR(HBYVX&S4(v T)0UtĂ ӉYqp]i]%!~͎!b%X)1@:P9 T i>3E ]*S0P`8Z7 !e`eR~%ٟ +3qmf&CÅcGه($DЉ􇏬Lsqe0Jx)za^,څ#[p͝P$4%#3 Dt +$!4Amv_&œ +z8J&f)~+M, +P%L`§GϠz)*i `D}D)ڟ(F-Clr 1@>`@Q`g 0`4ЦJ-00 b 4 X@H&+?ghK' CՇ>>14TŢgUW ᩏhT1 CBA( +26H]h:;OXf @ukEo#`pM`DFD@'-߾4yJe#0RrG. :ktoVx__!qĩgiZ1N ?r2M3Re5cha}V>O\>ѳ%PƏ]y+m'AavV+-\'8CoSaQ:jSsۓSMAQJtdލ:Kݹmtj)IvO$<c:j56׈wb2չ1^;QjO*${O"$tG +0s<;:zF7cRz~hiu3u֟^մ!N.)c)8e D'$fꂿkt{I"HyM9_+kV ;v}DeGÇ͆qԐ0_dne.~&h)HvvK ѵ)cg[JVI]G.~VR) + 7y=Hӑ0t"6͆D8zja*wLTWCe܅cɥGxd ˖gb9r@Y +B ndj*99)x<X8D QI~JX^_=OXIO̍}\)'M_!k Syv;:UNlGh~鞞(vJH=<)Jrjj|MHFStBl?? ]M{8rpv i S:9baGpԛ+<_8s_oR,rV- gwgE |n_3Ƿ^?8Hɲ JȿLd`m!k%xݕIa@q4$@݃A >8*& JtA@GPj7vIocc +1X $^;ß!n#CY[E G+kG?upm< '5 1Ƨ|%όA)/_WqyD*Г"ު0 2R$:>xAe\P*v(C5ذ]6}\՟F2QԄ(FX_`lHVcfc>b̸ӻ,eK*<׏E }JmƇx`fƈpL4"bS^Bu#o .@m@=m*IQo-o]FuxaM95BsPوL\$Y/$bSQ tt6F` 1yS'NNKn%n ¥z+\rO:1cCΈ5)]>f'V/2X9!~Kx eH8h.W[6`S 6Q1d1y;0VBXmHmy/z=y^koy2m-i1|X;vbJ wh!Sj% Y +Ejvj_F}))ǐT߈{Q9VNg4h>vmNrx9Fo P׃V'LN˃&>Zl`xa[͆lZ͝Ԏs% +l-ALaW؄deZS1T]5ndDtK-eX>O}SdRi_Ƙ'YQ=)Y:)EP#?P3Styjw% +t?L0qjHYq,>ò .*_rHȾr8bngMM:=]IJ!/H1y N[^/oj'/<+ͩ'PBtF?Cj!'F3w.J@؞ȄHV&6LO?h_vRvr=pUFg5ňh WwZ2`xk&UԂ37w` +#dN|8Ġ }"#P( /}s^<O0!61B 1u +k3Cvm^X +6E({~ar1&t\<'1KE,sF:- &fM,xi5j|UX*Djmy[wm9RGtY x55:̆gwjq]*y9t "dAFW$$f1_ &Ƨ_/A\bK`4TN>D_{e KCR \dJft猟zoW[muV0Êl*"Oj4?>Ձ10E,nX`u]0 +٫c@ft" -za3tWXjKK[3pOp 8mKlo<)>kSGɕE4M$02lN *@5+:6Jm\"4? ԚͲ{LKe!@&^ÀP00~m<J7(c&S"q23ÒKuʘ*-UeLޑ* ɉ;C^BĐՒ]aAIXՐL(ɓzWp74lTݒUA;i4T5n,f OrO͛wP):0m۴FS] +N4hC>hQ%kr0X5[zN\M1~d( #嚔(I~A:b8 u| YofO`p}=2؉x /哥KR;! +MVK"p 媖~TV$R{C%{q]ճ$wH2ڦF*A=Mk$k&L3Xc djn}`0('X6i$k9s42?nRX@<ӀGF'г_gQ~OG vXj52u 6@ A'f|jw~QWjh3DjJ,E* a,xҦQZ[g"`#:ɸ$IRč:ڐhts+G:|N1H`XQREk-Rm +R@CMDXUL?MȱoiD,kP\_-|*mȉSwR +&.z /:RQLˉ<Տ}EnslS:uq̡Yg3{rU +btղOB ]> F&,\6H" v( /͞8-WfHꨃ.5=q{=F*i4J&D<rމ {IE4(@_ B&7ϓ VG7zy1RTp͘h,fbC^b0adt'>gugmnj; y4CDS;I>~V9aY^)Ө^H+*8Fq%j)FWg6KWB +Ra(c RQW;m$\mř|ָ &IHQMOpRC!PRLXN +Q~4"t-m"Q1 AkӁ*%Lpqq-dxV젊}_(T[]2[KjPnB40@V 2"_SU+DBG.N2__0T%R~w-Z+$CqÍ(ǝC)n 1Kc #za!oG +Pjv1G UUwe(dI:_1(RtkJ!?,q]n^ "к>Y7`Jr"ɺ/ܛxٔ_pɗb;N2~ޟdEY l-6-(,q.`uA,r<8  DHvHH t`, 2a S oCPVDcAXT)%CpE-COlRd"aMyhXPE&HvAQOMxB3@%džyІ{6DZh=MnS IR(JF5x/!'ʛHwC`&\"S(ՌYM :HD!$r `qHw38ATC 2ːam a !Qay +D4L:Bj" RC;AXpA8k9%"HBz"ҍ F]D#f< Y@߆jE A4FwHpʖFtBBHHdD1I@ D +LA &UJ,#AbL%2"H+t[Y-f"'tKGb@ҍa")ia"HH Dd7 Ӝ Hi""hrK9@xM NP F&R5Xۉyb8D#gy dOXb+`iUBAmy[$ +eE)=Kl5(l)Ύ%%E.3>0.E|dN+#ͭ +pcU%>_E6Y|* 3X;=;ңhX0=fL +<9̓Z$3E2[D<JɃ[$A1ߢ2 c$O<\d?<Elk]H G HBj/l|w}w̾H_hD㲃d8Bo;1`2Q HC; +#F^ð;8ʆ݇`;b t'FF#: E:0CIcD:12A JtGFVӑdD,3(C6ҁZ*c&G2Rt3*=5#1 xЍg@9329$a0GK04r*IXYI#& ȔFT#;{Jc!e`1>Y#H()!bcӇÒ D,v6$5۴(89  F~cKPngFqz3o`捀GyȅEgws ĤpԠ}(} (m8n8r586 Gfn#VmH>.Gk\H++qI*WRv9F);Ky8d%L `:g tĭA=tDUIhH` I:54蚦ʆpB&2d/8'j*tK07l"0ƒ} сQ+$a8tD5!:o 6qI<1X)Agρ7k45~?HWc5bƧD~8МE_Mjp4tv+NZ#5 [it1:Ƶ9bHtHm4Z6Ksҡ9( ,@#/qCqBg΀K(uF#r4Vg a3%G`%iާ=eFb#U22VMgcW}UF!)"Ear0%N2" ~@I +26u ECWȁɡԽY71VcȔq#`#[Q=bIbDk}b ȴF L 1\> %G!GN q0 FnaQ\@ԃqD4CN!`!Gt >O~X)9"" BBJ!OzŠP.CKzr8)X)1,!e;9V+s00:#4{Z58Ncai/F^pD/̋Zzb&D1]H]]49\EVks99.#\p\E#u ѴI#{:sSu-b٢wa;l/;EZբ#}Z`!K @0Zv̮h>"z\~+x#a[qhK?2 +x߬("X1_WD *thWECȈrH  TL1A JœDwS乨Pa +Ĩ\C RTw$ +$UOq!3!:$B)6!hd +o)[HJ7!R ++p$+ )\(0D< +BQ+@`[H/[Q!&:(C*, :nCN IBKES5AuZ?Q lOpC膨Nސ\l3W FN7 1'6BNtN}2sH~m"{“5!h9$3;BфUȠa6;АPeY&wHjdYcAO[ ;01_BC$vHj/qOk\y[UKvlWbHd%5tSNDQD2%! H EgJ>y1$ZDb1 "dIt͈D0I$fFD#&葘4@H"H$kHĥ +XQ' 44U JG Gq=1IԆU74AFHFnd8,#4G`R +ZGߑ|/.z$E#ٵi~"$a+" IR&$!DI$'bEm$GDGdCDhIfcADgIE$B'I!pmԆ Q{,$)TBT%![;+ [!J:)bI\YབMpIAhK7Den{Aܗȩ T rDAqXz1+ &c^ . )y-3,.~̇Ö_?DDjML(_($XMՇD +},0I1.|-8{&CH큈$=W'vP^`@;IyIu +y𒝀xԂ$Z;G9P" +j4x؜}V!Ļp̝݉p'* V5x"mUd'I!v2+uX?ge;Owᦢusp;Yd$mt@B: Fq'-?ΡasPWr4GECW>YC"v`8P' t`7lIaӎn{ER'S$6 >'tN $DfCT9I@6H2NÆ&_aN᪜ 5=Z JuoۉN&GKz vDHHnO DT\`>It "3I: y"X(܂J10@CIPtE:P6Ptġ"Ġ!,'*PޥP~h3ڼwЇ"e`.hX(Yg(RG>Qa_'ʠ ne9ѩ/,lj"P2ʐ߶ QbPmEZ|;4xwE4(~"J+QN s^0~EƊc ؗg^Š劂п(1V (NQՕ Z(HH鐡c5rêlI bQ P).X_a(RP0E0lD6M!k0@sS9%F`)=%_S0 _(P 0*JWaR /PTF yT w*[TYl.̩%*C deuiBc-~q> ZAVBJ%A8-ܯVJ< nYh*SYW"NdVQyh,T+A^ dU>kWWRe ,/LVe*+ŶJBԥc,Xc?"Q'Yt6eUǖ%(UxYDNI͢VT ó5\_\40;'Z%-{6-K!B"-)̹Z0!d aK,p9Ae#`,!Q c#L0  baHm7 #E@0MN0%@bR"hqIm(&B]*,ǥE!31֌ d18T1`x?jDlYd#3%?hI!&>K @QvX&y:DLMz-go3\&B<2JLTz͓@ g&;hfB5SFtw)O9"g@+Ag&gsdr`uyFu3ޠH! ݀l1)7( l 2m0cD+,h(lpFl5hS#MiЁD\&Y4x  t7F4+D fG ,eR'd j&bPZ"*1kH0AY: r7+F2Wf0  Ե&^@ɼ ꂘ,sJp!tM w!^[pZ+{k,  |&פ +r&VP؈`Nl6X &v*ȓl"Mfv +8>M hI)6i)/ +,I m¦F(87*X aύ Mޠ@R`7 boDdOo7Zb +8=rdkT$^ gp$#N6?q2! +ƅAꊃсq2/tԱq28y^XPC&QNJfE-U'@MrBrZ̹-%9 X0)A yҜx%6GH3zs(ωzNyFI2Dtq&\!"<9ZѴ񱚀C ȧCOȸ(x_޻AP#@hCkOgg12l4#[C!0bժ)6o B}ݮ2Y2X)/Ṋɰ[z4!Ю`^ʋ~eB[錬(=`5\!iA{/#n B|J{scѧ Qpd4Yl-bn JV$@}cCm odsU%@p_nA51P 6Sm--AZ6%Hm  . T;,-tm(J~v=G@Ppە>8MHGۧ(PGHz{7ݩ`6g3#w1l7X/X{#X @)rS e|a`V􍏴u9@ZA7K}beXɇLP@0Ώ5Z: Q.Lh_tZlw9@φ9B`G#<@!(!Ү/N@;(Nk7%9p`cR0 $ICQIn;" )hD6yLKl mjInSoBx^ +Uz m2 eLo{1Vah :_ 9s/8L Ǿif2p 4)yAbͯUfa0TI``6#m_՚izdiK~uqk^ J Z+*sb~`P0 T}% Q*h @((#2rNPM|?;@k/0֡D .@.i #>U'IU +d +͸ GqQ"?\53h3Bx;1,%p(u48 I 4L%8I$q^  MP [h6mrn,=h-4Q x$5>?Mӱԯ!@Qэ!exrb@TBH 0pxom|GB718 +(9ۙIkIWTw)~7sT29 l&DJrG DqǂuK{Xfշ- Hx >*X2چ +`hYp^^ ||uU^@!ԀT\ЄD{(JrxN^(=VOkjU(y5?Mp2 h.P 2=CR&706$%xC~T@"`hʮ[< ricX]~P<M"(F0Tnpc=GJysZҟhO#Zd(vkTq/12(vM- Om@e 6ۄ)*%;m@JTγ7Z0H=$|B%z #K S:3@|3k N$5RRH|4,h"*\-2M:e#3d W&= @[?,J~() :$>0K?kfek@d1q h]ql+?m_?p y ) AVCx_P˱/5xvÒ$Q +SftO؈pmۨ1n GVB!9_RFHN?1Ou{o=V(`<y"k|?؂B\юdC\iV?45)-%~ն龹*QIE ׿MS2/)X9X߯iM:Y?i@=w(0e1' +hJ!3R0 vZwiˌ#0pOkcŕHo-V&Ǣ?{&PΛ:=lO_9&=PBSϝQ'+|H|)ݜ98>Q{$jTw{MrC!C47!)IQ-:$T geHyP2@ȕ*B)~HW"Ljd?6 *hZ_ [ŕ_ +"ק+|O`dٹ^}͋y)6q$mzDuH&h_s'.J|XR4'o+];}~GLq(=!DjY@!xKsѧ +E n;GZmfdO.Xࡔ_ΐ#{}f%0jQ^߰ZcrEm {|Y_or'lApH&n`0-2$yJ00 +`yjՓMc7aGɨ@kvԖВJ+SžEKW`D[YA +PiI&j|4;c6MJ{f+Yh)ݶͩŃI,ݖwn^4-ms)"n93# bE{l¶+틼'c!yLs`x$ +{1:EyD V$ݻKcEwDŵN֩BroVj=n?.%Ȋ0t' ' =<)WLq.8{O\@!52JW{ZڋyD % aCG$fo<`lXNu:ƈx;{ cOB{D`n="87U7ݻ㨺)8|dztx=f)xZeӳdS~ችlrjv:-0%wםT eD1B9-atuዽJNސ׈>d+NtY46n +g(~euCt3u~>{]qFB|VJ#j+ulLz#'̤ !ՐeG]//tcrH1z)sM*f39}&D{ B_(%Ďmc&ޡb Лq=jӨ۰?"jj>oI\8Ҋtݹ>#n{ݞEuMnH +$A225qޅÎ8N^oqȍ{{>DGV#!/q 2>3ߧ$ +)d>R=Ñ8+8Ӥq)zGA-RYvʛH%;mߍsKHqjHyi*P-^WRD$p*RmIi؅( W)^lGFeV (_"&$P; %R#cttNb'oaip6~SkpMJfOm$jkfCj~vxtvO^ +d6'Z_eQJ{鄜Su& Uyo,\\{HB +)/S@kW?E  #[X7ujO~ߵNh9EOtr/H[Fy~l=<&]؞wƚ?:_+f)>AxY'>>kM~M=?[g%@EDv5Dg{!_mJyr!2 t^/bn7Ԟ|y΀zKUE*omGp pa@ؾ) ͎Y^-JbL&_px@9Y? S5@24&E箐f&z\#cCרEfhogAnp(H7"~;>_Hcv{wM@k]I69g%,( ԱRAp~n "t[_݀*EM:~\5 ?c`b;7LG dؾ/Zۘ7o{J3o[~ TvsI:VwdH:"ٺf't_Ժi+p|FL=iYD_GLX7j箐us1/Wg*]\]jufשv P  3L**h-08ԍۧwxx>Yv\GZ\Jv t +Rw<F87,?>ņ` UY_>OHz:25a_oL8}QS=yZE7Nq xL?(Bhc/ |lo҉FV%0?(ݵOI~Ѥ'kA2o2^6E`;T?{ {vt0J?JB[]_]enB#}N1h}[tYSQn j^ipc"<סwLO﷊C߸'c/#`fһA +^)Z>SkܡP?o j?x>I^&@ϥx k8<׀\ԟ0N|~-<~eύ}@*cHdJbҤy`7GmsF%չΉsc?Jε@D⎿ +m6}sm8Yl7*0\ָ_pt;t1csg<Ӄ,KZ4DsZǦCA* +ylhpׅu@ֶ*9v9Qpˁ`nt‘#DiR~= tC^.$4wCѤmtQX\nza +f}؞Ï -1k/&C7(f׀nr(Q~~W^6EW#]og( 04C8k\\Q4Z5Hcw9C nI_jpw)ԥ\;58Iw6tpi{:I. { /w]qjkp#TD 5[w Nk5X +vMR[N{+m npSc YvQfV\'ݯ?1 Bڄړ9 OIkܪV4pęG < (XUNupS qe 00\qRO-vo)pR>Nf}"ѧ ɫlH3M〓p7oTowVn,hL7C(t<}w*}KLAFB?Hx1o)CXU~>0|ReX[)B2f`ҽ./%0zrŔ(8G{>8֩z7Gk$$W~@[dVhKKKU>朖LS-SkX;RV%o Z.uYg9Aݨ\TNAn +?L齶v"v;Gf!(lDb_EB?,NM4ob}6jRR}cߎ "u#k[w'+Ʈ e҃K:0nsmv_2](xnuG?md09%F‚s'4:rcnu0uscEztpLw %ʄܥx~Dl@Ǡ1a,cnc{P7s1~\=1w BUs)@V cn%n/Vg|쏲h +1f܉H܊GZ)WYTHgE=/XKS68O67@m$(hHKs3 E>F'[s' Fo܊;ܵknu:V3gҹ㧞iL~yȷLL:U8Շ@vntn7qIsokRN7pDynsܕ&io!T> FkO,ҹ3}!_5Vn1j!*osU|ι1R#_A˨ L.sn1Xn[+s>+ K望0ió]ɢȜ[Y*ٜp^ +*V⦔~5wԌDs զ :vgDн9Q/FM{ksCOYh(JDnDh0?a͝cZDyh%EwRk)^7#^d9iU= +TS3Qmn . +.CWbuܷ}/ u.rm^kہ@M.?D[Pocrыj)T)if wHhkSns/$GK!i}ɖr9lh 7|^%=jR[WC`>>q-s +f^S ~З?smtS7n؃a pm]\B ,.dh[j5 }WM!lN4!X_Z A. ͪVtBh'әxhC)n72ڀǷ2 l`r.4Q#Uk +O[>qp,7KN K i"^ۑRI7& {~\yF!pf]\˔`fej&mĀi ?+܅!&e2_$l]Wa.0яg$ǰI,;A%}Ӂ  {je ^Bz +翷rZ:<PN@nҌ Ar4! zh@=?049?9fϐho~fe`wl:ՓYKg j(̵у#t x̔0mj:9d/b͌8W 1㚙rkf/+cMt +f\R 7ER:e_%fPnT{z367Gj_| V53I[֙7>3/wCq3똏҃C[juހu~fZ=cـeLL~㟟ٸ00 Y+y~_jsW,f`{ٰ4JMc>ftTs"Ty!ɵ `2f=}YGe@9^:Dg*2P!hLG_Z1=}ɟ"3$*eىw[{b˜ +9.30/ ]lwEjDc%2ܓ4|+#=/㑰QOP +r[]D#A"{ )e ܕx†AcU6oLcSh$&Vdm><֮*: endstream endobj 12 0 obj <>stream +[NM_; |^&)$`gᨺN9Qo|Gjp rOLOOي/[I &]gxzG \ +{^":ګGM L = yLS|JOv}~ r 5X"ki$S&t5ZrErj-X@ԝljmJ: p*`JAm^G(;Z0S e8!Σkw7 +*'`4m +Ѣc#WD'(y--x.Z=ѠbToF-134(sd tTO pc"阥KuT&Hi4HyoX\T8N* %r¤F*%P,5>bmTsY|-.]K/-߻az3w 3}6` M:ˏ4E#)*8gKlJICLVO9iYɧ_G6,RFԌN$ԝ<*| 8|j AQK`+:*UΆlJpB(T=jWSEq'PHT͖`jUrm-ShޫZޑAqn~ګW9q50V{͗8Hzu*dayԔä&fAіnM{VD`-+ OqrҸEOL>sgʮۉqF#6HB2;ccppS +/4H,hwzKm @!\79X@JFw֥C_ֶ(r +=AƥtnO˧:uZd +VF]PE8F$"Dv!I03b]yv5^WG)޿咔[Kyy|7^ +҅ ֗ޚs}JMi][Rf/0ދFn">(;k4#3,J/W-WAM_supp}i~mt5 :h[wz%F nk~owf2UDuFW%8[Ųr#t!TH 0@E +<nuSL7grlcYIX09pf:#!R?Sl#Zkrf/KFw.H7^p+J-%``3k'oZ P^!L>qF2ܴeb߶tp.gF" 4aPW`[K~+LXKn7L61Zؼwd˟_]WU`+gݠ0Q>(}#/.|/8.zJྒhCr ץ:D@Fj_$,vs9-d}ײ ύ ,ΆUۤ%`U ?~sKUßjrAgc1cAH /LS 9@Lu XAwy%aaSo;c%4LAuYw )nGKÖOjq-Ni)4E;bCBtkcpK^Z"۝JD?>HPRRz9܊ -Ltd,]\rb=,B|'s+Nt wQDCcG^7d6#YU߃q:PSA^Z-+=)> c wd̿G$Ǡ8d{'JE~s3ȉi~Fn?g6"[2*h>k5.r(5~K䌋 9@E$feJdKP6X 3pN7$QBi_IZm%NٌOHvG%sVuF$ɢn,IM=|S*X*lO }G.Y Wh=Ȉo9P,WR\&` "\reP}5o#:3YMR )$qɀ|/얜V[ԏr,\t`K*!果%ojzld 0YIGOsT]DK;@" ͒SІAAN TAk2`LgMw9]YcMN@I M~ >eGRK-ur2v +6f-S#.[S'~nBPVA%ga%հ*#U +L@Dl-ko,eYV29tNrDG ?YtlwLe`ܝHsx֡r156M^a+%3K!eM/vfH*,n aB.pgj$9 б9t2)5t#fF<QP%v,ZD +J'Qm>7y|8@/ ـ@>ap!tYКBfJC>:"+ahW4 Ju`4;h^F@5[qstF6"Dv!'b G58aao`LƂҘ+t|Cn6!K&lQ&ñPV3s,~Bi7myB[xڻ׮gP6$ʅS%cX!3jU"u{_\e +jIeԪM8bSTd&HF 7{R&(ԭbK(ԵW{}N`CjP*:+@^H]Fhn\2 qM6?a!0xP/[RPIE+?wX_d(BjRjʕ)^oa$У_NzyNb;(t +2 pm܁@㥾 Ug`$]j"Vst +R+gS:PK%(>imImx{4/=I3DB>/vϙmց/+3ˣD T]V?V +iI!l֒:<<[*7Rc%X2ݤhDS4)&uƀi9 M|@oRo#\pI}zԮ ~#'ȩ2M\^̷У_Qv% (m~EHzk3B͝h?Y5)D+, #&=jvvຠ_^\%~ RB3P+? +{ӥc OG95R`a75P +9P# +j6@QjyY9j(nҫǡAz#CN4U)2w' g@UTI$'ztb7|A 3MAP; +YF=TY$ K-vIԁ4L&$5*Z>ӏFIH;1֢vN6o@TC&'TzThn0SV/WVC<w5p<$ڻ7jaІpj`- MOiGֆ)tr5Zd Rq!l5g~aGkA aZC΅q,ew+m6d)350Nsq~8?󺵠Z7O rF=z)βnCc( k-^1k(u?,qֺ8KX*e?g}0ye,૲~BjOr&I?Tm+hkeʍK~&__ +νPw4Ȝikvsikp!zO6#urymBwa1v I EBƯSxkسV5s>O,0o޺"䞪<5&SA FqS:SuOQӊ}״ag QTU?Pq}9[ka?uF:bC;UV/G{gTN 9 [da&u]nT.3"|-sAzI#s'&-Ája8>RRvݮ ;QT.54 `˶InmW}ch V/ +Xb'i+BmÜn\Y̲|w4ؘؑDz:] h~۶BNog:P7<ĝ,l3n}XCna{ɍJr:b8Q>n?vQGOMv[̫ݜsw?[pDc70LA}-78HD$`f  B8;—|k?xIp|wTE=@c0W"9*% CR6y}cō[?ɸ1iQ qRhr|gg\| sqANOS7[ +K"qܢ ش'h[o_W,7+ss,H4ص;):卧 0%FMZL͜*GsTFG+Rjs7srD>@euNZ~d n0X=uЅ_za%M[ON2:`GqO~::֏ 06&4%!䏬m +h>Ђ y;StT&~ɼY*9\]_XF*<=U޺L`jQ^o]`|vx1os7 867aξٿEry2;FAuHNrI%#cH9pjڕc8n:Fw{5MI t8OBF~SYw/8ݰYػlrd{v~OGk; +xX; ~7Sb+AË塎(ٖE+P_'޾j;]7ܚCs +w%B/C\l> +;G'~fųy%]&ŊuXm1JAmJxmXZ2ۧUOI_3tP&#.^fS-.^م[TxNjs /yuKult$Vޢ)/G + ͻ&y~6/m3%#|~|%|C/UHjE ePQ˜B׫pAqLd}?<{>V h`?zJ{ù~n4|}w߆Qā%chM*Ա<^rT_Α}?=;zmW}߫r>cV~H8q+^~kbc%'){7/ھ-mVX? +_r"|R;߮@wBPP.sCjuA֤a'8<͢xtbqM> _61pJR-3(S}Bad^W!d5eLSiNےp- p]1'I.7@MBA´Sl:&_MG@*\p^›ݡZ qr3RvPJ1|u)i@lZ&{umF v*Zd$9U-dYw)%l'|xPUe~ԙF7"Ԟ4C#1bsiA:%+o=ȴo/S㨟kZM\WqjXÔiar.5 Q8Q C(Q}>,Q.EC &NUwY9>xKE2f p;q@ONNmJƞ*p,{_;W9W}C8ėT9 |H: z!V b";,/̟0߿;ilӑb%8򳇴LHw-5am]I\~}t~|>hu;g_9oe*&RzJ+c@j6VK!9!e'Z:ک* +AH .rb:Ydy^%O:tYgh2|j!1yrc2/8Y2nY{"&\[VT[T逎vCʊh&b{nWL4p֔)@Yn-V={=3`Vu2?="Q G %qw +Ƨ,`{;@/]܊Ȏ8@KT`7%Eө#LnUFӔ /NHN Hӗ-Z&9U{4y ,J >U ! +#p9G@jp,נ6qr:, _[d(I/Ya-t Qԯ? L^bi f vצ^ҥjZ9tHdT^w/# y9YYgF,|qsFJJgGŰ"Փ L'rzb^oqb^Q\ CR.C8ԍ!pZ[L`:*E +5@:9ITŜ3 aY>4ISA7.PAaC*4w@09on,'Th>](ldx1S5WrIH,%m5%5wMrƦ..za_k82)hp LMJoݧDo8N!#P2 wcSDޔ$5ʽNnid s7MhS"V +lkmjl$]@ 601X~xX10׋-RK̻q+aE`Eh;HL4iN~$˜` ]5A] ֐b:= d&LS<TQtF/N,0aXhJ {nAjrÇ`cJ>}͸EiStP ;ٌ?NՁ'󛊦z!ƒYʪW|pN̏`~}:V⯡ST~N@檤}=,/6Oop~G}N.  7h4DAlR:8g]aa|ߟKI7 L\0ݝR' r7[sBR\ 7<[u#!.$wrwn$H2` %q;Ilm{ 8+[N&׭TN: 2]rY#6ߕq87ǀBTaʉEc3c2ST-)BޝgxmډlFHĢծ]NGŴbW>ک Ә9hQ` ~|#$1{mx񞀨w81p&B4hndP Yb4Ō!co_^~j4XNFӖ/ '\Ps)Avt +&skdH'6Py$չQ3DTΨf&x 6k7%׿m%I#?bq^pOhΙ{!)%)9C TDE +!"##wdYS(k9;_(;x/{]W,Kg y~ DL"B0 8.ӷVܭ>WIs<(~HkBY28'&LCE&xg +J<UN7M$PN =%ýShkL[#uzmGw,ٟCdh%Tg 1vjl޺؝ bF!!#Ģn^LT?Bi%nf=CZGhHJgQϖSa17,2"v>5: ݾug?6m;gkgļ9+繜siێqwj!MFZHSXCsvv}`5|'hcЬz.!DB^N;&ފ|H&4<*HtWy`cW2=,'o~CI+>4~؁,>ʯDzxy@6R鵝JEޯ2{pu ]}s(o MF2BIG/|y~_Hr3N ;ҧW0x:"_suvM\mC8m뺍eGLׁ6|`R'8H7P@ßs(b`r}WBRr&߀j8ZMMb l߄,;2DۥbHP ;AG # N+%i/)Mᛉ4KW,2(?ZOBZo଩RT!PnQ.X +B{K Ȩ Yyށй:ҙIT>|_ƯSojUo!{ KwL_Z w6a}%T?@F(\eJn햎P0 ?_\ϲu}Zh}?K'0)bO  ,L=XJk'`em@|'gC2ɏ xR,$}{"}EӸuw?lg8ȿg(5q%Ϟ_&qop*$ݥca +k-ǎdG\S}.GSg9*~'D(Ϧ/ohFRfG7c^945s(t7}(/0NTvuAP,]Qzɮ?~~(/P!Y[fdZ6uqqTſT +Hßj_M6tPo]R 4w$A`*wT9 |U} +* llZ5<R(_θ0ygx'8- K`ӷ6\]ipNQ;*~&U<}qed; Ǻ 6T9 E4s1yns~Zm3ouL^޳L}Ⱥzksf"7&~! X>~ C}XO> ">cLviY :{/mCHn2EJoۧ Aw&=D)hu?އR0}=5 Msgmܚ9I3XiJP|P@T/4gq93|nƐ]U& qT[ ۭt1xku̝5oL_\4n%}$%?"~?QZ+H`TH,;&\Gx \q;x=G0ȿOt9t xcH_9FPN&03chCO#Ěr~pr^L)HTN~A I?²"a*N]uB{ f`t`DthL}>}uSbʝTbYz˿Xs ٬)D)>|/MFZA٣B4.{]q:O_ x4HT)XGS(*SOVxy={l*~"=T+#d }E`.ļgU^Lv!>36gmV&{;YrŶ !oFAG?lM! B4~#mKD<(NԻaf:Ʈ;}<_c׳jHyĸLK~Mƫy"<&_D~gQ0xi̟]Hou 80]M(WY|ヘa96s/0sg ZMW\Ёs:}9o\10ԋɾ o’)5@xW/4#m$%#{z +HD{,g`Eha}DjؕPA Zӹ'ʹi=ȓcݰ[<:i' g!g\QVjFe9{MYV:[p:gФ:O[RЦ{:W9B*ce=dx]B6?KvRO +?ǯ$}C?V(I:Ἇ/=eaiB]NÛцrULac[_ζ;{5"2Rgݾwc/w].Nخ&4X@0g!o;8@_sy;2,=kFfW"ET +Jߛy=;G cםg>:o F g&1ykܗ_}Y^& 5o5خ)|anE͗q-e/wLSF3q'_BEG~Q//o]YƏ8u\϶un6fmL_s_m 7ַ< ÆJ@үzd }"ͷIܫ ;OicUR6N-&<d^=z3o#^m_θ4rЦ_"EA~pL9z4M \M3wムO@[h:95LQf\?Nhlod=tI b 4g U@6ФߍshchN#w搮 Ŀ(h06v6DMw:#C}C<ϓo +|L&Hu+&Wؽ &hiZ.(/xai!)( m%r#&;zyB~㍳s[3hܲ=R˲s l 4^7_6;Y:,f+'85q5 MCaø:G?RHu3qtu( `-62~p˜FoGizïhch=4FiU,< ?ZFHrTmƯbw7߹8ׇ0?R׃_-F8b;jub^)5oЭ0HɾDkz ^,&@~@b7*Q9`<#=}5)~X# ؋6_?iJ@H3"O +J Lz z{8y)1zl^[xhN_RyI`; +ģZ gxw,G#9a(l"Msw uE<Tw x|PD)/~&WP;*?oQԳR EǑZG|g+zmUĮQӸ nEKk~~ ļ/d9HRg yF=_Yh'umBGw4BdM9xxz \Yij(~QgDg|:η0fmi0P}ih#yzJ(( a87tߜ$w?2G _C_9מּϲlB|#}L_&7 +-5q=fOQ&?})q?69OM=~5f/8wt֭[3(W 3{oFP û>'Wgl9 w4p&u=3m14p u7:D<4Hg&2>|q6vu`4u΢^?]'4rfo:wH 'WŻ *~E_yqwW'U'L. ?iSȤf`v$"=@&$A aq:w}G'gE^?T+]IiBv%yAv7y:GQ&0J^; +=eB3(i?2I^;{;*KEh "цbMy~J?/ uG<QH6r>h2C* F0Jȿ_CW yH{'iMݣgqI`fpg>Ζadhs3\mi2l7D}]ƫw :@~qzbw/w]!qܫkhA6:VqX m~C4m~ϭԩYm1yj_[b繼ˡ5t\;4k91 `ٶF>έs8t7P߿10sg]w}GsxqwFPeIߏyh߀jù'G$ KA_iP߉u@UO߉5|#z=!޷GVp F +=N@kh ;&Gӫ~ZmN^IlIH#g yo={~"'$GUD;G5& {~![ijEm +<(D=[gy<{, o(UiCmx+y"FvdA']BnBi~L@;(3{p w$}E3hgyN.jG Qv¹.6u!n](g>ywP}0vft޾qܧ_lKw%mKbw5q͡ܧ)l7_/FgzY6k_m ح`8}[6_Fd0{]XQcõ&/ٶ]Em5tK]-ubq^ וaܬy-L߽ͶZFC͓ R3ahC@}γחF86uG<įT={ξm >|HӰ#YC\76Ŀd{>Nx(}L@U~ReJ^[Il0yBƐ mS&$eݣg$}VԹ<{qu7ڦpIJѦQ5m_qaHݡA095t>N~3_޺rݚFة:`=x A@_ޝC- 4cw@&Qqi4Yijiz_]s5~sHrafhHw?<@m?o @'-xEG6>-*~6ͺ\p]K஑"9oq_ sw0}f,_Vfmv9 w-]={}G.i|,C;੕L8{˷b`Y%hcc.mܱqmdD8 'm8 _qȾLç}['\ a?.j2Yv/zFϞM悦%si+v [=uɲm,{9[gxN"-÷V#Vgվҝ.kV&Q7w4Oywnq]WFAvQ'$J%15qߦuB:ƳH7IЦ|6ss }wR'ԳqD=;g?h+zCݠ.p;CFgzb7L[ ]fVw qaԶٸ?:p3mXL ۘMbL'ܡio7c8 0dbY,; \ |+gie۸2möYmƵ0pmZ p`zq(@M>jhhuS#U3ユꦢPPI""EBb+V-K<$+2Fqu2c1$m )^Հ38&ćx5܆p~sx wb LNNK +' +,@0&aB&;00J@ /k/ֈB,_Ț/u2\#&XOECG#0~*vv"!4ra:pxujrv61` +׏tx0!HHc~G'$H &Eę`Q "ËG4/ YB{*'܈FLą1fGp,cB!a %Hfp~^0LK؟A:7?! !NܒKܕKܚ0Qtei$o4 ^MP!D )]d97^@K,epc+d*=KTq4Trz dG& EBda %G{@x Jzg)m"y,"AH)%tRx 0v0EZBJiKRXM$;>CLzx7^ݎk}LG!Dz{~Z~Z w>yɹCSVJHPxM_$R G61oz)ܥMFGBA#ZB[9<GLW>)VDMOy`ZӤʊzzvbg$ *jFJY.11i&&:_7j,?h+=sN$B"7}Dr>a <Јk'$J<=AB3hrJQ)<"&<8:/v(_VJ7*n0arZr +hYqވB̰3:k%`OJo.V3ɇ/;&'~?k)_ V8 ZR3')@@E-qzpjDosEH' +'I'ؗB=QPi5e7Ji$,h$4,D1'k8j6&XV"ct1eSƕ/*F|NsNxs\2ؚK'GIdʽɣJZc)6&PP@ HIVLJXe8).=#/4$JCr3,:sjQRsΘ$M9$) f +*lZNS&wa&6?\=`j"!\aE2-f&q2șCS29%P:o2&>@rFLI_LFt7$/c$f+.#񄎓55$)?F @[1 +1vpcNR:aHaqMJP޶ਵ 0%[*5*Z=4i,L+=!?z ɺVh`+ŌՉgvɌީQ\t H 35"(fJJlBRta֦?vDfY܀F%MRVAEBO`{fIQOh@.!ܶ cv(N%UF&X|*n%*]$Os+$VF>O( 5a~ܸȸȰӦԠۤyKlwGt#3n>&> "gD~܁CvzNz|:&5lʋzނvB5i=nT\-3zۖ#4d,[[GOQ(ch9EHy\ *D8JX- #(x[lI^j +eJhkѤ7dI_XP UR WVi& #9#169|wэ#bMnݰ;P`tuœ%-Ņ\#09" XP~2ZqRRx *r V?y`$Huz*j=)@] 6.Lb (! ČG[¦|˨&$]2܄9iaN\DGUaPVtZʉ?I/*GxR*oJsѢP}@awTh}3f +ԘcC@G}wGWG%v:ɍ߱W`qTlx'9|7 Jpȸg)lmt)5 e a6dj,5i`UV;%tWY"QN8~%*wz@1# +3#$w?OɌ`v\> 5hۀs$'o@Q&҅RO"b{xye-7X,t,5`LfȍSx#Y?Xʍc8لj#(Juk)! +zX% IeC"JkФhB +kz:=;q?vJ +oVĿ R@0 /^:w2 Z ]~C#C~WIodT+*JeeS=7Xi;0yCJu<^qF8s=bgu3Fp! Pl7`N1AMV4&+n~~R&#~ +~cUTiW`n$9h!!wހ啾öVyBT HE=W-O\rgKR|ىǒXH+Ak'"|EM'%G׋UQcXUv$+ +VbJPx-5WBՙyÓv0DTPdtvPDTPtT栄Տź~ tXԹBUY'%B'(^T%pnbHZ#zCW +Y3J Edm D3@!MS,$&Kߏ6ڇR3"A^'1<= 2:wU>(vhqYGxXş㲦Pt0u6S78nvDt&S[pr`e_pV*~wzMR1$k,t)D#S~dtIOdtPk껈T8.*֎RWY ɺuDA +k'O] 3 +N"Ikfp[<>+5!u)ubx >H.&v#|JOV.2>Fg# Κ5~ؕ㓾aٝXm%)?<\"70?&.юzuND0*F5 %(/tglͅ3:- :qv _,&2~l6揍 cgƕky"͉q&,6ؑ@u'he +>{hG`oŮ;é={(wCW &D_<ѯP!=L@~]je!:?R*_णBDVQ#;j"*wVDzp_Z[:Be MZ MTiҩX] F@v(&{+fA٣F@#O/V zSy9 L;.Bv&!eߟJ17,Q>}]3J, 2X׺y T +Bq\X&q[IѦZQxYGkWPqG( $#B0<( +D-W|x0 OcSkczeJ`ߤ* RH"@ w=}>(2о{sP =5VJ3qrLe/ugڜE|J itcfǻ~$zq99XuB?W32} &d\\O9aP$XX*:'y~#NC 7Bk( e)ub N9k眠ģGG}plJE, R(ƒٹrxO!;P_q6֏PYTyeݔ +>ER**)Ə鵉4  +HDBHXXJ?Kހ7&@QKFx0"J&͚fWNA}ZX9X+(@ ??>*O ±s4lHUH?3mu_|E FDv߉5|(6t?Ora'> +N9wf [Saf:cFuϺy[f@Uч-IAǶ bdR,$}f 8'k 5Gg`Zs} >η)C# uՋԚhB8$=BO҅͗KF|/$uSkbW3=)tYOluvjUGR CH?!5(?&Q }VNZjD?jAPTzN$ +HDv&$I[,6a~rp RLQ1 y’Rz+2GlW]!L#׍4ğD׺'()_OPUmt !&oM61QqcEBl>4~* A;_?SpaijD אZCѮV O10y$_"hID6+rQ> @|0-4=xxX&NQB=(37~*Fo%G ȼ&02{pN{SXgء.i_opA~ MNi.rҨGRƎ +9azAI31I{Y]#ⶣm6"_8R>,e,%UaIgXr)S)& Ҩ ZiXsX;:$Uodjp T`P$k,GDiX/#kHiYWNRi3mF;h2vRe\78k-?#_ + Pvkd`Wb+(y(%TqvÔdU109Y<<,0i!KA:x搮"MBA +Z;4 5%3 RȪ3z_q&~nk8 a P8v9X5"1|#&{b` } n|_)UV@.w{zx/"Џ50$G%QmY,J@0 RDOwh+zvFEfuSYGG^_3sxW6* Q<=&vP8G͡w9 6ڝEgЬ |@?~u _\2;mNb'XCgF+b{Zk0Rbpz @ J??Fq8i4!gwb ?~9߻!c]òNpI*bMr~DTH k[!)'))1-v BF=뢍2{mtM ܿ1[0ƂqLHIQԳ@ mKBiHJetM8N|9`<Ժ),Y3dqǜ~0*^*Ff$bfb +TD T@t6$sh ;ךBYKg k`AajJǘ\xrNPv6'i~@Zϭf2vl`.8*>4&԰Tg̥/o]yϭE%P}Yx>ٜl[0V-.J;)ًgl@:;ngӼ|cH3Li7@IL4 $Bv :2|ob]VLM[ϭ;}n_dtPnZ>2l,x Y8[{y*fK?FNFZ5Y>2iFͦtH^JeW]=G߀/ h_ǓGAAJ+}$Z|@^ZNg*D{hS0*Dxw`?iUT闍 -e.,H[u:U &Mwk㝀oP@eꭳv_[#.HhƊYk@8v J@cPV[dh Mvm>"_TKګT`h3( ZpT+,REv f'$Ĩ@gso<Ρ]8i꘻:5%m[i޼i쳅.4oa8 ƁC}XJNm޺մYM c /tUCހEBUem@U+~(-BoP *~'UF:5qOR~3]-#x<{ Csp4d~ xցěi藻.0NA]-' Ʋo,osS(:sN_-64}r5 QԳ0mo#hW|”yGe*SSE:vN!H`o@U#\үL[M#0=y7L wV:/-r*r," 𰕂a9:%f[15 '|7O T<\r mL CG 3nrOe_Ǜ\3h7eyKaڇ,?` t98qvR> SX_rxhS.*/2$Oݺu-[4Z21!5ż~<P,nF'\,,\ YNeL?okeS%v*0a)ez5%1* n Oci1W@ VK񽖠T..BUkM)-A lq4Tž L,hmܭtkB~]!  8eZ<7݌1ylܬVk9l\] 0`ʌP#+=ƹea1yn\'u\rzhr+dyRPunAB%([_Y)1!JR!*n3"#cP\}׏R .%"uNbLC8'xfGy'2VJ^SVZG:QaM~]1^w < +y𝜝,]v('ioK^Wh70([H@U&RRB eu4qnHObl R@VȔ> }"j]=*H +R0,g xöĒrF!dP6꣇bmQ!"{ceG^ʅ-h@ٵ̷a8 xJߪ!T0id.k\,')\#[ul)XIn Imخ=yˮxnBE`Dq*:%*gHU2U"7{@T65Wb?NNfJ {/&ӮU3&.gZ961vjo خy̫}0/vjd Làb``x  … ܊o Iq*WM,ϧv TAR>pHDZA>^ZZL@5vܝDjtdj#lQv@AQ1g*,d +Y#}_n;uZ>ցCp`_x`+4<<bt,>}\52پyes1d~X["HDZ%@3s*% BprRZ^ZV1iDbXX?iKB_ȡPmKᎀ$*:i&BۛȈj-*A1iEualZu9\̺Xyy .+7qcմY<[ 68EXpbTv`Sk Cll, dJ]1nk%dTuh=n>lxNvt +B n-(AE`lg$?rCHy)Q. +5B #S؏B +LyWzD +xF8G[G|gevC[\*z]Z\Ev=ȃG4 C&.l'OE=%ƬG\w֏On.Lt&#ܠNѮ4Pm|d(;{3^ؙ3p37[ڪt ^^dv^Preabac8uo`&6ΒZ.Ma Ӫ:ƥ6K2- JNAt an!EQf2{lC؀0 +!vdz<.mp n\.PKKƜŅ2`u URW2?X]퉌NKSLx.$u`Wg򎻡d @&ƿvRE&Kz*ltc2|zc0ovcCcccbWpKԔ7tCAD [c0NPD 34=p0n0MF4@n_f%cTfR[XxjR8i-؀ +BXUNǒJɤhic cs)ec-\qc11y|w$m|8dt51$,YN3@$pÐu*}E='`WŸcjށLlR%{$x"".}qld[L0T:P/#al1c ,BP6(D_o˘L;.zx`v=s[./zZGG7qoxV@R BĕBF+N cZ@-GH(|T:a\Y ,vZpBD*` Ъ . +ly /C@i;\ m|C 1 Zf`L=.HY{-CTbX 8\)ΧOJ@ P|n?[ĵLJG7pHBxM&7l"- m,Rb1)P߫Ó,*vCҏH ~\%,#޷ڳq4|Y[\@OG :1\6X7xiAx +Y!^QcƯtLn|▿_pEyU@ɢג@4Ĺx,`4Bzh,I6ӐG_-4:ZdxyE#,fk~28t]BbZg+KLXr+cm-bQ,Lg2‘bi S\RlyAOiM| A2BW?G|K)$a&xj[OV/ q;B\饇ȼ9C?;)H@7RJO[Ǭa l\X[N.:8v&9)F'fLd`TTJlXVAʪxkMS pA3) %q FGB**ZDG|w KDRT705q/%&d3\LM6hq5"; +)!J \!-42EԐN4<8Zp.ńm   P4~u2륄,K,3!i{ q0#.TJRbNF<̩[Hj3ĕ^?kMLKU)@Yfha L92H/06~p~m$)1bS%%jPn12 +c% GH9&#xFpsUMmI1qF +H+M8@!M5C\( OK3@?@3ęn8 $(,0k~fII3t ߧ#J_6Rk )M,h +6’=sPo,c .(8qʪQLmR_I4тNJMo">2%s|Džg˲mw02ZxD砑,Bxi'" 7zk$ciEKX2|9; 4 >De(">8_2۰ :.zx"eSĉA|g<4AՁ,\WX8|m]qbqa*^m@*>˥[q/G5 HD +Kp3?< +&/,:Ç`z8SP1eGk§CXX!LL\Iɢ +beU)LR9p2LaƧ*:KRƢ.m5+'%dįpx S7> Y>B|+hsq@FJ? >ùKV煈`b`/Ё3 `fL4 { X`Lđayf"VMعIZ"a ;-|7q|n2|āyxJo0SNP5q5=wO1?|)Ï9\e'q"~o / +1,X*k!>R7' nf1 btC'G7oD!3QN"4f2j_q? + 8A!F|p.S_xON'T-a;D98\pzuiĈGl)bX$H:8|"0yĮQfg<MURbF9r] +P 7;!<~Z s*tu"dd&xIU c'EEr#Éx7p2gLc85,ךjl5o -4 B0ͯVN B<*76ht" !w OD.87^tk|!JIo1"` 3`?p]<_pxosacCx YK6";J67Zhzu@1SL#Ŧ*'cD8X;i<iCMU") +rHIXh8 0|e8. &!R tez`RE!Jqzd'r=>5E_0"Ҷ!9w];.5u=B8z&R0pi4e\6sF DDyG%TDuDLߛGwx_ "CF0ot0pcOpV*MX6:e-rTʙ)5u~ѨqRȤtLb/&1B5zgQozU*44cg2MD~HSUMRDy6ENE&ͥcTJY+6 @ mRjc)&oB 3*."8uŐ-Wk,U7bI,} ʮ}"^GLi=F0 i⏱YPM&F o) +#OCɾN94 2  +IUwb 7v~GgZy(!]=Va&$ӫ +bd~8w_GO1;xH'XPG^ZL\%#W[82;砙vwV]ch!Ac kO@|* Oc}鵟^^h֕X5.k:I{>X BQjFeCTN0".ksYkw{zQ!$kN)&?iT1 +ģL [@6:i ZlY3>gWFmY#EI xs)[]^lRQ Y +=b[R+-GhcJq{ KA~?&/9߼>B҃AJs&t:yC@,L;)>m+a34X2,=7P+G0B}@4k jAo NH XL9:fqꜰ^Y>8)XTE*o喷3{p)IgL?Fv˷`b܌ܛyܫ} >S*q0sgt6 f|*"?Os֫\HOveO5@+Ii]!H*]&ۦcڝ mq;Vm;^6WYF'T"bO5&QK@;.P*QF&uCtޚYK\#("tz`5lFTTD*K7w/_-#ƕ l*~{Q. s +K Y< 03|m{-άWrZw$% NPk&({Re F0L?f@EϢqft H{g +DG`TmNĠIAcWR'@MR'(5y:\gU/ZsxNjm jǽ6Jem5}$Rb]>,~Oۆpx24 tee wBdAN,(@~ ͳgA[ug"2xz(osZ7Be +r#l>aa1tmtg=n:wVȾ $uCtk: 1^=Q ۣqV?Ξ"~jML}颧Ja^t]9>iuIgbG}pruJh?BB%ADH݀kbgBM BP~r)8QJ<vsU)k\Jٶcl +iE 3joP5PA|z(¯TmⲖQ. ?O]zI߅cSЬy [-F|%TNu^PBGxB۪ťrqys#dzh3@!|X PDڠfJw6(6ULkGjQIh]@~G ;iNiu@Lξu2-ً- yż>i +j"NGP$({& *ZgT]Ҵe$K53n L"drq:zQp<dgiE_ȅÓpzّ: o6.8v +H4T)$ƟY~PEVlL߻f0ԩ4|pY~%o0 %,*IɔІ$tAcܴ3m3;.z +JV Z^2&?L`ځ+09!H].̜ZgCӋYXdv(m KL>Fg+3^\J(b*k%z<@kCU +zL$ΰ݄*2ԇ05%Eu&k]n;>$4+J?(6 .͵b8͡G#+YX:.*5Q'aC[Ӻu2l~{Cԡ7s5LjǂI[Ь^sw\ףR$1+Uj]Ix I~, jhD(MNeeּn&P9DwQeaHS[Yh+y"J`[Գg: ][A}] 3w6u]ASad!YCT_Hi0vjN#zx%CnB9 dFZm/"G>}b$U[c J/&*FP-Nv} &[3: ̛û^hW($ϯmy8c:M`c5pw͠MvlKwƐH }uV inx| +L4~!JAK;˓wz0tj8`èL}1xk\y%Mڛ3gٸ2?7R#3q߉6EBm쇙Q40XR3ƻg|j#CfO:-<}(]-}9u VI=4pxgCy@bŰJ]B6"?:f?cd5XqÐI7vv [uk"M/"wHL"A!MAB@&$#4Yz%(XVʅfsQ%YY3* ʿ,G^_#8a=LBȼguk::N/ow]3^$(tvReH`;{&!B;WRn&  4qt_fol5{m93&L[ǐ@}>fc +Y48i)$}.%Vq$b1z 흁CMIÔԣKdoX꿈~}IüVD\tXm NL#=Ckݺ'_2EK4)4g<7KWkg LJ$v RJ`}!JA;Q ɔV݂5$1~k.$(}dՌljFD؋vqƣE7W;6~ G[,(̉5|]Z bZw8RڅtV<~'qazFo Cez/ܭ#r5escظ0}j[XS.Xz^2k DNӫgPB|=^CwDvO$]xwx׊ _8? j͵#T>57:z'2N"Q#=跏 + pPS1,g [@h`_}1b)(YxJ< fLP(*s'DDZcs$U@Ĵ*ZIbBL6!^p<: e>uȦ0rh-5`dfZE2m3 CS\R'(;%a 6un"gްdUDVB{4nomjîӪ?~>|ğ#/vg?-# e~@dt:;o>:nmnB /qiWV{yBaJr#,u 6хBVրϣ_3rURm ]ZMnay,hPBzFl$Ew̉n)}u6=O$'4YW6%'8:>KY;0.Oi5##j{ 9RT5s+!I!BSzC[QŚ'OSRQYG8ʝF~·e]A@z19lw!\ HRH}Pf`gr .#yEqܫoVFk*X7yU1,k'$Q3*:὚GwD:'7/PAY/ IgukJ?OfՖY4FS*,=)q/SJ7Asv?m9Tŷv@}8ۘ٧'qzL.ҦYL][Ͼma\`PYDѴ6^δ@>h+(1,$D&|zh+m^F^ϥ $Ֆc}"d\Lb;m浖̅tfZE6b9M&\@"xc2orN70q<O;7oTAԣ:iW^{X:8%HX7*L=Jd߲I[zV).VES%(uկz6V{/D!Z=6k*{Rnr w.t#3̾t@4%)9 19Ěz +MDTGhaTꭳrpNk69Kwo2쥇$tr!ك4zߚVfM9mj+vZ?8B]J *?f.Gg:k]8@g&$=Tl]~o'(;3OIþЃYa1{m􍷮7`Q+!@88Ç&uB{fԩ4\֕h].wM(y>AfPsXɵ$u>v>u۰ݽՁ6 '?v%F할rq +T\v DL#= +d'~To;yD3ܕJ+dzhXT8w b\rwQԣL2qKZ'K0E1|kE:3Ị_䗺XP\#㈸~%$~#QĽ߀&majt"o<H/!t|K/cWBIAI1wi?JP~J0<>sahc83Oߍ̱3|mn$>=GWg>n 3}DTP%uqܫCޛL9X>`1I͜aR>Kb'38!i&n$ĝcsF +(HhYy6ELG?;q~q2 =iy _ ANu<[`/qf3H23( W\vMv4&1* j\oIgeBBˆW4 ͺ .ujfĔpD=`OgU>iqvNۙA7G\㺬cY9O6#7ٶu7;* #^6sO&a3ms)b6&[ҙ8E5'a l]hm.1NK(IUkܙwML1+"tN]A\8@i IP (i ɾ>6eĔRZ# F_Hߨl +u$T(FbܸD<Dn9L@t ƅKXqR8B(5s ]cWSHDJ~D" Um&hOy'gj]nwh鋛,%T ?}&,wX5&/Vs216F\ڸpxO#k~@d^h +F!ʭҡɝʽö.2"*)q[x}MǢ]r}^mp7NG@Vؔx\@"?:zW&԰ afĸ:x׶YglJ``e$1}j2ex _\L Na +Vx9q_θYVưN>AG`r5Xg-xvN> "PeU~TN +E8޼nsHwzR*~tay +)&z+stt @4v MTNb¶;⾺p|_д63.%971T)]2_qK2 ֈCESgwB? ]6fo_9'WC`F`rE`"rxEUMDrxrP4^ºMXз5I֞Aʫ9' j`X>2iVjc4$8`  pXl C`08 +Ģp t4LIdA /Cy9I&o2tp>]&u-# YO +=O{3?yr]U^LN(FC .>γ;rϋN[P7A7 KKE9Vk*gB4Cg2+))Z x:tOfǟƱ"˒>L}Dgk$BhUgoJ' |W,S}SR_ٕCә_1xa_ź㺠":.)0*߇OtC!$#55gSыPfu:q|^%DʷaWѱ箮=d-֪\L'QP|ꋘO5 O.*3>ĺqW% j%.2ok̞s{T䗘n(wKy;I۳ɭtAE=E=gx}ͼێ5g +|ͩTڗMÜe6VyŁM fr'Sm(4\DE<ξ΂G|Ӊ.)VnQupt 2|e8!}B9{_>q=1ѱ4aخY9dWh DD-R6Zg[c+ |?a~])?%] $3OýϱT}{P2Jpa)j^O~ gMHLߺ!~f(^jHgߝcE6tԋza<?mͶ^tkxwvUyCS $.~(balࠠk?ky><L׬9.k*EDƑ <:9k禙ߣžj[Ķ;<0=y }fB.^^9Z]")Y5j:$Zoe],jss:*$0o#;?+%:c^ m s.//h۲/?p7pլu4=ćlIYĶG؟AD43@i]}4_oa&8,>G[DoJY'ofep{(w9km}agbHJ7 +z~Z<:kia9Rse2~ّƟU oX{=;j?IIa6[K\ wqȋnA7ٿCBמuEM6)m/pېy㾩(>5ӛw!~4 /KڀvtCTqZX.~pS%D[j'亐Ne\}8kV 6 iVMU8p2>zI-!? @"s YwwSaFjuj[0 :˻7߈ȗdkX~JK׮c0|CX  YsIjJ)wґ|xt}5R_gVR$Y-6̡]؜XJ\k4(BƝ)LsﭲɦML7Gd>&7/uUk:PG9tB ?U4V‚ꐰtfG rzU3oyvFk /_7w0E"fQy@'7$%a.daF +x L0Yc,A[5Pۺr+|a~'p*+~_<=*,m!WYUx7^}beφ׆c]N(6ua?XhQty>/8 +z [(uYjn/=tc(..F?NoiTHȍ0- b\aLp݈[vNtv9}ᾳռ(F k5XR㍓qB)ك@Z»GЇ VFq\,V=*Crs`x<^A5`-/Vmɸg&Q*Pl_GEpdzFC 2Ki@~Ig'$[zH*7n݇: FY}/nELs庨;x=aዿyi}&lB4Oҝ/8qlKOvCkgͰ/;v;/& Z8]ds w#WBUPͪ5/N`07yi}Br3 pAYRBD5yMcDX{ {~qx+ƣQaɚhp]o1;&dWo$ 'ܚ#lq`͏*>Q/if5%׺OgMS#I7$Q/Ԟ (nVL3VLH˳'Ҹ'Ccge%oL"8vK]7Di𖎐+7Y [A5:>>_ʵ!PMrS~T@uCȌz^|9hE͕W%/, iفm7s+>Fݸҋ"Ίnp/Іr6g|L9. r6|i,YmÏ^N־V!m*9(ݪGr;rA#O >^./ eDY78SM ]VN%ډA4 toԑSC,] ,`rA>e$ yn 9ֆ4Qvݣ4[@C+u]cUy1s+RcXjUNskNCB@1T;7%O:F3J-k% s-޲"ŗy\в44-14ei +O@Tt+8(E%lY7?ߩh:4q2E /'3G@K#8"3+k w#'@M~Nߗ\¢;["c7tz2͋W͉wRӱw4ʀCT +_(l Hר2z?ije:v]UKq:,ϯ N+m{J'^ܛv>?X`Њ HH"3' OP猪fj[)!lwQ%6(wN +Dq#S[X2{h/"REZ +](Kj3ɩUŷ"f+1$'869KI<^m*dإ b/[״ZBOb Aa*o|D(-'37-X}겠X ;(,mĆ%bl8RG jVF6V1נCNw)rLɡ-hgz|g (K"`MQtLNeM8m0l1\g=`"CyCdA&RR3@NoYM;\# Di~\QWH{KvN5OmBni4CO^c2U {7e_>1FT7%Q0e.$f@%"l1퓟n~q hjdR\Fƭ;fOawG/zdWCͱᨆgd;b10\k?@8SjcPn\h5E p*W-C`i/G F9l|ւcY&5v 3[+Js-#whY(9>M# +14g#v 2H9 XdC6NN|k5xv(/ř}DH]@]DO՟rLGҍ4ڤTMmAS҆v +*KTB-ЕY#.*5$cs~pAJ9)%א6xA6^E>Ux^*"]bz{9d [U#5[C^ f oi#΂SyϕTgVX*H& K?hnY!}РL>Y+.n!RUO;6FLn:aLB!NNК731o7\t ۾$ēB?VHIm&N65w9Fp/,e.bIhq-(G<Mՠ`'\ݙ;#KD3/  +Uj^0 "QG-45 5o^CM>9f-Pt'UYxHTNJZGb>lA^oQL,y'( 2o%&"<$5Tvmq!Fx?F~ &Adl7;_PoX$)uv2IfOSZ= +j`O +& +¾-I,stio/-jK3F&c!V` le0ソtyUYKY%u9|[2j(: Tm'H*kl'+=L$p ni0}M6_h3{&kF RhL[ +B:QPLfWǤ]S uT +H$֒Uk~U܇ƒ!CE"KK~B5dN3pW/&/N󛚨6sO5aH|:/DLx'.cd6# J;5)A*bw|SW"kČbx%KmYoHVxh\ɦ2< PHjY\|iLW`YZUWd&A1 ΠpKyG+p!^D\񟁢: ,5kQB[`t \8Xj}>TgP#pGz$Վ!L\J1yRYY + ~JJTzI&FcV(@tKڮk0|3.ݿ*rҀ`_svY #|a4|҈ +dH[Jρ]scQ2l *u`)/e9u iXH)%!,WN<,Zl0 Md(@rG.Hln#Puh,ut+F4EVB:)\WRP_D/f&@(E P\(/M Y6Ս);D_ ;%2bu䞴:ys6m1?#364V[BD,nWHc .!\ZҮ)\~ppG*nEu@<)yf*M/rt։eCub!SlUxg{@(G1,LD/$b N>zQ,R\AF"kT[qY\{[TU8HΊU'A[ Dx50 (H%ؓ:'UZK:z<]#Be?jyj?0B]7 hy;2K2(l'efe&4,Gm'Ծ+pp)[I((IFu$b x1n`ʒV#)Sd.W_NF:iP: DXP\$LO7\l=YQX7OXA&, ŚjKq(I-^nuXdjRi/Y\l'y`4gsZLȢq_z:wkd)Y< +L]r,P Oo:a|Xndյ I8PJ_w[UMi33tњ;ptq Tb 4<:i(2A"伈>WYkbɼr +nPt2 vB,#Q@;fE䒛{7MwuHteHiL,"8f6>ܒE<S'[o2fmlr¾2ˢ%2\$NE: 0)[Y :Xk`TAS`.TH}A< +MVcQ.Du?̐cA{)x?k3@ȑ51,,]ia;Dbn")kAM,EYZL0XWr`x+TޫjܠYYX3p ܧ#($DJ.JQ=l*PAMz05PI ^+?iSKwfg2kY:3g9_cWt +˳Nzb/-MiQc/{[Nٖf^tKJ_Qާ}̑V-Ɓ D$R|Y cu^zFjmv:WNW w*ݱtb1ړNe>bJ$um>/j8c+Kپne-E{ϱǷߟrR+VO ˍs^qbW3>Ky^(ݯ3Qxc_'ƪJaXAߏg_uEmcJ;CaT&ژcRc%oWT)fpZmtכiSN%&D8cߟ9o?uTizٳU`,e2 i X0caǢ2 X:1PЏTCw3s՞>J] }j(umz5ղ J/_k@Z`^lmϘ?Dk Fe(`,eׯWf/ƨ̜/)f +2ڊvcLaTIa-))+OV{/=Fe9~<_T<;vMaWY/*sim+4OIK^" \+o (,Ce#wZ|0:;/8{_|g1mQ]xBZO?[%r.Px,<ǢXkߓOKqLp 4L #*XD3}4gӾ(+)n+W]n1@5V}x ݃;$ҿ 6cy<ux,ͤ۰hf + +~jlSo{O{WiwW޾oOo㧲^Ѷ^=:%F\/k?)O^liZ-bk7k;+S:b%.KM^N(6C(q*9)Uv4{߯*;to,˶alfw;S[^q~1*) _ʛ/kUO}0T($zlţq +N]OԱ\2Vz;Đ<zHe(dT(,ߋ[)T +UiW7]bB&L\1Z<_qFl%v/wy뜵Z)X*5*;{Nݴt}sOngy_o?ҏbڶiHu;WU^mY)6WL޶Jzś~j+zE{]RZ{RXW.m<֙1sΛ?gjJⴍB 3M9#:Fe+U]o)Z)MLlL+(J?en!cHIDVWb?(_#~eĦD+_K!+_ѩ&z~{Eks2>}R"*Lag{bT&GW9793. +OnN t^0e6<?=[深t,Uric}* 5_\Wj߳l{;gϱ %:y,4 `Tpj.2AZ +*:o_xd̍Yv5SJ[ 70LXfǙS:]:ie벣ջ1}V}uYe|lG4`) ;iń&P"D K%Ƈ(8J> +~GХ1!YXu,^ņ7hԨ q!}gc)Zx'9v58qv{t +@d\2?f+iyT <}:m#^<З2BIfE)v +uŅJ;yQ8c%.|Zӈ6ʺ #ӇFN\؅I|)"V6]X{qKu9ꏟ6@ȓi%@y^qts6KsWKJa*ǵZ92'WX[yAwT^Im{ UlH;Ur^$udE:Rlt +4),,/=:mi:/le+U?_lʸIJ)=L]1oLH5_ӣW>3n|4tJ~hLmW^Rk-5wvSIAeֿ_Ei[qYc)Jگ9eHk}JebgViR~"i}=<7ujrk枺<*m ԹxCbA, & })+~a&'a,Jh ":3Qr 0<@EŤ$AC!*0qFFEі$:~aDCuaaRYtB6h'aL4S‚ hcr4O. 5ӅƪPi < |&H(πULؔFAw|&H&[.2j;$j>\UUF9@0qy|Zb¯CjWDUUUCUU3pTUeb"6aYJT/ 2TUe*!1O `BAZUUEJh 6UU7"*$jVEXP@4j&l@A:h#[%4$8*hB _Ue@LCX>+͌<|ʢ@b'ӹTCTe݆H}zB}x>BA.f%G#qxG#v6&l.q KlLD9ιܰhq;H gme̹d]&lP"o,314 +-D]AmC=c˺OD:mcev۷ѽBu m-'yٷ .}.6dfyF8 PJ:66/in>:ME ~%꜋Vi )LQ%0>m$Su4δ CKu8BԩlX]BZ} \:mC]LޗX7>.͊>Lyqxq9&;4.xFR0>NFm }t q /K!J^@Kt\i,4g*eCZG>e < Pj<ci'[wwwwwwww;W_cww~=_iRlkM^VLq}뭓JVZY'f|8S썱ދk77l/ I=ގ{{nnw !J߅!Jgwb=mW>gv~Z챾iP44,k:D~NLeO}R.w;oi_@L%Mu ܺ^aG2nmDmF]@ #f=V ?t +tBJ O33}ZMNιh.#e-2B 3V:eipLL2ݸyQ O LB}fnO1}i_f 70~)3<?c } ,f΅sxZ-4}ѝsRۭ)ѳcШжQÄ4À %а ܸD |2ecUtނ*D3ay9f6`"i&6Qg*yD޷>kOnlaf*y +iƹh"$64cQgx90jƅ'spo3l㲸]?0D:;Qp.&-[Rx,ЦѸO֡ .y|Zq@&*8Cs.Bg lgf\ۭ煉:.{{:io3uRk~u}kmIg@([0)} -=?׿^緭M8wOܝսVwO>?|^ϴNzJis[iΜnk{-xozk+v|+Ղ^- &Wncj-wֶc-أqI@S$lS>VLg[SK{bwJ'Բ6c_~F|~._י3ߊ'/mk-شf3Ͷmo;N{==?[Kw'-]sۊo'^[vvǸkO~kDM\im;=JgLٲڸK߯tJt&(3u>eZa|< O?-q\1m& y JQ&?^%jI~Pwu]f|t +&O@I@/k'b6 E@ZmI'Mlil LIm(3Li :M6NIir$@PF%h.8Q6WbE"4'A'L\H?4}N ;Q6: ig2}&S3!H~euy=iD2qqiRDD~&K+x%[ҖLۧ +>1uHP"I:s&ⴐW +L A>FBG壁Đ$t;B@Y 2x)irVA9EYT a:7 JAB%#8ȀE}a>ću6$ +d ! 0.ġ H! u +3!= w; *Pi8=p 0"Hn9P?L :>0 (uhP6:  #UiA@Qt<J#1?8n +ǂm(5xIDRAF    + P8 &%4 7 f| c(t0¼ǂ|"gǁ Ѐ"B Y:: ZEƟ,M.d@<8% NEg1*"&H!&߆"s[h8`,E5d,p6U7j +-"*` HaT# 3E$T&:L D#и)A2aD`L gl00_.0)1!e +%2 M\6ټ.&RH( y/FE"goƁ"4|L25 ",bDp.2"H>Kwqd@X@,òbdD\D'Fp&"mJ2tB(X 0M@Pl2. ,JcL$Ma32xx 1<8L!H#7./qK$.6QSL**` _>!2x_| 8EZ O,G>谝 +V pl`ep8=@uAQLfS .H!IC&HA !ԠAĂ&\ڐ +ԢZĀV2%2ɴ܍遠f&jg,LoG F2ȁs^7(X/ۉ{_1:8icBEa&Fu4fESdu@xpPs`RD*3|Ш8e* +"`ZT΂D}HDžk"IH`%LE&kԏqI\jˤ3@L>%07HD@FN8.wx(u9 1J, kB0@8CFh> ha  l& #a8y" @AC &bÉ2H 'bdtDl `$c2 d "0.l4d* `p )13Y(ld:( J%%ʃ͖ERY"(5@$TpB)`NL Da@ȆBQFa$ +!R@ A4]YgC@!#3 H\6api LhJ @)VNLVHh bI۱,icuD"2X Z]ֈ©2B, *KnB D`@!8x6>*# `8*Hu + THF(yTH h2݁E\|A3l#;00eRq@ lXL@ThXdh +pH 8>h L?-Єcp`=B dp"<BdP񥏁x ˈD"AG0! ̀p  +)cp"I" FB6x(Uia z@#D1H8$``LSTCXNRU &Uy +*SHp||*ځGHeQ$@5T%#=*TC؄ja@F2FLVE%qAQ!| @0<`$c@aQ]KeQ!Q< +J!:p endstream endobj 13 0 obj <>stream +`+  Y!.RWmTJ&FC1 PI L,Tj +EU KBUU}8T$ UBUUuUU@ {*JCuP0,TUU*MTTUIEȠ** ՂDyG!#p}~و~~RTEMBC4@0HD2=M̀u^0T@X,qA1c12@[ACT#28ګ[W̞a̭(KYT9X'Ķ-vDanϰM;P܋3lƇ5[d%cxd"$eY0ip<"`K;ANI@+y~t5Kn02 Du[g`f9H 6ZB,aHG։$&BdTC6{]}-I xa!fh}IhRkh*R}->ߎygg7gxMWZ˟XrYwPQXҍ{% +L"p2RPӏIZS%-yJ@gJJT@3@*^Lt?wę#n1c7bzshP+9 W˹^iw3=Pt2$i^ Bt:lI3k5j\ wjXK/VMǽD( a>g7ՅA +mz,)Dj8xhz@"Z@5+F$K +l _I$gC XwM +pIM < j^b!1iXIܝeV@% +$y<| 'LG"["`w yۇTL# gp2( ΡJcĄiW^ ppMuw]Ѿ_y$>((E()iGH5i+IPQx`t#$.JH#t Fmoc1G8N%C1.hgJ_.Zehj[{ Nٓvd5p"Y\qȆ8ӏ9lfK"~̷ dP!% L0/5-}ڨ̣Df|^C`;af@7*WF/@8 ++`dʘ([f!v6 +*R%G Dg1p$%P87^U/֟&_P["A|CV(pG2伵R} =lX:I Ԏ)%Yv^F1JIJ'qӉbn)؇6 Z!>`! BTp 雈ot,|Xҽ$R#TraXvGMe;8)S:}..wvqzRt07}YOjޜzһeiTjZ9d  M#:rF@m69Ԯlaz{=&2iB ەycڷgm(%5!3YB;Aч7[YF?7n{pǦMvqP'y\eRwlfU\yt  +!Dnq>)8ȿ@>ߋ;7qO}㳫=2|m{;@"Lť3օJjLkKRh(N +bGO&GѢB.XO(Ce`}1M'$1p~7y&_ԙ `Jk,%1yJP +CiWc:F:Hzybs*DhF֞JwsY\ -֎_?OӤZ'$ orA3kQ]55 $,W޽))=:qחNY,e3J*wՐx>Eu8g .c;*K.icsWwNףPnBsIHLT5(4>|)^E(i 酏3cAKww3SV"3@[:[]%R;4Y|+hx%r(!Cw_h<<~ kb`:8:dUޥ +'3%g8C)NY%ib000SyU <3FH̄;ku΅|mWH #ֹcWQs?~~g41$@@ HG0g/CfAaEe15(f:oߘzg,8H)` 4 +RU:#ij}2ץg"A5blCz;׵߿4U$$5"¦ 7'yq9Nݼ&2,Lo2Sj +̦|VvT4i)jpvߝ>*eد18e| 9=]ؒ42M9pDhILJ@6Yi_g 7bcIy?M|qx07?5Ҥu~/K}:.h0qծW2p1;i"sـ5%f?VkW$XTW LEv !!`={9ۼ--;o(*?Ƨ>;` u8^Sbc6/9n7亊5T T'=P G :FViQD @}k_c] z={;,Ŗ0ň4̋OaDҡ:_ +R姹wag"W4STIEv{yqrΧ(SQܷQ 55ИI|wԻ_<ٶX2_W +&nXįdj^6%8y*|4GWCY8'!Nv-cPh)Pn_1}>e*|,}qӭ*]m]8>"?2YccWg(i67RLdT&'@S--I]GD\Wzn8U$$rލ # #;"I}m8[ +8QE*J 'z̅1cKPpDIƖFd@zQ=>j4B| 3"|N@A!sRW @#`8YIO^:6f%uH(g[F'**_o=BOF(eܞVυZ+9!$Y#RikRS fTi~h"ذr>3X%us֪U!ThaQ C9'/m1oj5e@W`1r@E-S*]ـWQи0q\fj( S* +++2C +]B7@XAE#Xe`)Yr,2,K$Q2Df['2Zzsh2fPo)X{3>+>3WA2ϲo +vGE"Jd8xSzK JbS-j0t,ЦgIZY~OIDד-,5e +9RMRNC >{&e[p6_XN3Έ[n/Uߊ73w~PbSER?byj@۷ +гaЊ(wavB2$Y%pQ2WyLw$ =эN15Ցzjb{"_>O|`[||-Uفۦ9q;A̶ =& KT!0bkm 2:BwLٜ. +:62B{F`\pbo՘tΘۧf +!QIh,Pj2kSCcC+/i⃗(ŷ2H#etnP# &7_Jc(KCxUInXi]NK2d,v-]hLOအ\}sQowjGeXEՌJ"ma5umUahG8b=D$wJ@}=%  ᝄ}Js݉.@We]]MѶ_()@ʘ+ BXu&e>Y6DkVK*|"rf2D+UBCђQ9OD9C4PΙ~QDY tgATD֓–,)DYڅ\dF*07`o1L"c7wl?$eVO$I3@)OQoyl?ny'b>UFGrJ2~IPD x Rڒ*FJ̽X <[2(RIlJW^.$Mj&!xmDQJN>d ﴐlLGzyJs8۽LnSڔVˁ}.K$=5kL EKa|w(h4y/> J+܉ ^PdԔH /> ȸhP/mىSXS8,V pB84L&E 4a, L̑:Gו`Ĥ891˶e/;0Eh*ޏ&=$#6*SQ'1,KiO5>+ǰǨ:+`S$(Z$)!Fuh(jE$n6j?؟=oiG[YuX"&%_{Ml<9Ln5/S`;\GGY0-^JtxmCnܤcb1X9K;K!9+CYOK!-֍! T bq-^o~]9u,50r0a 8L{e`cT|5<4;kRwZb~) @fBkEd9u2qh&E6vc 훨 =ׇlpbeuIK>IZ9gU(Fx `8zxtf͜pHGao"|Н,$}lZcwV|AqqJ׿_Ơ13*Vr,M!ˉݕ ֵJ fnҬ=iqT#c [2t={COp'#ԏQĵz0R"l{ +~G>msIJAGv&. ~R&[f ;pv䇆M*ვ (IZ&[S$+~ltѐ`U2eOa l2yH!+7򃐙!ҕR +.XD7Kމi}ZEDWlɊQGB^BTccԩl;j!M``wdHiÚZ-0G~LF0~X}5dF1z¦}p1kcXʦ6{aSbx?˖^n3>6p@/3#kQP^iŃJt@7؁ڛ0S/cizPv;{uF޹Ǻ,s/rcs8)*}W/)dnXo֨dbYmʞM>*ޯ=UAoHt\%?G ,e&&]TP |aoCBZ.ڪ lr,V휢?U䌔8hkҗRv&K;j!d?P:d(|`[B;6 +D: k< +lbR#02šu8_ OD$N2"FL*0!Ɩm%#f={Z0Q(ק>Hy3.O̧kwP>hpd<l639(L +uA]tOH`FG.30ʼssAQ R:X[=Q{!EsE:LpQA3Z!KJ6NŲ +BnĐ[Zp r}{$ Jdup $p#)ry0&W_k_|S=Iw'ݨ(فD~ԵU(rݛQM[J~؞ gMJN4"tn4$s7͋z[cN$έ|.z̳,H)W +A.JUԃ@A=` lH +[\eF|S"̌]aYo•53g֡PŌ3Dbћ4OUjLA:~0R%MXDqEk$E*QNdbgD73-p&v. A9MV \BiϾ+s>ҙ!G~Apl#pXU*")L{Y1DQ83 l)^G0_"j$r¨~saO&/-Ҍ|0+؉sAcwA 馁 +ia"%}Ez##_Na u%MAU_Y"Xp8MnV D"֥%ÙzZ5KpbV]d0Sn1la~C Վ +H`ăъ/ 3|k/ہQK/k~~F|74ʣ!R,2B7@!v֑_*[j_/,2VN%kd)0F?ء5o6}W`ڣ<'wpX4c}A(ǡ}9#wbqa5^/%-E4?˩gYTdKguf +蟔^@`2 ɯ@t—;BzJJ"ٺ4FZ63Pg?ڕCs5gUJ%fWw{i'5iJI.`/HKJK^ +Q@n"vpgHMjVĀXAZ z@ 񂈕HfOd9%QI@1MiG1 jS[ʌ!w. 1{zxH+ty%AA>u!Ndy. w hp <*w]P+Av|`> >굗Ƥ;1>gBQJѴ MKt:0#mIJHgZ]IJ9y";z#]bbAhM&qH+˥ + 1|U&6L-v?1Վuѥ$uNH);>$ +G(Tm%CqG츬oEw$bi.% D$u"n pj_[8MHf|S$PZc\> 1^L a] ?; zXVW镾EP@3 bYTVQ1ު.;drh QKp ' 2j~Q0<-kzZDI 4!ӆ\>оv3.JPLYu?'e-|x}z^m[=Y7P?+A_YQ/f잚 0c=bkwS5 Hi"elHmޫR_u߀qwxZ#`#a>8,*g "Q:Kd 7(Y_I8doʻ\n/FVQYqe,HC@O\v`kztӴP`>lHPpL8 Ci)1[-pV`,:gjZ:Pr^ڣwɑ)5I_+XPG.@oCZzp_Az_L QU o@Nh߷/DͩoCQquXHWߙ984 K[AEӲktPpqD7@aJCt^7184u@ѶUNj_"Lؤ@>B?bB% D'PjЄ">;oJҘ_͸[Ymgwzpda+< &kq4ho';EgRt |5J92Ъ9&: 2E"ug?Mp RY 'j- MZrxNzt*ieg]e] zL7!LEvjC?rZ*O 2I G\G/Hn}T@Pk$kb&N TV8asdTlAȆN+|DzcB,U=PtP^,񠥥X%~MQD?1%װ糁 +,*C5Pa!Yu܎h}iś/thY"C\2 -HowZ@+*%N;`J ?͋mWWT2Al_3ER-ZVit>CD \tU,+ή=^>ZV[܊`\z%B`. uzYEkk^s1Q/K*XfO6r8]f_0'jC_4lsE5`uƞvCһ8mH[ A+%v ߛf?1%qJ‘|l[!Ŋ3St)ELTf,8=h@yP'W:@jbPǍ@ +B_gN]nYO;SE#Z&F~l*sֺI Afx #flBT6E7L"I~)uSjDJzZ'jɇqTǪ@$ֱIm1K8ClKg3Y]@8 Q3+2hT̈́\w؟Рr-qЍ(X\{CЕ+x.c8l*!KgUo#@'z2 9fba5O1g; _X1ňI@ZyR :ώfT}ksZ,X#*N2J4 &BHIU H%;~!`*9=@vghU7VM"ZAKC(xRU]8}ՙ7\BḨʑڵzu5(YT!l;$H>=!/ui=oH +ӦF-P"wUt' L7p?i#rm`bfIUػJ08 9^DWۘCŐ+Q~LsiQR?9 葪/ܯ5F =MVIۂ{/X6 +^ Y0t)Rl|E>&ǔy'CK(!'q'I` +r@B?H`qD3ᰓsaIY iw6\{(jm׷技U='`"MAɆ!ƝI 67^E0C|®3oosmYHM Bz3qW&uZӞ9IYyk(KՎA@u-2 Pt.rh3RRuLpW MRW`n%&CP̛/U. +]Q"V?!b.qphRZ?k M- B92anʸ\-œ$9򞒧?&|'r"Y& KIuCim㟪(slK)mL~R⇧i{Ժ]mӭYzkmҏVz65snD\-~:շEnD %7sQC5 ᑛk!@k8ؼ; zsYc'w$,} +{Y[izo?ig9ĢVNWE}ĀZB+rJ$QC0i l9S]ҿS=yZ{6yrIvIi',SI!w?eVa4 +󩖠=\=ڄ )k|VT%uGB^%mDQ4qu(k#:̛uj7Ul}((.7:L C}n7|ka%HNDĬhsReM&aUB j֖kr4!#]i4BI#M1%KԲ^0,5_,8k6{^ҍbaxBv[txȲFv%f7T$7y`xoMTjCG=5DC0<^8L/Px @ L$̪BqKIt KmnH(nh7jy%5G]f}I |y79$&DhA ?D.!fЕm^5ي(@ p6Ud[nY:(?-ZOsSI;_*幚+ૠbU$&UUtjZd:MLJ|H|s+ 끫V8j fF\;&, ${\'#@RDiA:-#A ]bQ9:mPd30#UŊ'1KrMTLIo-{fTsG`#؛G0my?qמJ +{c)2@j$o" &@j#~E79? ny]YSIjml/Gg4Vd(AQnaˌ_`ϝdn<,\ 4/gRW~!ǷLO(4 +>1 ++UwM=MɈb_­*MV%ϴ*¤E=DWүEOMvunqpȥN\t"2g%9#TqJ7=7TrCIӠ[x5KACY3QL13x2w!Sb2]!80T_ /+(. ̸sB{+/?셈 !У(~KyN ["riMrt=;QH +$or|TČcebiEsEuKSt܀a;?UH<יRIM{l5|R5!%΁]T{ zm+~- +aa'l߻A2ԸЌhO ~B溡ÔcƆVTĮkF lpCwe_Q =;2YF0z!.b TڇcRG  _]^{"( /},5;f{9~زƭ¨T4X!HmW q7q #A}9.LZB@28g`GZ\a6'#1*Doy?b f3Mba0MllEZ!ڈjңFt OG|dM#*u|bVaI7U(А2v@.zt))ɛPF45[j`C|ˏjyG` ,{KOdvAe7` P^Xe=]s >j@g!̰zB:X7ÓUFV +4.i!D <%5>,`]Chr<]FoE.ErʹQ!q%Ѩ|Z;ae;8K{&##Aw`vg"0pC"VBЂeqrVs ެ*I p}e@P@P! ];;k ZEE<6rZӂyVO9a-ZG 紣\䉋@3mD5+T9$pLL5Ɂ䘑=0lNl70"eL; 5i:%BN+ه[pf=9&ձI# ,y@Tg 6fۤ|,56>Cb +\ |Pf42;r\ y hlrJk#dhR e$rY<7Gھ\UsHFz2 +_%PaxK/A8jǁ_wFeŁ2+lH"QGq&l2CrH"kv 2M9*~=kve\X2 ,C?'δ油l@ti9޽]W(e~w3 DJE\%u ӈtᘆWH,4iD"BN_:P˸!^Go|4Tjix=L{;LEdBUyGH57ڨ}{= 7"P@P<j#P5-s N53: X MA5}$zwMDo %#ޭNe)WvOQQI[D}c1^-@PQoLe3#C;tlq}lhXnA.\-ڕTی$Lc#Vƶ+7؎nx]TfO*S\Gx-؝}Zv\;ѻ)X zӐ+SUy(XE3bbL[GrH1!pz )k܎ݛ0;T'\`]:V ٥X3\TX\ރ٬7Aי+ū*űM#`B4"Iax=0Sì $ چanuN+Y '*z^z bT׵Tc̴\,и8Vf7Y@>1VjbsE߯FiD9^>KgD00dSϐ1pΖ]sQY"KBF pйN]yt\[Hޠѧ:X37F@ZH gffleZCm0{/(P/[)T'6ի (XK +W!iѻUp:[N":e%PΙ8Hgڰӟ"y-"kb%ب:oC!*DJ>%bf-v3pb`yfjhÞCrГBPm%:nOHZ!-z~? &x&ϧ +hihpC$c:0ËX$]^^f`@Grz#0ddg{)7),d&d'7 rXAafzt3N4{`yZ7 i4FmeDGǞt<0I6±9$ hM"PpfzO*-<^Y>p +R}P,:Oϣz:y9{a5-\tA%݂s-c88z҈p+@@%$xOuD<2k>q FVX2G\U1)}Vk[3 XY$ ĎJlJX[^o c'u6:҈v7ɱx,ȕ(ȩVCH@No 3Iz#;|Ԅ~.R9yJEsgtHCj$կPWIzq$ \(Yܤ,\#GbZ%X}jMXFf ,lSF"?}79^N,cH:"'P4Wa"7KL6rG9i~, R ULZXcz4.d x-z3|P9ttTS2+/޿z43f%I9$'!{6ݣi16w{(4jc[tJ$ Z^ +|y~ ` T/a"A@Hn-K"'mriY9?ib +=mFf"')K"W * '* BEs43 +w F @#Uz~+Ç`ϔl"UOl>s+:خaQwq\-C^qT}-KŦreWuD46$(JdçhD.Gpl@0S= +ZIgkbhEa!1bף23G˫yL#'f[M}`P+8\@1 yU#ُȇ>$WW}ͬkZ].B9o kH,iO-#C3TF.:d)Q[ +H ^%K:\eW '7lakDH6e2c-L%gq~㌸I&ߑq#kv{bsqQEH`9!N( UMۈtA8ؐfi %)*6%P"bl64]QJo7)Z+[ (΄}+S"&EA!Mo7)]X;`Qmlp߱RٔT1-CXpm8VH?+͐+P!Ngs8.e#sPVrQq+.il20~߿FPW7[XUBiK.:O6w/&۸F;yLi.kLUBRU`[7S62#lBzZ.˜h 3rd{BAg@eAN7džи8kSlI$U] QW3(Dsg%qY +Qbs*>Ccڮ +F~4{7\oo +&9v}>%J:m4( vb.*+m,I;}(>nz]H(F7,z3޺&E67Ko6 :@>I )@8,]"Rw$`,K86L-G[b`wTc4rUR +-$RYm 1%-%E8H:qTR6EͷG.3 5Y h}\To A_MfA)B͢,ٮIƹB]o=0̳b.aG8EUmw{6(۱th[B>̝4hf +[TMkC$"U]ޟ +GĔO¬^JdaFEI)PljX;&.Z?fZ)[ zӛxz7N Z.ʵԛG볚2Poˤ"SJYh1I>Y|UJlg[|"z,RyVM +B#IO ,YX&RN)8rM#4&% ̾iއɳ +ˇcAz1P,K6(0T&i*SV:4,R<&:OI)> @Q z+>Q5aP[s;$Ùi)Z?0 +ZX~e֌8)fd=/kL&]%=|T&].K"穼Hm@DHnTC[}$eIB# D.DN$evt|}{Q)i-e餗]lni<$g i|?/ *;+KLr,-&1ZSTI)WT/0^~ f3/RydLhtlH_C_5zڒ\c8ns? E dN[o iȲl,X)zꢸ(444WI4"1iȦ]^o 1+?*<f@5Co (\T|~S<7,jg sd +WĢP&sYwL:(Ӯ ܅l ܅상هM"]!J2=-@@>&$6XB#$?Gc,`WS vr@6H'NT[j<%s-JY2 JzyLS$j/0%rx9\x _nL)%?[Exk*o''P2?wBAA} H؁:^fzBb4\Qz' P~]gFZ +0 "n};@KGG6Cޚ0n&>Ϭ;QICIdeYM+Š+δqpSTs_crܐ@}4.r(u9;A ! j_B6b6R.4~#dZb `FEI!^op{ s)qa*.g3QR񐘘hYۋd[B;*Bף3iC\ CE"/89F2_^:s|.|82CAAqpNߧ\L_šMDr 3)>cb4꨾;^ҵT!8! K̲)">hDe-(}^DHP"=r%&Ws|?746w5HI_7 4c✬p(%Vv(q٬죏@#_'#I"[~Pe,J$R8xؔ?jkx5R7[[o+՛RRvA=XA9Ӛۢ6҈._,yAC- +o=l\)=)o1jw A0 =,al tD:.!KGMo:uM|$.et͘$W-94޼KF<Þjd*T@brXZ}tש>"+3(EPiY.C^ ßTv30g(8Ľ )/Hmt3@6PGENڿ/GT덖`CZLI+#b1U߂X}HC=Pd(i +bZ&.N*B`@-kLY* ĜJ9a!u]N&؜=^-e%`r3@TrpfaX&\..x^%;rvGôFfHYd כ?>᠜/?hTϒGo|%.,+uaTbvdTJ JsT^r<X}HrK}F&ۈ>VrJgAUe$=f|E Pg.F4>,&Ef^Xu^5t;TN1 ٙUX 10Fm>S£0oۍLel~?@u=LD/,D'+8L"e`gMdI3jbx^_o^b"RoJvXTq@YX6<{}798u@_lf6_hDVF + J$1VyP4zs/9،9˅qiXlVVj5E kSVOlF:–s;DȆ*JD>{C}s^|m/%V?]J )$ǿm,.D0#V +uYC_3IAqEDBZF%@v*V:B>0-9ZEB"uTxʾȆ?0)͛a.F&3xF\8+%VieƤ̣g-K%6A7 alI\^ =B]!eȅ=2Ì2Jik+1. F׶kNƉ)WjweA@ ؕN*KutY{l2_?BX̽IGl0.)(IV#G~FSr;rP-t9E8JMuy8uNjDGPQ& ?0_6YI|,8s85D!p@h^J/Tn!IT=HSY8L5cαX +f{ +`M[;ϔRH~xV0>s.,6DLI#0eGVVdPkJk# &}Jh:@*6A!oW\o65Hy `1tz[U/o-I߱}t40m;ѠYI%dsC km^ p|9*M?n~%F>Z: {W0|)sؤxBˇD0|٧+*"i톴2WLb<AFV&BC `U kۅ&o;5jPI[{zMPd$:`O1VPߟCJ;mLr +qѹxꃅIJ%d)1!`dG؈/:&To+$&¤A^?vZfҗ.7>ld$Bd3w}?r@RG=)ck͝xVXW-Y}7µ Q⃵Sq:!yWb%%011qEDHJ6+C7]#'0@$^FRY +3sO.Qh0w$bJ7ʗ3@>@B]@شO.,G7.9IJ7 LJ^}@$A$PIJW .WSGHJTe#[GIWlmc&TPRQIbͽ{odޓ)i/BJ#V,6M+ dƅq߷S0/Eŕ +T/D4u|.STlfZ)^ڀH+Pt5r%W%6AKʱV>raIyJSJ╈-\RClbT"eTo42 Ƕ!zQo5H 3E]oE]o-708_ß17BIߒeMՕyKIIeRSMqPRBԩA6z3} ^>Rq4O>QG` S߮PWSo?BJ6W1& +u+bGT,Cƈj€Z +y5 6nD߳i@ .8_7Ȧ2d_NR'ߵdsRx]PgQmB{-C  USdFizӝG<af)15]8DIUw+}g L 1hz;!۠#1қ񝗴zk jJweB^4:0r()#O}": Ƹ=LC~c2zI" )wAH 2;roz#e5*zd,);a/A!%Yl!Gzh)/M JE+{RgRT!5Iɦ>eB1GeAz+LcFԿ3#_}GQcbbecu2SRL8Wf;Δmۨ()i.ciyI ]'5]}_ml䜴$^{C ("4ST};{C1}\NŦe@p \G%ANo3q"$v'TB}G)PTB)3)%>lZ3Ü=vd(w`Y)dӂ%H\—kNE8!DjO`gStej:.=[mlC'JevF򛾗ĻHL):ӞTzڬ zOd M7#Y {98W&dvQTwʜaՔrڈYXQҐYKL$١v< +aO/ 7~H7}y"b|0 ^z61̮^Г0GmÌfnCX/.:(Ca"ՕAshUbj/EÖ^$BĤVJ:TVʕ;شzH zt'lI\DZ)4#lֺxd+E'Fzk0`*]$hMo\4ZSv#Qt,Xez%mۡ(2w9aRb{ZTa~u#E.*B< +C:x9q .G^L de 3@w1(Nꈄ쟀fEQRD]nB[v 0ڊ 7ll? vzC dyY\+s\'BQ!waS gaJ]gG,WѲQ>1<1qL+Os=@[c$rJ3cpcr|Vt.n`vPQ;Bo&($Ą"g lY>PԵпcMʂ^aO+.R1 )$R))g +~9ˏe>W$ QϜD*3ju"quVe}&,$߃"*i+V>rϕ`O'Ȇ2CjlvD/4xG75&iK#B yeeBV!bY0FP,H56r X*@QABOI8 5΋3݌HND& ƈN@ hn7gXY-;o p`UɃVIi%ת̇x 'BLRt&B9ሬ @EF{@dDHYMMxA J3NwՕ"Aޢi#4*)-aFZI58 (3rΤ*ވN؞PklLY@S$ +@C |Dj 6 ~bcuݝ7P #^xva7r%=.3鎍?a]vR9$`xV= *<-'rJQ&p32$%f_~E19D, uH%FY/eѧZ;ZtfL&W}17:-y%ѭe-mdQ@^und\:~vj W7\{%٪XY ȁς@;ܾ5$po܀E[߲f@LVWIēBӁC@9:CuM76rYEM6/xwBQQk&>QǓ_Vg,ԏDyi]UW[ET!5 g!$fL1ݍQKe}nc+ piS<-d? }\3=\hq,+ `=[[K=hQIwAS*<`ߨ5Giq!# HsFnt-5iMIeFp*']G4<9q^Ow'phE_~+F4'j8?-zS DH 'UEEYFʖҢVLP4Cb +C$*#A#X\|nQ;ז?wgLǘR;l2dUQS2dCآ)hhe%Z%fچ +шgFYCCUݦ8TႨxs8t6QJ;4h@@lG 8B +(B1d3AW]q ۑedC;D'Mr9u^<9xDu~T̡C=Asa[{޳wz%Ρ/ڊѡ,d(¡1/!zq䞆[p&}pxǽaQG@4rf*۩s .M +5u2 G&wJW4UB(*31T!nmdU7:8B2sT $tFNya` 0Ojp1 iMf @4mrDЊ4 l2|l9c߶ԢCp&Җ8O6 "܉G\ jIR}seLAu XGT@QX \zp\r0$ɲ|حmn;?ܪ:M|]y8yE NѩX>;΁/F@t W/ +B.e"\~жK&wFG +5%"R#_O'uyȺe Tn `U׿_xqd_?9˶7U1nUI[(/QHu]SCI$B]ΘAS^-A"V%OhZ$udw8 r?|Tt 5Ev@gE>X*&Z >>:2_|Z>ʻqR@*JwyI޽F?F%K2i\ޘ01n/F2>2.Y +]@k\ l/Ϸ_MNi< ćow;ʺox oP3ifMj&[VotŐ&b +P#Ģ*A&_L#c23 +b#8lz~@0-j9I ;Շ~k6Ll FK"G%(s+MM V\ncXbWn.U/%@ٸ%Or.2S.+hpK#,FŘeтy@,Ǵ< 3ji1G ,R&.1&v\R"XRlEK5e- +-w qOQdXz%OQls7GPX Z-Ο$xzBDĴ.o|kE?{xx*Doq;E1Vo݈͠+#"(cdOXlNJLD2#Whr+|s #??ِu \46,)aXbQ%aMb9. +܏,OQbtJ/4n'xAzjaGu6'|5ZSo9hP2M !qk5Cb ,\gk2ZN{C>GXBz@~(o6r=!i `a☵0ʞ!4& +4/iFQ*l߾;:7:0 +$sD{UI]wJ$#KE߈lydj?M4?o cI#&D~;E*3ԽcJ6Y#9nÒEs+I]dm2D ڡѴGF.W~mB[]ˊX9 +drK#۔#jN53M\GD}GRb3`x Š^ Lm|TzL _3;d*qi@u밴Ndb~MJ<@g഻ b7ڰ+ {.lF ?쁑iGwZ@r-fո߀C zAQ=]pzeWд4|ϗ,+GN`΢+a0[ۻV}99(@C_% qM [:9f`P3kB̆SbAmot8oK^#ïC;R-BHgUK!VgS0:ÿ{}\Qk23[SvPo*>l[d xBE{p;&UB\RT`eurGFĊu)T۲*)Vm@R´WoRPD&^ʥ)Aݏalcb6Zb+0h!kpw{8LTepL,țA FE|˷I} c! ҺNkIn'Q1[D!6 +גiA"#!h7Q" 2ws5h(ND87ROpR/;&09e^j];cDHB#]SN[H+?}{gK^$Ե C:{ 1#ܵk YmcÁiU6а ]ޕLŖp Wx +*շh5ď˒[I멏Zi Xkݙz1}@zRҶ*qm̌'H͌Á> IA-ZYx< שj2px@.ekk䊪=mcYRq#{irHK!1FcH=enY2X +,XkdvvF̾]Lg,[Sx`wp& 7n%iM@5&=Lko|UDKցIe[o$ $*`[>q< ^Z>٪}R=ۏgTc1hF|`F<`raz8%8g\/z(I@u 6lhnI y3U|q޺4N맔7)wbD +"Au;IU&;6R,dD|ɋ8p`qT+e(rW%hE.j Z=薘/^<Ӯ0$ ++dpfU:8V(<ƒXBx,P߅ +-L&`BIrIHq"e]^R9=ҰSCJ^XfSpM{ e7'7glZ`ˆ eJ*2XTuؙweJ2W̸j 9\J߅| ͹WGkWƩ܉<4<9dӞ>G9 o8o(YyEqD@ޝ+jtL &M~ OS= I m.;U݃{(GEuS+@<)'ryyO1][B$^<\NA" ]GlTW"uh-Cʘ$^ *6?qycMY7 +CWM_Ͼ0N;Kr +ړ:2h'rݙwP]3t:RΠC4'O}i B)$kn` w(eWnHD,$tFTEhw.9/9SA,>.ر86\^ɥ siO@kIg:@ m$1#KQ͓bDr/Dnasa% PwvT., ]w>N4[*UimEK#VB*piӊ>~,q>IR*d@@1LFP3@ULJIǨyܤ!'}0ټ*i2R~o߾`Od272TxgMg[[)F2#S+]o|i~ܚ{ٯ?oiᑌ+޻2D* k32^&Ύ3co/:"b{!`+:ڦ$Il4v̳3؆ºl]Y9[w=%zϵf[n]&K͚VdOx2Oj`plzhk#?($ wV5=BxXG,,{n^yGфޑcYpMGPZŢ8Bhkf4O:i9QzUC?\>xt%/$? n AIODexkmO?ߌt݈K|c`nDcMN=/a2qP8f9!$Oh[ FqiAuTsm&:?ɓ7fut$ )HMJ,^2dp٨w$QFdfN&)ZPd+;. MVln)IЩ L{ey=jEx7zh7yW{u~a涎EYmrz`+}m Wd !MEnV-yP*~rNK%)dX&Z,!͉6< vy CҘ,\mh5gGmY8@U2Ƶ_E*b`'(i4cclKKڑQ~}ڮDFty v[<ք4kkRFkz81@>Fk&A1fqhųĻL Nj2ِ3B/ H9pY֖MX מ? NϮfV'?[6Aѹ`K:sظq*(Drxh].v!X +-*+U'{2CbYP1(eSdah!l-˕Wm+KB|e\8HxHOy|C$19|Tʣ0LLd.ȸ,wuL۸MJ0 Es'w[dW]ǪQ?Um4誓5/50%$Zb]P}d}u5rMZJQ3O+w+Ҹhضw ;UZFPLDsws8RլhH͟⊣5+3-R8 B;|A߭ghIЊ+^0̻33t5&cah2?Dɛ J̭$'`s +KKfAE\21&2{Tߴg>SśЯfaIn>4̱v{"dӍN[󾾔zd T$0ҌfGi:5S&kh0Ls DI㮯`KЊ'яNi@%p܊A % zi6|hg )30%qZ+/̌PZ t:9u]9 SD=3X%GJZYvY:H~?cU:˳UܐhD˹w2!%/ :MeiJ㌔ަnf\cV-.[ !:ڎRJJv,5@/$id + +dD%YMq0ח@5#g,!Θgi#73Ę#4HSq_[1M{BĿSc'33QxNb/}Ka2K6Spw^M$b`k3Ԍ4`Wd8x6'OSQK$/! xEU+#UoCIP"R3Ɩݿ`ސɤm> =wFlF8DFfƁ1Рa'aŖ5Q͋e8#Ku>ג3R4K6r#%R;"e..r{"'Fob3HcJ o~;C((4w{BNyp`7jΰhf( qfX^"+qL+j +Qhgxfh-]P9\]35$J3n.dgry$HWeKldߗd!Z D_.I}/ΑBsڀh(i'x"Exsi8t XCRFn 2QP\Dsr KX1zTvK}B=_ՉCltdR76zL\Ms{J$81_@qՁ.9_3 *YrE}O"˳ b:Ǣ rY Ljp%`OFLZ!sCz7Uo|=p֪v `-5t84V}Jtk$e| +N/Q`؋mlzH[pPpB +*r͌Co-^T_e vM2P%YWYE!g:@= sܶט#m6(<2)07K >6[IT#KF2f(Gm8緦NfuaV.ZQ5 ,dkJu.aINOn=, |XEqd#Vڊ;Ų\;JڊXW1TygK'H"*|ASB/$A<S=3cBO&8X@we QRy6qIsߣ?~a 8(k"ėq .KiTb>) +08e!8/UF6Cz%t"n_<펗*ƯP˳jMH YbxTg~.cR9aRAHDTƓ޾ WUwc[z3$Յ N qhq\gX%gd#T ^Dc֒Y̤irZE +B]=>Cx3bcZ9r wɰ$k-װMJM1;l§n_V=_;ݤhm`&Kw Cw-e"h- Xث :TTT"]Frv:<=޼bs;$ BMhPؽ@wǝ.a +$ՒL!JIg(OW"efCa[f 2^>s D^9g#xRn!4(z~~xjBBy' tkC̽7Y z!|%qɧɇa8 b$ ;ؕ7T1j_U)hZF/$aVtZbIBB~H6Ok?62A.JՕdeP+ԏyR||ss`kCw~CÄzf!Vս),w ٹFTu>CrTD* n{OqþIJa^_}'UsPt$l˹y p=첓Z^k@b/ p=9!݀D6D-U,T'?1W}W7$mrUʁ(cn64.w|;p YZ"~'aiQKg$=Ǟ? bF-a~/Cscih+YƎi9B3|{afqR k"ꈖ Im< YId,06$SSkFUt䧒Pz ÿ\!|*V=5-'fgn7|]`VW#!mhNK^Q%3IT,)F`(n]dɏ353E'yVb4QQ;{,}K/D*&pt<q)#TZ2֎np3zH.o4AfMiXY#:y"yʁXȠ b~ټ̂Pw߽9&3"V#\FnD7s+FN;b/&)$ͅy孛C)EVSv^Pl&!ky}.N̛EБCrHAe2fx!X 22ZN\Lqqz/ 7ma/wQ$r95og`ա3EyHkO~}A:uEMU[uݥaxA^P%xz gd% IhaQ\pCn~/!t}zL&]ݩjrm}+XW웝cr+A$n.qQr&]2kq1]*,.0]7DWpV Lʙ+3(BcTXn<y Q{K*h`bN! +pvBeLdRkhb3q[vX)~0( geal-ot:hcD+>c'2 +I l+D6FoyV'BG*YaZ2X׀E̥PNCD&!u5/_PcR_5[K#CQ(P=epMyʡ8tSms}xWC wevڕ] e,-D8VG s $ğ#B0KΦ#ϓUϒ"^o6{rK WѩI|(~d9 !H,cnW3#um+V߭3 gX?z{1E0G|g45WNZߨLoƘ3T ky\0x7Y]υ -}ݕvTNLOxn9dm]w0 v= (jwV`K0Aufgf"zi<wzM5I!#yoF&@~ UHWnpM" d9f{ˀXAL<¹HתHNR dYV&@'4أn5]>o=\opauN["zUtַc vEOżr[1~{.Bw"Z&V(z^*Uem l9=`=JB]\+xN=A7KTњyKSځ##KS+ /[r=/svׄZӢlˑ^{)8N.4۟-V+\_K*NW@E6+B& $rA:} _'p/"Zg@YkRzFq|#~N7㈟}حI.Ϋ ?lb[Xd]1>xhXd6 h\mĢ׬ǃvdV<̲ʊSl5Ό"1Z*&n_D"E'҉JW`ffgܼ#?U#bl6&7RBb(VB`R]Hv N +PqSU#XMM"ڽ3G<l.zaR\S +!rvk;s[j-Rc{Wj`:^%}w&j'QvoBsj*\^oab+_f&)*fޭ~])?ɒЬU+.'Yvd8)#`x 2.JYP5͕wuRujYYkk7@/%"{I'^F+n\LjwAdl4)}}{]a4W݂h$Uxwd~|K4뜦8$U AU#t[A?C&lOMOvp_=upJs5:Sq`Le#֨eKJšr,Xե8ni4J^n?^I>gDjU!CKa~0\ S>h7@8fqSZ!hA+YP X-7&ԝoV^nu$Y'dgH HYqh|%D7"c dgZQ8XI5?{\̫GFH v%^ KY p_ds\n_neLғx)iB;?@-I]֋'ߥP3W` Z.dU3غY[q8SU\TnbI4kZnt30_ã苛8[e7;%qan5gO:hVύiO?&Ɠ#"-6RmMba 3-{(̤E4@N=M@\o~0-aG 'J_6Yr4$Espw247[(v؍|]{>*gt pWGYs C{Op^=1,pq+@~1 Cf6>p<]eC=WW#Op-z&4+u0" KU 4\ E[^,=\Y\WIH WjBj0&=q3 8ѐq9 i^Џ(1WԚ8p;IZN$" 5Uު: ٪R?'[ơqkK GHHұ.ϴSrhL t"Y7akByZSI!A]- }ktO_K$Ξo.MDdl#.ZΏt7%=a8J^ KغC;ƹ7'Yqv3xwT&@cm*eU8uYͬͤ{4P@FQ)id͇_z+޾d@g#A;\@~ U"l+Gٵ4,eSKP/cD9uj]3mf%Z\9AYT%$|ɓ%1 n9Bl~u @l+~`vn8"x}&*JBHFFr=Jb X<L7@"HQ@4h+3vter!s6/#z&~[Hִ3IlGqV(D@lemE@]X\x 3QX[}Lxܷw4%c<hм_?}M78n'}aO#ZKOg1ȁ\ƇSds\ϺQF`":4UZ mq׏`J)}3 Y%Oôuj`V t9 *!ԚBpsH_P&L? ^qttF$U&L12XK/em`LS@z֠hBimy(G砅j7Npug褝k%22 8X0֝;kg}ń4n'Z?bERڔ\^1cFޘ<2He Mei;(o-PC; I#</bac 8q|LΧoTcuӫ\azmK؜e|ʀLunH蘸2 ؘfc%c2f߃^#2@uʶX#M+ xKyJigG=Ԗ^7f ظ0Bx򊮸!3~p#w! adtb[}k +m2A+>ڡ̸C#S~hp)Tٴ/@NJSpx^VV$/K^f]=nou^s?P\1Xt:סF;P0p8++]i"ql86qKc tnx2˰Qi[~O]m +7{fo'3h7h"Qܔ>  IoDSagf d3Y+ORmrSP(/A-·s>pL*\ 5&`I>Hxj; R+q^`~Ю3+r%j1PmAehY@}o0JnI%\&D[=bel^v +sG[ލr)OnYF%BŤϏ猝/T7x#z AjDw 5+}W5+Ca;OzaS 3ZDW7Wl]3z&ڜaM2#+F_(ZϏ܆Dofuco7ZJ3 OsS1ND3Jo۫9a~PͲ,8wH!}"6If|E}ܗqHC8B|myb`X}D=q;uX'C@7yg<1?3cB 9WPE*-ع.ʌ!,8がdq#43f|dsg1f3hQtEʈ$ߺJ +/#+2Q.6Sniy7ZaȐj(WhIxΖ㗐bh2YTy- KNhXѦpdqƎ R8c􂑥nzSB}뫤30 +@ƿ1HύA`qj@p]Zf]I:f ?1~8/c4cX̸>0\O droMLRBXaGXUi=PUiQ(@PSz$FҌ~C1"#vk!Jh'qJZ}f t;cSŊhJ[ɾ<|JO"Ɖtkڊ jڟ΢vx^m+A@%mFJX7%8Si&cʘBY1v@0a{艋d}֥/P!:[aNLӓ_Wfwkz  @.$}J[fL߹BZG5#6ΕҳiES;jªѿ>.Y!K +MPP0,AgE:aww!\״{ OK3u2u.2>dqU┪ΔHl=| +r@.@BA8Xj\2.ZM:֊E$]ԔVrqƙr9R)nYTX>cU%{ٗ%Ff(,:ltOU3ϘG@%YE=6+=CUԧ,GQzR@ZhPY8E9H25EBBίq[+6n23g׸eKњNΎ6ne ++-LO l(ϴq5'/'i۽RmjEJƩQOk6 ~[~uN7y|(VYVYm5Dг뇚Mkܺ<$d^ڵqkb엘#a@ٺHѕ9Kőg82eixsmN= C`MHzmkH X)XN39=$-L8OӡWOK +\cc{R +#:Y=ChO ck8j0VQY"")E/is)eQDRm <֙feƭjָזmCx!+nǓ#Ð +-BaҞϞC62 evs,4./i_|cYtc cs1:ְg6rZ^;w8 ΀YN?ѩ{$mRiO361>6cTɓ`u9z15GZO]TgJlхڸl B00tqfc,^e7V'=WR=jarIͬW5nj-9 _q}>/BUN칹)j`RaqrH Qv2ay9.A6cRd]̳uXӁIp_*zjsk[:"qh-۩P@fb/sZ|-f s7z$g#4XٗM2my ԃ@}l7(,N8ifP\YfCK"6B'x| +EKgzq>#sC4d2εL +yK[n?3B,z'|LzG5|)1D)^rLC׋8#`CGWw3`eD#I:AtG!^/Ndǎ;[F&sBD:3{qh +HV %7K3^!i}tJ༸@e$d&L_Q7 $KSϸrIS }X%ͥ+I@Oi,ߡOKLe1@{ ܛVi}"v܍}Nmh!ELp"#巸DŽO%gÔXlAY>~,G"y޴;de/Iq@N4(wD܅axU_9E4F͂lr%[qX/ǁ7b9UTY,a çHdq1-R[zz~9%5N6g\Z~k[.I i[KBIW.~&;bMȨτpU)4 +DRadO ub~(AEhVj[3I e֦HE>')(vZ1,t4 ibgP? 9a(65s@o:6 d?8Ynض>A<5]\vZmH }:W e, 2Ai7f6J!扁8vV߉528=k ^Rk'Z5P&KT(#kƥִ.l EŚTlS/hD>Ԛx]j-{Z{ߧְm +^j;<kC< +˥4pOkgZ, Č(A0 )І@>Js?f3@T}Ө'#u."1?V]|ƅH3dOk +u|Sk^" ٥(bY)z=yZaKS='t{! d7f <{&h]w5-| \\UAB . +hԃk%=L58}~QqM#f} OkZۇ8Pjm9p12I<[*#J\88h((=lx +Mtk5I՛9(@<@ Ui=L/Ţ7WيK!{`KPdNP#eC>Z\<5P֖F[0^#>Z#Ԛ:rNkָfthpL" +'9ah脕m$DzrA aqZ|?`כi o k5*w"hĿ-rx>y>z]z#JͲCdbuTxOW+XKD>s.)ð=6P||tx4d9CVk8eI,XLv]^!xjMΏLo׏3iSk%!Jwݸvvً)nMGAI),0l2*޴݊G*}| +uV ;D0Ce/R7ﭭ8Qh.{cwۉQESg1l2WtehېOWʫ¦5p;qvcskAi]rB{:M+-'4}hs+IF M"e}P:!wO-p(~zj uD~ +Ty3݉f<[[VдUW$lu.ۍ5hxYV~|F/xCThOdn<_6VZu萹zI!3rAR _9 l6z3h'5Bj^+Aؽ2u5vt$϶7و< Ԁ&Ź^}Kx6m+@]~?+6K 51'?Cy NYF9. l4O|K1|#apjCз~P?Ϲf݅pN0P):e{3-B3\ _.\]WiB TТ:ʻi8VEaV^o<߰ K '^62T6aE? ,[X|!88),ve⻎{xdPiQ@}QKW4gml#MGܰ+& .Yhobs|[:S#5BSk74 F/q3ͱB +bbXom"7+IyI"=A*NV8vHե^DYvE*BuNނ";u銰q-+^DFWw2ErvzT$s?c$ \XꙢuJ&tES+JQ3C6{U9-4["XJ;b0u1΂eS|bvEt+8U%Wq\ÝhmHjZS XXuTE͟[lI4Sr Z t];_{7 $kSN(%;8ѯ,JyD+BcQ;/j~,’W`qtAG_qЧS8-?g 3د@lEEs$\⬋_e +XF7zS6KgͶ3Cx,q(,5(4.<8yOONX' SZX7ucRL/fc*yq䱳;L-};rd-ȤHGsȔۤN1:zrMiin'r)n _n%&?Mh 奻x%E7o.obאQZ;W#FwY׼z"mUhm]rM fq 3r ٝ +<\psB/* [BKn'? D65~?U6P!*Pf-@}L ׵| ǝL +dr?Q|=x@u]"6 D5㩮9?bCD4hOZmI_iʻ^L^_#=O|ݥWg^Q]+܀?$K5u%pp3/WfQ,w3_V@8I028+׎+ g((3|ϊ ^uM4O"Uvɫ?>("r_q{?"&{ 8t%z7+Xm})3Яr(64EqK6{ 2_vϋ??!M4b\r|Ά?f|tKr|(䟤i"c8iZX3㜆VHIaC -_M\A2}"TƬ@WƏ<`/i񀗕rYp;zs<İiWwo },ߡbڣGI5^J5&=I5gG@ILJէU3WZpüwI3KǿRA(ѯTZUGz0CafACRUT11JTSW&BWÑ+er (Z+m%IK6O]>T5_đ7f/)Oh{q4yaPD!X>fS<%oVfxbnv TeN@nn_mQS:A7R +H 7ܞj2EnH: jJE ԺD1>Y_J} dXHrѱmvWTG8vLtR1"Xf344JXJ29qїQw *=u4)>ꢷ*Nֱ@~nM+gT#VM#V٨g7g޺C +L{os{$4X`7 +E9'>=;H٧_ ~uDl`O)W%o&KSU\{"9:Af&=˒oTK(D}d55Ho5g`^?1;'둺ݿ55udn@'=)_&)I1%a,R3rZgtt̜Jbn'>W*u;D2ZX,l問R)6r=Z@ܖݐS^T~0PSb-.,(b?+#HP92ڣ䞁,) }$BS!3/2-SrlJ0@6%\qA~1^`{,=Hp,rg9` *܉U} P=J$ =j7)UJq;aK5~轾[4bZ#EGՐӖs s:O{ jO)#4ۿl +V*6y9 q<~3rf4i_f +@"";糌gqI2ZÔ'l>uz*G/a't99O'B}\m/oMhIdBs|q4s4=.GװcUl@~ѥG ^\O^6?֦qŸ|SS5FfREx-!ݖ SjƝpmѸʸY##Gs +̀ S2.{~ѩ>W'hZ6b+㒱S_|;K N:oQO#wC +9dc.sGzW4OxKړ5[A]C.޿pV6Qlnb806EGnьZsk?|*14lO.ekp'1tΝ*=[aY%I=7t +jDjrzV +B.4Rǃ0Sch/ &ghB 2a(1` +L `Ɔ~lUG&AE&\tP\~D:#@6 Hm:HO(^M2{oS #tAՔ0hLCV0hTaxAlpA?eAӅԜ3 *9VTvcj Zβ m AӰ' :ĝGq+0]C! @iXzHzǿn]^,"@w9.Fxc:(BWn 't;J;%sdS ܎N(t܎JI3݁.gR,x@L%s;vObrvL@n8A+ +\|# +1wՑO7Whz "I +7 񴟻򣼚' CY>Weuoo.SظĎ M Z3W0b5dF]E( 9>mCo2%_6O^ +<ѡA2m:I& KکM?Hv I*j<;V o@ڤ}nluҤeyؤ +%W ӲBї4M7i`O^.wA9JVVF[( {\n/mxK9\x° RozJ7e+񃚿-s G1Ux8?pƳ:qeK;B:|Lr~>i`F3"KsT +J`$"6xbiGC +YY)c6]>JЫx4q d|SE"'RVkq\{Ac&lE HնWGcaH$H!=2?yFJ/6 gυjpmSgeKjMbNj'zyLr ]ũg 2i)3vr&M\)/.EER&,Rf>ߗ+H*^l<6 zJdץlY9ۙ4vZ俏l)Ly4I_XeS}TWt]1Вz,˭>/Nfc +gco!(gņd#;v 5-qn Ns{{Ar,Q\m~#*k*r]bXr}!Ţ!Xc [$fvdL5$"{pgy5Q\^h@g3_5^iܩS C/*Cir +Z^%9T/! a-*hQIƭ$ H ]|]-:fH)]=/ *r}3@ ;T'{B,20H[5wo0T8^?MP!{(]`BAgxąC38`* N<60c=||rc4 d^FHg%)T2£1!%GfB[*$͈>d`pRL *J>:0dl2-.O`\:p +m eM{tUl'vI8pHB1xB8|Lp : +L솂m!q-#>:&< AWD(XnVQ`rBq AF aib1:8:$pgY `$H0ցaV2H l12L&>stream +e +  CC ?f ^, K@-sE VFQ!B /%Q%@(A&psb)ų|d@dhKYA}rM…Wx ɦ[, AmLJDhV91 *Z"x2*(AlP6>{6q X,`N ch- xxTX<<1 -%$f0<<H4GQLpt +x ^$ x`.;@E#*-С6st&8 x0 t'+BJ>. W0 ?;T6:,-xp")1  +V((.ag3A}kZ[5%]U}N;gX [ըlF<0 04 4oq0*Psy, +sAʅPXT0(((( JQ_ZmYf>H`hFECq!^4+iYu`Ob< LEV6g˧z0Ơ7 >+) ΀;#!"p8ł'&bd +)NP47R*y 1RNJY%kUj\w%]eeGZYXqZxSk!_͊㮬J/NBڬGWh^{)T̙~[&OzWORCz)?J~~_^Uտy%6Euy-AWZ2<zjŊbR +rl%z[[FǽxYR(Qm1o;-|v%ڷQyMӥ_>-.Oʨ֊M*c,1Ob{6(#}WWƈznպw6WZQL +vŏx%vş{eʌ7J_o&%5*stҤdҵ9ʺRZM])Gi3)jr_]RZVRޏҫZA]ZלBOR9GG]n%\=[Z6iVja2G-rO,%wkԮEeDeSY&: 6z\X~kԶ\it̴̞\d~ :o^+_T˟'sO/o1B}1ݱcomUdّy2OKhyRԫ{j"f,'k=l]U?dwSS͞N1je#bY˥SLӫ!tH_nlmtdi[RJ'ތ~g6[+_guz!3Y)u%tcJQz785ΜRR[qk?zm^R+gG7'ͤ(G9ZNr~AUy9j}3)Un→ 9T,m2UBEגyFP*rF򦹐byV}*iFI2Je[ɼŵ5ccM%ν羥!])Pb͵c.{,U1ϷAYw"ӫ|W<&"SIŴz-nV,7.ϕ嶾;+ʎp%|8-A+6Ej*!#vf6ZJw6bIyK:`ՌpUjfb 9NR1jVL>u%<-#Kfsr:vHWϊUA'ç+q^WB-Ey#}Z6km˦bO:_﮵eRkK2~kciwzU}eeneѺJL6 mZhUdK+/i=E{!rw=O]5CSǏUyۄ/:\D[J%KuqGƸu}.ˈ'?r}L%[!x'Lrd9v9uJIcK^%ld9|EIU/ȬSr;z.6kF(KѦ׍2N1A)dkYoGf3jyFG0r:wRw'ozWy2B*}V;_ױk,fz2To7_7ƾzg1_8\ԺK{kJǞ'J.%|1=bF gUiq⌭G!H 00cy&lvE2B*,C8CP xF9)a2Y7Pt1lm$\bPq>#)ٚ"YL%Zu k֪۹ȧ5.W& W6k8^[δuS ںڞ-L!$S[kMJy@/[[q QBPӠꌾ^ʥVD07z엵-",t ƝTa9>[ޮ8hc[3lT/cL6GN٫X$[ R |ݠ / D6z4%6H[W1X9+ D\is IOc:3_xXaBvDW2MP{T0wfQR9Or󍉐_ɈQh6.ylLe!N[+W +lfv*7 qm~5*L+7Y1cN8FMdKSW)2Z捍+203e4<2ЋYl99Nf?-<}EkAWbDjn"s C芆W +VCa "U-凮l< ;$Ye{}Gz*bD-:[w_^M\ahU+88P!y&cި5ehsZ)Mm[|iy,Krc"LB$]oWڶeA7w['$/~(V߆Ҙk2Unppf>ARTB!yyue3g#D.?GBJ1~w] x fQWlE.tɮR-A AZ@2!MB5*z QpҴ4 U s"|M@{%TpҦ,?pK %)x|߫J~~J:VB6bA^XEZ( 7OiNj7A܋ym4rCrQ=9U8OA&YS9uLNyC;|QuʈTwQ +BTQ<~PB54h{_&Pjl8BBXҵS8S=Gmv%+N3{VFgYs⫄ЊBWf+O2Zo(Vl83G;1@UW95rz*zEG*1Js5 E`ο--SHhe ǖ8x8ӛVHx@qfL9ڎ3g.Ɗ o9|dି^sWGJe݈EF.SteowA3WҰ\bR|bG`;ÄTNx#(EKin^1=K3%oIِnhP"(9}=:Td&!c("ȳ_^1#_d}fPU9]*| 4e&D?W7E eJܦV;M@jΩ>قȌk"\8j;p\:S j#4`2B3rVKuG%[񲤔5 N8PJ(iU?c0W3dO<1$:YRJ R$ͼ}9$L.A>P-/Kw'*/ P[aHΛeN-8  vq +b 7C9ּ@ߗFEU0v]oXvH)C]h<`tvVStbzcJn7U*܄WO?#Ics8x"yhزa"Ccn97 +W[\PП??~^cWc} gs _t3Mt΅LR|8L1>k- +Gm@K99~ lceQχlp>li7`_ *,s1nk)x(Jދ~D>~64/^*sAW4DyQv+mFKkLE8 +®mK64c$q`=JOZL $1:e7=A{؈>hsRy~7Ƽ +Q"^x_V4@ +xPXŚ"TbZzU[KI f$"ABZRĮ/| 1 kͬpښ>yQt8w6G8Y%ZXٍhiD) ԡ7 [W@ zxi9֪݆ z.ܖ]ˤ(ξ)ؠ'W18 2 ʎ޹w\0:oơ% 8.5 cU?u1Y{)nb;WZcģ˻@ټ#rLS5 ER +>5Jt@k!O/g9Š7ͻE:d?nN]5f6NI?rMz:v i$mZ\g xϓJP*.)`7(ɪ:+UdrjsN'袙 !Rru`5[JA{Û`v:@V[i9)^Ჳ#N'Ld<'ʂGM;k7{HRjr0@u-aci@{qX&lHQ輤[0.drNQ{3C5|VIͱrL{R$ ^bE~64\|.c#d\sY g,§9<˷Dui$p6!1YW$xn@l HlpBDuE :q) D!n0զʕؤhR_nn<}܋5NҜ"Y:O3{{0SQSݗ~,dS1C_9Z9`QhwTo䗔Z ] | TפQ X֞ASR`1w'*>CpT ?}2 Y#@{]zZ/ݹtJ=m9`F-G`cV=r,OWwGQx +ܠ09,Ɣ.c߮x=ijBMPQ("Vo:%SmG͟LHk 5!g&&{+Z?F@ͳ#Di3xs51)#SgJIs'aܭDͳ`4sݸ\A~:mqDM(|4y234)E$ kyl;fѢ?}YfjbT\5=뙒YtW{t4{d<.BoA[ӄYܺ9lfAIh[0F4 VP3GBT +Bs*kŇ//i7MqO-?smztk"n];5>[c]# F H|  AB+bgl ,"`&h9%mN"}%yC!V6ŏ вK;#P U Fi0 eK#ZȦ@ Ze>Dk|567ԏ+9T+Bh!.g~\( ר2f= 1Wm6Q?(5Ӭٝ +VJ'qdn3+{^3Pԋ]'uʹ}%C!@-"6s@1M2 3mhb :˖5!x?td^2n/ ـ#t-SXF*%d2cBz>$$F!|A8TG!F%$w + (\ƽҧ\ښD_5! -~e1"bž\Jh:X}$j +Kkx V<(i2x̚_mVQޔ Z9$qU ]{'ld;a>E +]U)+{,ÀJR8 C IBd蚝{t$y|W}j턓qXqmX08` Pgt +-i咊&p}$[_] UV Bnj 'ɛ!2gDžx!RXP`A~-&*.k+"xFz}2ggGh]i u+Ō L43fq HD^~ BD.(36:B RGmo]t {P'*>#PGtfHr!ete˯YvxTL" h5ئVτ<s>I| #" kۿ5nR4JaQ-VƍPm 48,O)b!s/½bh(d>j*6ALɺ񇋦I[JF}IV(]@tj XA־nnH"U6 @p16g  Ṥp/2_!<%?&@V;7&N31(3=oW xQ 1jBK!gMF spG':_m0j۪VOmuPs׸͹%}: q i#2wR'm4V0hWNfꝶTg),K;!BȀv[pLrk@eUցd,Is6nJݛɂArkqhmQ;k4q%2܇pqXHmSH.S"Rk,< ;c7cCnqkyEik܈) +D%. "U-I"i彆( +/T/@]bָ۫+X7#֡&qKqqwc,W">{f([lj.toTlmNF'-k >#D[ -PunV2<6qnF-dV.gs<6;q5`gISO fԒƍq7@̝ tz% mo6}}&?^z^71%n%ql 3Vo/9<9&4e)QEָql"Yq+^7\ފb].*xpZEUlggg b _5ęw7}z_+\MLc_R m6T:LSB!~JmR(vJTVO&jQ:l%rw_sdU>˸P~-!5S|( *vZMdU{%_:b_PbXb*3vC}|%Slg)W /-SmK H}j^)}k +9B}{R!\rk%] y&G%j0.)UrCeC +[,u]˓7C؋1GfV,h + t aR!Q.0}اS魜ܺ:$iRiѫ}^W^1IuѻrrAޫ'Fߜ劔ܛTr}^ȗzA@$$EAbQfH-l@И Ba(@ A0!D@(FAȳt$pV,2QH&C$_ҟ`1 gSI&jeI0:-}k!Z,:OX}ɒh총OSCͰU 2ImĴ%gkf=ZcnrWy69`5xR$A5A=(D~+6л(?_⏾ֺwARYH E-e$O# VէgTL}ə_dss+cR^n/)~Ma[&xњ}EdNxؠrdޕ*a>1u%I7BpxOh\rC=*7&7v-D  t4:~O/qԽ.)1V=R|5xO! 1]HCr QP<[@7}zcitcys0τ׆' vP endstream endobj 32 0 obj [/Indexed/DeviceRGB 255 33 0 R] endobj 33 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX$6Ra!<<'!!!*'!!rrmPX()~> endstream endobj 25 0 obj <> endobj 26 0 obj <> endobj 36 0 obj [/View/Design] endobj 37 0 obj <>>> endobj 34 0 obj [/View/Design] endobj 35 0 obj <>>> endobj 23 0 obj <> endobj 24 0 obj <> endobj 39 0 obj <> endobj 40 0 obj <>stream +H4QmL[e~o˽Z^YAd5ua?*ђQ7\:123l~ ff.#f?&,?NIM*W̹sޚx9HpWymv Z0vĢj(24PhSVα".ŠomыTi# "K'AN2Nf-~n#~-ZF{ܑKK#-FV9 +!V" .Ev. +FH<Ke9lW SۯF?闕qxy܃5Yv> endobj 41 0 obj <>stream +HUkPU>{Ϲ7ը V1HcDҔJk1>McDbMD1>0mժ$÷]B3Ϟ=g9{^Z߷e'ɲ+}1FEM=}lEK3rҼ$*ֳCr['em}^]W v-k;z7%-̗$ KI?#Iq!I%i,M?hRT(Ke+ϒWW$GT_YJRRtg>==`E@S`P/^ q,T[ #.]iƵFͣ_*#XatAN ;EO v4r)V\fԈ>q~4YjSpQ p +JBTPj6=.'h'9ԫ]٨~llF-2haFS6ba[lpi}Rfkw[fedy[FjeO\m=:C=%fHRT6Jnш #( /Gro.¯8(D|TxJ&}ۏ&PѮKCD.ُ\'1tj>,xG٨jkQ[mKqrW?z*IsGR5:r|7VxÍ,*i!2<]BNx%P(t19?i:0ZEaԋ>C("nA+Jb1M7Za f'dy +2]XE1>/(F{e^TR{anDR J&NTF] 6cQ%W\v98ƣPE|fJg,BX`3gҁ 3;KU;X"8kPGΉlc<|zOd9IT ]1^CųH~=EU ex +# Jux\vkWRlC)`܆c*gH[Xh^\˥7LfY 1 ޸:URh+c554nS\8v4G3CeD" +>@ +'fWvU1otgU+zD[vPQ\iY"1~( iڌsb6rlb fQY[ߕ~ V8B1-E"]K\gR%@!y+m'4g y).ZJ/@Np/5I%F\1mv6KQ胤Т(Tא_oQ#_Eb:PyViF/q* +\yj*V8yx}:N7E6՛ |lz1]W"bhe} Fe(s]m2[;<9hO (lo)/MĦQjx~E3^n(|l:N^QGp434[@XJc)]e]`C>vȣTA_@tz%r 3r\G"_m}BQ +ZGQ&|eͼ*Ceӧ/$ۘ)x*S W廵/9=X&e85̐x'戼<H:Ti*v{#^|bk-B:q5ZI{蘴@ȼWKN7ƫUtq +]'aJa ⱞzsË'5=KVPrZdwʐK YQ'xXe`X|7q&#θ3~3qLC6Vn+Rn,,БJ!u YBVLB,kHSa[s瘮AW.F5K読!(-сdW$ٔT~((rB00 +тIPwlճυ t#hrrc%d]*5]{hJi/}1FpUI)3І^RV0 -R 8=n3߹! nSD)EcuV ղHg< @SN4D 5<6vq幋\m!%Cڴ܌t{"%ǘ/A7x!:\FI}&LL#< ]$ +f>*fΧRMCT?l!';/`O\ggnIa6J⢋Y\uPR_{r3Ik䆿 |CPn↬RsrJ2΃t + +C;0=Ơ~JyӋ)(o<3sq3:%:x E=*cpGN͔sqP/$j왨6"nP;5Ԍj3Z g,(<\}PtXW]U=jQ^]3w>H@jhJZ\ȹԂ B2]JZF VI9E%~D6i&U$t3SDzD$*9nL+zLx%a[̪d9쏆#)_>y?hÝ{11099R$UߗnK +Y T endstream endobj 30 0 obj <> endobj 29 0 obj [/ICCBased 42 0 R] endobj 42 0 obj <>stream +HyTSwoɞc [5laQIBHADED2mtFOE.c}08׎8GNg9w߽'0 ֠Jb  + 2y.-;!KZ ^i"L0- @8(r;q7Ly&Qq4j|9 +V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'Kt;\ ӥ$պFZUn(4T%)뫔0C&Zi8bxEB;Pӓ̹A om?W= +x-[0}y)7ta>jT7@tܛ`q2ʀ&6ZLĄ?_yxg)˔zçLU*uSkSeO4?׸c. R ߁-25 S>ӣVd`rn~Y&+`;A4 A9=-tl`;~p Gp| [`L`< "A YA+Cb(R,*T2B- +ꇆnQt}MA0alSx k&^>0|>_',G!"F$H:R!zFQd?r 9\A&G rQ hE]a4zBgE#H *B=0HIpp0MxJ$D1D, VĭKĻYdE"EI2EBGt4MzNr!YK ?%_&#(0J:EAiQ(()ӔWT6U@P+!~mD eԴ!hӦh/']B/ҏӿ?a0nhF!X8܌kc&5S6lIa2cKMA!E#ƒdV(kel }}Cq9 +N')].uJr + wG xR^[oƜchg`>b$*~ :Eb~,m,-ݖ,Y¬*6X[ݱF=3뭷Y~dó ti zf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4 +n3ܣkGݯz=[==<=GTB(/S,]6*-W:#7*e^YDY}UjAyT`#D="b{ų+ʯ:!kJ4Gmt}uC%K7YVfFY .=b?SƕƩȺy چ k5%4m7lqlioZlG+Zz͹mzy]?uuw|"űNwW&e֥ﺱ*|j5kyݭǯg^ykEklD_p߶7Dmo꿻1ml{Mś nLl<9O[$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! +zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km endstream endobj 27 0 obj [26 0 R 25 0 R] endobj 43 0 obj <> endobj xref +0 44 +0000000004 65535 f +0000000016 00000 n +0000000166 00000 n +0000041882 00000 n +0000000000 00000 f +0000041933 00000 n +0000000000 00000 f +0000000000 00000 f +0000045216 00000 n +0000045288 00000 n +0000045505 00000 n +0000047025 00000 n +0000112613 00000 n +0000178201 00000 n +0000243789 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000258009 00000 n +0000258418 00000 n +0000257640 00000 n +0000257706 00000 n +0000265979 00000 n +0000042394 00000 n +0000263287 00000 n +0000263174 00000 n +0000044622 00000 n +0000257066 00000 n +0000257114 00000 n +0000257893 00000 n +0000257924 00000 n +0000257777 00000 n +0000257808 00000 n +0000259903 00000 n +0000258637 00000 n +0000258940 00000 n +0000260317 00000 n +0000263322 00000 n +0000266011 00000 n +trailer <]>> startxref 266226 %%EOF \ No newline at end of file diff --git a/wp-content/uploads/2024/09/rtt-treo.png b/wp-content/uploads/2024/09/rtt-treo.png new file mode 100644 index 00000000..8a92f4df Binary files /dev/null and b/wp-content/uploads/2024/09/rtt-treo.png differ diff --git a/wp-content/uploads/2024/09/treo-popularity.png b/wp-content/uploads/2024/09/treo-popularity.png new file mode 100644 index 00000000..24142786 Binary files /dev/null and b/wp-content/uploads/2024/09/treo-popularity.png differ diff --git a/wp-content/uploads/2024/09/wpt-304.png b/wp-content/uploads/2024/09/wpt-304.png new file mode 100644 index 00000000..816e3d87 Binary files /dev/null and b/wp-content/uploads/2024/09/wpt-304.png differ diff --git a/wp-content/uploads/2024/09/wpt-fcp.png b/wp-content/uploads/2024/09/wpt-fcp.png new file mode 100644 index 00000000..c6d05053 Binary files /dev/null and b/wp-content/uploads/2024/09/wpt-fcp.png differ diff --git a/wp-content/uploads/2024/09/wpt-redirect.png b/wp-content/uploads/2024/09/wpt-redirect.png new file mode 100644 index 00000000..948492dc Binary files /dev/null and b/wp-content/uploads/2024/09/wpt-redirect.png differ diff --git a/wp-content/uploads/2024/10/scan.jpg b/wp-content/uploads/2024/10/scan.jpg new file mode 100644 index 00000000..23bb7c02 Binary files /dev/null and b/wp-content/uploads/2024/10/scan.jpg differ diff --git a/wp-content/uploads/2024/11/csswizardry.com-lcp.png b/wp-content/uploads/2024/11/csswizardry.com-lcp.png new file mode 100644 index 00000000..f0975588 Binary files /dev/null and b/wp-content/uploads/2024/11/csswizardry.com-lcp.png differ diff --git a/wp-content/uploads/2024/11/cwv-colours.png b/wp-content/uploads/2024/11/cwv-colours.png new file mode 100644 index 00000000..6c76eeaa Binary files /dev/null and b/wp-content/uploads/2024/11/cwv-colours.png differ diff --git a/wp-content/uploads/2024/11/new-metric-01.png b/wp-content/uploads/2024/11/new-metric-01.png new file mode 100644 index 00000000..b5207433 Binary files /dev/null and b/wp-content/uploads/2024/11/new-metric-01.png differ diff --git a/wp-content/uploads/2024/11/new-metric-02.png b/wp-content/uploads/2024/11/new-metric-02.png new file mode 100644 index 00000000..f39971a1 Binary files /dev/null and b/wp-content/uploads/2024/11/new-metric-02.png differ diff --git a/wp-content/uploads/2024/11/new-metric-03.png b/wp-content/uploads/2024/11/new-metric-03.png new file mode 100644 index 00000000..c721be8b Binary files /dev/null and b/wp-content/uploads/2024/11/new-metric-03.png differ diff --git a/wp-content/uploads/2024/11/new-metric-04.png b/wp-content/uploads/2024/11/new-metric-04.png new file mode 100644 index 00000000..6858716a Binary files /dev/null and b/wp-content/uploads/2024/11/new-metric-04.png differ diff --git a/wp-content/uploads/2024/11/new-metric-05.png b/wp-content/uploads/2024/11/new-metric-05.png new file mode 100644 index 00000000..9a359b0e Binary files /dev/null and b/wp-content/uploads/2024/11/new-metric-05.png differ diff --git a/wp-content/uploads/2024/11/new-metric-06.png b/wp-content/uploads/2024/11/new-metric-06.png new file mode 100644 index 00000000..9eb96d59 Binary files /dev/null and b/wp-content/uploads/2024/11/new-metric-06.png differ diff --git a/wp-content/uploads/2024/11/new-metric-100.png b/wp-content/uploads/2024/11/new-metric-100.png new file mode 100644 index 00000000..3b94761d Binary files /dev/null and b/wp-content/uploads/2024/11/new-metric-100.png differ diff --git a/wp-content/uploads/2024/11/new-metric-averaged.png b/wp-content/uploads/2024/11/new-metric-averaged.png new file mode 100644 index 00000000..bb4422bf Binary files /dev/null and b/wp-content/uploads/2024/11/new-metric-averaged.png differ diff --git a/wp-content/uploads/2024/11/new-metric-crrrux.png b/wp-content/uploads/2024/11/new-metric-crrrux.png new file mode 100644 index 00000000..cd8e51d0 Binary files /dev/null and b/wp-content/uploads/2024/11/new-metric-crrrux.png differ diff --git a/wp-content/uploads/2024/11/new-metric-f1.png b/wp-content/uploads/2024/11/new-metric-f1.png new file mode 100644 index 00000000..0147bdc0 Binary files /dev/null and b/wp-content/uploads/2024/11/new-metric-f1.png differ diff --git a/wp-content/uploads/2024/11/new-metric-indexed.png b/wp-content/uploads/2024/11/new-metric-indexed.png new file mode 100644 index 00000000..98ec8c76 Binary files /dev/null and b/wp-content/uploads/2024/11/new-metric-indexed.png differ diff --git a/wp-content/uploads/2024/11/new-metric-inverted.png b/wp-content/uploads/2024/11/new-metric-inverted.png new file mode 100644 index 00000000..f04c00b7 Binary files /dev/null and b/wp-content/uploads/2024/11/new-metric-inverted.png differ diff --git a/wp-content/uploads/2024/11/new-metric-real-data.png b/wp-content/uploads/2024/11/new-metric-real-data.png new file mode 100644 index 00000000..a7b5b778 Binary files /dev/null and b/wp-content/uploads/2024/11/new-metric-real-data.png differ diff --git a/wp-content/uploads/2024/11/new-metric-rescaled.png b/wp-content/uploads/2024/11/new-metric-rescaled.png new file mode 100644 index 00000000..89e802dc Binary files /dev/null and b/wp-content/uploads/2024/11/new-metric-rescaled.png differ diff --git a/wp-content/uploads/2024/11/new-metric-rounded.png b/wp-content/uploads/2024/11/new-metric-rounded.png new file mode 100644 index 00000000..e07fb839 Binary files /dev/null and b/wp-content/uploads/2024/11/new-metric-rounded.png differ diff --git a/wp-content/uploads/2024/11/new-metric-sports-betting.png b/wp-content/uploads/2024/11/new-metric-sports-betting.png new file mode 100644 index 00000000..03a2f1fc Binary files /dev/null and b/wp-content/uploads/2024/11/new-metric-sports-betting.png differ diff --git a/wp-content/uploads/2024/11/new-metric-top-100.png b/wp-content/uploads/2024/11/new-metric-top-100.png new file mode 100644 index 00000000..d5f79c94 Binary files /dev/null and b/wp-content/uploads/2024/11/new-metric-top-100.png differ diff --git a/wp-content/uploads/2024/11/new-metric-weighted.png b/wp-content/uploads/2024/11/new-metric-weighted.png new file mode 100644 index 00000000..f210a094 Binary files /dev/null and b/wp-content/uploads/2024/11/new-metric-weighted.png differ diff --git a/wp-content/uploads/2024/12/speculation-rules-poster.jpg b/wp-content/uploads/2024/12/speculation-rules-poster.jpg new file mode 100644 index 00000000..6ea5adeb Binary files /dev/null and b/wp-content/uploads/2024/12/speculation-rules-poster.jpg differ diff --git a/wp-content/uploads/2025/07/extensibility-01.png b/wp-content/uploads/2025/07/extensibility-01.png new file mode 100644 index 00000000..51d2b4ee Binary files /dev/null and b/wp-content/uploads/2025/07/extensibility-01.png differ diff --git a/wp-content/uploads/2025/07/extensibility-02.png b/wp-content/uploads/2025/07/extensibility-02.png new file mode 100644 index 00000000..58514f2c Binary files /dev/null and b/wp-content/uploads/2025/07/extensibility-02.png differ diff --git a/wp-content/uploads/2025/07/extensibility-03.png b/wp-content/uploads/2025/07/extensibility-03.png new file mode 100644 index 00000000..775a20d6 Binary files /dev/null and b/wp-content/uploads/2025/07/extensibility-03.png differ diff --git a/wp-content/uploads/2025/07/extensibility-04.png b/wp-content/uploads/2025/07/extensibility-04.png new file mode 100644 index 00000000..6367a0d7 Binary files /dev/null and b/wp-content/uploads/2025/07/extensibility-04.png differ diff --git a/wp-content/uploads/2025/07/extensibility-05.png b/wp-content/uploads/2025/07/extensibility-05.png new file mode 100644 index 00000000..b797349b Binary files /dev/null and b/wp-content/uploads/2025/07/extensibility-05.png differ diff --git a/wp-content/uploads/2025/07/extensibility-06.png b/wp-content/uploads/2025/07/extensibility-06.png new file mode 100644 index 00000000..65613f2c Binary files /dev/null and b/wp-content/uploads/2025/07/extensibility-06.png differ diff --git a/wp-content/uploads/2025/07/extensibility-07.png b/wp-content/uploads/2025/07/extensibility-07.png new file mode 100644 index 00000000..756cdbc7 Binary files /dev/null and b/wp-content/uploads/2025/07/extensibility-07.png differ diff --git a/wp-content/uploads/2025/07/extensibility-08.png b/wp-content/uploads/2025/07/extensibility-08.png new file mode 100644 index 00000000..e1ebe8c8 Binary files /dev/null and b/wp-content/uploads/2025/07/extensibility-08.png differ diff --git a/wp-content/uploads/2025/07/extensibility-09.png b/wp-content/uploads/2025/07/extensibility-09.png new file mode 100644 index 00000000..1966bb76 Binary files /dev/null and b/wp-content/uploads/2025/07/extensibility-09.png differ diff --git a/wp-content/uploads/2025/07/extensibility-10.png b/wp-content/uploads/2025/07/extensibility-10.png new file mode 100644 index 00000000..117d892a Binary files /dev/null and b/wp-content/uploads/2025/07/extensibility-10.png differ diff --git a/wp-content/uploads/2025/07/extensibility-11.png b/wp-content/uploads/2025/07/extensibility-11.png new file mode 100644 index 00000000..89a51113 Binary files /dev/null and b/wp-content/uploads/2025/07/extensibility-11.png differ diff --git a/wp-content/uploads/2025/07/factor-pdp.jpg b/wp-content/uploads/2025/07/factor-pdp.jpg new file mode 100644 index 00000000..8c94cead Binary files /dev/null and b/wp-content/uploads/2025/07/factor-pdp.jpg differ diff --git a/wp-content/uploads/2025/07/giant-pdp.jpg b/wp-content/uploads/2025/07/giant-pdp.jpg new file mode 100644 index 00000000..3bfd9c8f Binary files /dev/null and b/wp-content/uploads/2025/07/giant-pdp.jpg differ diff --git a/wp-content/uploads/2025/07/jack.png b/wp-content/uploads/2025/07/jack.png new file mode 100644 index 00000000..b273d49f Binary files /dev/null and b/wp-content/uploads/2025/07/jack.png differ diff --git a/wp-content/uploads/2025/07/merida-pdp.jpg b/wp-content/uploads/2025/07/merida-pdp.jpg new file mode 100644 index 00000000..cde1af3b Binary files /dev/null and b/wp-content/uploads/2025/07/merida-pdp.jpg differ diff --git a/wp-content/uploads/2025/07/orbea-pdp.jpg b/wp-content/uploads/2025/07/orbea-pdp.jpg new file mode 100644 index 00000000..f1f13c13 Binary files /dev/null and b/wp-content/uploads/2025/07/orbea-pdp.jpg differ diff --git a/wp-content/uploads/2025/07/ridley-pdp.jpg b/wp-content/uploads/2025/07/ridley-pdp.jpg new file mode 100644 index 00000000..0f88c013 Binary files /dev/null and b/wp-content/uploads/2025/07/ridley-pdp.jpg differ diff --git a/wp-content/uploads/2025/07/ridley-raf.png b/wp-content/uploads/2025/07/ridley-raf.png new file mode 100644 index 00000000..1e7a62b1 Binary files /dev/null and b/wp-content/uploads/2025/07/ridley-raf.png differ diff --git a/wp-content/uploads/2025/07/tdf-bike-crrrux.png b/wp-content/uploads/2025/07/tdf-bike-crrrux.png new file mode 100644 index 00000000..46f2fc01 Binary files /dev/null and b/wp-content/uploads/2025/07/tdf-bike-crrrux.png differ diff --git a/wp-content/uploads/2025/07/trek-pdp.jpg b/wp-content/uploads/2025/07/trek-pdp.jpg new file mode 100644 index 00000000..ffe401a3 Binary files /dev/null and b/wp-content/uploads/2025/07/trek-pdp.jpg differ diff --git a/wp-content/uploads/2025/07/wpt-factor-home.png b/wp-content/uploads/2025/07/wpt-factor-home.png new file mode 100644 index 00000000..49e71a08 Binary files /dev/null and b/wp-content/uploads/2025/07/wpt-factor-home.png differ diff --git a/wp-content/uploads/2025/07/wpt-factor-pdp.png b/wp-content/uploads/2025/07/wpt-factor-pdp.png new file mode 100644 index 00000000..9f54244e Binary files /dev/null and b/wp-content/uploads/2025/07/wpt-factor-pdp.png differ diff --git a/wp-content/uploads/2025/07/wpt-giant-home.png b/wp-content/uploads/2025/07/wpt-giant-home.png new file mode 100644 index 00000000..de2678a7 Binary files /dev/null and b/wp-content/uploads/2025/07/wpt-giant-home.png differ diff --git a/wp-content/uploads/2025/07/wpt-giant-pdp.png b/wp-content/uploads/2025/07/wpt-giant-pdp.png new file mode 100644 index 00000000..d7776876 Binary files /dev/null and b/wp-content/uploads/2025/07/wpt-giant-pdp.png differ diff --git a/wp-content/uploads/2025/07/wpt-merida-home.png b/wp-content/uploads/2025/07/wpt-merida-home.png new file mode 100644 index 00000000..9a17651e Binary files /dev/null and b/wp-content/uploads/2025/07/wpt-merida-home.png differ diff --git a/wp-content/uploads/2025/07/wpt-merida-pdp.png b/wp-content/uploads/2025/07/wpt-merida-pdp.png new file mode 100644 index 00000000..764bb8a5 Binary files /dev/null and b/wp-content/uploads/2025/07/wpt-merida-pdp.png differ diff --git a/wp-content/uploads/2025/07/wpt-orbea-home.png b/wp-content/uploads/2025/07/wpt-orbea-home.png new file mode 100644 index 00000000..89af9b3a Binary files /dev/null and b/wp-content/uploads/2025/07/wpt-orbea-home.png differ diff --git a/wp-content/uploads/2025/07/wpt-orbea-pdp.png b/wp-content/uploads/2025/07/wpt-orbea-pdp.png new file mode 100644 index 00000000..1e805926 Binary files /dev/null and b/wp-content/uploads/2025/07/wpt-orbea-pdp.png differ diff --git a/wp-content/uploads/2025/07/wpt-ridley-home.png b/wp-content/uploads/2025/07/wpt-ridley-home.png new file mode 100644 index 00000000..9fd49959 Binary files /dev/null and b/wp-content/uploads/2025/07/wpt-ridley-home.png differ diff --git a/wp-content/uploads/2025/07/wpt-ridley-pdp.png b/wp-content/uploads/2025/07/wpt-ridley-pdp.png new file mode 100644 index 00000000..66b88f1a Binary files /dev/null and b/wp-content/uploads/2025/07/wpt-ridley-pdp.png differ diff --git a/wp-content/uploads/2025/07/wpt-trek-home.png b/wp-content/uploads/2025/07/wpt-trek-home.png new file mode 100644 index 00000000..21af2a73 Binary files /dev/null and b/wp-content/uploads/2025/07/wpt-trek-home.png differ diff --git a/wp-content/uploads/2025/07/wpt-trek-pdp.png b/wp-content/uploads/2025/07/wpt-trek-pdp.png new file mode 100644 index 00000000..c4a755ce Binary files /dev/null and b/wp-content/uploads/2025/07/wpt-trek-pdp.png differ diff --git a/wp-content/uploads/2025/08/a15.avif b/wp-content/uploads/2025/08/a15.avif new file mode 100644 index 00000000..29c30b1f Binary files /dev/null and b/wp-content/uploads/2025/08/a15.avif differ diff --git a/wp-content/uploads/2025/08/a56.jpg b/wp-content/uploads/2025/08/a56.jpg new file mode 100644 index 00000000..957a9695 Binary files /dev/null and b/wp-content/uploads/2025/08/a56.jpg differ diff --git a/wp-content/uploads/2025/08/moto-g4.jpg b/wp-content/uploads/2025/08/moto-g4.jpg new file mode 100644 index 00000000..ca0b8f51 Binary files /dev/null and b/wp-content/uploads/2025/08/moto-g4.jpg differ