From 3967e73347123324ff0ce95fcb268008f2db7fb8 Mon Sep 17 00:00:00 2001 From: Jacques Supcik Date: Wed, 18 Feb 2026 13:34:35 +0100 Subject: [PATCH] Initial commit --- .devcontainer/devcontainer.json | 23 + .devcontainer/docker-compose.yml | 55 + .devcontainer/tftp/Dockerfile | 11 + .devcontainer/toolchain/Dockerfile | 31 + .../toolchain/scripts/delete-buildroot.sh | 8 + .../toolchain/scripts/delete-rootfs.sh | 8 + .../toolchain/scripts/extract-rootfs.sh | 8 + .../toolchain/scripts/get-buildroot.sh | 16 + .devcontainer/toolchain/scripts/get-go.sh | 34 + .devcontainer/toolchain/scripts/get-zig.sh | 32 + .../toolchain/scripts/sync-images.sh | 8 + .../toolchain/scripts/sync-rootfs.sh | 34 + .gitignore | 35 + .vscode/c_cpp_properties.json | 30 + .vscode/extensions.json | 12 + README.md | 39 + .../friendlyarm/nanopi-neo-plus2/boot.cmd | 6 + .../friendlyarm/nanopi-neo-plus2/genimage.cfg | 41 + .../nanopi-neo-plus2/linux-extras.config | 37 + .../nanopi-neo-plus2/nanopi-neo-plus2.dts | 7 + .../0001_arm-trusted.patch | 13 + .../nanopi-neo-plus2/rootfs_overlay/etc/motd | 8 + .../rootfs_overlay/etc/network/interfaces | 10 + .../rootfs_overlay/etc/ssh/sshd_config | 117 + .../nanopi-neo-plus2/uboot-extras.config | 2 + config/configs/csel_defconfig | 110 + env-all.code-workspace | 32 + env-core_dumps.code-workspace | 11 + env-fibonacci.code-workspace | 11 + modules-ex1.code-workspace | 16 + src/.clang-format | 14 + src/01_environment/Makefile | 4 + src/01_environment/appl.mk | 45 + .../backtrace/.vscode/launch.json | 21 + .../backtrace/.vscode/tasks.json | 14 + src/01_environment/backtrace/CMakeLists.txt | 5 + src/01_environment/backtrace/Makefile | 5 + src/01_environment/backtrace/justfile | 5 + src/01_environment/backtrace/main.c | 63 + .../core_dumps/.vscode/launch.json | 32 + .../core_dumps/.vscode/tasks.json | 14 + src/01_environment/core_dumps/CMakeLists.txt | 5 + src/01_environment/core_dumps/Makefile | 5 + src/01_environment/core_dumps/core_dumps.c | 45 + src/01_environment/core_dumps/justfile | 5 + src/01_environment/daemon/.vscode/launch.json | 21 + src/01_environment/daemon/.vscode/tasks.json | 14 + src/01_environment/daemon/CMakeLists.txt | 5 + src/01_environment/daemon/Makefile | 5 + src/01_environment/daemon/S60appl | 24 + src/01_environment/daemon/daemon.c | 152 + src/01_environment/daemon/justfile | 5 + src/01_environment/dot-vscode/deploy.sh | 24 + src/01_environment/dot-vscode/launch.json | 21 + .../dot-vscode/launch.json_presque | 43 + src/01_environment/dot-vscode/tasks.json | 14 + src/01_environment/fibonacci/.gitignore | 1 + .../fibonacci/.vscode/launch.json | 21 + .../fibonacci/.vscode/tasks.json | 14 + src/01_environment/fibonacci/CMakeLists.txt | 5 + src/01_environment/fibonacci/Makefile | 5 + src/01_environment/fibonacci/fibonacci.c | 88 + src/01_environment/fibonacci/justfile | 5 + src/01_environment/justfile | 9 + .../memory_leaks/.vscode/launch.json | 21 + .../memory_leaks/.vscode/tasks.json | 14 + .../memory_leaks/CMakeLists.txt | 5 + src/01_environment/memory_leaks/Makefile | 5 + src/01_environment/memory_leaks/justfile | 5 + src/01_environment/memory_leaks/mem_leaks.c | 113 + .../process/.vscode/launch.json | 21 + src/01_environment/process/.vscode/tasks.json | 14 + src/01_environment/process/CMakeLists.txt | 5 + src/01_environment/process/Makefile | 5 + src/01_environment/process/justfile | 5 + src/01_environment/process/process.c | 133 + .../system_calls/.vscode/launch.json | 21 + .../system_calls/.vscode/tasks.json | 14 + .../system_calls/CMakeLists.txt | 5 + src/01_environment/system_calls/Makefile | 5 + src/01_environment/system_calls/justfile | 5 + src/01_environment/system_calls/syscall.c | 58 + .../tracing/.vscode/launch.json | 21 + src/01_environment/tracing/.vscode/tasks.json | 14 + src/01_environment/tracing/CMakeLists.txt | 9 + src/01_environment/tracing/Makefile | 9 + src/01_environment/tracing/fibonacci.c | 79 + src/01_environment/tracing/justfile | 5 + src/02_modules/Makefile | 5 + .../exercice01/.vscode/c_cpp_properties.json | 19 + src/02_modules/exercice01/Makefile | 30 + src/02_modules/exercice01/skeleton.c | 31 + src/02_modules/exercice04/Makefile | 22 + src/02_modules/exercice04/host.mk | 16 + src/02_modules/exercice04/skeleton.c | 64 + src/02_modules/exercice05/Makefile | 23 + src/02_modules/exercice05/skeleton.c | 83 + src/02_modules/exercice06/Makefile | 24 + src/02_modules/exercice06/skeleton.c | 55 + src/02_modules/exercice07/Makefile | 23 + src/02_modules/exercice07/skeleton.c | 81 + src/02_modules/exercice08/Makefile | 23 + src/02_modules/exercice08/skeleton.c | 74 + src/02_modules/procstat/Makefile | 50 + src/02_modules/procstat/procstat.c | 240 + src/03_drivers/Makefile | 5 + src/03_drivers/dts/Makefile | 37 + src/03_drivers/dts/boot.cmd | 10 + src/03_drivers/dts/mydt.dts | 12 + src/03_drivers/dts/skeleton.c | 135 + src/03_drivers/exercice01/Makefile | 44 + src/03_drivers/exercice01/main.c | 53 + src/03_drivers/exercice02/Makefile | 23 + src/03_drivers/exercice02/skeleton.c | 123 + src/03_drivers/exercice03/Makefile | 23 + src/03_drivers/exercice03/skeleton.c | 147 + src/03_drivers/exercice04/Makefile | 37 + src/03_drivers/exercice04/main.c | 47 + src/03_drivers/exercice05.1/Makefile | 22 + src/03_drivers/exercice05.1/skeleton.c | 249 + src/03_drivers/exercice05/Makefile | 23 + src/03_drivers/exercice05/skeleton.c | 153 + src/03_drivers/exercice06.1/Makefile | 36 + src/03_drivers/exercice06.1/boot.cmd | 13 + src/03_drivers/exercice06.1/mydt.dts | 34 + src/03_drivers/exercice06.1/skeleton.c | 253 + src/03_drivers/exercice06/Makefile | 40 + src/03_drivers/exercice06/mydt.dts | 13 + src/03_drivers/exercice06/skeleton.c | 255 + src/03_drivers/exercice07/Makefile | 5 + src/03_drivers/exercice07/drv/Makefile | 24 + src/03_drivers/exercice07/drv/skeleton.c | 126 + src/03_drivers/exercice08/Makefile | 5 + src/03_drivers/exercice08/drv/Makefile | 22 + src/03_drivers/exercice08/drv/skeleton.c | 85 + src/03_drivers/exercice09/Makefile | 5 + src/03_drivers/exercice09/drv/Makefile | 22 + src/03_drivers/exercice09/drv/skeleton.c | 99 + src/03_drivers/exercice09/drv/skeleton.h | 20 + src/03_drivers/exercice10/Makefile | 22 + src/03_drivers/exercice10/skeleton.c | 120 + src/03_drivers/sample01/Makefile | 19 + src/03_drivers/sample01/main1.c | 14 + src/03_drivers/sample01/main2.c | 28 + src/03_drivers/sample01/main3.c | 28 + src/03_drivers/sample01/test1.txt | 10000 ++++++++++++++++ src/03_drivers/sample05.1/Makefile | 22 + src/03_drivers/sample05.1/skeleton.c | 101 + src/03_drivers/sample05/Makefile | 22 + src/03_drivers/sample05/skeleton.c | 59 + src/03_drivers/sample06.2/Makefile | 22 + src/03_drivers/sample06.2/skeleton.c | 217 + src/03_drivers/sample06.3/Makefile | 42 + src/03_drivers/sample06.3/boot.cmd | 13 + src/03_drivers/sample06.3/mydt.dts | 29 + src/03_drivers/sample06.3/skeleton.c | 304 + src/04_system/silly/CMakeLists.txt | 5 + src/04_system/silly/Makefile | 19 + src/04_system/silly/silly_led_control.c | 103 + src/06_optimization/Makefile | 5 + src/06_optimization/clock/Makefile | 54 + src/06_optimization/clock/clock.c | 56 + src/06_optimization/clock/meazure.xlsx | Bin 0 -> 768114 bytes src/06_optimization/ex01/Makefile | 54 + src/06_optimization/ex01/main.c | 23 + src/06_optimization/ex02/Makefile | 54 + src/06_optimization/ex02/main.c | 24 + .../ex03/ApacheAccessLogAnalyzer.cpp | 37 + .../ex03/ApacheAccessLogAnalyzer.h | 20 + src/06_optimization/ex03/HostCounter.cpp | 26 + src/06_optimization/ex03/HostCounter.h | 22 + src/06_optimization/ex03/Makefile | 30 + src/06_optimization/ex03/main.cpp | 30 + src/06_optimization/gcov/Makefile | 34 + src/06_optimization/gcov/main.c | 19 + src/06_optimization/gpio/Makefile | 54 + src/06_optimization/gpio/gpio.c | 87 + src/06_optimization/gprof/Makefile | 34 + src/06_optimization/gprof/main.c | 21 + src/06_optimization/gprof/target.mk | 71 + src/06_optimization/mmio/Makefile | 54 + src/06_optimization/mmio/mmio.c | 98 + src/06_optimization/trace/Makefile | 54 + src/06_optimization/trace/example1.sh | 7 + src/06_optimization/trace/example2.sh | 10 + src/06_optimization/trace/main.c | 8 + src/06_optimization/trace/setup.sh | 1 + src/07_miniproj/oled/Makefile | 58 + src/07_miniproj/oled/main.c | 23 + src/07_miniproj/oled/mydt.dts | 13 + src/07_miniproj/oled/ssd1306.c | 236 + src/07_miniproj/oled/ssd1306.h | 13 + src/buildroot_path | 5 + src/kernel_settings | 8 + src/nanopi.cmake | 14 + src/set_host_path | 5 + 196 files changed, 17768 insertions(+) create mode 100644 .devcontainer/devcontainer.json create mode 100644 .devcontainer/docker-compose.yml create mode 100644 .devcontainer/tftp/Dockerfile create mode 100644 .devcontainer/toolchain/Dockerfile create mode 100755 .devcontainer/toolchain/scripts/delete-buildroot.sh create mode 100755 .devcontainer/toolchain/scripts/delete-rootfs.sh create mode 100755 .devcontainer/toolchain/scripts/extract-rootfs.sh create mode 100755 .devcontainer/toolchain/scripts/get-buildroot.sh create mode 100755 .devcontainer/toolchain/scripts/get-go.sh create mode 100755 .devcontainer/toolchain/scripts/get-zig.sh create mode 100755 .devcontainer/toolchain/scripts/sync-images.sh create mode 100644 .devcontainer/toolchain/scripts/sync-rootfs.sh create mode 100644 .gitignore create mode 100644 .vscode/c_cpp_properties.json create mode 100644 .vscode/extensions.json create mode 100644 README.md create mode 100644 config/board/friendlyarm/nanopi-neo-plus2/boot.cmd create mode 100644 config/board/friendlyarm/nanopi-neo-plus2/genimage.cfg create mode 100644 config/board/friendlyarm/nanopi-neo-plus2/linux-extras.config create mode 100644 config/board/friendlyarm/nanopi-neo-plus2/nanopi-neo-plus2.dts create mode 100644 config/board/friendlyarm/nanopi-neo-plus2/patches/arm-trusted-firmware/0001_arm-trusted.patch create mode 100644 config/board/friendlyarm/nanopi-neo-plus2/rootfs_overlay/etc/motd create mode 100644 config/board/friendlyarm/nanopi-neo-plus2/rootfs_overlay/etc/network/interfaces create mode 100644 config/board/friendlyarm/nanopi-neo-plus2/rootfs_overlay/etc/ssh/sshd_config create mode 100644 config/board/friendlyarm/nanopi-neo-plus2/uboot-extras.config create mode 100644 config/configs/csel_defconfig create mode 100644 env-all.code-workspace create mode 100644 env-core_dumps.code-workspace create mode 100644 env-fibonacci.code-workspace create mode 100644 modules-ex1.code-workspace create mode 100644 src/.clang-format create mode 100644 src/01_environment/Makefile create mode 100644 src/01_environment/appl.mk create mode 100644 src/01_environment/backtrace/.vscode/launch.json create mode 100644 src/01_environment/backtrace/.vscode/tasks.json create mode 100644 src/01_environment/backtrace/CMakeLists.txt create mode 100644 src/01_environment/backtrace/Makefile create mode 100644 src/01_environment/backtrace/justfile create mode 100644 src/01_environment/backtrace/main.c create mode 100644 src/01_environment/core_dumps/.vscode/launch.json create mode 100644 src/01_environment/core_dumps/.vscode/tasks.json create mode 100644 src/01_environment/core_dumps/CMakeLists.txt create mode 100644 src/01_environment/core_dumps/Makefile create mode 100644 src/01_environment/core_dumps/core_dumps.c create mode 100644 src/01_environment/core_dumps/justfile create mode 100644 src/01_environment/daemon/.vscode/launch.json create mode 100644 src/01_environment/daemon/.vscode/tasks.json create mode 100644 src/01_environment/daemon/CMakeLists.txt create mode 100644 src/01_environment/daemon/Makefile create mode 100644 src/01_environment/daemon/S60appl create mode 100644 src/01_environment/daemon/daemon.c create mode 100644 src/01_environment/daemon/justfile create mode 100755 src/01_environment/dot-vscode/deploy.sh create mode 100644 src/01_environment/dot-vscode/launch.json create mode 100644 src/01_environment/dot-vscode/launch.json_presque create mode 100644 src/01_environment/dot-vscode/tasks.json create mode 100644 src/01_environment/fibonacci/.gitignore create mode 100644 src/01_environment/fibonacci/.vscode/launch.json create mode 100644 src/01_environment/fibonacci/.vscode/tasks.json create mode 100644 src/01_environment/fibonacci/CMakeLists.txt create mode 100644 src/01_environment/fibonacci/Makefile create mode 100644 src/01_environment/fibonacci/fibonacci.c create mode 100644 src/01_environment/fibonacci/justfile create mode 100644 src/01_environment/justfile create mode 100644 src/01_environment/memory_leaks/.vscode/launch.json create mode 100644 src/01_environment/memory_leaks/.vscode/tasks.json create mode 100644 src/01_environment/memory_leaks/CMakeLists.txt create mode 100644 src/01_environment/memory_leaks/Makefile create mode 100644 src/01_environment/memory_leaks/justfile create mode 100644 src/01_environment/memory_leaks/mem_leaks.c create mode 100644 src/01_environment/process/.vscode/launch.json create mode 100644 src/01_environment/process/.vscode/tasks.json create mode 100644 src/01_environment/process/CMakeLists.txt create mode 100644 src/01_environment/process/Makefile create mode 100644 src/01_environment/process/justfile create mode 100644 src/01_environment/process/process.c create mode 100644 src/01_environment/system_calls/.vscode/launch.json create mode 100644 src/01_environment/system_calls/.vscode/tasks.json create mode 100644 src/01_environment/system_calls/CMakeLists.txt create mode 100644 src/01_environment/system_calls/Makefile create mode 100644 src/01_environment/system_calls/justfile create mode 100644 src/01_environment/system_calls/syscall.c create mode 100644 src/01_environment/tracing/.vscode/launch.json create mode 100644 src/01_environment/tracing/.vscode/tasks.json create mode 100644 src/01_environment/tracing/CMakeLists.txt create mode 100644 src/01_environment/tracing/Makefile create mode 100644 src/01_environment/tracing/fibonacci.c create mode 100644 src/01_environment/tracing/justfile create mode 100644 src/02_modules/Makefile create mode 100644 src/02_modules/exercice01/.vscode/c_cpp_properties.json create mode 100644 src/02_modules/exercice01/Makefile create mode 100644 src/02_modules/exercice01/skeleton.c create mode 100644 src/02_modules/exercice04/Makefile create mode 100644 src/02_modules/exercice04/host.mk create mode 100644 src/02_modules/exercice04/skeleton.c create mode 100644 src/02_modules/exercice05/Makefile create mode 100644 src/02_modules/exercice05/skeleton.c create mode 100644 src/02_modules/exercice06/Makefile create mode 100644 src/02_modules/exercice06/skeleton.c create mode 100644 src/02_modules/exercice07/Makefile create mode 100644 src/02_modules/exercice07/skeleton.c create mode 100644 src/02_modules/exercice08/Makefile create mode 100644 src/02_modules/exercice08/skeleton.c create mode 100644 src/02_modules/procstat/Makefile create mode 100644 src/02_modules/procstat/procstat.c create mode 100644 src/03_drivers/Makefile create mode 100644 src/03_drivers/dts/Makefile create mode 100644 src/03_drivers/dts/boot.cmd create mode 100644 src/03_drivers/dts/mydt.dts create mode 100644 src/03_drivers/dts/skeleton.c create mode 100644 src/03_drivers/exercice01/Makefile create mode 100644 src/03_drivers/exercice01/main.c create mode 100644 src/03_drivers/exercice02/Makefile create mode 100644 src/03_drivers/exercice02/skeleton.c create mode 100644 src/03_drivers/exercice03/Makefile create mode 100644 src/03_drivers/exercice03/skeleton.c create mode 100644 src/03_drivers/exercice04/Makefile create mode 100644 src/03_drivers/exercice04/main.c create mode 100644 src/03_drivers/exercice05.1/Makefile create mode 100644 src/03_drivers/exercice05.1/skeleton.c create mode 100644 src/03_drivers/exercice05/Makefile create mode 100644 src/03_drivers/exercice05/skeleton.c create mode 100644 src/03_drivers/exercice06.1/Makefile create mode 100644 src/03_drivers/exercice06.1/boot.cmd create mode 100644 src/03_drivers/exercice06.1/mydt.dts create mode 100644 src/03_drivers/exercice06.1/skeleton.c create mode 100644 src/03_drivers/exercice06/Makefile create mode 100644 src/03_drivers/exercice06/mydt.dts create mode 100644 src/03_drivers/exercice06/skeleton.c create mode 100644 src/03_drivers/exercice07/Makefile create mode 100644 src/03_drivers/exercice07/drv/Makefile create mode 100644 src/03_drivers/exercice07/drv/skeleton.c create mode 100644 src/03_drivers/exercice08/Makefile create mode 100644 src/03_drivers/exercice08/drv/Makefile create mode 100644 src/03_drivers/exercice08/drv/skeleton.c create mode 100644 src/03_drivers/exercice09/Makefile create mode 100644 src/03_drivers/exercice09/drv/Makefile create mode 100644 src/03_drivers/exercice09/drv/skeleton.c create mode 100644 src/03_drivers/exercice09/drv/skeleton.h create mode 100644 src/03_drivers/exercice10/Makefile create mode 100644 src/03_drivers/exercice10/skeleton.c create mode 100644 src/03_drivers/sample01/Makefile create mode 100644 src/03_drivers/sample01/main1.c create mode 100644 src/03_drivers/sample01/main2.c create mode 100644 src/03_drivers/sample01/main3.c create mode 100644 src/03_drivers/sample01/test1.txt create mode 100644 src/03_drivers/sample05.1/Makefile create mode 100644 src/03_drivers/sample05.1/skeleton.c create mode 100644 src/03_drivers/sample05/Makefile create mode 100644 src/03_drivers/sample05/skeleton.c create mode 100644 src/03_drivers/sample06.2/Makefile create mode 100644 src/03_drivers/sample06.2/skeleton.c create mode 100644 src/03_drivers/sample06.3/Makefile create mode 100644 src/03_drivers/sample06.3/boot.cmd create mode 100644 src/03_drivers/sample06.3/mydt.dts create mode 100644 src/03_drivers/sample06.3/skeleton.c create mode 100644 src/04_system/silly/CMakeLists.txt create mode 100644 src/04_system/silly/Makefile create mode 100644 src/04_system/silly/silly_led_control.c create mode 100644 src/06_optimization/Makefile create mode 100644 src/06_optimization/clock/Makefile create mode 100644 src/06_optimization/clock/clock.c create mode 100644 src/06_optimization/clock/meazure.xlsx create mode 100644 src/06_optimization/ex01/Makefile create mode 100644 src/06_optimization/ex01/main.c create mode 100644 src/06_optimization/ex02/Makefile create mode 100644 src/06_optimization/ex02/main.c create mode 100644 src/06_optimization/ex03/ApacheAccessLogAnalyzer.cpp create mode 100644 src/06_optimization/ex03/ApacheAccessLogAnalyzer.h create mode 100644 src/06_optimization/ex03/HostCounter.cpp create mode 100644 src/06_optimization/ex03/HostCounter.h create mode 100644 src/06_optimization/ex03/Makefile create mode 100644 src/06_optimization/ex03/main.cpp create mode 100644 src/06_optimization/gcov/Makefile create mode 100644 src/06_optimization/gcov/main.c create mode 100644 src/06_optimization/gpio/Makefile create mode 100644 src/06_optimization/gpio/gpio.c create mode 100644 src/06_optimization/gprof/Makefile create mode 100644 src/06_optimization/gprof/main.c create mode 100644 src/06_optimization/gprof/target.mk create mode 100644 src/06_optimization/mmio/Makefile create mode 100644 src/06_optimization/mmio/mmio.c create mode 100644 src/06_optimization/trace/Makefile create mode 100644 src/06_optimization/trace/example1.sh create mode 100644 src/06_optimization/trace/example2.sh create mode 100644 src/06_optimization/trace/main.c create mode 100644 src/06_optimization/trace/setup.sh create mode 100644 src/07_miniproj/oled/Makefile create mode 100644 src/07_miniproj/oled/main.c create mode 100644 src/07_miniproj/oled/mydt.dts create mode 100644 src/07_miniproj/oled/ssd1306.c create mode 100644 src/07_miniproj/oled/ssd1306.h create mode 100644 src/buildroot_path create mode 100644 src/kernel_settings create mode 100644 src/nanopi.cmake create mode 100644 src/set_host_path diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..455a1f2 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,23 @@ +{ + "name": "csel", + "dockerComposeFile": "docker-compose.yml", + "service": "toolchain", + "workspaceFolder": "/workspace", + "shutdownAction": "stopCompose", + "remoteUser": "root", + "customizations": { + "vscode": { + "settings": {}, + "extensions": [ + "ms-vscode-remote.remote-containers", + "ms-vscode-remote.remote-ssh", + "ms-vscode-remote.remote-ssh-edit", + "ms-vscode-remote.remote-wsl", + "ms-vscode.cpptools", + "ms-vscode.cpptools-extension-pack", + "dan-c-underwood.arm", + "editorconfig.editorconfig" + ] + } + } +} \ No newline at end of file diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml new file mode 100644 index 0000000..f9463b0 --- /dev/null +++ b/.devcontainer/docker-compose.yml @@ -0,0 +1,55 @@ +services: + toolchain: + image: csel/toolchain + build: + context: toolchain + dockerfile: Dockerfile + privileged: true + volumes: + - ..:/workspace:cached + - buildroot:/buildroot + - rootfs:/rootfs + - home:/root-home + + # Overrides default command so things don't shut down after the process ends. + command: /bin/sh -c "while sleep 1000; do :; done" + + samba: + image: dperson/samba + environment: + USERID: 0 + GROUPID: 0 + command: >- + -S + -u "root;toor" + -s "buildroot;/buildroot;no;no" + -s "rootfs;/rootfs;no;no" + -s "workspace;/workspace;no;no" + -s "home;/root-home;no;no" + -g "unix extensions = yes" + -g "vfs objects = catia fruit" + ports: + - "139:139" + - "1445:445" + volumes: + - ..:/workspace + - buildroot:/buildroot + - rootfs:/rootfs + - home:/root-home + + tftp: + image: csel/tftp + build: + context: tftp + dockerfile: Dockerfile + ports: + - "69:69/udp" + # - "10000-10010:10000-10010/udp" + volumes: + - buildroot:/buildroot + command: "dnsmasq --no-daemon --enable-tftp --tftp-root=/buildroot --tftp-no-blocksize --tftp-single-port --log-facility=- --log-dhcp" + +volumes: + buildroot: {} + rootfs: {} + home: {} \ No newline at end of file diff --git a/.devcontainer/tftp/Dockerfile b/.devcontainer/tftp/Dockerfile new file mode 100644 index 0000000..57d8cce --- /dev/null +++ b/.devcontainer/tftp/Dockerfile @@ -0,0 +1,11 @@ +# https://github.com/devcontainers/images/tree/main/src/cpp +ARG VARIANT=ubuntu-24.04 +FROM mcr.microsoft.com/devcontainers/base:${VARIANT} + +EXPOSE 69/udp + +RUN apt-get update && \ + export DEBIAN_FRONTEND=noninteractive && \ + apt-get -y install --no-install-recommends \ + dnsmasq \ + tcpdump diff --git a/.devcontainer/toolchain/Dockerfile b/.devcontainer/toolchain/Dockerfile new file mode 100644 index 0000000..d4d59d6 --- /dev/null +++ b/.devcontainer/toolchain/Dockerfile @@ -0,0 +1,31 @@ +# https://github.com/devcontainers/images/tree/main/src/cpp +ARG VARIANT=ubuntu-24.04 +FROM mcr.microsoft.com/devcontainers/cpp:${VARIANT} + +RUN apt-get update && \ + export DEBIAN_FRONTEND=noninteractive && \ + apt-get -y install --no-install-recommends \ + autoconf \ + automake \ + bc \ + bison \ + clang-format \ + cpio \ + device-tree-compiler \ + file \ + flex \ + just \ + libfl-dev \ + libglib2.0-dev \ + libssl-dev \ + libubootenv-tool \ + libyaml-dev \ + mercurial \ + python3-dev \ + rsync \ + swig \ + u-boot-tools \ + wget + +COPY scripts/* /usr/local/bin/ +RUN chmod +x /usr/local/bin/* \ No newline at end of file diff --git a/.devcontainer/toolchain/scripts/delete-buildroot.sh b/.devcontainer/toolchain/scripts/delete-buildroot.sh new file mode 100755 index 0000000..c6f157e --- /dev/null +++ b/.devcontainer/toolchain/scripts/delete-buildroot.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +set -o errexit +set -o pipefail +set -o nounset +# set -o xtrace + +find /buildroot/ -maxdepth 1 -mindepth 1 -exec rm -rf -- {} + diff --git a/.devcontainer/toolchain/scripts/delete-rootfs.sh b/.devcontainer/toolchain/scripts/delete-rootfs.sh new file mode 100755 index 0000000..f8e80fc --- /dev/null +++ b/.devcontainer/toolchain/scripts/delete-rootfs.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +set -o errexit +set -o pipefail +set -o nounset +# set -o xtrace + +find /rootfs/ -maxdepth 1 -mindepth 1 -exec rm -rf -- {} + diff --git a/.devcontainer/toolchain/scripts/extract-rootfs.sh b/.devcontainer/toolchain/scripts/extract-rootfs.sh new file mode 100755 index 0000000..c5b1aa9 --- /dev/null +++ b/.devcontainer/toolchain/scripts/extract-rootfs.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +set -o errexit +set -o pipefail +set -o nounset +# set -o xtrace + +tar xf /buildroot/output/images/rootfs.tar -C /rootfs/ \ No newline at end of file diff --git a/.devcontainer/toolchain/scripts/get-buildroot.sh b/.devcontainer/toolchain/scripts/get-buildroot.sh new file mode 100755 index 0000000..14c3997 --- /dev/null +++ b/.devcontainer/toolchain/scripts/get-buildroot.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +set -o errexit +set -o pipefail +set -o nounset +# set -o xtrace + +git clone https://gitlab.com/buildroot.org/buildroot.git /buildroot + +cd /buildroot +git checkout -b csel 2022.08.3 + +rsync -a /workspace/config/board/ /buildroot/board/ +rsync -a /workspace/config/configs/ /buildroot/configs/ + +make csel_defconfig diff --git a/.devcontainer/toolchain/scripts/get-go.sh b/.devcontainer/toolchain/scripts/get-go.sh new file mode 100755 index 0000000..0290d6b --- /dev/null +++ b/.devcontainer/toolchain/scripts/get-go.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash + +set -o errexit +set -o pipefail +set -o nounset +# set -o xtrace + +GO_VERSION=1.24.1 + +remove_go() { + rm -rf /usr/local/go + rm -f /etc/profile.d/go.sh +} + +install_go() { + remove_go + ARCH=$(uname -m) + + if [ "$ARCH" = "x86_64" ]; then + ARCH="amd64" + elif [ "$ARCH" = "aarch64" ]; then + ARCH="arm64" + else + echo "Unsupported architecture: ${ARCH}" + exit 1 + fi + + echo "Installing Go ${GO_VERSION} for ${ARCH}" + curl -sSfL https://go.dev/dl/go${GO_VERSION}.linux-${ARCH}.tar.gz | tar -C /usr/local -xz + echo "Go ${GO_VERSION} installed successfully" + echo "export PATH=\$PATH:/usr/local/go/bin" >> /etc/profile.d/go.sh +} + +install_go diff --git a/.devcontainer/toolchain/scripts/get-zig.sh b/.devcontainer/toolchain/scripts/get-zig.sh new file mode 100755 index 0000000..5ccd518 --- /dev/null +++ b/.devcontainer/toolchain/scripts/get-zig.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env bash + +set -o errexit +set -o pipefail +set -o nounset +# set -o xtrace + +ZIG_VERSION=0.14.0 + +remove_zig() { + rm -rf /usr/local/bin/zio + rm -rf /usr/local/lib/zig + rm -rf /usr/local/share/zig +} + +install_zig() { + remove_zig + ARCH=$(uname -m) + TMP=$(mktemp -d) + echo "Installing Zig ${ZIG_VERSION} for ${ARCH}" + echo "Downloading files to ${TMP}" + curl -sSfL https://ziglang.org/download/${ZIG_VERSION}/zig-linux-${ARCH}-${ZIG_VERSION}.tar.xz | tar -xJ -C $TMP + cp -a $TMP/zig-linux-${ARCH}-${ZIG_VERSION}/zig /usr/local/bin/zig + cp -a $TMP/zig-linux-${ARCH}-${ZIG_VERSION}/lib /usr/local/lib/zig + mkdir -p /usr/local/share/zig + cp -a $TMP/zig-linux-${ARCH}-${ZIG_VERSION}/doc /usr/local/share/zig + cp -a $TMP/zig-linux-${ARCH}-${ZIG_VERSION}/README.md /usr/local/share/zig + cp -a $TMP/zig-linux-${ARCH}-${ZIG_VERSION}/LICENSE /usr/local/share/zig + # rm -rf $TMP +} + +install_zig \ No newline at end of file diff --git a/.devcontainer/toolchain/scripts/sync-images.sh b/.devcontainer/toolchain/scripts/sync-images.sh new file mode 100755 index 0000000..f280c10 --- /dev/null +++ b/.devcontainer/toolchain/scripts/sync-images.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +set -o errexit +set -o pipefail +set -o nounset +# set -o xtrace + +rsync -rlt --progress --delete /buildroot/output/images/ /workspace/buildroot-images \ No newline at end of file diff --git a/.devcontainer/toolchain/scripts/sync-rootfs.sh b/.devcontainer/toolchain/scripts/sync-rootfs.sh new file mode 100644 index 0000000..50ee001 --- /dev/null +++ b/.devcontainer/toolchain/scripts/sync-rootfs.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash + +set -o errexit +set -o pipefail +set -o nounset +# set -o xtrace + +SRC=/buildroot/output/target/ +DST=/rootfs/ +RSYNC_IGNORE=/workspace/rsyncignore + +# Copy all non-existing files from SRC to DST +rsync -rlpgoD --itemize-changes \ + --ignore-existing \ + --exclude=THIS_IS_NOT_YOUR_ROOT_FILESYSTEM \ + $SRC $DST + +RSYNC_OPT="" +if [[ -f $RSYNC_IGNORE ]]; then + RSYNC_OPT="--exclude-from=$RSYNC_IGNORE" + echo "Using rsyncignore" +fi + +# Update all existing files in DST from SRC +rsync -crlpgoD --itemize-changes \ + --exclude=/etc/ssh/** \ + --exclude=/etc/hostname \ + --exclude=/etc/group \ + --exclude=/etc/passwd \ + --exclude=/etc/shadow \ + --exclude=/etc/fstab \ + --exclude=/run/lock \ + --exclude=THIS_IS_NOT_YOUR_ROOT_FILESYSTEM \ + $RSYNC_OPT $SRC $DST \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d32b4b3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,35 @@ +images +buildroot-images +src/*/app +.obj +.deleted + +.DS_Store + +src/**/.Module.* +src/**/Module.symvers +src/**/.mymodule.* +src/**/mymodule.* +src/**/.modules.* +src/**/.*.cmd* +src/**/app +src/**/core +src/**/modules.order +src/**/.skeleton.* + +src/**/*.o +src/**/*.dtb +src/**/*.ovl + +src/02_modules/procstat/procstat +src/02_modules/procstat/procstat_s + +src/03_drivers/sample01/main1 +src/03_drivers/sample01/main2 +src/03_drivers/sample01/main3 + +.zig-cache + +src/**/build + +/SOLUTION \ No newline at end of file diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..3c83d0e --- /dev/null +++ b/.vscode/c_cpp_properties.json @@ -0,0 +1,30 @@ +{ + "configurations": [ + { + "name": "Linux", + "includePath": [ + "${workspaceFolder}/**" + ], + "defines": [], + "compilerPath": "/buildroot/output/host/bin/aarch64-linux-gcc", + "cStandard": "gnu17", + "cppStandard": "gnu++17", + "intelliSenseMode": "linux-gcc-arm64" + }, + { + "name": "Linux-Kernel", + "includePath": [ + "${workspaceFolder}/**", + "/buildroot/output/build/linux-headers-5.15.148/include", + "/buildroot/output/build/linux-headers-5.15.148/arch/arm64/include", + "/buildroot/output/build/linux-headers-5.15.148/arch/arm64/include/generated", + "/buildroot/output/build/linux-headers-5.15.148/**" + ], + "defines": [], + "compilerPath": "/buildroot/output/host/bin/aarch64-linux-gcc", + "cStandard": "gnu11", + "intelliSenseMode": "linux-gcc-arm64" + } + ], + "version": 4 +} \ No newline at end of file diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..37a49dd --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,12 @@ +{ + "recommendations": [ + "ms-vscode-remote.remote-containers", + "ms-vscode-remote.remote-ssh", + "ms-vscode-remote.remote-ssh-edit", + "ms-vscode-remote.remote-wsl", + "ms-vscode.cpptools", + "ms-vscode.cpptools-extension-pack", + "dan-c-underwood.arm", + "editorconfig.editorconfig" + ] + } \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..49f7756 --- /dev/null +++ b/README.md @@ -0,0 +1,39 @@ +# Workspace for CSEL + +> :warning: **Open this project in a Docker Container** + +## Cheat Sheet for developers + +Configure with the default settings: + +``` +cd /buildroot +make csel_defconfig +``` + +Make changes if you want: + +``` +make menuconfig +``` + +Build: + +``` +make +``` + +If you change the configuration and want to keep it in the workspace, do the following: + +``` +make savedefconfig +cp /buildroot/configs/csel_defconfig /workspace/config/configs/ +``` + +When the build is done, copy the images from buildroot to the workspace + +``` +sync-images.sh +``` + +You can now "burn" the Compact Flash using [BalenaEtcher](https://www.balena.io/etcher/) diff --git a/config/board/friendlyarm/nanopi-neo-plus2/boot.cmd b/config/board/friendlyarm/nanopi-neo-plus2/boot.cmd new file mode 100644 index 0000000..e2e3de0 --- /dev/null +++ b/config/board/friendlyarm/nanopi-neo-plus2/boot.cmd @@ -0,0 +1,6 @@ +setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk2p2 rootwait + +fatload mmc 0 $kernel_addr_r Image +fatload mmc 0 $fdt_addr_r nanopi-neo-plus2.dtb + +booti $kernel_addr_r - $fdt_addr_r diff --git a/config/board/friendlyarm/nanopi-neo-plus2/genimage.cfg b/config/board/friendlyarm/nanopi-neo-plus2/genimage.cfg new file mode 100644 index 0000000..b64ef0a --- /dev/null +++ b/config/board/friendlyarm/nanopi-neo-plus2/genimage.cfg @@ -0,0 +1,41 @@ +image boot.vfat { + vfat { + label = "boot" + files = { + "Image", + "nanopi-neo-plus2.dtb", + "boot.scr" + } + } + + size = 64M +} + +image sdcard.img { + hdimage { + } + + partition spl { + in-partition-table = "no" + image = "sunxi-spl.bin" + offset = 8K + } + + partition u-boot { + in-partition-table = "no" + image = "u-boot.itb" + offset = 40K + size = 1M # 1MB - 40KB + } + + partition boot { + partition-type = 0xC + bootable = "true" + image = "boot.vfat" + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + } +} diff --git a/config/board/friendlyarm/nanopi-neo-plus2/linux-extras.config b/config/board/friendlyarm/nanopi-neo-plus2/linux-extras.config new file mode 100644 index 0000000..a04e532 --- /dev/null +++ b/config/board/friendlyarm/nanopi-neo-plus2/linux-extras.config @@ -0,0 +1,37 @@ +# +# wireless core +# +CONFIG_WIRELESS=y +CONFIG_CFG80211=y +CONFIG_MAC80211=y +CONFIG_CFG80211_WEXT=y + +# +# wireless drivers +# +CONFIG_WLAN=y +CONFIG_WLAN_VENDOR_BROADCOM=y +CONFIG_BRCMFMAC=m + +# +# enable GPIO sysfs +# +CONFIG_EMBEDDED=y +CONFIG_GPIO_SYSFS=y + +# +# enable CIFS/SAMBA +# +CONFIG_CIFS=y +CONFIG_CIFS_XATTR=y +CONFIG_CIFS_POSIX=y +CONFIG_CIFS_ROOT=y + +# +# network interface device drivers (to mount rootfs) +# +CONFIG_NET_VENDOR_STMICRO=y +CONFIG_STMMAC_ETH=y +CONFIG_STMMAC_PLATFORM=y +CONFIG_DWMAC_SUNXI=y +CONFIG_DWMAC_SUN8I=y \ No newline at end of file diff --git a/config/board/friendlyarm/nanopi-neo-plus2/nanopi-neo-plus2.dts b/config/board/friendlyarm/nanopi-neo-plus2/nanopi-neo-plus2.dts new file mode 100644 index 0000000..f80383b --- /dev/null +++ b/config/board/friendlyarm/nanopi-neo-plus2/nanopi-neo-plus2.dts @@ -0,0 +1,7 @@ +/dts-v1/; + +#include "allwinner/sun50i-h5-nanopi-neo-plus2.dts" + +/ { + /delete-node/ leds; +}; diff --git a/config/board/friendlyarm/nanopi-neo-plus2/patches/arm-trusted-firmware/0001_arm-trusted.patch b/config/board/friendlyarm/nanopi-neo-plus2/patches/arm-trusted-firmware/0001_arm-trusted.patch new file mode 100644 index 0000000..13d9f5a --- /dev/null +++ b/config/board/friendlyarm/nanopi-neo-plus2/patches/arm-trusted-firmware/0001_arm-trusted.patch @@ -0,0 +1,13 @@ +diff --git a/services/std_svc/psci/psci_private.h b/services/std_svc/psci/psci_private.h +index 24a5604e7..806cfb4fb 100644 +--- a/services/std_svc/psci/psci_private.h ++++ b/services/std_svc/psci/psci_private.h +@@ -101,7 +101,7 @@ void psci_acquire_afflvl_locks(int start_afflvl, + aff_map_node_t *mpidr_nodes[]); + void psci_release_afflvl_locks(int start_afflvl, + int end_afflvl, +- mpidr_aff_map_nodes_t mpidr_nodes); ++ aff_map_node_t *mpidr_nodes[]); + void psci_print_affinity_map(void); + void psci_set_max_phys_off_afflvl(uint32_t afflvl); + uint32_t psci_find_max_phys_off_afflvl(uint32_t start_afflvl, diff --git a/config/board/friendlyarm/nanopi-neo-plus2/rootfs_overlay/etc/motd b/config/board/friendlyarm/nanopi-neo-plus2/rootfs_overlay/etc/motd new file mode 100644 index 0000000..4319c76 --- /dev/null +++ b/config/board/friendlyarm/nanopi-neo-plus2/rootfs_overlay/etc/motd @@ -0,0 +1,8 @@ +***************************************************** + __ __ ____ _____ ____ ____ _____ _ + | \/ / ___|| ____| / ___/ ___|| ____| | + | |\/| \___ \| _| _____| | \___ \| _| | | + | | | |___) | |__|_____| |___ ___) | |___| |___ + |_| |_|____/|_____| \____|____/|_____|_____| + +***************************************************** diff --git a/config/board/friendlyarm/nanopi-neo-plus2/rootfs_overlay/etc/network/interfaces b/config/board/friendlyarm/nanopi-neo-plus2/rootfs_overlay/etc/network/interfaces new file mode 100644 index 0000000..1e66a29 --- /dev/null +++ b/config/board/friendlyarm/nanopi-neo-plus2/rootfs_overlay/etc/network/interfaces @@ -0,0 +1,10 @@ +# interface file auto-generated by buildroot for CSEL + +auto lo +iface lo inet loopback + +auto eth0 +iface eth0 inet static + address 192.168.53.14 + netmask 255.255.255.0 + gateway 192.168.53.4 diff --git a/config/board/friendlyarm/nanopi-neo-plus2/rootfs_overlay/etc/ssh/sshd_config b/config/board/friendlyarm/nanopi-neo-plus2/rootfs_overlay/etc/ssh/sshd_config new file mode 100644 index 0000000..cf889ce --- /dev/null +++ b/config/board/friendlyarm/nanopi-neo-plus2/rootfs_overlay/etc/ssh/sshd_config @@ -0,0 +1,117 @@ +# sshd_config for csel + +# This is the sshd server system-wide configuration file. See +# sshd_config(5) for more information. + +# This sshd was compiled with PATH=/bin:/sbin:/usr/bin:/usr/sbin + +# The strategy used for options in the default sshd_config shipped with +# OpenSSH is to specify options with their default value where +# possible, but leave them commented. Uncommented options override the +# default value. + +#Port 22 +#AddressFamily any +#ListenAddress 0.0.0.0 +#ListenAddress :: + +#HostKey /etc/ssh/ssh_host_rsa_key +#HostKey /etc/ssh/ssh_host_ecdsa_key +#HostKey /etc/ssh/ssh_host_ed25519_key + +# Ciphers and keying +#RekeyLimit default none + +# Logging +#SyslogFacility AUTH +#LogLevel INFO + +# Authentication: + +#LoginGraceTime 2m +#PermitRootLogin prohibit-password +PermitRootLogin yes +#StrictModes yes +#MaxAuthTries 6 +#MaxSessions 10 + +#PubkeyAuthentication yes + +# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2 +# but this is overridden so installations will only check .ssh/authorized_keys +AuthorizedKeysFile .ssh/authorized_keys + +#AuthorizedPrincipalsFile none + +#AuthorizedKeysCommand none +#AuthorizedKeysCommandUser nobody + +# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts +#HostbasedAuthentication no +# Change to yes if you don't trust ~/.ssh/known_hosts for +# HostbasedAuthentication +#IgnoreUserKnownHosts no +# Don't read the user's ~/.rhosts and ~/.shosts files +#IgnoreRhosts yes + +# To disable tunneled clear text passwords, change to no here! +#PasswordAuthentication yes +PermitEmptyPasswords yes + +# Change to no to disable s/key passwords +#KbdInteractiveAuthentication yes + +# Kerberos options +#KerberosAuthentication no +#KerberosOrLocalPasswd yes +#KerberosTicketCleanup yes +#KerberosGetAFSToken no + +# GSSAPI options +#GSSAPIAuthentication no +#GSSAPICleanupCredentials yes + +# Set this to 'yes' to enable PAM authentication, account processing, +# and session processing. If this is enabled, PAM authentication will +# be allowed through the KbdInteractiveAuthentication and +# PasswordAuthentication. Depending on your PAM configuration, +# PAM authentication via KbdInteractiveAuthentication may bypass +# the setting of "PermitRootLogin without-password". +# If you just want the PAM account and session checks to run without +# PAM authentication, then enable this but set PasswordAuthentication +# and KbdInteractiveAuthentication to 'no'. +#UsePAM no + +#AllowAgentForwarding yes +#AllowTcpForwarding yes +#GatewayPorts no +#X11Forwarding no +#X11DisplayOffset 10 +#X11UseLocalhost yes +#PermitTTY yes +#PrintMotd yes +#PrintLastLog yes +#TCPKeepAlive yes +#PermitUserEnvironment no +#Compression delayed +#ClientAliveInterval 0 +#ClientAliveCountMax 3 +#UseDNS no +#PidFile /var/run/sshd.pid +#MaxStartups 10:30:100 +#PermitTunnel no +#ChrootDirectory none +#VersionAddendum none + +# no default banner path +#Banner none + +# override default of no subsystems +Subsystem sftp /usr/libexec/sftp-server + +# Example of overriding settings on a per-user basis +#Match User anoncvs +# X11Forwarding no +# AllowTcpForwarding no +# PermitTTY no +# ForceCommand cvs server diff --git a/config/board/friendlyarm/nanopi-neo-plus2/uboot-extras.config b/config/board/friendlyarm/nanopi-neo-plus2/uboot-extras.config new file mode 100644 index 0000000..8c47f75 --- /dev/null +++ b/config/board/friendlyarm/nanopi-neo-plus2/uboot-extras.config @@ -0,0 +1,2 @@ +# Save env to SD Card +CONFIG_ENV_FAT_DEVICE_AND_PART="0:auto" diff --git a/config/configs/csel_defconfig b/config/configs/csel_defconfig new file mode 100644 index 0000000..62bc0d7 --- /dev/null +++ b/config/configs/csel_defconfig @@ -0,0 +1,110 @@ +BR2_aarch64=y +BR2_ARM_FPU_VFPV4=y +BR2_TOOLCHAIN_BUILDROOT_GLIBC=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y +BR2_PACKAGE_GLIBC_UTILS=y +BR2_TOOLCHAIN_BUILDROOT_CXX=y +BR2_PACKAGE_HOST_GDB=y +BR2_PACKAGE_HOST_GDB_TUI=y +BR2_PACKAGE_HOST_GDB_PYTHON3=y +BR2_GLOBAL_PATCH_DIR="board/friendlyarm/nanopi-neo-plus2/patches" +BR2_SSP_NONE=y +BR2_TARGET_GENERIC_HOSTNAME="csel" +BR2_TARGET_GENERIC_ISSUE="Welcome to FriendlyARM Nanopi NEO Plus2" +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y +BR2_ROOTFS_OVERLAY="board/friendlyarm/nanopi-neo-plus2/rootfs_overlay" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/friendlyarm/nanopi-neo-plus2/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/friendlyarm/nanopi-neo-plus2/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15.148" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/friendlyarm/nanopi-neo-plus2/linux-extras.config" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun50i-h5-nanopi-neo-plus2" +BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="board/friendlyarm/nanopi-neo-plus2/nanopi-neo-plus2.dts" +BR2_LINUX_KERNEL_DTB_OVERLAY_SUPPORT=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_PACKAGE_LINUX_TOOLS_PERF=y +BR2_PACKAGE_LINUX_TOOLS_PERF_TUI=y +BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y +BR2_PACKAGE_GDB=y +BR2_PACKAGE_GDB_SERVER=y +BR2_PACKAGE_GDB_DEBUGGER=y +BR2_PACKAGE_GDB_TUI=y +BR2_PACKAGE_LSOF=y +BR2_PACKAGE_LTRACE=y +BR2_PACKAGE_STRACE=y +BR2_PACKAGE_VALGRIND=y +BR2_PACKAGE_DOSFSTOOLS=y +BR2_PACKAGE_DOSFSTOOLS_FATLABEL=y +BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT=y +BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y +BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y +BR2_PACKAGE_E2TOOLS=y +BR2_PACKAGE_SSHFS=y +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XXX=y +BR2_PACKAGE_I2C_TOOLS=y +BR2_PACKAGE_UBOOT_TOOLS=y +BR2_PACKAGE_UBOOT_TOOLS_FIT_SUPPORT=y +BR2_PACKAGE_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT=y +BR2_PACKAGE_UBOOT_TOOLS_FIT_CHECK_SIGN=y +BR2_PACKAGE_MYSQL=y +BR2_PACKAGE_MARIADB=y +BR2_PACKAGE_SQLITE=y +BR2_PACKAGE_SQLITE_STAT4=y +BR2_PACKAGE_SQLITE_ENABLE_COLUMN_METADATA=y +BR2_PACKAGE_SQLITE_ENABLE_FTS3=y +BR2_PACKAGE_SQLITE_ENABLE_JSON1=y +BR2_PACKAGE_SQLITE_ENABLE_UNLOCK_NOTIFY=y +BR2_PACKAGE_SQLITE_SECURE_DELETE=y +BR2_PACKAGE_EXPAT=y +BR2_PACKAGE_JSON_C=y +BR2_PACKAGE_JSONCPP=y +BR2_PACKAGE_LIBYAML=y +BR2_PACKAGE_YAML_CPP=y +BR2_PACKAGE_IFUPDOWN=y +BR2_PACKAGE_IPTABLES=y +BR2_PACKAGE_IPTABLES_BPF_NFSYNPROXY=y +BR2_PACKAGE_IPTABLES_NFTABLES=y +BR2_PACKAGE_IPUTILS=y +BR2_PACKAGE_IW=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WIRELESS_TOOLS_LIB=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_WPA_SUPPLICANT_CLI=y +BR2_PACKAGE_FILE=y +BR2_PACKAGE_COREUTILS=y +BR2_PACKAGE_HTOP=y +BR2_PACKAGE_PROCPS_NG=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="2G" +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://github.com/apritzel/arm-trusted-firmware.git" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="aa75c8da415158a94b82a430b2b40000778e851f" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="sun50iw1p1" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2020.10" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="nanopi_neo_plus2" +BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="board/friendlyarm/nanopi-neo-plus2/uboot-extras.config" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.itb" +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="spl/sunxi-spl.bin" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/friendlyarm/nanopi-neo-plus2/boot.cmd" diff --git a/env-all.code-workspace b/env-all.code-workspace new file mode 100644 index 0000000..454d98c --- /dev/null +++ b/env-all.code-workspace @@ -0,0 +1,32 @@ +{ + "folders": [ + { + "path": "." + }, + { + "path": "src/01_environment/backtrace" + }, + { + "path": "src/01_environment/core_dumps" + }, + { + "path": "src/01_environment/daemon" + }, + { + "path": "src/01_environment/fibonacci" + }, + { + "path": "src/01_environment/memory_leaks" + }, + { + "path": "src/01_environment/process" + }, + { + "path": "src/01_environment/system_calls" + }, + { + "path": "src/01_environment/tracing" + } + ], + "settings": {} +} \ No newline at end of file diff --git a/env-core_dumps.code-workspace b/env-core_dumps.code-workspace new file mode 100644 index 0000000..ffb0dbc --- /dev/null +++ b/env-core_dumps.code-workspace @@ -0,0 +1,11 @@ +{ + "folders": [ + { + "path": "." + }, + { + "path": "src/01_environment/core_dumps" + } + ], + "settings": {} +} \ No newline at end of file diff --git a/env-fibonacci.code-workspace b/env-fibonacci.code-workspace new file mode 100644 index 0000000..70b4cfc --- /dev/null +++ b/env-fibonacci.code-workspace @@ -0,0 +1,11 @@ +{ + "folders": [ + { + "path": "." + }, + { + "path": "src/01_environment/fibonacci" + } + ], + "settings": {} +} \ No newline at end of file diff --git a/modules-ex1.code-workspace b/modules-ex1.code-workspace new file mode 100644 index 0000000..e44d6a9 --- /dev/null +++ b/modules-ex1.code-workspace @@ -0,0 +1,16 @@ +{ + "folders": [ + { + "path": "." + }, + { + "path": "src/02_modules/exercice01" + } + ], + "settings": { + "files.associations": { + "moduleparam.h": "c", + "ranges": "c" + } + } +} \ No newline at end of file diff --git a/src/.clang-format b/src/.clang-format new file mode 100644 index 0000000..39465b8 --- /dev/null +++ b/src/.clang-format @@ -0,0 +1,14 @@ +--- +BasedOnStyle: Google +IndentWidth: 4 +--- +Language: Cpp +ColumnLimit: 80 +BreakBeforeBraces: Custom +AlignConsecutiveAssignments: true +DerivePointerAlignment: false +PointerAlignment: Left +BinPackArguments: false +BinPackParameters: false +BraceWrapping: + AfterFunction: true diff --git a/src/01_environment/Makefile b/src/01_environment/Makefile new file mode 100644 index 0000000..4f90695 --- /dev/null +++ b/src/01_environment/Makefile @@ -0,0 +1,4 @@ +DIRS=$(filter-out Makefile appl.mk dot-vscode, $(wildcard *)) +all clean clean_all: + for dir in $(DIRS); do $(MAKE) $@ -C $$dir; done + diff --git a/src/01_environment/appl.mk b/src/01_environment/appl.mk new file mode 100644 index 0000000..667cb94 --- /dev/null +++ b/src/01_environment/appl.mk @@ -0,0 +1,45 @@ +CFLAGS=-Wall -Wextra -g -c -O0 -MD -std=gnu11 +CFLAGS+=$(EXTRA_CFLAGS) + +TOOLCHAIN_PATH=/buildroot/output/host/usr/bin/ +TOOLCHAIN=$(TOOLCHAIN_PATH)aarch64-linux- +CFLAGS+=-mcpu=cortex-a53 -funwind-tables +##CFLAGS+=-O2 -fno-omit-frame-pointer +OBJDIR=.obj/nano +EXEC=$(EXE) + +ifeq ($(target),host) +EXEC=$(EXE)_h +endif + +CC=$(TOOLCHAIN)gcc +LD=$(TOOLCHAIN)gcc +AR=$(TOOLCHAIN)ar +STRIP=$(TOOLCHAIN)strip + +OBJDIR=.obj/$(target) +OBJS= $(addprefix $(OBJDIR)/, $(SRCS:.c=.o)) + +$(OBJDIR)/%o: %c + $(CC) $(CFLAGS) $< -o $@ + +all: $(OBJDIR)/ $(EXEC) + +$(EXEC): $(OBJS) $(LINKER_SCRIPT) + $(LD) $(OBJS) $(LDFLAGS) -o $@ + +$(OBJDIR)/: + mkdir -p $(OBJDIR) + +clean: + rm -Rf $(OBJDIR) $(EXEC) $(EXEC)_s *~ + +clean_all: clean + rm -Rf .obj $(EXE) $(EXE)_s $(EXE)_a $(EXE)_a_s $(EXE)_h $(EXE)_h_s + +-include $(OBJS:.o=.d) + +.PHONY: all clean clean_all + + + diff --git a/src/01_environment/backtrace/.vscode/launch.json b/src/01_environment/backtrace/.vscode/launch.json new file mode 100644 index 0000000..56a80dd --- /dev/null +++ b/src/01_environment/backtrace/.vscode/launch.json @@ -0,0 +1,21 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + + { + "name": "(gdb) Launch", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/app", + "stopAtEntry": true, + "cwd": "${workspaceFolder}", + "externalConsole": false, + "MIMode": "gdb", + "miDebuggerServerAddress": "192.168.0.14:1234", + "miDebuggerPath": "/buildroot/output/host/bin/aarch64-linux-gdb" + } + ] +} diff --git a/src/01_environment/backtrace/.vscode/tasks.json b/src/01_environment/backtrace/.vscode/tasks.json new file mode 100644 index 0000000..75f4b5a --- /dev/null +++ b/src/01_environment/backtrace/.vscode/tasks.json @@ -0,0 +1,14 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "label": "gdbserver", + "type": "shell", + "command": [ + "ssh -t root@192.168.0.14 '/usr/bin/gdbserver :1234", + "${workspaceFolder}/app'"] + } + ] +} \ No newline at end of file diff --git a/src/01_environment/backtrace/CMakeLists.txt b/src/01_environment/backtrace/CMakeLists.txt new file mode 100644 index 0000000..38c8c3a --- /dev/null +++ b/src/01_environment/backtrace/CMakeLists.txt @@ -0,0 +1,5 @@ +cmake_minimum_required(VERSION 3.28) +project(backtrace) + +include(../../nanopi.cmake) +add_executable(backtrace main.c) \ No newline at end of file diff --git a/src/01_environment/backtrace/Makefile b/src/01_environment/backtrace/Makefile new file mode 100644 index 0000000..87b69cc --- /dev/null +++ b/src/01_environment/backtrace/Makefile @@ -0,0 +1,5 @@ +EXE=app +SRCS=$(wildcard *.c) + +# Include the standard application Makefile for the CSEL1 labs +include ../appl.mk diff --git a/src/01_environment/backtrace/justfile b/src/01_environment/backtrace/justfile new file mode 100644 index 0000000..b965e1c --- /dev/null +++ b/src/01_environment/backtrace/justfile @@ -0,0 +1,5 @@ +build: + cmake -S . -B build && cmake --build build + +clean: + rm -rf build diff --git a/src/01_environment/backtrace/main.c b/src/01_environment/backtrace/main.c new file mode 100644 index 0000000..8720547 --- /dev/null +++ b/src/01_environment/backtrace/main.c @@ -0,0 +1,63 @@ +/** + * Copyright 2015 University of Applied Sciences Western Switzerland / Fribourg + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Module: MA-CSEL1 - Building Embedded Systems under Linux + * + * Abstract: Introduction to the Embedded Linux Development Environment + * + * Purpose: Backtracing demo program. + * + * Autĥor: Daniel Gachet + * Date: 28.08.2015 + */ + +#include +#include +#include +#include +#include + +#define SIZE 1000 + +void signal_handler(int __attribute__((unused)) sig) +{ + void* buffer[SIZE]; + int nptrs = backtrace(buffer, SIZE); + printf("backtrace() returned %d addresses\n", nptrs); + backtrace_symbols_fd (buffer, nptrs, STDOUT_FILENO); + exit(EXIT_FAILURE); +} + +void access_data() +{ + int* p=0; + *p=10; +} + +void call (int n) +{ + if (n>0) call (n-1); + access_data(); +} + + +int main () +{ + signal(SIGSEGV, signal_handler); // Invalid memory segment access + + call(10); + + return 0; +} diff --git a/src/01_environment/core_dumps/.vscode/launch.json b/src/01_environment/core_dumps/.vscode/launch.json new file mode 100644 index 0000000..8d74da1 --- /dev/null +++ b/src/01_environment/core_dumps/.vscode/launch.json @@ -0,0 +1,32 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "(gdb) Launch", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/app", + "stopAtEntry": true, + "cwd": "${workspaceFolder}", + "externalConsole": false, + "MIMode": "gdb", + "miDebuggerServerAddress": "192.168.0.14:1234", + "miDebuggerPath": "/buildroot/output/host/bin/aarch64-linux-gdb" + }, + { + "name": "(gdb) debug Core Dumped", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/app", + "stopAtEntry": true, + "cwd": "${workspaceFolder}", + "externalConsole": false, + "MIMode": "gdb", + "miDebuggerPath": "/buildroot/output/host/bin/aarch64-linux-gdb", + "coreDumpPath": "${workspaceFolder}/core" + } + ] +} diff --git a/src/01_environment/core_dumps/.vscode/tasks.json b/src/01_environment/core_dumps/.vscode/tasks.json new file mode 100644 index 0000000..75f4b5a --- /dev/null +++ b/src/01_environment/core_dumps/.vscode/tasks.json @@ -0,0 +1,14 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "label": "gdbserver", + "type": "shell", + "command": [ + "ssh -t root@192.168.0.14 '/usr/bin/gdbserver :1234", + "${workspaceFolder}/app'"] + } + ] +} \ No newline at end of file diff --git a/src/01_environment/core_dumps/CMakeLists.txt b/src/01_environment/core_dumps/CMakeLists.txt new file mode 100644 index 0000000..e266d04 --- /dev/null +++ b/src/01_environment/core_dumps/CMakeLists.txt @@ -0,0 +1,5 @@ +cmake_minimum_required(VERSION 3.28) +project(core-dumps) + +include(../../nanopi.cmake) +add_executable(core-dumps core_dumps.c) \ No newline at end of file diff --git a/src/01_environment/core_dumps/Makefile b/src/01_environment/core_dumps/Makefile new file mode 100644 index 0000000..87b69cc --- /dev/null +++ b/src/01_environment/core_dumps/Makefile @@ -0,0 +1,5 @@ +EXE=app +SRCS=$(wildcard *.c) + +# Include the standard application Makefile for the CSEL1 labs +include ../appl.mk diff --git a/src/01_environment/core_dumps/core_dumps.c b/src/01_environment/core_dumps/core_dumps.c new file mode 100644 index 0000000..100582c --- /dev/null +++ b/src/01_environment/core_dumps/core_dumps.c @@ -0,0 +1,45 @@ +/** + * Copyright 2015 University of Applied Sciences Western Switzerland / Fribourg + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Module: MA-CSEL1 - Building Embedded Systems under Linux + * + * Abstract: Introduction to the Embedded Linux Development Environment + * + * Purpose: Core dump demo program. + * Before to call this demo program don't forget set + * $ ulimit -c 10000 + * + * Autĥor: Daniel Gachet + * Date: 28.08.2015 + */ + +void access_data() +{ + int* p=0; + *p=10; +} + +void call (int n) +{ + if (n>0) call (n-1); + access_data(); +} + + +int main () +{ + call(10); + return 0; +} diff --git a/src/01_environment/core_dumps/justfile b/src/01_environment/core_dumps/justfile new file mode 100644 index 0000000..b965e1c --- /dev/null +++ b/src/01_environment/core_dumps/justfile @@ -0,0 +1,5 @@ +build: + cmake -S . -B build && cmake --build build + +clean: + rm -rf build diff --git a/src/01_environment/daemon/.vscode/launch.json b/src/01_environment/daemon/.vscode/launch.json new file mode 100644 index 0000000..56a80dd --- /dev/null +++ b/src/01_environment/daemon/.vscode/launch.json @@ -0,0 +1,21 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + + { + "name": "(gdb) Launch", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/app", + "stopAtEntry": true, + "cwd": "${workspaceFolder}", + "externalConsole": false, + "MIMode": "gdb", + "miDebuggerServerAddress": "192.168.0.14:1234", + "miDebuggerPath": "/buildroot/output/host/bin/aarch64-linux-gdb" + } + ] +} diff --git a/src/01_environment/daemon/.vscode/tasks.json b/src/01_environment/daemon/.vscode/tasks.json new file mode 100644 index 0000000..75f4b5a --- /dev/null +++ b/src/01_environment/daemon/.vscode/tasks.json @@ -0,0 +1,14 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "label": "gdbserver", + "type": "shell", + "command": [ + "ssh -t root@192.168.0.14 '/usr/bin/gdbserver :1234", + "${workspaceFolder}/app'"] + } + ] +} \ No newline at end of file diff --git a/src/01_environment/daemon/CMakeLists.txt b/src/01_environment/daemon/CMakeLists.txt new file mode 100644 index 0000000..17ecf90 --- /dev/null +++ b/src/01_environment/daemon/CMakeLists.txt @@ -0,0 +1,5 @@ +cmake_minimum_required(VERSION 3.28) +project(daemon) + +include(../../nanopi.cmake) +add_executable(daemon daemon.c) \ No newline at end of file diff --git a/src/01_environment/daemon/Makefile b/src/01_environment/daemon/Makefile new file mode 100644 index 0000000..87b69cc --- /dev/null +++ b/src/01_environment/daemon/Makefile @@ -0,0 +1,5 @@ +EXE=app +SRCS=$(wildcard *.c) + +# Include the standard application Makefile for the CSEL1 labs +include ../appl.mk diff --git a/src/01_environment/daemon/S60appl b/src/01_environment/daemon/S60appl new file mode 100644 index 0000000..1286746 --- /dev/null +++ b/src/01_environment/daemon/S60appl @@ -0,0 +1,24 @@ +#!/bin/sh +# +# Daemon application +# +case "$1" in + start) + /usr/local/app_a + ;; + stop) + killall app_a + ;; + restart|reload) + killall app_a + /usr/local/app_a + ;; + *) + echo $"Usage: $0 {start|stop|restart}" + exit 1 +esac + +echo "Daemon application launched" + +exit $? + diff --git a/src/01_environment/daemon/daemon.c b/src/01_environment/daemon/daemon.c new file mode 100644 index 0000000..2e4364c --- /dev/null +++ b/src/01_environment/daemon/daemon.c @@ -0,0 +1,152 @@ +/** + * Copyright 2015 University of Applied Sciences Western Switzerland / Fribourg + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Module: MA-CSEL1 - Building Embedded Systems under Linux + * + * Abstract: Introduction to the Embedded Linux Development Environment + * + * Purpose: This module implements a simple daemon to be launched + * from a /etc/init.d/S??_* script + * + * Autĥor: Daniel Gachet + * Date: 28.08.2015 + */ +#define _XOPEN_SOURCE 600 +#define _DEFAULT_SOURCE + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#define UNUSED(x) (void)(x) + +static int signal_catched = 0; + +static void catch_signal (int signal) +{ + syslog (LOG_INFO, "signal=%d catched\n", signal); + signal_catched++; +} + +static void fork_process() +{ + pid_t pid = fork(); + switch (pid) { + case 0: break; // child process has been created + case -1: syslog (LOG_ERR, "ERROR while forking"); exit (1); break; + default: exit(0); // exit parent process with success + } +} + +int main(int argc, char* argv[]) +{ + UNUSED(argc); UNUSED(argv); + + // 1. fork off the parent process + fork_process(); + + // 2. create new session + if (setsid() == -1) { + syslog (LOG_ERR, "ERROR while creating new session"); + exit (1); + } + + // 3. fork again to get rid of session leading process + fork_process(); + + // 4. capture all required signals + struct sigaction act = {.sa_handler = catch_signal,}; + sigaction (SIGHUP, &act, NULL); // 1 - hangup + sigaction (SIGINT, &act, NULL); // 2 - terminal interrupt + sigaction (SIGQUIT, &act, NULL); // 3 - terminal quit + sigaction (SIGABRT, &act, NULL); // 6 - abort + sigaction (SIGTERM, &act, NULL); // 15 - termination + sigaction (SIGTSTP, &act, NULL); // 19 - terminal stop signal + + // 5. update file mode creation mask + umask(0027); + + // 6. change working directory to appropriate place + if (chdir ("/") == -1) { + syslog (LOG_ERR, "ERROR while changing to working directory"); + exit (1); + } + + // 7. close all open file descriptors + for (int fd = sysconf(_SC_OPEN_MAX); fd >= 0; fd--) { + close (fd); + } + + // 8. redirect stdin, stdout and stderr to /dev/null + if (open ("/dev/null", O_RDWR) != STDIN_FILENO) { + syslog (LOG_ERR, "ERROR while opening '/dev/null' for stdin"); + exit (1); + } + if (dup2 (STDIN_FILENO, STDOUT_FILENO) != STDOUT_FILENO) { + syslog (LOG_ERR, "ERROR while opening '/dev/null' for stdout"); + exit (1); + } + if (dup2 (STDIN_FILENO, STDERR_FILENO) != STDERR_FILENO) { + syslog (LOG_ERR, "ERROR while opening '/dev/null' for stderr"); + exit (1); + } + + // 9. option: open syslog for message logging + openlog (NULL, LOG_NDELAY | LOG_PID, LOG_DAEMON); + syslog (LOG_INFO, "Daemon has started..."); + + // 10. option: get effective user and group id for appropriate's one + struct passwd* pwd = getpwnam ("daemon"); + if (pwd == 0) { + syslog (LOG_ERR, "ERROR while reading daemon password file entry"); + exit (1); + } + + // 11. option: change root directory + if (chroot (".") == -1) { + syslog (LOG_ERR, "ERROR while changing to new root directory"); + exit (1); + } + + // 12. option: change effective user and group id for appropriate's one + if (setegid (pwd->pw_gid) == -1) { + syslog (LOG_ERR, "ERROR while setting new effective group id"); + exit (1); + } + if (seteuid (pwd->pw_uid) == -1) { + syslog (LOG_ERR, "ERROR while setting new effective user id"); + exit (1); + } + + // 13. implement daemon body... + int t = 30; + do { + t = sleep(t); + } while (t > 0); + + syslog (LOG_INFO, "daemon stopped. Number of signals catched=%d\n", signal_catched); + closelog(); + + return 0; +} diff --git a/src/01_environment/daemon/justfile b/src/01_environment/daemon/justfile new file mode 100644 index 0000000..b965e1c --- /dev/null +++ b/src/01_environment/daemon/justfile @@ -0,0 +1,5 @@ +build: + cmake -S . -B build && cmake --build build + +clean: + rm -rf build diff --git a/src/01_environment/dot-vscode/deploy.sh b/src/01_environment/dot-vscode/deploy.sh new file mode 100755 index 0000000..2f12ec5 --- /dev/null +++ b/src/01_environment/dot-vscode/deploy.sh @@ -0,0 +1,24 @@ +set -o errexit +set -o pipefail +set -o nounset +# set -o xtrace + +__dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +__root="$(cd "$(dirname "${__dir}")" && pwd)" + +targets=""" +backtrace +core_dumps +daemon +fibonacci +memory_leaks +process +system_calls +tracing +""" + +for i in $targets; do + mkdir -p $__root/$i/.vscode + cp $__dir/launch.json $__root/$i/.vscode + cp $__dir/tasks.json $__root/$i/.vscode +done \ No newline at end of file diff --git a/src/01_environment/dot-vscode/launch.json b/src/01_environment/dot-vscode/launch.json new file mode 100644 index 0000000..56a80dd --- /dev/null +++ b/src/01_environment/dot-vscode/launch.json @@ -0,0 +1,21 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + + { + "name": "(gdb) Launch", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/app", + "stopAtEntry": true, + "cwd": "${workspaceFolder}", + "externalConsole": false, + "MIMode": "gdb", + "miDebuggerServerAddress": "192.168.0.14:1234", + "miDebuggerPath": "/buildroot/output/host/bin/aarch64-linux-gdb" + } + ] +} diff --git a/src/01_environment/dot-vscode/launch.json_presque b/src/01_environment/dot-vscode/launch.json_presque new file mode 100644 index 0000000..422d731 --- /dev/null +++ b/src/01_environment/dot-vscode/launch.json_presque @@ -0,0 +1,43 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "(gdb) Launch", + "type": "cppdbg", + "request": "launch", + "program": "app", + "args": [ + "2" + ], + "stopAtEntry": true, + "cwd": "${workspaceFolder}", + "environment": [], + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ], + // "miDebuggerServerAddress": "192.168.0.14:1234", + // "miDebuggerPath": "/buildroot/output/host/bin/aarch64-linux-gdb", + "pipeTransport": { + // "pipeCwd": "/usr/bin", + "pipeProgram": "/usr/bin/ssh", + "pipeArgs": [ + "root@192.168.0.14" + ], + "debuggerPath": "/usr/bin/gdb" + // "debuggerPath": "stdbuf -i0 -o0 -e0 /usr/bin/gdb" + }, + // "logging": { + // "engineLogging": true, + // }, + } + ] +} \ No newline at end of file diff --git a/src/01_environment/dot-vscode/tasks.json b/src/01_environment/dot-vscode/tasks.json new file mode 100644 index 0000000..75f4b5a --- /dev/null +++ b/src/01_environment/dot-vscode/tasks.json @@ -0,0 +1,14 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "label": "gdbserver", + "type": "shell", + "command": [ + "ssh -t root@192.168.0.14 '/usr/bin/gdbserver :1234", + "${workspaceFolder}/app'"] + } + ] +} \ No newline at end of file diff --git a/src/01_environment/fibonacci/.gitignore b/src/01_environment/fibonacci/.gitignore new file mode 100644 index 0000000..f3ed631 --- /dev/null +++ b/src/01_environment/fibonacci/.gitignore @@ -0,0 +1 @@ +fibonacci \ No newline at end of file diff --git a/src/01_environment/fibonacci/.vscode/launch.json b/src/01_environment/fibonacci/.vscode/launch.json new file mode 100644 index 0000000..56a80dd --- /dev/null +++ b/src/01_environment/fibonacci/.vscode/launch.json @@ -0,0 +1,21 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + + { + "name": "(gdb) Launch", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/app", + "stopAtEntry": true, + "cwd": "${workspaceFolder}", + "externalConsole": false, + "MIMode": "gdb", + "miDebuggerServerAddress": "192.168.0.14:1234", + "miDebuggerPath": "/buildroot/output/host/bin/aarch64-linux-gdb" + } + ] +} diff --git a/src/01_environment/fibonacci/.vscode/tasks.json b/src/01_environment/fibonacci/.vscode/tasks.json new file mode 100644 index 0000000..91dd9de --- /dev/null +++ b/src/01_environment/fibonacci/.vscode/tasks.json @@ -0,0 +1,14 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "label": "gdbserver", + "type": "shell", + "command": [ + "ssh -t root@192.168.0.14 '/usr/bin/gdbserver :1234", + "${workspaceFolder}/app 2'"] + } + ] +} \ No newline at end of file diff --git a/src/01_environment/fibonacci/CMakeLists.txt b/src/01_environment/fibonacci/CMakeLists.txt new file mode 100644 index 0000000..f566b73 --- /dev/null +++ b/src/01_environment/fibonacci/CMakeLists.txt @@ -0,0 +1,5 @@ +cmake_minimum_required(VERSION 3.28) +project(fibonacci) + +include(../../nanopi.cmake) +add_executable(fibonacci fibonacci.c) \ No newline at end of file diff --git a/src/01_environment/fibonacci/Makefile b/src/01_environment/fibonacci/Makefile new file mode 100644 index 0000000..87b69cc --- /dev/null +++ b/src/01_environment/fibonacci/Makefile @@ -0,0 +1,5 @@ +EXE=app +SRCS=$(wildcard *.c) + +# Include the standard application Makefile for the CSEL1 labs +include ../appl.mk diff --git a/src/01_environment/fibonacci/fibonacci.c b/src/01_environment/fibonacci/fibonacci.c new file mode 100644 index 0000000..7d5b8fc --- /dev/null +++ b/src/01_environment/fibonacci/fibonacci.c @@ -0,0 +1,88 @@ +/** + * Copyright 2015 University of Applied Sciences Western Switzerland / Fribourg + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Module: MA-CSEL1 - Building Embedded Systems under Linux + * + * Abstract: Introduction to the Embedded Linux Development Environment + * + * Purpose: Fibonacci numbers: a simple demo program to exercice debugging + * facilities on embedded Linux system. + * + * -->> tracing with printf + * + * Autĥor: Daniel Gachet + * Date: 28.08.2015 + */ + +#include +#include + +/** + * The Fibonacci numbers form a sequence of integers, mathematically defined by + * F(0)=0; F(1)=1; F(n) = F(n - 1) + F(n - 2) for n > 1. + * + * This results in the following sequence of numbers: 0, 1, 1, 2, 3, 5, 8, 13, + * 21, 34, 55, 89, 144, 233, 377, 610, 987, ... + * so that each new number is the sum of the previous two, after seeding the + * sequence with the starting pair 0, 1. + * + * @param n value for which the Fibonacci number should be computed + * @return Fibonacci number + */ +long fibonacci_r(long n) +{ + if (n <= 1) + return n; + return fibonacci_r(n - 1) + fibonacci_r(n - 2); +} + +long fibonacci_i(long n) +{ + long f0 = 0; + long f1 = 1; + while (n > 0) + { + f1 = f1 + f0; + f0 = f1 - f0; // WAT !!! + n--; + } + return f0; +} + +/** + * Main program computing the Fibonacci numbers for a given sequence starting + * from 0 to a number specified at the command line. + */ +int main(int argc, char **argv) +{ + long n = 0; + long i = 0; + + if (argc == 2) + { + n = atol(argv[1]); + } + + printf("%s, %d, %s, %s\n", __FILE__, __LINE__, __DATE__, __TIME__); + printf("The first %ld Fibonacci numbers are:\n", n); + + for (i = 0; i < n; i++) + { + printf("%ld%s", fibonacci_i(i), i < n-1 ? ", " : ""); + } + printf("\n"); + + return 0; +} diff --git a/src/01_environment/fibonacci/justfile b/src/01_environment/fibonacci/justfile new file mode 100644 index 0000000..b965e1c --- /dev/null +++ b/src/01_environment/fibonacci/justfile @@ -0,0 +1,5 @@ +build: + cmake -S . -B build && cmake --build build + +clean: + rm -rf build diff --git a/src/01_environment/justfile b/src/01_environment/justfile new file mode 100644 index 0000000..2ca271f --- /dev/null +++ b/src/01_environment/justfile @@ -0,0 +1,9 @@ +build-all: + #!/bin/bash + for i in $(dirname */CMAkeLists.txt); do + cd $i && just build && cd .. + done + +clean-all: + rm -Rf */build + diff --git a/src/01_environment/memory_leaks/.vscode/launch.json b/src/01_environment/memory_leaks/.vscode/launch.json new file mode 100644 index 0000000..56a80dd --- /dev/null +++ b/src/01_environment/memory_leaks/.vscode/launch.json @@ -0,0 +1,21 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + + { + "name": "(gdb) Launch", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/app", + "stopAtEntry": true, + "cwd": "${workspaceFolder}", + "externalConsole": false, + "MIMode": "gdb", + "miDebuggerServerAddress": "192.168.0.14:1234", + "miDebuggerPath": "/buildroot/output/host/bin/aarch64-linux-gdb" + } + ] +} diff --git a/src/01_environment/memory_leaks/.vscode/tasks.json b/src/01_environment/memory_leaks/.vscode/tasks.json new file mode 100644 index 0000000..75f4b5a --- /dev/null +++ b/src/01_environment/memory_leaks/.vscode/tasks.json @@ -0,0 +1,14 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "label": "gdbserver", + "type": "shell", + "command": [ + "ssh -t root@192.168.0.14 '/usr/bin/gdbserver :1234", + "${workspaceFolder}/app'"] + } + ] +} \ No newline at end of file diff --git a/src/01_environment/memory_leaks/CMakeLists.txt b/src/01_environment/memory_leaks/CMakeLists.txt new file mode 100644 index 0000000..4061f42 --- /dev/null +++ b/src/01_environment/memory_leaks/CMakeLists.txt @@ -0,0 +1,5 @@ +cmake_minimum_required(VERSION 3.28) +project(memory-leaks) + +include(../../nanopi.cmake) +add_executable(memory-leaks mem_leaks.c) \ No newline at end of file diff --git a/src/01_environment/memory_leaks/Makefile b/src/01_environment/memory_leaks/Makefile new file mode 100644 index 0000000..87b69cc --- /dev/null +++ b/src/01_environment/memory_leaks/Makefile @@ -0,0 +1,5 @@ +EXE=app +SRCS=$(wildcard *.c) + +# Include the standard application Makefile for the CSEL1 labs +include ../appl.mk diff --git a/src/01_environment/memory_leaks/justfile b/src/01_environment/memory_leaks/justfile new file mode 100644 index 0000000..b965e1c --- /dev/null +++ b/src/01_environment/memory_leaks/justfile @@ -0,0 +1,5 @@ +build: + cmake -S . -B build && cmake --build build + +clean: + rm -rf build diff --git a/src/01_environment/memory_leaks/mem_leaks.c b/src/01_environment/memory_leaks/mem_leaks.c new file mode 100644 index 0000000..1804ad5 --- /dev/null +++ b/src/01_environment/memory_leaks/mem_leaks.c @@ -0,0 +1,113 @@ +/** + * Copyright 2015 University of Applied Sciences Western Switzerland / Fribourg + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Module: MA-CSEL1 - Building Embedded Systems under Linux + * + * Abstract: Introduction to the Embedded Linux Development Environment + * + * Purpose: Memory leak demo program + * call this demo program with + * $ valgrind --leak-check=full ./app_a + * + * Autĥor: Daniel Gachet + * Date: 28.08.2015 + */ + +#include +#include +#include + +#ifdef DEBUG +#define TRACE(x) printf x +#else +#define TRACE(x) +#endif + +struct alpha +{ + int attr; + struct alpha* next; +}; + + +void alloc1 (struct alpha** root) +{ + static int cnt=0; + + struct alpha* ele = malloc (sizeof(*ele)); + ele->next = 0; + ele->attr = cnt++; + if (*root == 0) { + *root = ele; + } else { + struct alpha* n = *root; + while (n->next != 0) n = n->next; + n->next = ele; + } +} + +void alloc2(struct alpha** root) +{ + static int cnt=0; + + struct alpha* ele = malloc (sizeof(*ele)); + ele->next = 0; + ele->attr = cnt++; + if (*root == 0) { + *root = ele; + } else { + struct alpha* n = *root; + while (n->next != 0) n = n->next; + n->next = ele; + } +} + +void alloc(struct alpha** root) +{ + static int x=0; + + if (x == 0) alloc1(root); + else alloc2 (root); + + x = (x + 1) % 2; +} + +void dealloc(struct alpha** root) +{ + struct alpha* ele = *root; + if (*root != 0) *root = ele->next; + free (ele); +} + +int main () +{ + struct alpha* root = 0; + + for (int i=0; i<4000; i++) alloc (&root); + + struct alpha* p = root; + int i = 0; + while (p != 0) { + TRACE (("ele %2d, attr=%2d, ptr=%p\n", i, p->attr, p)); + p = p->next; + i++; + } + + for (int i=0; i<15; i++) dealloc (&root); + + return 0; +} + + diff --git a/src/01_environment/process/.vscode/launch.json b/src/01_environment/process/.vscode/launch.json new file mode 100644 index 0000000..56a80dd --- /dev/null +++ b/src/01_environment/process/.vscode/launch.json @@ -0,0 +1,21 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + + { + "name": "(gdb) Launch", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/app", + "stopAtEntry": true, + "cwd": "${workspaceFolder}", + "externalConsole": false, + "MIMode": "gdb", + "miDebuggerServerAddress": "192.168.0.14:1234", + "miDebuggerPath": "/buildroot/output/host/bin/aarch64-linux-gdb" + } + ] +} diff --git a/src/01_environment/process/.vscode/tasks.json b/src/01_environment/process/.vscode/tasks.json new file mode 100644 index 0000000..75f4b5a --- /dev/null +++ b/src/01_environment/process/.vscode/tasks.json @@ -0,0 +1,14 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "label": "gdbserver", + "type": "shell", + "command": [ + "ssh -t root@192.168.0.14 '/usr/bin/gdbserver :1234", + "${workspaceFolder}/app'"] + } + ] +} \ No newline at end of file diff --git a/src/01_environment/process/CMakeLists.txt b/src/01_environment/process/CMakeLists.txt new file mode 100644 index 0000000..982c2e7 --- /dev/null +++ b/src/01_environment/process/CMakeLists.txt @@ -0,0 +1,5 @@ +cmake_minimum_required(VERSION 3.28) +project(process) + +include(../../nanopi.cmake) +add_executable(process process.c) \ No newline at end of file diff --git a/src/01_environment/process/Makefile b/src/01_environment/process/Makefile new file mode 100644 index 0000000..87b69cc --- /dev/null +++ b/src/01_environment/process/Makefile @@ -0,0 +1,5 @@ +EXE=app +SRCS=$(wildcard *.c) + +# Include the standard application Makefile for the CSEL1 labs +include ../appl.mk diff --git a/src/01_environment/process/justfile b/src/01_environment/process/justfile new file mode 100644 index 0000000..b965e1c --- /dev/null +++ b/src/01_environment/process/justfile @@ -0,0 +1,5 @@ +build: + cmake -S . -B build && cmake --build build + +clean: + rm -rf build diff --git a/src/01_environment/process/process.c b/src/01_environment/process/process.c new file mode 100644 index 0000000..160ef1d --- /dev/null +++ b/src/01_environment/process/process.c @@ -0,0 +1,133 @@ +/** + * Copyright 2015 University of Applied Sciences Western Switzerland / Fribourg + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Module: MA-CSEL1 - Building Embedded Systems under Linux + * + * Abstract: Introduction to the Embedded Linux Development Environment + * + * Purpose: This module implements a simple application to be launched from + * /etc/inttab. + * -->> tracing with syslog + * + * Autĥor: Daniel Gachet + * Date: 28.08.2015 + */ +#define _XOPEN_SOURCE 600 +#define _DEFAULT_SOURCE + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#define UNUSED(x) (void)(x) + +static int signal_catched = 0; + +static void catch_signal (int signal) +{ + syslog (LOG_INFO, "signal=%d catched\n", signal); + signal_catched++; +} + +int main(int argc, char* argv[]) +{ + UNUSED(argc); UNUSED(argv); + + // daemon's steps 1 to 3 skipt + + // 4. capture all required signals + struct sigaction act = {.sa_handler = catch_signal,}; + sigaction (SIGHUP, &act, NULL); // 1 - hangup + sigaction (SIGINT, &act, NULL); // 2 - terminal interrupt + sigaction (SIGQUIT, &act, NULL); // 3 - terminal quit + sigaction (SIGABRT, &act, NULL); // 6 - abort + sigaction (SIGTERM, &act, NULL); // 15 - termination + sigaction (SIGTSTP, &act, NULL); // 19 - terminal stop signal + + // 5. update file mode creation mask + umask(0027); + + // 6. change working directory to appropriate place + if (chdir ("/") == -1) { + syslog (LOG_ERR, "ERROR while changing to working directory"); + exit (1); + } + + // 7. close all open file descriptors + for (int fd = sysconf(_SC_OPEN_MAX); fd >= 0; fd--) { + close (fd); + } + + // 8. redirect stdin, stdout and stderr to /dev/null + if (open ("/dev/null", O_RDWR) != STDIN_FILENO) { + syslog (LOG_ERR, "ERROR while opening '/dev/null' for stdin"); + exit (1); + } + if (dup2 (STDIN_FILENO, STDOUT_FILENO) != STDOUT_FILENO) { + syslog (LOG_ERR, "ERROR while opening '/dev/null' for stdout"); + exit (1); + } + if (dup2 (STDIN_FILENO, STDERR_FILENO) != STDERR_FILENO) { + syslog (LOG_ERR, "ERROR while opening '/dev/null' for stderr"); + exit (1); + } + + // 9. option: open syslog for message logging + openlog (NULL, LOG_NDELAY | LOG_PID, LOG_DAEMON); + syslog (LOG_INFO, "Daemon has started..."); + + // 10. option: get effective user and group id for appropriate's one + struct passwd* pwd = getpwnam ("daemon"); + if (pwd == 0) { + syslog (LOG_ERR, "ERROR while reading daemon password file entry"); + exit (1); + } + + // 11. option: change root directory + if (chroot (".") == -1) { + syslog (LOG_ERR, "ERROR while changing to new root directory"); + exit (1); + } + + // 12. option: change effective user and group id for appropriate's one + if (setegid (pwd->pw_gid) == -1) { + syslog (LOG_ERR, "ERROR while setting new effective group id"); + exit (1); + } + if (seteuid (pwd->pw_uid) == -1) { + syslog (LOG_ERR, "ERROR while setting new effective user id"); + exit (1); + } + + // 13. implement daemon body... + int t = 30; + do { + t = sleep(t); + } while (t > 0); + + syslog (LOG_INFO, "daemon stopped. Number of signals catched=%d\n", signal_catched); + closelog(); + + return 0; +} diff --git a/src/01_environment/system_calls/.vscode/launch.json b/src/01_environment/system_calls/.vscode/launch.json new file mode 100644 index 0000000..56a80dd --- /dev/null +++ b/src/01_environment/system_calls/.vscode/launch.json @@ -0,0 +1,21 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + + { + "name": "(gdb) Launch", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/app", + "stopAtEntry": true, + "cwd": "${workspaceFolder}", + "externalConsole": false, + "MIMode": "gdb", + "miDebuggerServerAddress": "192.168.0.14:1234", + "miDebuggerPath": "/buildroot/output/host/bin/aarch64-linux-gdb" + } + ] +} diff --git a/src/01_environment/system_calls/.vscode/tasks.json b/src/01_environment/system_calls/.vscode/tasks.json new file mode 100644 index 0000000..75f4b5a --- /dev/null +++ b/src/01_environment/system_calls/.vscode/tasks.json @@ -0,0 +1,14 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "label": "gdbserver", + "type": "shell", + "command": [ + "ssh -t root@192.168.0.14 '/usr/bin/gdbserver :1234", + "${workspaceFolder}/app'"] + } + ] +} \ No newline at end of file diff --git a/src/01_environment/system_calls/CMakeLists.txt b/src/01_environment/system_calls/CMakeLists.txt new file mode 100644 index 0000000..0b5de91 --- /dev/null +++ b/src/01_environment/system_calls/CMakeLists.txt @@ -0,0 +1,5 @@ +cmake_minimum_required(VERSION 3.28) +project("system-calls") + +include(../../nanopi.cmake) +add_executable("system-calls" syscall.c) \ No newline at end of file diff --git a/src/01_environment/system_calls/Makefile b/src/01_environment/system_calls/Makefile new file mode 100644 index 0000000..87b69cc --- /dev/null +++ b/src/01_environment/system_calls/Makefile @@ -0,0 +1,5 @@ +EXE=app +SRCS=$(wildcard *.c) + +# Include the standard application Makefile for the CSEL1 labs +include ../appl.mk diff --git a/src/01_environment/system_calls/justfile b/src/01_environment/system_calls/justfile new file mode 100644 index 0000000..b965e1c --- /dev/null +++ b/src/01_environment/system_calls/justfile @@ -0,0 +1,5 @@ +build: + cmake -S . -B build && cmake --build build + +clean: + rm -rf build diff --git a/src/01_environment/system_calls/syscall.c b/src/01_environment/system_calls/syscall.c new file mode 100644 index 0000000..a6d02dd --- /dev/null +++ b/src/01_environment/system_calls/syscall.c @@ -0,0 +1,58 @@ +/** + * Copyright 2015 University of Applied Sciences Western Switzerland / Fribourg + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Module: MA-CSEL1 - Building Embedded Systems under Linux + * + * Abstract: Introduction to the Embedded Linux Development Environment + * + * Purpose: System call demo program + * call this demo program with + * # strace ./app_a + * + * Autĥor: Daniel Gachet + * Date: 28.08.2015 + */ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +int main() +{ + int temp = 99000; + int f = open("/sys/class/thermal/thermal_zone0/temp", O_RDONLY); + if (f >= 0) { + char val[50] = ""; + ssize_t r = read (f, val, sizeof(val)); + close (f); + if (r > 0) { + temp = atoi(val); + } + } + printf ("current temperature: %d.%02d degree Celcius\n", + temp/1000, (temp/10)%100); + + return 0; +} + + diff --git a/src/01_environment/tracing/.vscode/launch.json b/src/01_environment/tracing/.vscode/launch.json new file mode 100644 index 0000000..56a80dd --- /dev/null +++ b/src/01_environment/tracing/.vscode/launch.json @@ -0,0 +1,21 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + + { + "name": "(gdb) Launch", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/app", + "stopAtEntry": true, + "cwd": "${workspaceFolder}", + "externalConsole": false, + "MIMode": "gdb", + "miDebuggerServerAddress": "192.168.0.14:1234", + "miDebuggerPath": "/buildroot/output/host/bin/aarch64-linux-gdb" + } + ] +} diff --git a/src/01_environment/tracing/.vscode/tasks.json b/src/01_environment/tracing/.vscode/tasks.json new file mode 100644 index 0000000..75f4b5a --- /dev/null +++ b/src/01_environment/tracing/.vscode/tasks.json @@ -0,0 +1,14 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "label": "gdbserver", + "type": "shell", + "command": [ + "ssh -t root@192.168.0.14 '/usr/bin/gdbserver :1234", + "${workspaceFolder}/app'"] + } + ] +} \ No newline at end of file diff --git a/src/01_environment/tracing/CMakeLists.txt b/src/01_environment/tracing/CMakeLists.txt new file mode 100644 index 0000000..1547524 --- /dev/null +++ b/src/01_environment/tracing/CMakeLists.txt @@ -0,0 +1,9 @@ +cmake_minimum_required(VERSION 3.28) +project(tracing) + +include(../../nanopi.cmake) + +add_executable(fibonacci fibonacci.c) +add_executable(fibonacci-debug fibonacci.c) + +target_compile_definitions(fibonacci-debug PRIVATE DEBUG) \ No newline at end of file diff --git a/src/01_environment/tracing/Makefile b/src/01_environment/tracing/Makefile new file mode 100644 index 0000000..f779f6c --- /dev/null +++ b/src/01_environment/tracing/Makefile @@ -0,0 +1,9 @@ +EXE=app +SRCS=$(wildcard *.c) + +ifneq ($(DEBUG),) +EXTRA_CFLAGS+=-DDEBUG +endif + +# Include the standard application Makefile for the CSEL1 labs +include ../appl.mk diff --git a/src/01_environment/tracing/fibonacci.c b/src/01_environment/tracing/fibonacci.c new file mode 100644 index 0000000..30736de --- /dev/null +++ b/src/01_environment/tracing/fibonacci.c @@ -0,0 +1,79 @@ +/** + * Copyright 2015 University of Applied Sciences Western Switzerland / Fribourg + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Module: MA-CSEL1 - Building Embedded Systems under Linux + * + * Abstract: Introduction to the Embedded Linux Development Environment + * + * Purpose: Fibonacci numbers: a simple demo program to exercice debugging + * facilities on embedded Linux system. + * + * -->> tracing with conditional printf + * + * Autĥor: Daniel Gachet + * Date: 28.08.2015 + */ + +#include +#include + +#ifdef DEBUG +#define TRACE(x) printf x +#else +#define TRACE(X) +#endif + +/** + * The Fibonacci numbers form a sequence of integers, mathematically defined by + * F(0)=0; F(1)=1; F(n) = F(n - 1) + F(n - 2) for n > 1. + * + * This results in the following sequence of numbers: 0, 1, 1, 2, 3, 5, 8, 13, + * 21, 34, 55, 89, 144, 233, 377, 610, 987, ... + * so that each new number is the sum of the previous two, after seeding the + * sequence with the starting pair 0, 1. + * + * @param n value for which the Fibonacci number should be computed + * @return Fibonacci number + */ +long fibonacci(long n) +{ + if (n <= 1) return n; + return fibonacci(n-1)+fibonacci(n-2); +} + + +/** + * Main program computing the Fibonacci numbers for a given sequence starting + * from 0 to a number specified at the command line. + */ +int main (int argc, char** argv) +{ + long n = 0; + long i = 0; + + if (argc == 2) { + n = atol(argv[1]); + } + + TRACE(("%s, %d, %s, %s\n", __FILE__, __LINE__, __DATE__, __TIME__)); + printf("The first %ld Fibonacci numbers are:\n", n); + + for (i=0; i<=n; i++) { + printf("%ld, ", fibonacci(i)); + } + printf("\n"); + + return 0; +} diff --git a/src/01_environment/tracing/justfile b/src/01_environment/tracing/justfile new file mode 100644 index 0000000..b965e1c --- /dev/null +++ b/src/01_environment/tracing/justfile @@ -0,0 +1,5 @@ +build: + cmake -S . -B build && cmake --build build + +clean: + rm -rf build diff --git a/src/02_modules/Makefile b/src/02_modules/Makefile new file mode 100644 index 0000000..76f2b09 --- /dev/null +++ b/src/02_modules/Makefile @@ -0,0 +1,5 @@ +DIRS=$(filter-out Makefile, $(wildcard *)) + +all clean install: + for dir in $(DIRS); do $(MAKE) $@ -C $$dir; done + diff --git a/src/02_modules/exercice01/.vscode/c_cpp_properties.json b/src/02_modules/exercice01/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..389d15e --- /dev/null +++ b/src/02_modules/exercice01/.vscode/c_cpp_properties.json @@ -0,0 +1,19 @@ +{ + "configurations": [ + { + "name": "Linux", + "includePath": [ + "${workspaceFolder}/**", + "/buildroot/output/build/linux-5.15.148/include", + "/buildroot/output/build/linux-5.15.148/arch/arm64/include", + "/buildroot/output/build/linux-5.15.148/arch/arm64/include/generated" + ], + "defines": [], + "compilerPath": "/usr/bin/clang", + "cStandard": "c99", + "cppStandard": "c++14", + "intelliSenseMode": "linux-clang-arm64" + } + ], + "version": 4 +} \ No newline at end of file diff --git a/src/02_modules/exercice01/Makefile b/src/02_modules/exercice01/Makefile new file mode 100644 index 0000000..dd28aa8 --- /dev/null +++ b/src/02_modules/exercice01/Makefile @@ -0,0 +1,30 @@ +export PATH := /buildroot/output/host/usr/sbin$\ + :/buildroot/output/host/usr/bin/$\ + :/buildroot/output/host/sbin$\ + :/buildroot/output/host/bin/$\ + :$(PATH) + +# Part executed when called from kernel build system: +ifneq ($(KERNELRELEASE),) +obj-m += mymodule.o ## name of the generated module + +mymodule-objs := skeleton.o ## list of objects needed for that module +CFLAGS_skeleton.o := -DDEBUG + +# Part executed when called from standard make in module source directory: +else +include ../../kernel_settings +PWD := $(shell pwd) + +all: + $(MAKE) -C $(KDIR) M=$(PWD) ARCH=$(CPU) CROSS_COMPILE=$(TOOLS) modules + +clean: + $(MAKE) -C $(KDIR) M=$(PWD) clean + echo $(PATH) + +install: + $(MAKE) -C $(KDIR) M=$(PWD) INSTALL_MOD_PATH=$(MODPATH) modules_install + +endif + diff --git a/src/02_modules/exercice01/skeleton.c b/src/02_modules/exercice01/skeleton.c new file mode 100644 index 0000000..f46d7df --- /dev/null +++ b/src/02_modules/exercice01/skeleton.c @@ -0,0 +1,31 @@ +// skeleton.c +#include // needed by all modules +#include // needed for macros +#include // needed for debugging + +#include // needed for module parameters + +static char* text = "dummy text"; +module_param(text, charp, 0664); +static int elements = 1; +module_param(elements, int, 0); + +static int __init skeleton_init(void) +{ + pr_info ("Linux module 01 skeleton loaded\n"); + pr_debug (" text: %s\n elements: %d\n", text, elements); + return 0; +} + +static void __exit skeleton_exit(void) +{ + pr_info ("Linux module skeleton unloaded\n"); +} + +module_init (skeleton_init); +module_exit (skeleton_exit); + +MODULE_AUTHOR ("Daniel Gachet "); +MODULE_DESCRIPTION ("Module skeleton"); +MODULE_LICENSE ("GPL"); + diff --git a/src/02_modules/exercice04/Makefile b/src/02_modules/exercice04/Makefile new file mode 100644 index 0000000..77d73c9 --- /dev/null +++ b/src/02_modules/exercice04/Makefile @@ -0,0 +1,22 @@ +# Part executed when called from kernel build system: +ifneq ($(KERNELRELEASE),) +obj-m += mymodule.o ## name of the generated module + +mymodule-objs := skeleton.o ## list of objects needed for that module + +# Part executed when called from standard make in module source directory: +else +include ../../buildroot_path +include ../../kernel_settings +PWD := $(shell pwd) + +all: + $(MAKE) -C $(KDIR) M=$(PWD) ARCH=$(CPU) CROSS_COMPILE=$(TOOLS) modules + +clean: + $(MAKE) -C $(KDIR) M=$(PWD) clean + +install: + $(MAKE) -C $(KDIR) M=$(PWD) INSTALL_MOD_PATH=$(MODPATH) modules_install + +endif diff --git a/src/02_modules/exercice04/host.mk b/src/02_modules/exercice04/host.mk new file mode 100644 index 0000000..daa40c4 --- /dev/null +++ b/src/02_modules/exercice04/host.mk @@ -0,0 +1,16 @@ +ifneq ($(KERNELRELEASE),) +obj-m += mymodule.o ## name of the generated module + +mymodule-objs := skeleton.o ## list of objects needed for that module + +else +KDIR := /lib/modules/$(shell uname -r)/build +PWD := $(shell pwd) + +all: + $(MAKE) -C $(KDIR) M=$(PWD) modules + +clean: + $(MAKE) -C $(KDIR) M=$(PWD) clean + +endif diff --git a/src/02_modules/exercice04/skeleton.c b/src/02_modules/exercice04/skeleton.c new file mode 100644 index 0000000..c72eaf0 --- /dev/null +++ b/src/02_modules/exercice04/skeleton.c @@ -0,0 +1,64 @@ +/* skeleton.c */ +#include /* needed by all modules */ +#include /* needed for macros */ +#include /* needed for debugging */ + +#include /* needed for module parameters */ + +#include /* needed for dynamic memory allocation */ +#include /* needed for linked list processing */ +#include /* needed for string handling */ + +static char* text = "dummy text"; +module_param(text, charp, 0); +static int elements = 0; +module_param(elements, int, 0); + +struct element { + char text[100]; + int ele_nr; + struct list_head node; +}; + +static LIST_HEAD (my_list); + +static int __init skeleton_init(void) +{ + int i; + pr_info ("Linux module 04 skeleton loaded\n"); + pr_info (" text: %s\n elements: %d\n", text, elements); + for (i = 0; i < elements; i++) { + struct element* ele = kzalloc (sizeof(*ele), GFP_KERNEL); + if (ele != 0) { + strncpy (ele->text, text, 99); + ele->ele_nr = i; + list_add_tail (&ele->node, &my_list); + } + } + return 0; +} + +static void __exit skeleton_exit(void) +{ + struct element* ele; + int nb_eles = 0; + list_for_each_entry (ele, &my_list, node) { + pr_info ("ele [%d/%d/%d] = %s\n", nb_eles, ele->ele_nr, elements, ele->text); + nb_eles++; + } + while (!list_empty (&my_list)) { + ele = list_entry (my_list.next, struct element, node); + list_del (&ele->node); + kfree (ele); + } + pr_info ("All elements (%d/%d) of the list have been removed and deleted!\n", nb_eles, elements); + pr_info ("Linux module skeleton unloaded\n"); +} + +module_init (skeleton_init); +module_exit (skeleton_exit); + +MODULE_AUTHOR ("Daniel Gachet "); +MODULE_DESCRIPTION ("Module skeleton"); +MODULE_LICENSE ("GPL"); + diff --git a/src/02_modules/exercice05/Makefile b/src/02_modules/exercice05/Makefile new file mode 100644 index 0000000..062211c --- /dev/null +++ b/src/02_modules/exercice05/Makefile @@ -0,0 +1,23 @@ +# Part executed when called from kernel build system: +ifneq ($(KERNELRELEASE),) +obj-m += mymodule.o ## name of the generated module + +mymodule-objs := skeleton.o ## list of objects needed for that module + +# Part executed when called from standard make in module source directory: +else +include ../../buildroot_path +include ../../kernel_settings +PWD := $(shell pwd) + +all: + $(MAKE) -C $(KDIR) M=$(PWD) ARCH=$(CPU) CROSS_COMPILE=$(TOOLS) modules + +clean: + $(MAKE) -C $(KDIR) M=$(PWD) clean + +install: + $(MAKE) -C $(KDIR) M=$(PWD) INSTALL_MOD_PATH=$(MODPATH) modules_install + +endif + diff --git a/src/02_modules/exercice05/skeleton.c b/src/02_modules/exercice05/skeleton.c new file mode 100644 index 0000000..be289e5 --- /dev/null +++ b/src/02_modules/exercice05/skeleton.c @@ -0,0 +1,83 @@ +/* skeleton.c */ +#include /* needed by all modules */ +#include /* needed for macros */ +#include /* needed for debugging */ + +#include /* needed for module parameters */ + +#include /* needed for dynamic memory allocation */ +#include /* needed for linked list processing */ +#include /* needed for string handling */ + +#include /* needed for memory region handling */ +#include /* needed for mmio handling */ + + +static struct resource* res[3]={[0]=0,}; + +static int __init skeleton_init(void) +{ + unsigned char* regs[3]={[0]=0,}; + unsigned int chipid[4]={[0]=0,}; + long temp = 0; + unsigned int addr[2] = {[0]=0,}; + + pr_info ("Linux module 05 skeleton loaded\n"); + + res[0] = request_mem_region (0x01c14000, 0x1000, "allwiner h5 sid"); + //res[1] = request_mem_region (0x01C25000, 0x1000, "allwiner h5 ths"); + //res[2] = request_mem_region (0x01C30000, 0x1000, "allwiner h5 emac"); + if ((res[0] == 0))// || (res[1] == 0) ||(res[2] == 0)) + pr_info ("Error while reserving memory region... [0]=%d, [1]=%d, [2]=%d\n", res[0]==0, res[1]==0, res[2]==0); + + regs[0] = ioremap (0x01c14000, 0x1000); + regs[1] = ioremap (0x01C25000, 0x1000); + regs[2] = ioremap (0x01C30000, 0x1000); + + if ((regs[0] == 0) || (regs[1] == 0) ||(regs[2] == 0)) { + pr_info ("Error while trying to map processor register...\n"); + return -EFAULT; + } + chipid[0] = ioread32 (regs[0]+0x200); + chipid[1] = ioread32 (regs[0]+0x204); + chipid[2] = ioread32 (regs[0]+0x208); + chipid[3] = ioread32 (regs[0]+0x20c); + pr_info("chipid=%08x'%08x'%08x'%08x\n", + chipid[0], chipid[1], chipid[2], chipid[3]); + + temp = -1191 * (int)ioread32(regs[1]+0x80) / 10 + 223000; + pr_info ("temperature=%ld (%d)\n", temp, ioread32(regs[1]+0x80)); + + addr[0]=ioread32(regs[2]+0x50); + addr[1]=ioread32(regs[2]+0x54); + pr_info("mac-addr=%02x:%02x:%02x:%02x:%02x:%02x\n", + (addr[1]>> 0) & 0xff, + (addr[1]>> 8) & 0xff, + (addr[1]>>16) & 0xff, + (addr[1]>>24) & 0xff, + (addr[0]>> 0) & 0xff, + (addr[0]>> 8) & 0xff + ); + + iounmap (regs[0]); + iounmap (regs[1]); + iounmap (regs[2]); + + return 0; +} + +static void __exit skeleton_exit(void) +{ + pr_info ("Linux module skeleton unloaded\n"); + if (res[0] != 0) release_mem_region (0x01c14000, 0x1000); + //release_mem_region (0x01C25000, 0x1000); + //release_mem_region (0x01C30000, 0x1000); +} + +module_init (skeleton_init); +module_exit (skeleton_exit); + +MODULE_AUTHOR ("Daniel Gachet "); +MODULE_DESCRIPTION ("Module skeleton"); +MODULE_LICENSE ("GPL"); + diff --git a/src/02_modules/exercice06/Makefile b/src/02_modules/exercice06/Makefile new file mode 100644 index 0000000..223a486 --- /dev/null +++ b/src/02_modules/exercice06/Makefile @@ -0,0 +1,24 @@ +# Part executed when called from kernel build system: +ifneq ($(KERNELRELEASE),) +obj-m += mymodule.o ## name of the generated module + +mymodule-objs := skeleton.o ## list of objects needed for that module + +# Part executed when called from standard make in module source directory: +else +include ../../buildroot_path +include ../../kernel_settings +include ../../set_host_path +PWD := $(shell pwd) + +all: + $(MAKE) -C $(KDIR) M=$(PWD) ARCH=$(CPU) CROSS_COMPILE=$(TOOLS) modules + +clean: + $(MAKE) -C $(KDIR) M=$(PWD) clean + +install: + $(MAKE) -C $(KDIR) M=$(PWD) INSTALL_MOD_PATH=$(MODPATH) modules_install + +endif + diff --git a/src/02_modules/exercice06/skeleton.c b/src/02_modules/exercice06/skeleton.c new file mode 100644 index 0000000..8692669 --- /dev/null +++ b/src/02_modules/exercice06/skeleton.c @@ -0,0 +1,55 @@ +/* skeleton.c */ +#include /* needed by all modules */ +#include /* needed for macros */ +#include /* needed for debugging */ + +#include /* needed for module parameters */ + +#include /* needed for dynamic memory allocation */ +#include /* needed for linked list processing */ +#include /* needed for string handling */ + +#include /* needed for memory region handling */ +#include /* needed for mmio handling */ + +#include /* needed for kernel thread management */ +#include /* needed for delay fonctions */ + + +static struct task_struct* my_thread; + + +static int skeleton_thread (void* data) +{ + pr_info ("skeleton thread is now active...\n"); + while(!kthread_should_stop()) { + ssleep (5); + pr_info ("skeleton thread is kick every 5 seconds...\n"); + } + return 0; +} + + +static int __init skeleton_init(void) +{ + pr_info ("Linux module 06 skeleton loaded\n"); + + my_thread = kthread_run (skeleton_thread, 0, "s/thread"); + + return 0; +} + +static void __exit skeleton_exit(void) +{ + kthread_stop (my_thread); + + pr_info ("Linux module skeleton unloaded\n"); +} + +module_init (skeleton_init); +module_exit (skeleton_exit); + +MODULE_AUTHOR ("Daniel Gachet "); +MODULE_DESCRIPTION ("Module skeleton"); +MODULE_LICENSE ("GPL"); + diff --git a/src/02_modules/exercice07/Makefile b/src/02_modules/exercice07/Makefile new file mode 100644 index 0000000..062211c --- /dev/null +++ b/src/02_modules/exercice07/Makefile @@ -0,0 +1,23 @@ +# Part executed when called from kernel build system: +ifneq ($(KERNELRELEASE),) +obj-m += mymodule.o ## name of the generated module + +mymodule-objs := skeleton.o ## list of objects needed for that module + +# Part executed when called from standard make in module source directory: +else +include ../../buildroot_path +include ../../kernel_settings +PWD := $(shell pwd) + +all: + $(MAKE) -C $(KDIR) M=$(PWD) ARCH=$(CPU) CROSS_COMPILE=$(TOOLS) modules + +clean: + $(MAKE) -C $(KDIR) M=$(PWD) clean + +install: + $(MAKE) -C $(KDIR) M=$(PWD) INSTALL_MOD_PATH=$(MODPATH) modules_install + +endif + diff --git a/src/02_modules/exercice07/skeleton.c b/src/02_modules/exercice07/skeleton.c new file mode 100644 index 0000000..15e2aef --- /dev/null +++ b/src/02_modules/exercice07/skeleton.c @@ -0,0 +1,81 @@ +/* skeleton.c */ +#include /* needed by all modules */ +#include /* needed for macros */ +#include /* needed for debugging */ + +#include /* needed for kernel thread management */ +#include /* needed for waitqueues handling */ +#include /* needed for delay fonctions */ + + +static struct task_struct* my_thread[2]; + +DECLARE_WAIT_QUEUE_HEAD (queue_1); +static atomic_t is_kicked; + +static int skeleton_thread_1 (void* data) +{ + pr_info ("skeleton thread_1 is now active...\n"); + while(!kthread_should_stop()) { + int status = wait_event_interruptible + (queue_1, (atomic_read(&is_kicked) != 0) + || kthread_should_stop()); + if (status == -ERESTARTSYS) { + pr_info ("skeleton thread_1 has been interrupted\n"); + break; + } + atomic_dec (&is_kicked); + pr_info ("skeleton thread_1 has been kicked\n"); + } + return 0; +} + +static int skeleton_thread_2 (void* data) +{ + wait_queue_head_t queue; + pr_info ("skeleton thread_2 is now active...\n"); + init_waitqueue_head (&queue); + while(!kthread_should_stop()) { + ssleep(5); +/* + int status = wait_event_interruptible_timeout + (queue, kthread_should_stop(), 5*HZ); + if (status == -ERESTARTSYS) { + pr_info ("skeleton thread_2 has been interrupted\n"); + break; + } +*/ + pr_info ("skeleton thread_2 timout elapsed...\n"); + atomic_set (&is_kicked, 1); + wake_up_interruptible (&queue_1); + } + return 0; +} + + +static int __init skeleton_init(void) +{ + pr_info ("Linux module 07 skeleton loaded\n"); + + atomic_set (&is_kicked, 0); + my_thread[0] = kthread_run (skeleton_thread_1, 0, "s/thread/%d", 1); + my_thread[1] = kthread_run (skeleton_thread_2, 0, "s/thread/2"); + + return 0; +} + +static void __exit skeleton_exit(void) +{ + kthread_stop (my_thread[1]); + kthread_stop (my_thread[0]); + + pr_info ("Linux module skeleton unloaded\n"); +} + +module_init (skeleton_init); +module_exit (skeleton_exit); + +MODULE_AUTHOR ("Daniel Gachet "); +MODULE_DESCRIPTION ("Module skeleton"); +MODULE_LICENSE ("GPL"); + diff --git a/src/02_modules/exercice08/Makefile b/src/02_modules/exercice08/Makefile new file mode 100644 index 0000000..062211c --- /dev/null +++ b/src/02_modules/exercice08/Makefile @@ -0,0 +1,23 @@ +# Part executed when called from kernel build system: +ifneq ($(KERNELRELEASE),) +obj-m += mymodule.o ## name of the generated module + +mymodule-objs := skeleton.o ## list of objects needed for that module + +# Part executed when called from standard make in module source directory: +else +include ../../buildroot_path +include ../../kernel_settings +PWD := $(shell pwd) + +all: + $(MAKE) -C $(KDIR) M=$(PWD) ARCH=$(CPU) CROSS_COMPILE=$(TOOLS) modules + +clean: + $(MAKE) -C $(KDIR) M=$(PWD) clean + +install: + $(MAKE) -C $(KDIR) M=$(PWD) INSTALL_MOD_PATH=$(MODPATH) modules_install + +endif + diff --git a/src/02_modules/exercice08/skeleton.c b/src/02_modules/exercice08/skeleton.c new file mode 100644 index 0000000..8f54176 --- /dev/null +++ b/src/02_modules/exercice08/skeleton.c @@ -0,0 +1,74 @@ +/* skeleton.c */ +#include /* needed by all modules */ +#include /* needed for macros */ +#include /* needed for debugging */ + +#include /* needed for interrupt handling */ +#include /* needed for i/o handling */ + + +#define K1 0 +#define K2 2 +#define K3 3 + +static char* k1="gpio_a.0-k1"; +static char* k2="gpio_a.2-k2"; +static char* k3="gpio_a.3-k3"; + + +irqreturn_t gpio_isr(int irq, void* handle) +{ + pr_info ("interrupt %s raised...\n", (char*)handle); + + return IRQ_HANDLED; +} + + +static int __init skeleton_init(void) +{ + int status = 0; + + // install k1 + if (status == 0) status = gpio_request (K1, "k1"); + if (status == 0) + status = request_irq(gpio_to_irq(K1), gpio_isr, + IRQF_TRIGGER_FALLING | IRQF_SHARED, k1, k1); + + // install k2 + if (status == 0) status = gpio_request (K2, "k2"); + if (status == 0) + status = request_irq(gpio_to_irq(K2), gpio_isr, + IRQF_TRIGGER_FALLING | IRQF_SHARED, k2, k2); + + // install k3 + if (status == 0) status = gpio_request (K3, "k3"); + if (status == 0) + status = request_irq(gpio_to_irq(K3), gpio_isr, + IRQF_TRIGGER_FALLING | IRQF_SHARED, k3, k3); + + pr_info ("Linux module 08 skeleton loaded\n"); + + return status; +} + +static void __exit skeleton_exit(void) +{ + gpio_free(K1); + free_irq(gpio_to_irq(K1), k1); + + gpio_free(K2); + free_irq(gpio_to_irq(K2), k2); + + gpio_free(K3); + free_irq(gpio_to_irq(K3), k3); + + pr_info ("Linux module skeleton unloaded\n"); +} + +module_init (skeleton_init); +module_exit (skeleton_exit); + +MODULE_AUTHOR ("Daniel Gachet "); +MODULE_DESCRIPTION ("Module skeleton"); +MODULE_LICENSE ("GPL"); + diff --git a/src/02_modules/procstat/Makefile b/src/02_modules/procstat/Makefile new file mode 100644 index 0000000..889e878 --- /dev/null +++ b/src/02_modules/procstat/Makefile @@ -0,0 +1,50 @@ +EXE=procstat +SRCS=$(wildcard *.c) + +ifeq ($(TARGET), host) +CC=gcc +LD=gcc +STRIP=strip +CFLAGS=-Wall -Wextra -g -c -O0 -MD -std=c99 +OBJDIR=.obj/host +EXEC=$(EXE)_h + +else +TOOLCHAIN_PATH=/buildroot/output/host/usr/bin/ +TOOLCHAIN=$(TOOLCHAIN_PATH)aarch64-buildroot-linux-gnu- + +CC=$(TOOLCHAIN)gcc +LD=$(TOOLCHAIN)gcc +STRIP=$(TOOLCHAIN)strip + +CFLAGS+=-pedantic -Wall -Wextra -g -c -mcpu=cortex-a53 -O0 -MD -std=gnu11 +CPPFLAGS+=-pedantic -Wall -Wextra -g -c -mcpu=cortex-a53 -O0 -MD -std=gnu11 + +OBJDIR=.obj/odroid +EXEC=$(EXE) +endif + +OBJS= $(addprefix $(OBJDIR)/, $(ASRC:.s=.o) $(SRCS:.c=.o)) + +all: $(OBJDIR)/ $(EXEC) + +$(EXEC): $(OBJS) $(LINKER_SCRIPT) + $(LD) $(OBJS) $(LDFLAGS) -o $@_s + $(STRIP) -g -o $@ $@_s + +$(OBJDIR)/%o: %c + $(CC) $(CFLAGS) $< -o $@ + +$(OBJDIR)/: + mkdir -p $(OBJDIR) + +clean: + rm -Rf $(OBJDIR) $(EXEC) $(EXEC)_s + +clean_all: + rm -Rf .obj $(EXE) $(EXE)_h $(EXE)_s $(EXE)_h_s *~ + + +.PHONY: all clean clean_all + +-include $(OBJS:.o=.d) diff --git a/src/02_modules/procstat/procstat.c b/src/02_modules/procstat/procstat.c new file mode 100644 index 0000000..915b0a4 --- /dev/null +++ b/src/02_modules/procstat/procstat.c @@ -0,0 +1,240 @@ +/* + * Displays linux /proc/pid/stat in human-readable format + * + * Build: gcc -o procstat procstat.c + * Usage: procstat pid + * cat /proc/pid/stat | procstat + * + * Homepage: http://www.brokestream.com/procstat.html + * Version : 2009-03-05 + * + * Ivan Tikhonov, http://www.brokestream.com, kefeer@netangels.ru + * + * 2007-09-19 changed HZ=100 error to warning + * + * 2009-03-05 tickspersec are taken from sysconf (Sabuj Pattanayek) + * + */ + + +/* Copyright (C) 2009 Ivan Tikhonov + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Ivan Tikhonov, kefeer@brokestream.com + +*/ + +#include +#include +#include +#include +#include + + +typedef long long int num; + +num pid; +char tcomm[PATH_MAX]; +char state; + +num ppid; +num pgid; +num sid; +num tty_nr; +num tty_pgrp; + +num flags; +num min_flt; +num cmin_flt; +num maj_flt; +num cmaj_flt; +num utime; +num stimev; + +num cutime; +num cstime; +num priority; +num nicev; +num num_threads; +num it_real_value; + +unsigned long long start_time; + +num vsize; +num rss; +num rsslim; +num start_code; +num end_code; +num start_stack; +num esp; +num eip; + +num pending; +num blocked; +num sigign; +num sigcatch; +num wchan; +num zero1; +num zero2; +num exit_signal; +num cpu; +num rt_priority; +num policy; + +long tickspersec; + +FILE *input; + +void readone(num *x) { fscanf(input, "%lld ", x); } +void readunsigned(unsigned long long *x) { fscanf(input, "%llu ", x); } +void readstr(char *x) { fscanf(input, "%s ", x);} +void readchar(char *x) { fscanf(input, "%c ", x);} + +void printone(char *name, num x) { printf("%20s: %lld\n", name, x);} +void printonex(char *name, num x) { printf("%20s: %016llx\n", name, x);} +void printunsigned(char *name, unsigned long long x) { printf("%20s: %llu\n", name, x);} +void printchar(char *name, char x) { printf("%20s: %c\n", name, x);} +void printstr(char *name, char *x) { printf("%20s: %s\n", name, x);} +void printtime(char *name, num x) { printf("%20s: %f\n", name, (((double)x) / tickspersec));} + +int gettimesinceboot() { + FILE *procuptime; + int sec, ssec; + + procuptime = fopen("/proc/uptime", "r"); + fscanf(procuptime, "%d.%ds", &sec, &ssec); + fclose(procuptime); + return (sec*tickspersec)+ssec; +} + +void printtimediff(char *name, num x) { + int sinceboot = gettimesinceboot(); + int running = sinceboot - x; + time_t rt = time(NULL) - (running / tickspersec); + char buf[1024]; + + strftime(buf, sizeof(buf), "%m.%d %H:%M", localtime(&rt)); + printf("%20s: %s (%lu.%lus)\n", name, buf, running / tickspersec, running % tickspersec); +} + +int main(int argc, char *argv[]) { + tickspersec = sysconf(_SC_CLK_TCK); + input = NULL; + + if(argc > 1) { + chdir("/proc"); + if(chdir(argv[1]) == 0) { input = fopen("stat", "r"); } + if(!input) { + perror("open"); + return 1; + } + } else { + input = stdin; + } + + + readone(&pid); + readstr(tcomm); + readchar(&state); + readone(&ppid); + readone(&pgid); + readone(&sid); + readone(&tty_nr); + readone(&tty_pgrp); + readone(&flags); + readone(&min_flt); + readone(&cmin_flt); + readone(&maj_flt); + readone(&cmaj_flt); + readone(&utime); + readone(&stimev); + readone(&cutime); + readone(&cstime); + readone(&priority); + readone(&nicev); + readone(&num_threads); + readone(&it_real_value); + readunsigned(&start_time); + readone(&vsize); + readone(&rss); + readone(&rsslim); + readone(&start_code); + readone(&end_code); + readone(&start_stack); + readone(&esp); + readone(&eip); + readone(&pending); + readone(&blocked); + readone(&sigign); + readone(&sigcatch); + readone(&wchan); + readone(&zero1); + readone(&zero2); + readone(&exit_signal); + readone(&cpu); + readone(&rt_priority); + readone(&policy); + + { + + printone("pid", pid); + printstr("tcomm", tcomm); + printchar("state", state); + printone("ppid", ppid); + printone("pgid", pgid); + printone("sid", sid); + printone("tty_nr", tty_nr); + printone("tty_pgrp", tty_pgrp); + printone("flags", flags); + printone("min_flt", min_flt); + printone("cmin_flt", cmin_flt); + printone("maj_flt", maj_flt); + printone("cmaj_flt", cmaj_flt); + printtime("utime", utime); + printtime("stime", stimev); + printtime("cutime", cutime); + printtime("cstime", cstime); + printone("priority", priority); + printone("nice", nicev); + printone("num_threads", num_threads); + printtime("it_real_value", it_real_value); + printtimediff("start_time", start_time); + printone("vsize", vsize); + printone("rss", rss); + printone("rsslim", rsslim); + printone("start_code", start_code); + printone("end_code", end_code); + printone("start_stack", start_stack); + printone("esp", esp); + printone("eip", eip); + printonex("pending", pending); + printonex("blocked", blocked); + printonex("sigign", sigign); + printonex("sigcatch", sigcatch); + printone("wchan", wchan); + printone("zero1", zero1); + printone("zero2", zero2); + printonex("exit_signal", exit_signal); + printone("cpu", cpu); + printone("rt_priority", rt_priority); + printone("policy", policy); + } + + return 0; +} + diff --git a/src/03_drivers/Makefile b/src/03_drivers/Makefile new file mode 100644 index 0000000..76f2b09 --- /dev/null +++ b/src/03_drivers/Makefile @@ -0,0 +1,5 @@ +DIRS=$(filter-out Makefile, $(wildcard *)) + +all clean install: + for dir in $(DIRS); do $(MAKE) $@ -C $$dir; done + diff --git a/src/03_drivers/dts/Makefile b/src/03_drivers/dts/Makefile new file mode 100644 index 0000000..5ea736b --- /dev/null +++ b/src/03_drivers/dts/Makefile @@ -0,0 +1,37 @@ +# Part executed when called from kernel build system: +ifneq ($(KERNELRELEASE),) +obj-m += mymodule.o ## name of the generated module + +ccflags-y += -Wno-declaration-after-statement -std=gnu11 +mymodule-objs := skeleton.o ## list of objects needed for that module + +# Part executed when called from standard make in module source directory: +else +include ../../kernel_settings +PWD := $(shell pwd) + +INCL+=-I. -I$(KDIR)/include -I$(KDIR)/arch/arm64/boot/dts +DTB = mydt.dtb +DTS = $(DTB:.dtb=.dts) + +all: dtb boot + $(MAKE) -C $(KDIR) M=$(PWD) ARCH=$(CPU) CROSS_COMPILE=$(TOOLS) modules + +dtb: $(DTB) +$(DTB) : $(DTS) + ln -s $(KDIR)/arch/arm/boot/dts arm + -cpp $(INCL) -E -P -x assembler-with-cpp $(DTS) | dtc -I dts -O dtb -o $(DTB) - + rm arm + +boot: + mkimage -T script -A arm -C none -d boot.cmd boot.ovl + +clean: + $(MAKE) -C $(KDIR) M=$(PWD) clean + rm -f *.dtb *.ovl + +install: + $(MAKE) -C $(KDIR) M=$(PWD) INSTALL_MOD_PATH=$(MODPATH) modules_install + +endif + diff --git a/src/03_drivers/dts/boot.cmd b/src/03_drivers/dts/boot.cmd new file mode 100644 index 0000000..1780fdb --- /dev/null +++ b/src/03_drivers/dts/boot.cmd @@ -0,0 +1,10 @@ +setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait + +fatload mmc 0 $kernel_addr_r Image +#fatload mmc 0 $fdt_addr_r nanopi-neo-plus2.dtb +fatload mmc 0 $fdt_addr_r mydt.dtb + +fdt addr $fdt_addr_r +fdt resize + +booti $kernel_addr_r - $fdt_addr_r diff --git a/src/03_drivers/dts/mydt.dts b/src/03_drivers/dts/mydt.dts new file mode 100644 index 0000000..66f5564 --- /dev/null +++ b/src/03_drivers/dts/mydt.dts @@ -0,0 +1,12 @@ +/dts-v1/; + +#include "allwinner/sun50i-h5-nanopi-neo-plus2.dts" + +/ { + /delete-node/ leds; + + mydevice { + compatible = "mydevice"; + attribute = "text"; + }; +}; diff --git a/src/03_drivers/dts/skeleton.c b/src/03_drivers/dts/skeleton.c new file mode 100644 index 0000000..d97bdde --- /dev/null +++ b/src/03_drivers/dts/skeleton.c @@ -0,0 +1,135 @@ +/* skeleton.c */ +#include /* needed for macros */ +#include /* needed for debugging */ +#include /* needed by all modules */ + +#include /* needed for char device driver */ +#include /* needed for device drivers */ +#include /* needed to copy data to/from user */ + +#include /* needed for sysfs handling */ +#include +#include +#include /* needed for sysfs handling */ + +static int skeleton_open(struct inode* i, struct file* f) +{ + pr_info("skeleton : open operation... major:%d, minor:%d\n", + imajor(i), + iminor(i)); + return 0; +} + +static int skeleton_release(struct inode* i, struct file* f) +{ + pr_info("skeleton: release operation...\n"); + return 0; +} + +static ssize_t skeleton_read(struct file* f, + char __user* buf, + size_t count, + loff_t* off) +{ + pr_info("skeleton: read operation... read=%ld\n", count); + return 0; +} + +static ssize_t skeleton_write(struct file* f, + const char __user* buf, + size_t count, + loff_t* off) +{ + pr_info("skeleton: write operation... written=%ld\n", count); + return count; +} + +static struct file_operations fops = { + .owner = THIS_MODULE, + .open = skeleton_open, + .read = skeleton_read, + .write = skeleton_write, + .release = skeleton_release, +}; + +struct miscdevice misc_device = { + .minor = MISC_DYNAMIC_MINOR, + .fops = &fops, + .name = "mydevice", + .mode = 0777, +}; + +int skeleton_probe(struct platform_device* pdev) +{ + pr_info("skeleton - driver probe %llx (%s)- M.m=%d.%d\n", + (unsigned long long)pdev, + pdev->name, + MAJOR(pdev->dev.devt), + MINOR(pdev->dev.devt)); + + // register misc device ... + int ret = misc_register(&misc_device); + + // read device tree attribute + struct device_node* dt_node = pdev->dev.of_node; + const char* prop = 0; + if (dt_node) + ret = of_property_read_string(dt_node, "attribute", &prop); + else + pr_info("mymodule not found!\n"); + if ((prop != 0) && (ret == 0)) + pr_info("attribute=%s (ret=%d)\n", prop, ret); + + return 0; +} +int skeleton_remove(struct platform_device* pdev) +{ + pr_info("skeleton - sysfs driver remove %llx\n", (unsigned long long)pdev); + misc_deregister(&misc_device); + return 0; +} +void skeleton_shutdown(struct platform_device* pdev) +{ + pr_info("skeleton - sysfs driver shutdown %s\n", pdev->name); +} + +struct of_device_id of_skeleton[] = { + { + .compatible = "mydevice", + }, + {}, +}; +MODULE_DEVICE_TABLE(of, of_skeleton); + +static struct platform_driver sysfs_driver = { + .probe = skeleton_probe, + .remove = skeleton_remove, + .shutdown = skeleton_shutdown, + .driver = + { + .name = "mydriver", + .of_match_table = of_match_ptr(of_skeleton), + }, +}; + +static int __init skeleton_init(void) +{ + pr_info("Linux module skeleton loading...\n"); + int status = platform_driver_register(&sysfs_driver); + pr_info("Linux module skeleton loaded\n"); + return status; +} + +static void __exit skeleton_exit(void) +{ + pr_info("Linux module skeleton exiting...\n"); + platform_driver_unregister(&sysfs_driver); + pr_info("Linux module skeleton unloaded\n"); +} + +module_init(skeleton_init); +module_exit(skeleton_exit); + +MODULE_AUTHOR("Daniel Gachet "); +MODULE_DESCRIPTION("Module skeleton"); +MODULE_LICENSE("GPL"); diff --git a/src/03_drivers/exercice01/Makefile b/src/03_drivers/exercice01/Makefile new file mode 100644 index 0000000..7feae3f --- /dev/null +++ b/src/03_drivers/exercice01/Makefile @@ -0,0 +1,44 @@ +EXE=app +SRCS=$(wildcard *.c) + +ifeq ($(target),) +target=nano +endif + +CFLAGS=-Wall -Wextra -g -c -O0 -MD -std=gnu11 + +TOOLCHAIN_PATH=/buildroot/output/host/usr/bin/ +TOOLCHAIN=$(TOOLCHAIN_PATH)aarch64-linux- +CFLAGS+=-mcpu=cortex-a53 -funwind-tables +##CFLAGS+=-O2 -fno-omit-frame-pointer +OBJDIR=.obj/nano +EXEC=$(EXE) + +CC=$(TOOLCHAIN)gcc +LD=$(TOOLCHAIN)gcc +AR=$(TOOLCHAIN)ar +STRIP=$(TOOLCHAIN)strip + +OBJDIR=.obj/$(target) +OBJS= $(addprefix $(OBJDIR)/, $(SRCS:.c=.o)) + +$(OBJDIR)/%o: %c + $(CC) $(CFLAGS) $< -o $@ + +all: $(OBJDIR)/ $(EXEC) + +$(EXEC): $(OBJS) $(LINKER_SCRIPT) + $(LD) $(OBJS) $(LDFLAGS) -o $@ + +$(OBJDIR)/: + mkdir -p $(OBJDIR) + +clean: + rm -Rf $(OBJDIR) $(EXEC) $(EXEC)_s *~ + +clean_all: clean + rm -Rf .obj $(EXE) $(EXE)_s $(EXE)_a $(EXE)_a_s $(EXE)_h $(EXE)_h_s + +-include $(OBJS:.o=.d) + +.PHONY: all clean clean_all diff --git a/src/03_drivers/exercice01/main.c b/src/03_drivers/exercice01/main.c new file mode 100644 index 0000000..17324b0 --- /dev/null +++ b/src/03_drivers/exercice01/main.c @@ -0,0 +1,53 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +int main() +{ + /* open memory file descriptor */ + int fd = open("/dev/mem", O_RDWR); + if (fd < 0) { + printf("Could not open /dev/mem: error=%i\n", fd); + return -1; + } + + size_t psz = getpagesize(); + off_t dev_addr = 0x01c14200; + off_t ofs = dev_addr % psz; + off_t offset = dev_addr - ofs; + printf( + "psz=%lx, addr=%lx, offset=%lx, ofs=%lx\n", psz, dev_addr, offset, ofs); + + /* map to user space nanopi internal registers */ + volatile uint32_t* regs = + mmap(0, psz, PROT_READ | PROT_WRITE, MAP_SHARED, fd, offset); + + if (regs == MAP_FAILED) // (void *)-1 + { + printf("mmap failed, error: %i:%s \n", errno, strerror(errno)); + return -1; + } + + uint32_t chipid[4] = { + [0] = *(regs + (ofs + 0x00) / sizeof(uint32_t)), + [1] = *(regs + (ofs + 0x04) / sizeof(uint32_t)), + [2] = *(regs + (ofs + 0x08) / sizeof(uint32_t)), + [3] = *(regs + (ofs + 0x0c) / sizeof(uint32_t)), + }; + + printf("NanoPi NEO Plus2 chipid=%08x'%08x'%08x'%08x\n", + chipid[0], + chipid[1], + chipid[2], + chipid[3]); + + munmap((void*)regs, psz); + close(fd); + + return 0; +} diff --git a/src/03_drivers/exercice02/Makefile b/src/03_drivers/exercice02/Makefile new file mode 100644 index 0000000..062211c --- /dev/null +++ b/src/03_drivers/exercice02/Makefile @@ -0,0 +1,23 @@ +# Part executed when called from kernel build system: +ifneq ($(KERNELRELEASE),) +obj-m += mymodule.o ## name of the generated module + +mymodule-objs := skeleton.o ## list of objects needed for that module + +# Part executed when called from standard make in module source directory: +else +include ../../buildroot_path +include ../../kernel_settings +PWD := $(shell pwd) + +all: + $(MAKE) -C $(KDIR) M=$(PWD) ARCH=$(CPU) CROSS_COMPILE=$(TOOLS) modules + +clean: + $(MAKE) -C $(KDIR) M=$(PWD) clean + +install: + $(MAKE) -C $(KDIR) M=$(PWD) INSTALL_MOD_PATH=$(MODPATH) modules_install + +endif + diff --git a/src/03_drivers/exercice02/skeleton.c b/src/03_drivers/exercice02/skeleton.c new file mode 100644 index 0000000..594b02b --- /dev/null +++ b/src/03_drivers/exercice02/skeleton.c @@ -0,0 +1,123 @@ +/* skeleton.c */ +#include /* needed for char device driver */ +#include /* needed for device drivers */ +#include /* needed for macros */ +#include /* needed for debugging */ +#include /* needed by all modules */ +#include /* needed for module parameters */ +#include /* needed to copy data to/from user */ + +#define BUFFER_SZ 10000 + +static char s_buffer[BUFFER_SZ]; +static dev_t skeleton_dev; +static struct cdev skeleton_cdev; + +static int skeleton_open(struct inode* i, struct file* f) +{ + pr_info("skeleton : open operation... major:%d, minor:%d\n", + imajor(i), + iminor(i)); + + if ((f->f_flags & (O_APPEND)) != 0) { + pr_info("skeleton : opened for appending...\n"); + } + + if ((f->f_mode & (FMODE_READ | FMODE_WRITE)) != 0) { + pr_info("skeleton : opened for reading & writing...\n"); + } else if ((f->f_mode & FMODE_READ) != 0) { + pr_info("skeleton : opened for reading...\n"); + } else if ((f->f_mode & FMODE_WRITE) != 0) { + pr_info("skeleton : opened for writing...\n"); + } + + return 0; +} + +static int skeleton_release(struct inode* i, struct file* f) +{ + pr_info("skeleton: release operation...\n"); + + return 0; +} + +static ssize_t skeleton_read(struct file* f, + char __user* buf, + size_t count, + loff_t* off) +{ + // compute remaining bytes to copy, update count and pointers + ssize_t remaining = BUFFER_SZ - (ssize_t)(*off); + char* ptr = s_buffer + *off; + if (count > remaining) count = remaining; + *off += count; + + // copy required number of bytes + if (copy_to_user(buf, ptr, count) != 0) count = -EFAULT; + + pr_info("skeleton: read operation... read=%ld\n", count); + + return count; +} + +static ssize_t skeleton_write(struct file* f, + const char __user* buf, + size_t count, + loff_t* off) +{ + // compute remaining space in buffer and update pointers + ssize_t remaining = BUFFER_SZ - (ssize_t)(*off); + + pr_info("skeleton: at%ld\n", (unsigned long)(*off)); + + // check if still remaining space to store additional bytes + if (count >= remaining) count = -EIO; + + // store additional bytes into internal buffer + if (count > 0) { + char* ptr = s_buffer + *off; + *off += count; + ptr[count] = 0; // make sure string is null terminated + if (copy_from_user(ptr, buf, count)) count = -EFAULT; + } + + pr_info("skeleton: write operation... written=%ld\n", count); + + return count; +} + +static struct file_operations skeleton_fops = { + .owner = THIS_MODULE, + .open = skeleton_open, + .read = skeleton_read, + .write = skeleton_write, + .release = skeleton_release, +}; + +static int __init skeleton_init(void) +{ + int status = alloc_chrdev_region(&skeleton_dev, 0, 1, "mymodule"); + if (status == 0) { + cdev_init(&skeleton_cdev, &skeleton_fops); + skeleton_cdev.owner = THIS_MODULE; + status = cdev_add(&skeleton_cdev, skeleton_dev, 1); + } + + pr_info("Linux module skeleton loaded\n"); + return 0; +} + +static void __exit skeleton_exit(void) +{ + cdev_del(&skeleton_cdev); + unregister_chrdev_region(skeleton_dev, 1); + + pr_info("Linux module skeleton unloaded\n"); +} + +module_init(skeleton_init); +module_exit(skeleton_exit); + +MODULE_AUTHOR("Daniel Gachet "); +MODULE_DESCRIPTION("Module skeleton"); +MODULE_LICENSE("GPL"); diff --git a/src/03_drivers/exercice03/Makefile b/src/03_drivers/exercice03/Makefile new file mode 100644 index 0000000..062211c --- /dev/null +++ b/src/03_drivers/exercice03/Makefile @@ -0,0 +1,23 @@ +# Part executed when called from kernel build system: +ifneq ($(KERNELRELEASE),) +obj-m += mymodule.o ## name of the generated module + +mymodule-objs := skeleton.o ## list of objects needed for that module + +# Part executed when called from standard make in module source directory: +else +include ../../buildroot_path +include ../../kernel_settings +PWD := $(shell pwd) + +all: + $(MAKE) -C $(KDIR) M=$(PWD) ARCH=$(CPU) CROSS_COMPILE=$(TOOLS) modules + +clean: + $(MAKE) -C $(KDIR) M=$(PWD) clean + +install: + $(MAKE) -C $(KDIR) M=$(PWD) INSTALL_MOD_PATH=$(MODPATH) modules_install + +endif + diff --git a/src/03_drivers/exercice03/skeleton.c b/src/03_drivers/exercice03/skeleton.c new file mode 100644 index 0000000..4d4027d --- /dev/null +++ b/src/03_drivers/exercice03/skeleton.c @@ -0,0 +1,147 @@ +/* skeleton.c */ +#include /* needed for char device driver */ +#include /* needed for device drivers */ +#include /* needed for macros */ +#include /* needed for debugging */ +#include /* needed by all modules */ +#include /* needed for module parameters */ +#include /* needed for dynamic memory management */ +#include /* needed to copy data to/from user */ + +static int instances = 3; +module_param(instances, int, 0); + +#define BUFFER_SZ 10000 +static char** buffers = 0; + +static int skeleton_open(struct inode* i, struct file* f) +{ + pr_info("skeleton : open operation... major:%d, minor:%d\n", + imajor(i), + iminor(i)); + + if (iminor(i) >= instances) { + return -EFAULT; + } + + if ((f->f_mode & (FMODE_READ | FMODE_WRITE)) != 0) { + pr_info("skeleton : opened for reading & writing...\n"); + } else if ((f->f_mode & FMODE_READ) != 0) { + pr_info("skeleton : opened for reading...\n"); + } else if ((f->f_mode & FMODE_WRITE) != 0) { + pr_info("skeleton : opened for writing...\n"); + } + + f->private_data = buffers[iminor(i)]; + pr_info("skeleton: private_data=%p\n", f->private_data); + + return 0; +} + +static int skeleton_release(struct inode* i, struct file* f) +{ + pr_info("skeleton: release operation...\n"); + + return 0; +} + +static ssize_t skeleton_read(struct file* f, + char __user* buf, + size_t count, + loff_t* off) +{ + // compute remaining bytes to copy, update count and pointers + ssize_t remaining = BUFFER_SZ - (ssize_t)(*off); + char* ptr = (char*)f->private_data + *off; + if (count > remaining) count = remaining; + *off += count; + + // copy required number of bytes + if (copy_to_user(buf, ptr, count) != 0) count = -EFAULT; + + pr_info("skeleton: read operation... read=%ld\n", count); + + return count; +} + +static ssize_t skeleton_write(struct file* f, + const char __user* buf, + size_t count, + loff_t* off) +{ + // compute remaining space in buffer and update pointers + ssize_t remaining = BUFFER_SZ - (ssize_t)(*off); + + // check if still remaining space to store additional bytes + if (count >= remaining) count = -EIO; + + // store additional bytes into internal buffer + if (count > 0) { + char* ptr = f->private_data + *off; + *off += count; + ptr[count] = 0; // make sure string is null terminated + if (copy_from_user(ptr, buf, count)) count = -EFAULT; + } + + pr_info("skeleton: write operation... private_data=%p, written=%ld\n", + f->private_data, + count); + + return count; +} + +static struct file_operations skeleton_fops = { + .owner = THIS_MODULE, + .open = skeleton_open, + .read = skeleton_read, + .write = skeleton_write, + .release = skeleton_release, +}; + +static dev_t skeleton_dev; +static struct cdev skeleton_cdev; + +static int __init skeleton_init(void) +{ + int i; + int status = -EFAULT; + + if (instances <= 0) return -EFAULT; + + status = alloc_chrdev_region(&skeleton_dev, 0, instances, "mymodule"); + if (status == 0) { + cdev_init(&skeleton_cdev, &skeleton_fops); + skeleton_cdev.owner = THIS_MODULE; + status = cdev_add(&skeleton_cdev, skeleton_dev, instances); + } + + if (status == 0) { + buffers = kzalloc(sizeof(char*) * instances, GFP_KERNEL); + for (i = 0; i < instances; i++) + buffers[i] = kzalloc(BUFFER_SZ, GFP_KERNEL); + } + + pr_info("Linux module skeleton loaded\n"); + pr_info("The number of instances: %d\n", instances); + return status; +} + +static void __exit skeleton_exit(void) +{ + int i; + + cdev_del(&skeleton_cdev); + unregister_chrdev_region(skeleton_dev, instances); + + for (i = 0; i < instances; i++) kfree(buffers[i]); + kfree(buffers); + + pr_info("Linux module skeleton unloaded\n"); +} + +module_init(skeleton_init); +module_exit(skeleton_exit); + +MODULE_AUTHOR("Daniel Gachet "); +MODULE_DESCRIPTION("Module skeleton"); +MODULE_LICENSE("GPL"); diff --git a/src/03_drivers/exercice04/Makefile b/src/03_drivers/exercice04/Makefile new file mode 100644 index 0000000..a9c8458 --- /dev/null +++ b/src/03_drivers/exercice04/Makefile @@ -0,0 +1,37 @@ +EXEC=app +SRCS=$(wildcard *.c) + +TOOLCHAIN_PATH=/buildroot/output/host/usr/bin/ +TOOLCHAIN=$(TOOLCHAIN_PATH)aarch64-linux- +CFLAGS+=-Wall -Wextra -g -c -O0 -MD -std=gnu11 +CFLAGS+=-mcpu=cortex-a53 -funwind-tables + +OBJDIR=.obj + +CC=$(TOOLCHAIN)gcc +LD=$(TOOLCHAIN)gcc +AR=$(TOOLCHAIN)ar +STRIP=$(TOOLCHAIN)strip +OBJS+=$(addprefix $(OBJDIR)/, $(SRCS:.c=.o)) + +.PHONY: all clean + +$(OBJDIR)/%o: %c + $(CC) $(CFLAGS) $< -o $@ + + +all: $(OBJDIR)/ $(EXEC) + +clean: $(EXTRA_CLEAN) + rm -Rf .obj + rm -Rf $(EXEC) *.map *~ + +$(EXEC): $(OBJS) $(LINKER_SCRIPT) + $(LD) $(OBJS) $(LDFLAGS) -o $@ + +$(OBJDIR)/: + mkdir -p $(OBJDIR) + +-include $(OBJS:.o=.d) + + diff --git a/src/03_drivers/exercice04/main.c b/src/03_drivers/exercice04/main.c new file mode 100644 index 0000000..f8e6250 --- /dev/null +++ b/src/03_drivers/exercice04/main.c @@ -0,0 +1,47 @@ +#include +#include +#include +#include +#include + +static const char* text = + "\n" + "bonjour le monde\n" + "ce mois d'octobre est plutot humide...\n" + "ce n'est qu'un petit texte de test...\n"; + +static const char* text2 = + "\n" + "et voici un complement au premier text..\n" + "ce n'est qu'un deuxieme petit texte de test...\n"; + +static const char* blabla = + "blabla blabla blabla blabla blabla blabla blabla\n"; + +int main(int argc, char* argv[]) +{ + if (argc <= 1) return 0; + + int fdw = open(argv[1], O_RDWR); + write(fdw, argv[1], strlen(argv[1])); + write(fdw, text, strlen(text)); + write(fdw, text2, strlen(text2)); + + int s; + do { + s = write(fdw, blabla, strlen(blabla)); + } while (s >= 0); + close(fdw); + + int fdr = open(argv[1], O_RDONLY); + while (1) { + char buff[100]; + ssize_t sz = read(fdr, buff, sizeof(buff) - 1); + if (sz <= 0) break; + buff[sizeof(buff) - 1] = 0; + printf("%s", buff); + } + close(fdr); + + return 0; +} diff --git a/src/03_drivers/exercice05.1/Makefile b/src/03_drivers/exercice05.1/Makefile new file mode 100644 index 0000000..7168507 --- /dev/null +++ b/src/03_drivers/exercice05.1/Makefile @@ -0,0 +1,22 @@ +# Part executed when called from kernel build system: +ifneq ($(KERNELRELEASE),) +obj-m += mymodule.o ## name of the generated module + +mymodule-objs := skeleton.o ## list of objects needed for that module + +# Part executed when called from standard make in module source directory: +else +include ../../kernel_settings +PWD := $(shell pwd) + +all: + $(MAKE) -C $(KDIR) M=$(PWD) ARCH=$(CPU) CROSS_COMPILE=$(TOOLS) modules + +clean: + $(MAKE) -C $(KDIR) M=$(PWD) clean + +install: + $(MAKE) -C $(KDIR) M=$(PWD) INSTALL_MOD_PATH=$(MODPATH) modules_install + +endif + diff --git a/src/03_drivers/exercice05.1/skeleton.c b/src/03_drivers/exercice05.1/skeleton.c new file mode 100644 index 0000000..29141ea --- /dev/null +++ b/src/03_drivers/exercice05.1/skeleton.c @@ -0,0 +1,249 @@ +/* skeleton.c */ +#include /* needed for macros */ +#include /* needed for debugging */ +#include /* needed by all modules */ + +#include /* needed for char device driver */ +#include /* needed for device drivers */ +#include /* needed to copy data to/from user */ + +#include /* needed for sysfs handling */ +#include +#include /* needed for sysfs handling */ + +//#define MISC +//#define PLATFORM +#define CLASS + +struct skeleton_config { + int id; + long ref; + char name[30]; + char descr[30]; +}; + +static struct skeleton_config config; +static int val; + +ssize_t sysfs_show_val(struct device* dev, + struct device_attribute* attr, + char* buf) +{ + sprintf(buf, "%d\n", val); + return strlen(buf); +} +ssize_t sysfs_store_val(struct device* dev, + struct device_attribute* attr, + const char* buf, + size_t count) +{ + val = simple_strtol(buf, 0, 10); + return count; +} +DEVICE_ATTR(val, 0664, sysfs_show_val, sysfs_store_val); + +ssize_t sysfs_show_cfg(struct device* dev, + struct device_attribute* attr, + char* buf) +{ + sprintf(buf, + "%d %ld %s %s\n", + config.id, + config.ref, + config.name, + config.descr); + return strlen(buf); +} +ssize_t sysfs_store_cfg(struct device* dev, + struct device_attribute* attr, + const char* buf, + size_t count) +{ + sscanf(buf, + "%d %ld %s %s", + &config.id, + &config.ref, + config.name, + config.descr); + return count; +} +DEVICE_ATTR(cfg, 0664, sysfs_show_cfg, sysfs_store_cfg); + +#define BUFFER_SZ 10000 + +static char s_buffer[BUFFER_SZ]; +static dev_t skeleton_dev; +static struct cdev skeleton_cdev; + +static int skeleton_open(struct inode* i, struct file* f) +{ + pr_info("skeleton : open operation... major:%d, minor:%d\n", + imajor(i), + iminor(i)); + + if ((f->f_mode & (FMODE_READ | FMODE_WRITE)) != 0) { + pr_info("skeleton : opened for reading & writing...\n"); + } else if ((f->f_mode & FMODE_READ) != 0) { + pr_info("skeleton : opened for reading...\n"); + } else if ((f->f_mode & FMODE_WRITE) != 0) { + pr_info("skeleton : opened for writing...\n"); + } + + return 0; +} + +static int skeleton_release(struct inode* i, struct file* f) +{ + pr_info("skeleton: release operation...\n"); + + return 0; +} + +static ssize_t skeleton_read(struct file* f, + char __user* buf, + size_t count, + loff_t* off) +{ + // compute remaining bytes to copy, update count and pointers + ssize_t remaining = BUFFER_SZ - (ssize_t)(*off); + char* ptr = s_buffer + *off; + if (count > remaining) count = remaining; + *off += count; + + // copy required number of bytes + if (copy_to_user(buf, ptr, count) != 0) count = -EFAULT; + + pr_info("skeleton: read operation... read=%ld\n", count); + + return count; +} + +static ssize_t skeleton_write(struct file* f, + const char __user* buf, + size_t count, + loff_t* off) +{ + // compute remaining space in buffer and update pointers + ssize_t remaining = BUFFER_SZ - (ssize_t)(*off); + + // check if still remaining space to store additional bytes + if (count >= remaining) count = -EIO; + + // store additional bytes into internal buffer + if (count > 0) { + char* ptr = s_buffer + *off; + *off += count; + ptr[count] = 0; // make sure string is null terminated + if (copy_from_user(ptr, buf, count)) count = -EFAULT; + } + + pr_info("skeleton: write operation... written=%ld\n", count); + + return count; +} + +static struct file_operations skeleton_fops = { + .owner = THIS_MODULE, + .open = skeleton_open, + .read = skeleton_read, + .write = skeleton_write, + .release = skeleton_release, +}; + +#ifdef MISC +static struct miscdevice misc_device = { + .minor = MISC_DYNAMIC_MINOR, + .fops = &fops + .name = "my_misc_module", + .mode = 0, +}; +#endif + +#ifdef PLATFORM +static void sysfs_dev_release (struct device *dev) +{ + pr_info ("skeleton - sysfs dev release\n"); +} + +static struct platform_device platform_device = { + .name = "my_platform_module", + .id = -1, + .dev.release = sysfs_dev_release +}; +#endif + +#ifdef CLASS +static struct class* sysfs_class; +static struct device* sysfs_device; +#endif + +static int __init skeleton_init(void) +{ + int status = 0; + +#ifndef MISC + status = alloc_chrdev_region(&skeleton_dev, 0, 1, "mymodule"); + if (status == 0) { + cdev_init(&skeleton_cdev, &skeleton_fops); + skeleton_cdev.owner = THIS_MODULE; + status = cdev_add(&skeleton_cdev, skeleton_dev, 1); + } +#endif + +#ifdef MISC + if (status == 0) status = misc_register(&misc_device); + if (status == 0) status = device_create_file(misc_device.this_device, &dev_attr_val); + if (status == 0) status = device_create_file(misc_device.this_device, &dev_attr_cfg); +#endif + +#ifdef PLATFORM + platform_device.dev.devt = skeleton_dev; + if (status == 0) status = platform_device_register (&platform_device); + if (status == 0) status = device_create_file (&platform_device.dev, &dev_attr_val); + if (status == 0) status = device_create_file (&platform_device.dev, &dev_attr_cfg); +#endif + +#ifdef CLASS + sysfs_class = class_create(THIS_MODULE, "my_sysfs_class"); + sysfs_device = device_create(sysfs_class, NULL, skeleton_dev, NULL, "my_sysfs_device"); + if (status == 0) status = device_create_file(sysfs_device, &dev_attr_val); + if (status == 0) status = device_create_file(sysfs_device, &dev_attr_cfg); +#endif + + pr_info("Linux module skeleton loaded\n"); + return 0; +} + +static void __exit skeleton_exit(void) +{ +#ifdef MISC + misc_deregister(&misc_device); +#endif + +#ifdef PLATFORM + device_remove_file (&platform_device.dev, &dev_attr_cfg); + device_remove_file (&platform_device.dev, &dev_attr_val); + platform_device_unregister (&platform_device); +#endif + +#ifdef CLASS + device_remove_file(sysfs_device, &dev_attr_val); + device_remove_file(sysfs_device, &dev_attr_cfg); + device_destroy(sysfs_class, 0); + class_destroy(sysfs_class); +#endif + +#ifndef MISC + cdev_del(&skeleton_cdev); + unregister_chrdev_region(skeleton_dev, 1); +#endif + + pr_info("Linux module skeleton unloaded\n"); +} + +module_init(skeleton_init); +module_exit(skeleton_exit); + +MODULE_AUTHOR("Daniel Gachet "); +MODULE_DESCRIPTION("Module skeleton"); +MODULE_LICENSE("GPL"); diff --git a/src/03_drivers/exercice05/Makefile b/src/03_drivers/exercice05/Makefile new file mode 100644 index 0000000..062211c --- /dev/null +++ b/src/03_drivers/exercice05/Makefile @@ -0,0 +1,23 @@ +# Part executed when called from kernel build system: +ifneq ($(KERNELRELEASE),) +obj-m += mymodule.o ## name of the generated module + +mymodule-objs := skeleton.o ## list of objects needed for that module + +# Part executed when called from standard make in module source directory: +else +include ../../buildroot_path +include ../../kernel_settings +PWD := $(shell pwd) + +all: + $(MAKE) -C $(KDIR) M=$(PWD) ARCH=$(CPU) CROSS_COMPILE=$(TOOLS) modules + +clean: + $(MAKE) -C $(KDIR) M=$(PWD) clean + +install: + $(MAKE) -C $(KDIR) M=$(PWD) INSTALL_MOD_PATH=$(MODPATH) modules_install + +endif + diff --git a/src/03_drivers/exercice05/skeleton.c b/src/03_drivers/exercice05/skeleton.c new file mode 100644 index 0000000..4bb9dc2 --- /dev/null +++ b/src/03_drivers/exercice05/skeleton.c @@ -0,0 +1,153 @@ +/* skeleton.c */ +#include /* needed for macros */ +#include /* needed for debugging */ +#include /* needed by all modules */ + +#include /* needed for char device driver */ +#include /* needed for device drivers */ +#include /* needed to copy data to/from user */ + +#include /* needed for sysfs handling */ +#include +#include /* needed for sysfs handling */ + +//#define MISC +//#define PLATFORM +#define CLASS + +struct skeleton_config { + int id; + long ref; + char name[30]; + char descr[30]; +}; + +static struct skeleton_config config; +static int val; + +ssize_t sysfs_show_val(struct device* dev, + struct device_attribute* attr, + char* buf) +{ + sprintf(buf, "%d\n", val); + return strlen(buf); +} +ssize_t sysfs_store_val(struct device* dev, + struct device_attribute* attr, + const char* buf, + size_t count) +{ + val = simple_strtol(buf, 0, 10); + return count; +} +DEVICE_ATTR(val, 0664, sysfs_show_val, sysfs_store_val); + +ssize_t sysfs_show_cfg(struct device* dev, + struct device_attribute* attr, + char* buf) +{ + sprintf(buf, + "%d %ld %s %s\n", + config.id, + config.ref, + config.name, + config.descr); + return strlen(buf); +} +ssize_t sysfs_store_cfg(struct device* dev, + struct device_attribute* attr, + const char* buf, + size_t count) +{ + sscanf(buf, + "%d %ld %s %s", + &config.id, + &config.ref, + config.name, + config.descr); + return count; +} +DEVICE_ATTR(cfg, 0664, sysfs_show_cfg, sysfs_store_cfg); + + +#ifdef MISC +static struct miscdevice misc_device = { + .minor = MISC_DYNAMIC_MINOR, + .name = "mymodule", + .mode = 0, +}; +#endif + +#ifdef PLATFORM +static void sysfs_dev_release (struct device *dev) +{ + pr_info ("skeleton - sysfs dev release\n"); +} + +static struct platform_device platform_device = { + .name = "mymodule", + .id = -1, + .dev.release = sysfs_dev_release +}; +#endif + +#ifdef CLASS +static struct class* sysfs_class; +static struct device* sysfs_device; +#endif + +static int __init skeleton_init(void) +{ + int status = 0; + +#ifdef MISC + if (status == 0) status = misc_register(&misc_device); + if (status == 0) status = device_create_file(misc_device.this_device, &dev_attr_val); + if (status == 0) status = device_create_file(misc_device.this_device, &dev_attr_cfg); +#endif + +#ifdef PLATFORM + if (status == 0) status = platform_device_register (&platform_device); + if (status == 0) status = device_create_file (&platform_device.dev, &dev_attr_val); + if (status == 0) status = device_create_file (&platform_device.dev, &dev_attr_cfg); +#endif + +#ifdef CLASS + sysfs_class = class_create(THIS_MODULE, "my_sysfs_class"); + sysfs_device = device_create(sysfs_class, NULL, 0, NULL, "my_sysfs_device"); + if (status == 0) status = device_create_file(sysfs_device, &dev_attr_val); + if (status == 0) status = device_create_file(sysfs_device, &dev_attr_cfg); +#endif + + pr_info("Linux module skeleton loaded\n"); + return 0; +} + +static void __exit skeleton_exit(void) +{ +#ifdef MISC + misc_deregister(&misc_device); +#endif + +#ifdef PLATFORM + device_remove_file (&platform_device.dev, &dev_attr_cfg); + device_remove_file (&platform_device.dev, &dev_attr_val); + platform_device_unregister (&platform_device); +#endif + +#ifdef CLASS + device_remove_file(sysfs_device, &dev_attr_val); + device_remove_file(sysfs_device, &dev_attr_cfg); + device_destroy(sysfs_class, 0); + class_destroy(sysfs_class); +#endif + + pr_info("Linux module skeleton unloaded\n"); +} + +module_init(skeleton_init); +module_exit(skeleton_exit); + +MODULE_AUTHOR("Daniel Gachet "); +MODULE_DESCRIPTION("Module skeleton"); +MODULE_LICENSE("GPL"); diff --git a/src/03_drivers/exercice06.1/Makefile b/src/03_drivers/exercice06.1/Makefile new file mode 100644 index 0000000..6e78a4e --- /dev/null +++ b/src/03_drivers/exercice06.1/Makefile @@ -0,0 +1,36 @@ +# Part executed when called from kernel build system: +ifneq ($(KERNELRELEASE),) +obj-m += mymodule.o ## name of the generated module + +mymodule-objs := skeleton.o ## list of objects needed for that module + +# Part executed when called from standard make in module source directory: +else +include ../../kernel_settings +PWD := $(shell pwd) + +INCL+=-I. -I$(KDIR)/include -I$(KDIR)/arch/arm64/boot/dts +DTB = mydt.dtb +DTS = $(DTB:.dtb=.dts) + +all: dtb boot + $(MAKE) -C $(KDIR) M=$(PWD) ARCH=$(CPU) CROSS_COMPILE=$(TOOLS) modules + +dtb: $(DTB) +$(DTB) : $(DTS) + ln -s $(KDIR)/arch/arm/boot/dts arm + -cpp $(INCL) -E -P -x assembler-with-cpp $(DTS) | dtc -I dts -O dtb -o $(DTB) - + rm arm + +boot: + mkimage -T script -A arm -C none -d boot.cmd boot.ovl + +clean: + $(MAKE) -C $(KDIR) M=$(PWD) clean + rm -f *.dtb *.ovl + +install: + $(MAKE) -C $(KDIR) M=$(PWD) INSTALL_MOD_PATH=$(MODPATH) modules_install + +endif + diff --git a/src/03_drivers/exercice06.1/boot.cmd b/src/03_drivers/exercice06.1/boot.cmd new file mode 100644 index 0000000..6774bba --- /dev/null +++ b/src/03_drivers/exercice06.1/boot.cmd @@ -0,0 +1,13 @@ +setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait + +fatload mmc 0 $kernel_addr_r Image +#fatload mmc 0 $fdt_addr_r sun50i-h5-nanopi-neo-plus2.dtb +fatload mmc 0 $fdt_addr_r mydt.dtb + +fdt addr $fdt_addr_r +fdt resize +#fdt mknode / mymodule2 +#fdt set /mymodule2 compatible mymodule2 + + +booti $kernel_addr_r - $fdt_addr_r diff --git a/src/03_drivers/exercice06.1/mydt.dts b/src/03_drivers/exercice06.1/mydt.dts new file mode 100644 index 0000000..aa1fe29 --- /dev/null +++ b/src/03_drivers/exercice06.1/mydt.dts @@ -0,0 +1,34 @@ +/dts-v1/; + +#include "allwinner/sun50i-h5-nanopi-neo-plus2.dts" + +/ { + /delete-node/ leds; + + mydevice { + compatible = "mydevice"; + #address-cells = <1>; + #size-cells = <0>; + attribute = "idle"; + + mydevice@0 { + reg = <0x0>; + attribute = "on"; + }; + + mydevice@1 { + reg = <0x1>; + attribute = "off"; + }; + + mydevice@2 { + reg = <0x2>; + attribute = "off"; + }; + + mydevice@3 { + reg = <0x3>; + attribute = "off"; + }; + }; +}; diff --git a/src/03_drivers/exercice06.1/skeleton.c b/src/03_drivers/exercice06.1/skeleton.c new file mode 100644 index 0000000..bb5c70a --- /dev/null +++ b/src/03_drivers/exercice06.1/skeleton.c @@ -0,0 +1,253 @@ +/* skeleton.c */ +#include /* needed for macros */ +#include /* needed for debugging */ +#include /* needed by all modules */ + +#include /* needed for char device driver */ +#include /* needed for device drivers */ +#include /* needed to copy data to/from user */ + +#include /* needed for linked list processing */ +#include /* needed for sysfs handling */ +#include +#include +#include /* needed for sysfs handling */ + +#define BUFFER_SZ 10000 +struct mydata { + char buffer[BUFFER_SZ]; + struct miscdevice misc; + struct list_head node; +}; + +static int skeleton_open(struct inode* i, struct file* f) +{ + pr_info("skeleton : open operation... major:%d, minor:%d, p_data=%llx\n", + imajor(i), + iminor(i), + (long long)f->private_data); + return 0; +} + +static int skeleton_release(struct inode* i, struct file* f) +{ + pr_info("skeleton: release operation...p_data=%llx\n", + (long long)f->private_data); + return 0; +} + +static ssize_t skeleton_read(struct file* f, + char __user* buf, + size_t count, + loff_t* off) +{ + struct mydata* mydata = container_of(f->private_data, struct mydata, misc); + + // compute remaining bytes to copy, update count and pointers + ssize_t remaining = strlen(mydata->buffer) - (ssize_t)(*off); + char* ptr = mydata->buffer + *off; + if (count > remaining) count = remaining; + *off += count; + + // copy required number of bytes + if (copy_to_user(buf, ptr, count) != 0) count = -EFAULT; + + pr_info("skeleton: read operation...p_data=%llx read=%ld\n", + (long long)f->private_data, + count); + + return count; +} + +static ssize_t skeleton_write(struct file* f, + const char __user* buf, + size_t count, + loff_t* off) +{ + struct mydata* mydata = container_of(f->private_data, struct mydata, misc); + + // compute remaining space in buffer and update pointers + ssize_t remaining = sizeof(mydata->buffer) - (ssize_t)(*off); + char* ptr = mydata->buffer + *off; + *off += count; + + // check if still remaining space to store additional bytes + if (count >= remaining) count = -EIO; + + // store additional bytes into internal buffer + if (count > 0) { + ptr[count] = 0; // make sure string is null terminated + if (copy_from_user(ptr, buf, count)) count = -EFAULT; + } + + pr_info("skeleton: write operation... written=%ld\n", count); + return count; +} + +static struct file_operations fops = { + .owner = THIS_MODULE, + .open = skeleton_open, + .read = skeleton_read, + .write = skeleton_write, + .release = skeleton_release, +}; + +int drv_probe(struct platform_device* pdev) +{ + int ret = 0; + struct device_node* dt_node = pdev->dev.of_node; + struct mydata* mydata = 0; + const char* prop_str = 0; + + pr_info("skeleton - driver probe %llx (%s)- M.m=%d.%d, dtnode=%p\n", + (unsigned long long)pdev, + pdev->name, + MAJOR(pdev->dev.devt), + MINOR(pdev->dev.devt), + dt_node); + + ret = of_property_read_string(dt_node, "attribute", &prop_str); + if (prop_str && ret == 0) pr_info("attribute=%s (ret=%d)\n", prop_str, ret); + + if (pdev->num_resources) { + pr_info("resources: name=%s, start=%lld, end=%lld\n", + pdev->resource[0].name, + pdev->resource[0].start, + pdev->resource[0].end); + } + + if (dt_node) { + int ret = 0; + const char* prop_str = 0; + const unsigned int* prop_reg = 0; + struct device_node* child = 0; + struct list_head* list = devm_kzalloc(&pdev->dev, sizeof(struct list_head), GFP_KERNEL); + if (list == 0) { + dev_err(&pdev->dev, + "Failed to allocate resource for miscdev\n"); + return -ENOMEM; + } + INIT_LIST_HEAD(list); + platform_set_drvdata(pdev, list); + + for_each_available_child_of_node(dt_node, child) + { + mydata = devm_kzalloc(&pdev->dev, sizeof(*mydata), GFP_KERNEL); + pr_info("miscdev=%llx\n", (long long)mydata); + if (mydata == 0) { + dev_err(&pdev->dev, + "Failed to allocate resource for miscdev\n"); + return -ENOMEM; + } + list_add_tail (&(mydata->node), list); + + pr_info("child found: name=%s, fullname=%s\n", + child->name, + child->full_name); + prop_reg = of_get_property(child, "reg", NULL); + if (prop_reg != 0) { + unsigned long reg = of_read_ulong(prop_reg, 1); + pr_info("reg:%lu\n", reg); + } + + ret = of_property_read_string(child, "attribute", &prop_str); + if (prop_str && ret == 0) + pr_info("attribute=%s (ret=%d)\n", prop_str, ret); + + /* register misc device ... */ + mydata->misc.minor = MISC_DYNAMIC_MINOR; + mydata->misc.fops = &fops; + mydata->misc.name = child->full_name; + mydata->misc.mode = 0664; + ret = misc_register(&(mydata->misc)); + if (ret != 0) { + dev_err(&pdev->dev, "Failed to register miscdev\n"); + return ret; + } + } + } + + return 0; +} +int drv_remove(struct platform_device* pdev) +{ + struct mydata* mydata; + struct list_head* list = platform_get_drvdata(pdev); + pr_info("skeleton - sysfs driver remove %s\n", pdev->name); + list_for_each_entry (mydata, list, node) { + misc_deregister(&(mydata->misc)); + } + return 0; +} + +void drv_shutdown(struct platform_device* pdev) +{ + pr_info("skeleton - sysfs driver shutdown %s\n", pdev->name); +} +int drv_suspend(struct platform_device* pdev, pm_message_t state) +{ + pr_info("skeleton - sysfs driver suspend %s (state=%d)\n", + pdev->name, + state.event); + return 0; +} +int drv_resume(struct platform_device* pdev) +{ + pr_info("skeleton - sysfs driver resume %s\n", pdev->name); + return 0; +} + +struct of_device_id of_drv[] = { + { + .compatible = "mydevice", + }, + {}, +}; +MODULE_DEVICE_TABLE(of, of_drv); + +static struct platform_driver sysfs_driver = { + .probe = drv_probe, + .remove = drv_remove, + .shutdown = drv_shutdown, + .suspend = drv_suspend, + .resume = drv_resume, + .driver = + { + .name = "mydriver", + .of_match_table = of_match_ptr(of_drv), + }, +}; +#if 1 +static int __init sysfs_driver_init(void) +{ + int status = 0; + + pr_info("Linux module skeleton loading...\n"); + + /* install sysfs */ + if (status == 0) status = platform_driver_register(&sysfs_driver); + + pr_info("Linux module skeleton loaded\n"); + return 0; +} + +static void __exit sysfs_driver_exit(void) +{ + pr_info("Linux module skeleton exiting...\n"); + + /* uninstall sysfs */ + platform_driver_unregister(&sysfs_driver); + + pr_info("Linux module skeleton unloaded\n"); +} + +module_init(sysfs_driver_init); +module_exit(sysfs_driver_exit); + +#else +module_platform_driver(sysfs_driver); +#endif + +MODULE_AUTHOR("Daniel Gachet "); +MODULE_DESCRIPTION("Module skeleton"); +MODULE_LICENSE("GPL"); diff --git a/src/03_drivers/exercice06/Makefile b/src/03_drivers/exercice06/Makefile new file mode 100644 index 0000000..ba69304 --- /dev/null +++ b/src/03_drivers/exercice06/Makefile @@ -0,0 +1,40 @@ +export PATH := /buildroot/output/host/usr/sbin$\ + :/buildroot/output/host/usr/bin/$\ + :/buildroot/output/host/sbin$\ + :/buildroot/output/host/bin/$\ + :$(PATH) + +# Part executed when called from kernel build system: +ifneq ($(KERNELRELEASE),) +obj-m += mymodule.o ## name of the generated module + +mymodule-objs := skeleton.o ## list of objects needed for that module + +# Part executed when called from standard make in module source directory: +else +include ../../kernel_settings +PWD := $(shell pwd) + +all: dtb + $(MAKE) -C $(KDIR) M=$(PWD) ARCH=$(CPU) CROSS_COMPILE=$(TOOLS) modules + + +DTB = mydt.dtb +DTS = mydt.dts +INCL+=-I. -I$(KDIR)/include -I$(KDIR)/arch/arm64/boot/dts + +dtb: $(DTB) +$(DTB) : $(DTS) + ln -s $(KDIR)/arch/arm/boot/dts arm + -cpp $(INCL) -E -P -x assembler-with-cpp $(DTS) | dtc -I dts -O dtb -o $(DTB) - + rm arm + +clean: + $(MAKE) -C $(KDIR) M=$(PWD) clean + rm -f *.dtb + +install: + $(MAKE) -C $(KDIR) M=$(PWD) INSTALL_MOD_PATH=$(MODPATH) modules_install + +endif + diff --git a/src/03_drivers/exercice06/mydt.dts b/src/03_drivers/exercice06/mydt.dts new file mode 100644 index 0000000..caf601e --- /dev/null +++ b/src/03_drivers/exercice06/mydt.dts @@ -0,0 +1,13 @@ +/dts-v1/; + +#include "allwinner/sun50i-h5-nanopi-neo-plus2.dts" + +/ { + /delete-node/ leds; + + mydevice { + compatible = "mydevice"; + attribute = "on"; + }; + +}; diff --git a/src/03_drivers/exercice06/skeleton.c b/src/03_drivers/exercice06/skeleton.c new file mode 100644 index 0000000..1aec1ca --- /dev/null +++ b/src/03_drivers/exercice06/skeleton.c @@ -0,0 +1,255 @@ +/* skeleton.c */ +#include /* needed for macros */ +#include /* needed for debugging */ +#include /* needed by all modules */ + +#include /* needed for char device driver */ +#include /* needed for device drivers */ +#include /* needed to copy data to/from user */ + +#include /* needed for sysfs handling */ +#include +#include +#include /* needed for sysfs handling */ + +#define BUFFER_SZ 10000 +struct mydata { + char buffer[BUFFER_SZ]; + struct miscdevice misc; +}; + +static int skeleton_open(struct inode* i, struct file* f) +{ + pr_info("skeleton : open operation... major:%d, minor:%d, p_data=%llx\n", + imajor(i), + iminor(i), + (long long)f->private_data); + return 0; +} + +static int skeleton_release(struct inode* i, struct file* f) +{ + pr_info("skeleton: release operation...p_data=%llx\n", + (long long)f->private_data); + return 0; +} + +static ssize_t skeleton_read(struct file* f, + char __user* buf, + size_t count, + loff_t* off) +{ + struct mydata* mydata = container_of(f->private_data, struct mydata, misc); + + // compute remaining bytes to copy, update count and pointers + ssize_t remaining = strlen(mydata->buffer) - (ssize_t)(*off); + char* ptr = mydata->buffer + *off; + if (count > remaining) count = remaining; + *off += count; + + // copy required number of bytes + if (copy_to_user(buf, ptr, count) != 0) count = -EFAULT; + + pr_info("skeleton: read operation...p_data=%llx read=%ld\n", + (long long)f->private_data, + count); + + return count; +} + +static ssize_t skeleton_write(struct file* f, + const char __user* buf, + size_t count, + loff_t* off) +{ + struct mydata* mydata = container_of(f->private_data, struct mydata, misc); + + // compute remaining space in buffer and update pointers + ssize_t remaining = sizeof(mydata->buffer) - (ssize_t)(*off); + char* ptr = mydata->buffer + *off; + *off += count; + + // check if still remaining space to store additional bytes + if (count >= remaining) count = -EIO; + + // store additional bytes into internal buffer + if (count > 0) { + ptr[count] = 0; // make sure string is null terminated + if (copy_from_user(ptr, buf, count)) count = -EFAULT; + } + + pr_info("skeleton: write operation... written=%ld\n", count); + return count; +} + +static struct file_operations fops = { + .owner = THIS_MODULE, + .open = skeleton_open, + .read = skeleton_read, + .write = skeleton_write, + .release = skeleton_release, +}; + +int drv_probe(struct platform_device* pdev) +{ + int ret = 0; + struct device_node* dt_node = pdev->dev.of_node; + struct mydata* mydata = 0; + + pr_info("skeleton - driver probe %llx (%s)- M.m=%d.%d\n", + (unsigned long long)pdev, + pdev->name, + MAJOR(pdev->dev.devt), + MINOR(pdev->dev.devt)); + + mydata = devm_kzalloc(&pdev->dev, sizeof(*mydata), GFP_KERNEL); + pr_info("miscdev=%llx\n", (long long)mydata); + if (mydata == 0) { + dev_err(&pdev->dev, "Failed to allocate resource for miscdev\n"); + return -ENOMEM; + } + + if (pdev->num_resources) { + pr_info("resources: name=%s, start=%lld, end=%lld\n", + pdev->resource[0].name, + pdev->resource[0].start, + pdev->resource[0].end); + } + + if (dt_node) { + int ret = 0; + const char* prop_str = 0; + const unsigned int* prop_reg = 0; + + prop_reg = of_get_property(dt_node, "reg", NULL); + if (prop_reg != 0) { + unsigned long reg = of_read_ulong(prop_reg, 1); + pr_info("reg:%lu\n", reg); + } + + ret = of_property_read_string(dt_node, "attribute", &prop_str); + if (prop_str && ret == 0) + pr_info("attribute=%s (ret=%d)\n", prop_str, ret); + } + + /* register misc device ... */ + platform_set_drvdata(pdev, mydata); + mydata->misc.minor = MISC_DYNAMIC_MINOR; + mydata->misc.fops = &fops; + mydata->misc.name = pdev->name; + mydata->misc.mode = 0664; + ret = misc_register(&(mydata->misc)); + if (ret != 0) { + dev_err(&pdev->dev, "Failed to register miscdev\n"); + return ret; + } + + return 0; +} +int drv_remove(struct platform_device* pdev) +{ + struct mydata* mydata = platform_get_drvdata(pdev); + pr_info("skeleton - sysfs driver remove %s\n", pdev->name); + misc_deregister(&(mydata->misc)); + return 0; +} + +void drv_shutdown(struct platform_device* pdev) +{ + pr_info("skeleton - sysfs driver shutdown %s\n", pdev->name); +} +int drv_suspend(struct platform_device* pdev, pm_message_t state) +{ + pr_info("skeleton - sysfs driver suspend %s (state=%d)\n", + pdev->name, + state.event); + return 0; +} +int drv_resume(struct platform_device* pdev) +{ + pr_info("skeleton - sysfs driver resume %s\n", pdev->name); + return 0; +} + +struct of_device_id of_drv[] = { + { + .compatible = "mydevice", + }, + {}, +}; +MODULE_DEVICE_TABLE(of, of_drv); + +static struct platform_driver sysfs_driver = { + .probe = drv_probe, + .remove = drv_remove, + .shutdown = drv_shutdown, + .suspend = drv_suspend, + .resume = drv_resume, + .driver = + { + .name = "mydriver", + .of_match_table = of_match_ptr(of_drv), + }, +}; + +//#define INIT +//#define MACRO +#define BOTH + +#ifdef INIT +static int __init sysfs_driver_init(void) +{ + int status = 0; + + pr_info("Linux module skeleton loading...\n"); + + /* install sysfs */ + if (status == 0) status = platform_driver_register(&sysfs_driver); + + pr_info("Linux module skeleton loaded\n"); + return 0; +} + +static void __exit sysfs_driver_exit(void) +{ + pr_info("Linux module skeleton exiting...\n"); + + /* uninstall sysfs */ + platform_driver_unregister(&sysfs_driver); + + pr_info("Linux module skeleton unloaded\n"); +} + +module_init(sysfs_driver_init); +module_exit(sysfs_driver_exit); +#endif + +#ifdef MACRO +module_platform_driver(sysfs_driver); +#endif + +#ifdef BOTH +static int __init sysfs_driver_init(void) +{ + pr_info("Linux module skeleton loading...\n"); + + pr_info("Linux module skeleton loaded\n"); + return 0; +} + +static void __exit sysfs_driver_exit(void) +{ + pr_info("Linux module skeleton exiting...\n"); + + pr_info("Linux module skeleton unloaded\n"); +} + +module_init(sysfs_driver_init); +module_exit(sysfs_driver_exit); +module_platform_driver(sysfs_driver); +#endif + + +MODULE_AUTHOR("Daniel Gachet "); +MODULE_DESCRIPTION("Module skeleton"); +MODULE_LICENSE("GPL"); diff --git a/src/03_drivers/exercice07/Makefile b/src/03_drivers/exercice07/Makefile new file mode 100644 index 0000000..76f2b09 --- /dev/null +++ b/src/03_drivers/exercice07/Makefile @@ -0,0 +1,5 @@ +DIRS=$(filter-out Makefile, $(wildcard *)) + +all clean install: + for dir in $(DIRS); do $(MAKE) $@ -C $$dir; done + diff --git a/src/03_drivers/exercice07/drv/Makefile b/src/03_drivers/exercice07/drv/Makefile new file mode 100644 index 0000000..3c40056 --- /dev/null +++ b/src/03_drivers/exercice07/drv/Makefile @@ -0,0 +1,24 @@ +# Part executed when called from kernel build system: +ifneq ($(KERNELRELEASE),) +obj-m += mymodule.o ## name of the generated module + +mymodule-objs := skeleton.o ## list of objects needed for that module + +# Part executed when called from standard make in module source directory: +else +include ../../../kernel_settings +include ../../../buildroot_path + +PWD := $(shell pwd) + +all: + $(MAKE) -C $(KDIR) M=$(PWD) ARCH=$(CPU) CROSS_COMPILE=$(TOOLS) modules + +clean: + $(MAKE) -C $(KDIR) M=$(PWD) clean + +install: + $(MAKE) -C $(KDIR) M=$(PWD) INSTALL_MOD_PATH=$(MODPATH) modules_install + +endif + diff --git a/src/03_drivers/exercice07/drv/skeleton.c b/src/03_drivers/exercice07/drv/skeleton.c new file mode 100644 index 0000000..822b020 --- /dev/null +++ b/src/03_drivers/exercice07/drv/skeleton.c @@ -0,0 +1,126 @@ +/* skeleton.c */ +#include /* needed for macros */ +#include /* needed for debugging */ +#include /* needed by all modules */ + +#include /* needed for char device driver */ +#include /* needed for device drivers */ +#include /* needed to copy data to/from user */ + +#include /* needed for polling handling */ +#include /* needed for scheduling constants */ +#include /* needed for wating */ + +#include /* needed for i/o handling */ +#include /* needed for interrupt handling */ +#include /* needed for mmio handling */ +#include /* needed for memory region handling */ +#include + +#define K1 0 +#define K2 2 +#define K3 3 + +static char* k1 = "gpio_a.0-k1"; +static char* k2 = "gpio_a.2-k2"; +static char* k3 = "gpio_a.3-k3"; + +static atomic_t nb_of_interrupts; +DECLARE_WAIT_QUEUE_HEAD(queue); + +irqreturn_t gpio_isr(int irq, void* handle) +{ + atomic_inc(&nb_of_interrupts); + wake_up_interruptible(&queue); + + pr_info("interrupt %s raised...\n", (char*)handle); + + return IRQ_HANDLED; +} + +static ssize_t skeleton_read(struct file* f, + char __user* buf, + size_t sz, + loff_t* off) +{ + return 0; +} + +static unsigned int skeleton_poll(struct file* f, poll_table* wait) +{ + unsigned mask = 0; + poll_wait(f, &queue, wait); + if (atomic_read(&nb_of_interrupts) != 0) { + mask |= POLLIN | POLLRDNORM; /* read operation */ + /* mask |= POLLOUT | POLLWRNORM; write operation */ + atomic_dec(&nb_of_interrupts); + pr_info("polling thread waked-up...\n"); + } + return mask; +} + +static struct file_operations skeleton_fops = { + .owner = THIS_MODULE, + .read = skeleton_read, + .poll = skeleton_poll, +}; + +struct miscdevice misc_device = { + .minor = MISC_DYNAMIC_MINOR, + .fops = &skeleton_fops, + .name = "mymodule", + .mode = 0777, +}; + +static int __init skeleton_init(void) +{ + int status = 0; + + atomic_set(&nb_of_interrupts, 0); + + status = misc_register(&misc_device); + + // install k1 + if (status == 0) + status = devm_request_irq(misc_device.this_device, + gpio_to_irq(K1), + gpio_isr, + IRQF_TRIGGER_FALLING | IRQF_SHARED, + k1, + k1); + + // install k2 + if (status == 0) + status = devm_request_irq(misc_device.this_device, + gpio_to_irq(K2), + gpio_isr, + IRQF_TRIGGER_RISING | IRQF_SHARED, + k2, + k2); + + // install k3 + if (status == 0) + status = devm_request_irq( + misc_device.this_device, + gpio_to_irq(K3), + gpio_isr, + IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING | IRQF_SHARED, + k3, + k3); + + pr_info("Linux module skeleton loaded(status=%d)\n", status); + return status; +} + +static void __exit skeleton_exit(void) +{ + misc_deregister(&misc_device); + pr_info("Linux module skeleton unloaded\n"); +} + +module_init(skeleton_init); +module_exit(skeleton_exit); + +MODULE_AUTHOR("Daniel Gachet "); +MODULE_DESCRIPTION("Module skeleton"); +MODULE_LICENSE("GPL"); diff --git a/src/03_drivers/exercice08/Makefile b/src/03_drivers/exercice08/Makefile new file mode 100644 index 0000000..76f2b09 --- /dev/null +++ b/src/03_drivers/exercice08/Makefile @@ -0,0 +1,5 @@ +DIRS=$(filter-out Makefile, $(wildcard *)) + +all clean install: + for dir in $(DIRS); do $(MAKE) $@ -C $$dir; done + diff --git a/src/03_drivers/exercice08/drv/Makefile b/src/03_drivers/exercice08/drv/Makefile new file mode 100644 index 0000000..a723697 --- /dev/null +++ b/src/03_drivers/exercice08/drv/Makefile @@ -0,0 +1,22 @@ +# Part executed when called from kernel build system: +ifneq ($(KERNELRELEASE),) +obj-m += mymodule.o ## name of the generated module + +mymodule-objs := skeleton.o ## list of objects needed for that module + +# Part executed when called from standard make in module source directory: +else +include ../../../kernel_settings +PWD := $(shell pwd) + +all: + $(MAKE) -C $(KDIR) M=$(PWD) ARCH=$(CPU) CROSS_COMPILE=$(TOOLS) modules + +clean: + $(MAKE) -C $(KDIR) M=$(PWD) clean + +install: + $(MAKE) -C $(KDIR) M=$(PWD) INSTALL_MOD_PATH=$(MODPATH) modules_install + +endif + diff --git a/src/03_drivers/exercice08/drv/skeleton.c b/src/03_drivers/exercice08/drv/skeleton.c new file mode 100644 index 0000000..ea0ca50 --- /dev/null +++ b/src/03_drivers/exercice08/drv/skeleton.c @@ -0,0 +1,85 @@ +/* skeleton.c */ +#include /* needed for macros */ +#include /* needed for debugging */ +#include /* needed by all modules */ + +#include /* needed for char device driver */ +#include /* needed for device drivers */ +#include /* needed to copy data to/from user */ + +#include /* needed for mmap handling */ + +#include /* needed for sysfs handling */ +#include /* needed for sysfs handling */ + +static int skeleton_mmap(struct file* f, struct vm_area_struct* vma) +{ + int status = 0; + unsigned long size = vma->vm_end - vma->vm_start; + + if (size > PAGE_SIZE) status = -EINVAL; + + vma->vm_pgoff = 0x01c14000 >> PAGE_SHIFT; + + if (status == 0) + status = remap_pfn_range( + vma, vma->vm_start, vma->vm_pgoff, size, vma->vm_page_prot); + if (status != 0) status = -EAGAIN; + + pr_info("skeleton: mmap (size=%lu, shift=%d) status=%d\n", + size, + PAGE_SHIFT, + status); + return status; +} + +static struct file_operations skeleton_fops = { + .owner = THIS_MODULE, + .mmap = skeleton_mmap, +}; + +static dev_t skeleton_dev; +static struct cdev skeleton_cdev; + +static void sysfs_dev_release(struct device* dev) +{ + pr_info("skeleton - sysfs dev release\n"); +} +static struct platform_device sysfs_device; + +static int __init skeleton_init(void) +{ + int status; + + status = alloc_chrdev_region(&skeleton_dev, 0, 1, "mymodule"); + if (status == 0) { + cdev_init(&skeleton_cdev, &skeleton_fops); + skeleton_cdev.owner = THIS_MODULE; + status = cdev_add(&skeleton_cdev, skeleton_dev, 1); + } + + sysfs_device.name = "mymodule"; + sysfs_device.id = -1; + sysfs_device.dev.release = sysfs_dev_release; + sysfs_device.dev.devt = skeleton_dev; + if (status == 0) status = platform_device_register(&sysfs_device); + + pr_info("Linux module skeleton loaded\n"); + return 0; +} + +static void __exit skeleton_exit(void) +{ + platform_device_unregister(&sysfs_device); + cdev_del(&skeleton_cdev); + unregister_chrdev_region(skeleton_dev, 1); + + pr_info("Linux module skeleton unloaded\n"); +} + +module_init(skeleton_init); +module_exit(skeleton_exit); + +MODULE_AUTHOR("Daniel Gachet "); +MODULE_DESCRIPTION("Module skeleton"); +MODULE_LICENSE("GPL"); diff --git a/src/03_drivers/exercice09/Makefile b/src/03_drivers/exercice09/Makefile new file mode 100644 index 0000000..76f2b09 --- /dev/null +++ b/src/03_drivers/exercice09/Makefile @@ -0,0 +1,5 @@ +DIRS=$(filter-out Makefile, $(wildcard *)) + +all clean install: + for dir in $(DIRS); do $(MAKE) $@ -C $$dir; done + diff --git a/src/03_drivers/exercice09/drv/Makefile b/src/03_drivers/exercice09/drv/Makefile new file mode 100644 index 0000000..a723697 --- /dev/null +++ b/src/03_drivers/exercice09/drv/Makefile @@ -0,0 +1,22 @@ +# Part executed when called from kernel build system: +ifneq ($(KERNELRELEASE),) +obj-m += mymodule.o ## name of the generated module + +mymodule-objs := skeleton.o ## list of objects needed for that module + +# Part executed when called from standard make in module source directory: +else +include ../../../kernel_settings +PWD := $(shell pwd) + +all: + $(MAKE) -C $(KDIR) M=$(PWD) ARCH=$(CPU) CROSS_COMPILE=$(TOOLS) modules + +clean: + $(MAKE) -C $(KDIR) M=$(PWD) clean + +install: + $(MAKE) -C $(KDIR) M=$(PWD) INSTALL_MOD_PATH=$(MODPATH) modules_install + +endif + diff --git a/src/03_drivers/exercice09/drv/skeleton.c b/src/03_drivers/exercice09/drv/skeleton.c new file mode 100644 index 0000000..96a9011 --- /dev/null +++ b/src/03_drivers/exercice09/drv/skeleton.c @@ -0,0 +1,99 @@ +/* skeleton.c */ +#include /* needed for macros */ +#include /* needed for debugging */ +#include /* needed by all modules */ + +#include /* needed for char device driver */ +#include /* needed for device drivers */ +#include /* needed to copy data to/from user */ + +#include /* needed for ioctl handling */ +#include "skeleton.h" + +static struct skeleton_config config; +static int val; + +static long skeleton_ioctl(struct file* f, unsigned int cmd, unsigned long arg) +{ + int status = 0; + switch (cmd) { + case SKELETON_IO_RESET: + val = 0; + memset(&config, 0, sizeof(config)); + pr_info("skeleton-ioctl: reset command\n"); + break; + + case SKELETON_IO_WR_REF: + if (_IOC_SIZE(cmd) == sizeof(config)) + status = + copy_from_user(&config, (char __user*)arg, _IOC_SIZE(cmd)); + else + status = -EFAULT; + pr_info("skeleton-ioctl: write config\n"); + break; + + case SKELETON_IO_RD_REF: + if (_IOC_SIZE(cmd) == sizeof(config)) + status = + copy_to_user((char __user*)arg, &config, _IOC_SIZE(cmd)); + else + status = -EFAULT; + pr_info("skeleton-ioctl: read config\n"); + break; + + case SKELETON_IO_WR_VAL: + val = arg; + pr_info("skeleton-ioctl: write value=%d\n", val); + break; + + case SKELETON_IO_RD_VAL: + status = val; + pr_info("skeleton-ioctl: read value=%d\n", status); + break; + + default: + pr_info("skeleton-ioctl: unknown command (cmd=%d)\n", cmd); + status = -EFAULT; + break; + } + + return status; +} + +static struct file_operations skeleton_fops = { + .owner = THIS_MODULE, + .unlocked_ioctl = skeleton_ioctl, +}; + +static dev_t skeleton_dev; +static struct cdev skeleton_cdev; + +static int __init skeleton_init(void) +{ + int status; + + status = alloc_chrdev_region(&skeleton_dev, 0, 1, "mymodule"); + if (status == 0) { + cdev_init(&skeleton_cdev, &skeleton_fops); + skeleton_cdev.owner = THIS_MODULE; + status = cdev_add(&skeleton_cdev, skeleton_dev, 1); + } + + pr_info("Linux module skeleton loaded\n"); + return 0; +} + +static void __exit skeleton_exit(void) +{ + cdev_del(&skeleton_cdev); + unregister_chrdev_region(skeleton_dev, 1); + + pr_info("Linux module skeleton unloaded\n"); +} + +module_init(skeleton_init); +module_exit(skeleton_exit); + +MODULE_AUTHOR("Daniel Gachet "); +MODULE_DESCRIPTION("Module skeleton"); +MODULE_LICENSE("GPL"); diff --git a/src/03_drivers/exercice09/drv/skeleton.h b/src/03_drivers/exercice09/drv/skeleton.h new file mode 100644 index 0000000..6bf33da --- /dev/null +++ b/src/03_drivers/exercice09/drv/skeleton.h @@ -0,0 +1,20 @@ +#ifndef SKELETON_H +#define SKELETON_H + +#include + +struct skeleton_config { + int id; + long ref; + char name[30]; + char descr[30]; +}; + +#define SKELETON_IOMAGIC 'g' +#define SKELETON_IO_RESET _IO(SKELETON_IOMAGIC, 0) +#define SKELETON_IO_WR_REF _IOW(SKELETON_IOMAGIC, 1, struct skeleton_config) +#define SKELETON_IO_RD_REF _IOR(SKELETON_IOMAGIC, 2, struct skeleton_config) +#define SKELETON_IO_WR_VAL _IOW(SKELETON_IOMAGIC, 3, int) +#define SKELETON_IO_RD_VAL _IOR(SKELETON_IOMAGIC, 4, int) + +#endif diff --git a/src/03_drivers/exercice10/Makefile b/src/03_drivers/exercice10/Makefile new file mode 100644 index 0000000..7168507 --- /dev/null +++ b/src/03_drivers/exercice10/Makefile @@ -0,0 +1,22 @@ +# Part executed when called from kernel build system: +ifneq ($(KERNELRELEASE),) +obj-m += mymodule.o ## name of the generated module + +mymodule-objs := skeleton.o ## list of objects needed for that module + +# Part executed when called from standard make in module source directory: +else +include ../../kernel_settings +PWD := $(shell pwd) + +all: + $(MAKE) -C $(KDIR) M=$(PWD) ARCH=$(CPU) CROSS_COMPILE=$(TOOLS) modules + +clean: + $(MAKE) -C $(KDIR) M=$(PWD) clean + +install: + $(MAKE) -C $(KDIR) M=$(PWD) INSTALL_MOD_PATH=$(MODPATH) modules_install + +endif + diff --git a/src/03_drivers/exercice10/skeleton.c b/src/03_drivers/exercice10/skeleton.c new file mode 100644 index 0000000..cf8c292 --- /dev/null +++ b/src/03_drivers/exercice10/skeleton.c @@ -0,0 +1,120 @@ +/* skeleton.c */ +#include /* needed for macros */ +#include /* needed for debugging */ +#include /* needed by all modules */ + +#include /* needed for char device driver */ +#include /* needed for device drivers */ +#include /* needed to copy data to/from user */ + +#include /* needed for procfs handling */ + +struct skeleton_config { + int id; + long ref; + char name[50]; + char descr[50]; +}; + +static struct skeleton_config config = {.id = 11, + .ref = 33, + .name = "config structure", + .descr = "procfs test driver"}; +static int val = 55; + +static ssize_t skeleton_read_config(struct file* f, + char __user* buf, + size_t count, + loff_t* off) +{ + char temp[200]; + int len = snprintf(temp, + sizeof(temp), + "id=%d\nref=%ld\nname=%s\ndescr=%s\n", + config.id, + config.ref, + config.name, + config.descr); + + len -= (ssize_t)(*off); + if (count > len) count = len; + *off += count; + + if (copy_to_user(buf, temp, count) != 0) count = -EFAULT; + return count; +} + +static const struct proc_ops fops_config = { + .proc_read = skeleton_read_config, +}; + +static ssize_t skeleton_read_val(struct file* f, + char __user* buf, + size_t count, + loff_t* off) +{ + char temp[20]; + int len = snprintf(temp, sizeof(temp), "%d\n", val); + + len -= (ssize_t)(*off); + if (count > len) count = len; + *off += count; + + if (copy_to_user(buf, temp, count) != 0) count = -EFAULT; + return count; +} + +static ssize_t skeleton_write_val(struct file* f, + const char __user* buf, + size_t count, + loff_t* off) +{ + char temp[20]; + + if (count > sizeof(temp)) return -EIO; + if (copy_from_user(temp, buf, count)) return -EFAULT; + + val = simple_strtol(temp, 0, 10); + + return count; +} + +static const struct proc_ops fops_val = { + .proc_read = skeleton_read_val, + .proc_write = skeleton_write_val, +}; + +static struct proc_dir_entry* procfs_dir = 0; + +static int __init skeleton_init(void) +{ + int status = 0; + + /* create procfs node and attributes */ + procfs_dir = proc_mkdir("mymodule", NULL); + proc_create("config", 0, procfs_dir, &fops_config); + proc_create("val", 0, procfs_dir, &fops_val); + + if (procfs_dir == 0) status = -EFAULT; + + pr_info("Linux module skeleton loaded (status=%d)\n", status); + + return status; +} + +static void __exit skeleton_exit(void) +{ + /* remove procfs attributes and node */ + remove_proc_entry("val", procfs_dir); + remove_proc_entry("config", procfs_dir); + remove_proc_entry("mymodule", NULL); + + pr_info("Linux module skeleton unloaded\n"); +} + +module_init(skeleton_init); +module_exit(skeleton_exit); + +MODULE_AUTHOR("Daniel Gachet "); +MODULE_DESCRIPTION("Module skeleton"); +MODULE_LICENSE("GPL"); diff --git a/src/03_drivers/sample01/Makefile b/src/03_drivers/sample01/Makefile new file mode 100644 index 0000000..b5bb860 --- /dev/null +++ b/src/03_drivers/sample01/Makefile @@ -0,0 +1,19 @@ +objects = main1 main2 main3 + +TOOLCHAIN_PATH=/buildroot/output/host/usr/bin/ +TOOLCHAIN=$(TOOLCHAIN_PATH)aarch64-linux- +CFLAGS+=-Wall -Wextra -g -O0 -std=gnu11 +CFLAGS+=-mcpu=cortex-a53 -funwind-tables + +CC=$(TOOLCHAIN)gcc + + +all: $(objects) + +$(objects): %: %.c + $(CC) $(CFLAGS) -o $@ $< + +clean: + rm -f *.txt + rm -f *~ + rm $(objects) diff --git a/src/03_drivers/sample01/main1.c b/src/03_drivers/sample01/main1.c new file mode 100644 index 0000000..232fb70 --- /dev/null +++ b/src/03_drivers/sample01/main1.c @@ -0,0 +1,14 @@ +#include +#include +#include +#include +#include + +static const char* msg1 = "1234567890abcdefghijklmnopqrstuvwxyz\n"; + +int main() +{ + int fd = open("test1.txt", O_RDWR | O_CREAT | O_TRUNC, 0664); + for (int i = 0; i < 10000; i++) write(fd, msg1, strlen(msg1)); + close(fd); +} diff --git a/src/03_drivers/sample01/main2.c b/src/03_drivers/sample01/main2.c new file mode 100644 index 0000000..20faef6 --- /dev/null +++ b/src/03_drivers/sample01/main2.c @@ -0,0 +1,28 @@ +#include +#include +#include +#include +#include +#include +#include + +#define FILE_SZ (10 * 1024 * 1024) + +static const char* msg2 = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ\n"; + +int main() +{ + // open again 1st file generated by the main1 application + int fd = open("test1.txt", O_RDWR, 0664); + char* file = mmap(0, FILE_SZ, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); + printf("the file after mapping...\n"); + + // modify every 10th lines + for (int i = 0; i < 10000; i += 10) + memcpy(file + i * strlen(msg2), msg2, strlen(msg2)); + + printf("the file after filling...\n"); + close(fd); + + return 0; +} diff --git a/src/03_drivers/sample01/main3.c b/src/03_drivers/sample01/main3.c new file mode 100644 index 0000000..82e98f0 --- /dev/null +++ b/src/03_drivers/sample01/main3.c @@ -0,0 +1,28 @@ +#include +#include +#include +#include +#include +#include +#include + +#define FILE_SZ (5 * 1024 * 1024) + +static const char* msg1 = "1234567890abcdefghijklmnopqrstuvwxyz\n"; + +int main() +{ + int fd = open("test3.txt", O_RDWR | O_CREAT | O_TRUNC, 0664); + char* file = mmap(0, FILE_SZ, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); + lseek(fd, FILE_SZ, SEEK_SET); + write(fd, "", 1); + printf("the file after mapping...\n"); + + for (int i = 0; i < 10000; i += 1) + memcpy(file + i * strlen(msg1), msg1, strlen(msg1)); + + printf("the file after filling...\n"); + close(fd); + + return 0; +} diff --git a/src/03_drivers/sample01/test1.txt b/src/03_drivers/sample01/test1.txt new file mode 100644 index 0000000..57779af --- /dev/null +++ b/src/03_drivers/sample01/test1.txt @@ -0,0 +1,10000 @@ +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz +1234567890abcdefghijklmnopqrstuvwxyz diff --git a/src/03_drivers/sample05.1/Makefile b/src/03_drivers/sample05.1/Makefile new file mode 100644 index 0000000..7168507 --- /dev/null +++ b/src/03_drivers/sample05.1/Makefile @@ -0,0 +1,22 @@ +# Part executed when called from kernel build system: +ifneq ($(KERNELRELEASE),) +obj-m += mymodule.o ## name of the generated module + +mymodule-objs := skeleton.o ## list of objects needed for that module + +# Part executed when called from standard make in module source directory: +else +include ../../kernel_settings +PWD := $(shell pwd) + +all: + $(MAKE) -C $(KDIR) M=$(PWD) ARCH=$(CPU) CROSS_COMPILE=$(TOOLS) modules + +clean: + $(MAKE) -C $(KDIR) M=$(PWD) clean + +install: + $(MAKE) -C $(KDIR) M=$(PWD) INSTALL_MOD_PATH=$(MODPATH) modules_install + +endif + diff --git a/src/03_drivers/sample05.1/skeleton.c b/src/03_drivers/sample05.1/skeleton.c new file mode 100644 index 0000000..d031dc3 --- /dev/null +++ b/src/03_drivers/sample05.1/skeleton.c @@ -0,0 +1,101 @@ +/* skeleton.c */ +#include /* needed for macros */ +#include /* needed for debugging */ +#include /* needed by all modules */ + +#include /* needed for char device driver */ +#include /* needed for device drivers */ +#include /* needed to copy data to/from user */ + +#include /* needed for sysfs handling */ +#include +#include +#include /* needed for sysfs handling */ + +#define BUFFER_SZ 10000 + +static struct mydata { + struct device* device; + + struct skeleton_attr { + char buffer[BUFFER_SZ]; + struct device_attribute dev_attr; + } attr; + +} mydevices[5]; + +#define ATTR_INSTANCE(a) \ + { \ + a.attr.buffer[0] = 0; \ + a.attr.dev_attr.attr.name = "val"; \ + a.attr.dev_attr.attr.mode = 0664; \ + a.attr.dev_attr.show = sysfs_show_attr; \ + a.attr.dev_attr.store = sysfs_store_attr; \ + } + +// --- sysfs file opers ------------------------------------------------------ + +ssize_t sysfs_show_attr(struct device* dev, + struct device_attribute* attr, + char* buf) +{ + struct mydata* mydata = container_of(attr, struct mydata, attr.dev_attr); + + strcpy(buf, mydata->attr.buffer); + return strlen(buf); +} + +ssize_t sysfs_store_attr(struct device* dev, + struct device_attribute* attr, + const char* buf, + size_t count) +{ + struct mydata* mydata = container_of(attr, struct mydata, attr.dev_attr); + + int len = sizeof(mydata->attr.buffer) - 1; + if (len > count) len = count; + strncpy(mydata->attr.buffer, buf, len); + mydata->attr.buffer[len] = 0; + return len; +} +static struct class* sysfs_class; + +static int __init skeleton_init(void) +{ + int status = 0; + int i =0; + + sysfs_class = class_create(THIS_MODULE, "myclass"); + + for (i=0; idevice = device_create(sysfs_class, NULL, i, NULL, "mydevice.%d", i); + + ATTR_INSTANCE((*mydev)); + status = device_create_file(mydev->device, &(mydev->attr.dev_attr)); + } + + pr_info("Linux module skeleton loaded\n"); + return status; +} + +static void __exit skeleton_exit(void) +{ + int i = 0; + for (i=0; idevice, &(mydev->attr.dev_attr)); + device_destroy(sysfs_class, i); + } + class_destroy(sysfs_class); + + pr_info("Linux module skeleton unloaded\n"); +} + +module_init(skeleton_init); +module_exit(skeleton_exit); + +MODULE_AUTHOR("Daniel Gachet "); +MODULE_DESCRIPTION("Module skeleton"); +MODULE_LICENSE("GPL"); diff --git a/src/03_drivers/sample05/Makefile b/src/03_drivers/sample05/Makefile new file mode 100644 index 0000000..7168507 --- /dev/null +++ b/src/03_drivers/sample05/Makefile @@ -0,0 +1,22 @@ +# Part executed when called from kernel build system: +ifneq ($(KERNELRELEASE),) +obj-m += mymodule.o ## name of the generated module + +mymodule-objs := skeleton.o ## list of objects needed for that module + +# Part executed when called from standard make in module source directory: +else +include ../../kernel_settings +PWD := $(shell pwd) + +all: + $(MAKE) -C $(KDIR) M=$(PWD) ARCH=$(CPU) CROSS_COMPILE=$(TOOLS) modules + +clean: + $(MAKE) -C $(KDIR) M=$(PWD) clean + +install: + $(MAKE) -C $(KDIR) M=$(PWD) INSTALL_MOD_PATH=$(MODPATH) modules_install + +endif + diff --git a/src/03_drivers/sample05/skeleton.c b/src/03_drivers/sample05/skeleton.c new file mode 100644 index 0000000..14cea7a --- /dev/null +++ b/src/03_drivers/sample05/skeleton.c @@ -0,0 +1,59 @@ +/* skeleton.c */ +#include /* needed for macros */ +#include /* needed for debugging */ +#include /* needed by all modules */ +#include /* needed for sysfs handling */ + +static char sysfs_buf[1000]; + +ssize_t sysfs_show_attr(struct device* dev, + struct device_attribute* attr, + char* buf) +{ + strcpy(buf, sysfs_buf); + return strlen(buf); +} +ssize_t sysfs_store_attr(struct device* dev, + struct device_attribute* attr, + const char* buf, + size_t count) +{ + int len = sizeof(sysfs_buf) - 1; + if (len > count) len = count; + strncpy(sysfs_buf, buf, len); + sysfs_buf[len] = 0; + return len; +} +DEVICE_ATTR(attr, 0664, sysfs_show_attr, sysfs_store_attr); + +static struct class* sysfs_class; +static struct device* sysfs_device; + +static int __init skeleton_init(void) +{ + int status = 0; + + sysfs_class = class_create(THIS_MODULE, "myclass"); + sysfs_device = device_create(sysfs_class, NULL, 0, NULL, "mydevice"); + status = device_create_file(sysfs_device, &dev_attr_attr); + + pr_info("Linux module skeleton loaded\n"); + return status; +} + +static void __exit skeleton_exit(void) +{ + /* uninstall sysfs */ + device_remove_file(sysfs_device, &dev_attr_attr); + device_destroy(sysfs_class, 0); + class_destroy(sysfs_class); + + pr_info("Linux module skeleton unloaded\n"); +} + +module_init(skeleton_init); +module_exit(skeleton_exit); + +MODULE_AUTHOR("Daniel Gachet "); +MODULE_DESCRIPTION("Module skeleton"); +MODULE_LICENSE("GPL"); diff --git a/src/03_drivers/sample06.2/Makefile b/src/03_drivers/sample06.2/Makefile new file mode 100644 index 0000000..7168507 --- /dev/null +++ b/src/03_drivers/sample06.2/Makefile @@ -0,0 +1,22 @@ +# Part executed when called from kernel build system: +ifneq ($(KERNELRELEASE),) +obj-m += mymodule.o ## name of the generated module + +mymodule-objs := skeleton.o ## list of objects needed for that module + +# Part executed when called from standard make in module source directory: +else +include ../../kernel_settings +PWD := $(shell pwd) + +all: + $(MAKE) -C $(KDIR) M=$(PWD) ARCH=$(CPU) CROSS_COMPILE=$(TOOLS) modules + +clean: + $(MAKE) -C $(KDIR) M=$(PWD) clean + +install: + $(MAKE) -C $(KDIR) M=$(PWD) INSTALL_MOD_PATH=$(MODPATH) modules_install + +endif + diff --git a/src/03_drivers/sample06.2/skeleton.c b/src/03_drivers/sample06.2/skeleton.c new file mode 100644 index 0000000..0b0a0da --- /dev/null +++ b/src/03_drivers/sample06.2/skeleton.c @@ -0,0 +1,217 @@ +/* skeleton.c */ +#include /* needed by all modules */ +#include /* needed for macros */ +#include /* needed for debugging */ + +#include /* needed for module parameters */ +#include /* needed for dynamic memory management */ + +#include /* needed for device drivers */ +#include /* needed to copy data to/from user */ +#include /* needed for char device driver */ + +#include /* needed for sysfs handling */ +#include /* needed for sysfs handling */ + +#define INSTANCES 3 + +// --- sysfs operations -------------------------------------------------------- + +struct skeleton_attr { + long val; + int id; + struct device_attribute dev_attr; +}; + +#define ATTR_INSTANCE(i,v)\ + {\ + .val = v,\ + .id = i,\ + .dev_attr = {\ + .attr = {.name = "val", .mode=0664, },\ + .show = sysfs_show_val,\ + .store = sysfs_store_val,\ + },\ + } + +static ssize_t sysfs_show_val( + struct device *dev, + struct device_attribute *attr, + char *buf) +{ + struct skeleton_attr* s_attr = + container_of(attr, struct skeleton_attr, dev_attr); + + sprintf (buf, "%ld\n", s_attr->val); + + pr_info ("skeleton-sysfs_show: val[%d]=%ld\n", s_attr->id, s_attr->val); + + return strlen(buf); +} + +static ssize_t sysfs_store_val( + struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + struct skeleton_attr* s_attr = + container_of(attr, struct skeleton_attr, dev_attr); + + int err = kstrtol (buf, 10, &s_attr->val); + + //pr_info ("skeleton-sysfs_store: val[%d]=%ld\n", s_attr->id, s_attr->val); + return err == 0 ? count : err; +} + +static struct skeleton_attr skeleton_attr[INSTANCES] = { + [0] = ATTR_INSTANCE(0,10), + [1] = ATTR_INSTANCE(1,11), + [2] = ATTR_INSTANCE(2,12), +}; + + +static void sysfs_dev_release (struct device *dev) +{ + pr_info ("skeleton-sysfs_dev_release\n"); +} +static struct platform_device sysfs_device[INSTANCES]; + +// --- fops operations --------------------------------------------------------- + +#define BUFFER_SZ 10000 +static char buffers[INSTANCES][BUFFER_SZ]; + +static int skeleton_open (struct inode *i, struct file *f) +{ + pr_info ("skeleton-open operation... major:%d, minor:%d\n", + imajor (i), iminor(i)); + + if ((f->f_mode & (FMODE_READ | FMODE_WRITE)) != 0) { + pr_info (" o--> opened for reading & writing...\n"); + } else if (iminor(i) >= INSTANCES) return -EFAULT; + + if ((f->f_mode & FMODE_READ) != 0) { + pr_info (" o--> opened for reading...\n"); + + } else if ((f->f_mode & FMODE_WRITE) != 0) { + pr_info (" o--> opened for writing...\n"); + } + + f->private_data = buffers[iminor(i)]; + pr_info (" o--> private_data address = %p\n", f->private_data); + + return 0; +} + +static int skeleton_release (struct inode *i, struct file *f) +{ + pr_info ("skeleton-release operation...\n"); + + return 0; +} + +static ssize_t skeleton_read (struct file *f, char __user *buf, + size_t count, loff_t *off) +{ + // compute remaining bytes to copy, update count and pointers + ssize_t remaining = strlen(f->private_data) - (ssize_t)(*off); + char* ptr = (char*)f->private_data + *off; + if (count > remaining) count = remaining; + *off += count; + + // copy required number of bytes + if (copy_to_user (buf, ptr, count) != 0) count = -EFAULT; + + pr_info("skeleton-read: buf=%p, read=%ld\n", f->private_data, count); + + return count; +} + +static ssize_t skeleton_write (struct file *f, const char __user *buf, + size_t count, loff_t *off) +{ + // compute remaining space in buffer and update pointers + ssize_t remaining = BUFFER_SZ - (ssize_t)(*off); + char* ptr = (char*)f->private_data + *off; + *off += count; + + // check if still remaining space to store additional bytes + if (count >= remaining) count = -EIO; + + // store additional bytes into internal buffer + if (count > 0) { + ptr[count] = 0; // make sure string is null terminated + if (copy_from_user (ptr, buf, count)) count = -EFAULT; + } + + pr_info ("skeleton-write: buf=%p, written=%ld\n", f->private_data, count); + + return count; +} + +static struct file_operations skeleton_fops = { + .owner = THIS_MODULE, + .open = skeleton_open, + .read = skeleton_read, + .write = skeleton_write, + .release = skeleton_release, +}; + +static dev_t skeleton_dev; +static struct cdev skeleton_cdev; + +static int __init skeleton_init(void) +{ + int i; + int status = -EFAULT; + + status = alloc_chrdev_region (&skeleton_dev, 0, INSTANCES, "mymodule"); + if (status == 0) { + cdev_init (&skeleton_cdev, &skeleton_fops); + skeleton_cdev.owner = THIS_MODULE; + status = cdev_add (&skeleton_cdev, skeleton_dev, INSTANCES); + } + + /* install sysfs */ + for (i = 0; i < INSTANCES; i++) { + sysfs_device[i].name = "mymodule"; + sysfs_device[i].id = i; + sysfs_device[i].dev.release = sysfs_dev_release; + sysfs_device[i].dev.devt = MKDEV (MAJOR(skeleton_dev), i); + if (status == 0) + status = platform_device_register (&sysfs_device[i]); + if (status == 0) + status = device_create_file ( + &sysfs_device[i].dev, + &skeleton_attr[i].dev_attr); + } + + pr_info ("Linux module skeleton loaded\n"); + + return status; +} + +static void __exit skeleton_exit(void) +{ + int i; + + for (i = 0; i < INSTANCES; i++) { + device_remove_file ( + &sysfs_device[i].dev, + &skeleton_attr[i].dev_attr); + platform_device_unregister (&sysfs_device[i]); + } + + cdev_del (&skeleton_cdev); + unregister_chrdev_region (skeleton_dev, INSTANCES); + + pr_info ("Linux module skeleton unloaded\n"); +} + +module_init (skeleton_init); +module_exit (skeleton_exit); + +MODULE_AUTHOR ("Daniel Gachet "); +MODULE_DESCRIPTION ("Module skeleton"); +MODULE_LICENSE ("GPL"); + diff --git a/src/03_drivers/sample06.3/Makefile b/src/03_drivers/sample06.3/Makefile new file mode 100644 index 0000000..ae49ae9 --- /dev/null +++ b/src/03_drivers/sample06.3/Makefile @@ -0,0 +1,42 @@ +export PATH := /buildroot/output/host/usr/sbin$\ + :/buildroot/output/host/usr/bin/$\ + :/buildroot/output/host/sbin$\ + :/buildroot/output/host/bin/$\ + :$(PATH) + +# Part executed when called from kernel build system: +ifneq ($(KERNELRELEASE),) +obj-m += mymodule.o ## name of the generated module + +mymodule-objs := skeleton.o ## list of objects needed for that module + +# Part executed when called from standard make in module source directory: +else +include ../../kernel_settings +PWD := $(shell pwd) + +INCL+=-I. -I$(KDIR)/include -I$(KDIR)/arch/arm64/boot/dts +DTB = mydt.dtb +DTS = $(DTB:.dtb=.dts) + +all: dtb boot + $(MAKE) -C $(KDIR) M=$(PWD) ARCH=$(CPU) CROSS_COMPILE=$(TOOLS) modules + +dtb: $(DTB) +$(DTB) : $(DTS) + ln -s $(KDIR)/arch/arm/boot/dts arm + -cpp $(INCL) -E -P -x assembler-with-cpp $(DTS) | dtc -I dts -O dtb -o $(DTB) - + rm arm + +boot: + mkimage -T script -A arm -C none -d boot.cmd boot.ovl + +clean: + $(MAKE) -C $(KDIR) M=$(PWD) clean + rm -f *.dtb *.ovl + +install: + $(MAKE) -C $(KDIR) M=$(PWD) INSTALL_MOD_PATH=$(MODPATH) modules_install + +endif + diff --git a/src/03_drivers/sample06.3/boot.cmd b/src/03_drivers/sample06.3/boot.cmd new file mode 100644 index 0000000..6774bba --- /dev/null +++ b/src/03_drivers/sample06.3/boot.cmd @@ -0,0 +1,13 @@ +setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait + +fatload mmc 0 $kernel_addr_r Image +#fatload mmc 0 $fdt_addr_r sun50i-h5-nanopi-neo-plus2.dtb +fatload mmc 0 $fdt_addr_r mydt.dtb + +fdt addr $fdt_addr_r +fdt resize +#fdt mknode / mymodule2 +#fdt set /mymodule2 compatible mymodule2 + + +booti $kernel_addr_r - $fdt_addr_r diff --git a/src/03_drivers/sample06.3/mydt.dts b/src/03_drivers/sample06.3/mydt.dts new file mode 100644 index 0000000..0f90431 --- /dev/null +++ b/src/03_drivers/sample06.3/mydt.dts @@ -0,0 +1,29 @@ +/dts-v1/; + +#include "allwinner/sun50i-h5-nanopi-neo-plus2.dts" + +/ { + /delete-node/ leds; + + mydevice { + compatible = "mydevice"; + #address-cells = <1>; + #size-cells = <0>; + attribute = "idle"; + + mydevice@0 { + reg = <0x0>; + attribute = "on"; + }; + + mydevice@1 { + reg = <0x1>; + attribute = "off"; + }; + + mydevice@2 { + reg = <0x2>; + attribute = "off"; + }; + }; +}; diff --git a/src/03_drivers/sample06.3/skeleton.c b/src/03_drivers/sample06.3/skeleton.c new file mode 100644 index 0000000..845ba03 --- /dev/null +++ b/src/03_drivers/sample06.3/skeleton.c @@ -0,0 +1,304 @@ +/* skeleton.c */ +#include /* needed for macros */ +#include /* needed for debugging */ +#include /* needed by all modules */ + +#include /* needed for char device driver */ +#include /* needed for device drivers */ +#include /* needed to copy data to/from user */ + +#include /* needed for sysfs handling */ +#include +#include +#include /* needed for sysfs handling */ + +#define BUFFER_SZ 10000 + +struct mydata { + char buffer[BUFFER_SZ]; + + struct class* sysfs_class; + struct device* sysfs_device; + struct miscdevice misc; + struct skeleton_attr { + long val; + int id; + struct device_attribute dev_attr; + } attr; +}; + +#define ATTR_INSTANCE(a, i, v) \ + { \ + a.attr.val = v; \ + a.attr.id = i; \ + a.attr.dev_attr.attr.name = "val"; \ + a.attr.dev_attr.attr.mode = 0664; \ + a.attr.dev_attr.show = sysfs_show_val; \ + a.attr.dev_attr.store = sysfs_store_val; \ + } + +// --- sysfs file opers ------------------------------------------------------ + +static ssize_t sysfs_show_val(struct device* dev, + struct device_attribute* attr, + char* buf) +{ + struct mydata* mydata = container_of(attr, struct mydata, attr.dev_attr); + + sprintf(buf, "%ld\n", mydata->attr.val); + + pr_info("skeleton-sysfs_show: val[%d]=%ld\n", + mydata->attr.id, + mydata->attr.val); + + return strlen(buf); +} + +static ssize_t sysfs_store_val(struct device* dev, + struct device_attribute* attr, + const char* buf, + size_t count) +{ + struct mydata* mydata = container_of(attr, struct mydata, attr.dev_attr); + + int err = kstrtol(buf, 10, &mydata->attr.val); + + pr_info("skeleton-sysfs_store: val[%d]=%ld\n", + mydata->attr.id, + mydata->attr.val); + + return err == 0 ? count : err; +} + +// --- file opers ------------------------------------------------------------ + +static int skeleton_open(struct inode* i, struct file* f) +{ + pr_info("skeleton : open operation... major:%d, minor:%d, p_data=%llx\n", + imajor(i), + iminor(i), + (long long)f->private_data); + return 0; +} + +static int skeleton_release(struct inode* i, struct file* f) +{ + pr_info("skeleton: release operation...p_data=%llx\n", + (long long)f->private_data); + return 0; +} + +static ssize_t skeleton_read(struct file* f, + char __user* buf, + size_t count, + loff_t* off) +{ + struct mydata* mydata = container_of(f->private_data, struct mydata, misc); + + // compute remaining bytes to copy, update count and pointers + ssize_t remaining = strlen(mydata->buffer) - (ssize_t)(*off); + char* ptr = mydata->buffer + *off; + if (count > remaining) count = remaining; + *off += count; + + // copy required number of bytes + if (copy_to_user(buf, ptr, count) != 0) count = -EFAULT; + + pr_info("skeleton: read operation...p_data=%llx read=%ld\n", + (long long)f->private_data, + count); + + return count; +} + +static ssize_t skeleton_write(struct file* f, + const char __user* buf, + size_t count, + loff_t* off) +{ + struct mydata* mydata = container_of(f->private_data, struct mydata, misc); + + // compute remaining space in buffer and update pointers + ssize_t remaining = sizeof(mydata->buffer) - (ssize_t)(*off); + char* ptr = mydata->buffer + *off; + *off += count; + + // check if still remaining space to store additional bytes + if (count >= remaining) count = -EIO; + + // store additional bytes into internal buffer + if (count > 0) { + ptr[count] = 0; // make sure string is null terminated + if (copy_from_user(ptr, buf, count)) count = -EFAULT; + } + + pr_info("skeleton: write operation... written=%ld\n", count); + return count; +} + +static struct file_operations fops = { + .owner = THIS_MODULE, + .open = skeleton_open, + .read = skeleton_read, + .write = skeleton_write, + .release = skeleton_release, +}; + +int drv_probe(struct platform_device* pdev) +{ + int ret = 0; + struct device_node* dt_node = pdev->dev.of_node; + struct mydata* mydata = 0; + const char* prop_str = 0; + + pr_info("skeleton - driver probe %llx (%s)- M.m=%d.%d\n", + (unsigned long long)pdev, + pdev->name, + MAJOR(pdev->dev.devt), + MINOR(pdev->dev.devt)); + + ret = of_property_read_string(dt_node, "attribute", &prop_str); + if (prop_str && ret == 0) pr_info("attribute=%s (ret=%d)\n", prop_str, ret); + + if (pdev->num_resources) { + pr_info("resources: name=%s, start=%lld, end=%lld\n", + pdev->resource[0].name, + pdev->resource[0].start, + pdev->resource[0].end); + } + + if (dt_node) { + int ret = 0; + const char* prop_str = 0; + const unsigned int* prop_reg = 0; + unsigned long reg = 0; + + struct device_node* child; + for_each_available_child_of_node(dt_node, child) + { + mydata = devm_kzalloc(&pdev->dev, sizeof(*mydata), GFP_KERNEL); + pr_info("miscdev=%llx\n", (long long)mydata); + if (mydata == 0) { + dev_err(&pdev->dev, + "Failed to allocate resource for miscdev\n"); + return -ENOMEM; + } + + pr_info("child found: name=%s, fullname=%s\n", + child->name, + child->full_name); + prop_reg = of_get_property(child, "reg", NULL); + if (prop_reg != 0) { + reg = of_read_ulong(prop_reg, 1); + pr_info("reg:%lu\n", reg); + } + + ret = of_property_read_string(child, "attribute", &prop_str); + if (prop_str && ret == 0) + pr_info("attribute=%s (ret=%d)\n", prop_str, ret); + + // register misc device ... + platform_set_drvdata(pdev, mydata); + mydata->misc.minor = MISC_DYNAMIC_MINOR; + mydata->misc.fops = &fops; + mydata->misc.name = child->full_name; + mydata->misc.mode = 0664; + ret = misc_register(&(mydata->misc)); + if (ret != 0) { + dev_err(&pdev->dev, "Failed to register miscdev\n"); + return ret; + } + + // register misc device sysfs attribute... + ATTR_INSTANCE((*mydata), reg, reg); + ret = device_create_file(mydata->misc.this_device, + &mydata->attr.dev_attr); + if (ret != 0) { + dev_err(&pdev->dev, + "Failed to register miscdev sysfs attribute\n"); + return ret; + } + } + } + + return 0; +} +int drv_remove(struct platform_device* pdev) +{ + struct mydata* mydata = platform_get_drvdata(pdev); + pr_info("skeleton - sysfs driver remove %s\n", pdev->name); + misc_deregister(&(mydata->misc)); + return 0; +} + +void drv_shutdown(struct platform_device* pdev) +{ + pr_info("skeleton - sysfs driver shutdown %s\n", pdev->name); +} +int drv_suspend(struct platform_device* pdev, pm_message_t state) +{ + pr_info("skeleton - sysfs driver suspend %s (state=%d)\n", + pdev->name, + state.event); + return 0; +} +int drv_resume(struct platform_device* pdev) +{ + pr_info("skeleton - sysfs driver resume %s\n", pdev->name); + return 0; +} + +struct of_device_id of_drv[] = { + { + .compatible = "mydevice", + }, + {}, +}; +MODULE_DEVICE_TABLE(of, of_drv); + +static struct platform_driver sysfs_driver = { + .probe = drv_probe, + .remove = drv_remove, + .shutdown = drv_shutdown, + .suspend = drv_suspend, + .resume = drv_resume, + .driver = + { + .name = "mydriver", + .of_match_table = of_match_ptr(of_drv), + }, +}; +#if 1 +static int __init sysfs_driver_init(void) +{ + int status = 0; + + pr_info("Linux module skeleton loading...\n"); + + /* install sysfs */ + if (status == 0) status = platform_driver_register(&sysfs_driver); + + pr_info("Linux module skeleton loaded\n"); + return 0; +} + +static void __exit sysfs_driver_exit(void) +{ + pr_info("Linux module skeleton exiting...\n"); + + /* uninstall sysfs */ + platform_driver_unregister(&sysfs_driver); + + pr_info("Linux module skeleton unloaded\n"); +} + +module_init(sysfs_driver_init); +module_exit(sysfs_driver_exit); + +#else +module_platform_driver(sysfs_driver); +#endif + +MODULE_AUTHOR("Daniel Gachet "); +MODULE_DESCRIPTION("Module skeleton"); +MODULE_LICENSE("GPL"); diff --git a/src/04_system/silly/CMakeLists.txt b/src/04_system/silly/CMakeLists.txt new file mode 100644 index 0000000..39ee0f6 --- /dev/null +++ b/src/04_system/silly/CMakeLists.txt @@ -0,0 +1,5 @@ +cmake_minimum_required(VERSION 3.28) +project(ex7-app) + +include(../../nanopi.cmake) +add_executable(silly_led_control silly_led_control.c) \ No newline at end of file diff --git a/src/04_system/silly/Makefile b/src/04_system/silly/Makefile new file mode 100644 index 0000000..c37afab --- /dev/null +++ b/src/04_system/silly/Makefile @@ -0,0 +1,19 @@ +# Makefile for CMake project with intelligent configuration + +# Default target +all: build/build.ninja + cmake --build build + +# Create build directory and generate build files if needed +build/build.ninja : CMakeLists.txt + cmake -S . -B build -G "Ninja" + +# Clean build directory +clean: + rm -rf build + +# Rebuild from scratch +rebuild: clean all + +# Phony targets (targets that don't represent files) +.PHONY: all clean rebuild \ No newline at end of file diff --git a/src/04_system/silly/silly_led_control.c b/src/04_system/silly/silly_led_control.c new file mode 100644 index 0000000..8ca78be --- /dev/null +++ b/src/04_system/silly/silly_led_control.c @@ -0,0 +1,103 @@ +/** + * Copyright 2018 University of Applied Sciences Western Switzerland / Fribourg + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Project: HEIA-FR / HES-SO MSE - MA-CSEL1 Laboratory + * + * Abstract: System programming - file system + * + * Purpose: NanoPi silly status led control system + * + * Autĥor: Daniel Gachet + * Date: 07.11.2018 + */ +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * status led - gpioa.10 --> gpio10 + * power led - gpiol.10 --> gpio362 + */ +#define GPIO_EXPORT "/sys/class/gpio/export" +#define GPIO_UNEXPORT "/sys/class/gpio/unexport" +#define GPIO_LED "/sys/class/gpio/gpio10" +#define LED "10" + +static int open_led() +{ + // unexport pin out of sysfs (reinitialization) + int f = open(GPIO_UNEXPORT, O_WRONLY); + + write(f, LED, strlen(LED)); + close(f); + + // export pin to sysfs + f = open(GPIO_EXPORT, O_WRONLY); + write(f, LED, strlen(LED)); + close(f); + + // config pin + f = open(GPIO_LED "/direction", O_WRONLY); + write(f, "out", 3); + close(f); + + // open gpio value attribute + f = open(GPIO_LED "/value", O_RDWR); + return f; +} + +int main(int argc, char* argv[]) +{ + long duty = 2; // % + long period = 1000; // ms + if (argc >= 2) period = atoi(argv[1]); + period *= 1000000; // in ns + + // compute duty period... + long p1 = period / 100 * duty; + long p2 = period - p1; + + int led = open_led(); + pwrite(led, "1", sizeof("1"), 0); + + struct timespec t1; + clock_gettime(CLOCK_MONOTONIC, &t1); + + int k = 0; + while (1) { + struct timespec t2; + clock_gettime(CLOCK_MONOTONIC, &t2); + + long delta = + (t2.tv_sec - t1.tv_sec) * 1000000000 + (t2.tv_nsec - t1.tv_nsec); + + int toggle = ((k == 0) && (delta >= p1)) | ((k == 1) && (delta >= p2)); + if (toggle) { + t1 = t2; + k = (k + 1) % 2; + if (k == 0) + pwrite(led, "1", sizeof("1"), 0); + else + pwrite(led, "0", sizeof("0"), 0); + } + } + + return 0; +} \ No newline at end of file diff --git a/src/06_optimization/Makefile b/src/06_optimization/Makefile new file mode 100644 index 0000000..23c1094 --- /dev/null +++ b/src/06_optimization/Makefile @@ -0,0 +1,5 @@ +DIRS=$(filter-out Makefile, $(wildcard *)) + +all clean install clean_all: + for dir in $(DIRS); do $(MAKE) $@ -C $$dir; done + diff --git a/src/06_optimization/clock/Makefile b/src/06_optimization/clock/Makefile new file mode 100644 index 0000000..8d0e0e8 --- /dev/null +++ b/src/06_optimization/clock/Makefile @@ -0,0 +1,54 @@ +EXE=clock +SRCS=$(wildcard *.c) + +ifeq ($(target),) +target=nano +endif + +CFLAGS=-Wall -Wextra -g -c -O0 -MD -std=gnu11 -D_GNU_SOURCE + +ifeq ($(target),nano) +TOOLCHAIN_PATH=/buildroot/output/host/usr/bin/ +TOOLCHAIN=$(TOOLCHAIN_PATH)aarch64-linux- +CFLAGS+=-mcpu=cortex-a53 -funwind-tables +##CFLAGS+=-O2 -fno-omit-frame-pointer +OBJDIR=.obj/nano +EXEC=$(EXE) +endif + +ifeq ($(target),host) +EXEC=$(EXE)_h +endif + +CC=$(TOOLCHAIN)gcc +LD=$(TOOLCHAIN)gcc +AR=$(TOOLCHAIN)ar +STRIP=$(TOOLCHAIN)strip +OBJDUMP=$(TOOLCHAIN)objdump + +OBJDIR=.obj/$(target) +OBJS= $(addprefix $(OBJDIR)/, $(SRCS:.c=.o)) + +$(OBJDIR)/%o: %c + $(CC) $(CFLAGS) $< -o $@ + +all: $(OBJDIR)/ $(EXEC) + +$(EXEC): $(OBJS) $(LINKER_SCRIPT) + $(LD) $(OBJS) $(LDFLAGS) -o $@ + +$(OBJDIR)/: + mkdir -p $(OBJDIR) + +clean: + rm -Rf $(OBJDIR) $(EXEC) $(EXEC)_s *~ t.txt + +clean_all: clean + rm -Rf .obj $(EXE) $(EXE)_s $(EXE)_a $(EXE)_a_s $(EXE)_h $(EXE)_h_s + +dump: all + $(OBJDUMP) -dS $(EXEC) > t.txt + +-include $(OBJS:.o=.d) + +.PHONY: all clean clean_all dump diff --git a/src/06_optimization/clock/clock.c b/src/06_optimization/clock/clock.c new file mode 100644 index 0000000..ca46040 --- /dev/null +++ b/src/06_optimization/clock/clock.c @@ -0,0 +1,56 @@ +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +void measure (int mode, int samples) +{ + struct timespec start_time; + struct timespec stop_time; + clock_gettime (mode, &start_time); // setup... + clock_gettime (mode, &start_time); + for (int i = 0; i-+f+zTd9v{l2c(dEKvjJjdhtcs_1-)d-2`@JR5^;NjtM;5qdLX~f{; z;RTZ5;nCuqAuzh->f&MJ;$e3Gshf?viQp4wC-!V2f-6~g1YrFC{rg{Rfzm_`&2}N` zXFJN{9P12lmj<~rqS)*f8s2-9=1VG8LnwikEvSU2VgFunVCzQiIn6m_;7B>N9Z@bE^Gp<13*K zVWpd3uH6%P7;nO0|5oHShvb>|T6#V9jqmuh?}^SNewux)tN!Qu4)Jl_@HdHs&@pqW*8n=~R2(vuDd69niZ4c}1hIF-`a*d>6+*WRZnWHQh+faT{a%pKtp01%% zzLLTuT0ewdbNg@HTP0gjS?P6MKP(s5@x3=2dvQ1ChwX&gJF856DJ#^{ht@5;UrG8( z1q{zxh+$J2sIqsy(w4Q@jBA63#({Qg`D@45_CY2d9~0u;{r?gftt)hS6GW#vczYHk zve{!BC- zs2on_iDvGL)c2V}2$cew{0}~jP27n3^O0kFR-`nNhEDo&jaS+8v9-sft79i=Ut#&? zvDBrfX4XzE8;WVow1>U|n&}_4FNx6X3il~>!Lzmk468-fdNQ7Nh{M`TKCX5LN3s=8 zf|~X}lO&EbVTlO5ktM{#W5PRw|HSF)NuGGQK6bQpb#;X5-9I^l4~iZb`@j2NX{-7?;Xx%56KW;SFN} zUS+$SY)rQF)+%Jdr3f1jz@Rp!ZyQt47?h=jLqodsDYB_9?{g>wjA7O}bDi%J@EAmgH6k zZC4TfoPJ2TolRwbF_Vu)Z#bduoXT8As--n>)8U7!1^uDKq!eyke)B@0~tKVzsj zR55i9fb4U?n5e)A5JUeNJ-NC@uA@S9{+ZRs)O#`#&#BoR3a^}}uur>NTNC|J;<-L2 z;-R$MgRSNj31h=gY8b=ttCBxAyuR$cdRIS5|E_js^bDLyNj3hV&M;6pGNKcmteQs%l$Uw_jB^WjyB&PA2*)8qFQFFk7e~RQA$vltk`_%);4Y zl|Y!}+16!Yl9gLzsGrO;kDplPj^y~!6TR;f82v6N_ZQ`VD0U;Ulmu13QGwl zSasRUR2>WpK47Q&s>AT@S<1b%r-@%^Ls!TQ5~#ROstby zT=?6hBED&a)x7Y^r|AplZ<&zmQV}V^r4LDEB!3g3jfopY53?F_o)JBQ51ePxYJI!s z;`@!ox$ldGm;2<|_o7!nxvRPEuv-_`z#M8CrU!pKV!Tr^`n`rUcJ#CJi{NjyuEwRp z?CROC#_SemzuWN1JJ*u_>0ML*%GlihW{N0vrT)7AE`96Y4qXA?a5E9ESn_H6dhQC(ze|HyhwTx|4)( zx3hR`W3A)y*xtp~9l})OX!(dXIqKUxZR2l?nh%M5reQ(G7vVTu_Ibz&AGv$VFd<%!~ z=kyn;12$`4izs~@^Omo?QU_CCgr{+K>>69;^4OZii&>E#Nuh7K+|G#=G45yMrF-Q%H#if(4e&}*$(ig3{-{7 zCkM5DY~cl+@wAMbK3@A*8EK5^BWn{P4_gUdx%;?w0zrMQ!9;ObcN1SB`LMN2K!bi~ zn?dm|b>mYqm5)37ACdK1Id%7@TMa1QeU^(6MKU@S%=k)`im^*%JG*%#iG1$3o7mI2 ztbF-{N5|o`0cV5_h2Km661ucET-FOWMyl;iUJK=md3?%wXRcKIu@X(TLViW|b+(I0 zXg!Zy`oqk)fGU$Q%IDi(jJYe<)Ix=2p1%&fAQi!s>#MnIK$c=H@3-^u_*ZQ6jlr(? z9@7761p4yg8%^L1-@lCj!JoUGjg7}YX23oC+X$i2y}$_6p}+{#+b#p%)Uo-dimSX^ z_(|6LAZg2BPl&bG;i5A#Q53+|2ctWRe=*Jfb<$mmLnv9A;98e$;g_Fzz2 zQEpc!-}io3_(jC>lh!y@(CvJQ?_Ue(5UQvJdxfN%F+IuOyI?v=C>{J>dTH&&?BT-Q z?!dp1Jeqp9Zj8_rH{&xWT_8a|5c$e5E z(jD_HMK12>=IYjN&WDFP$XU_Em<0B$zBwir;&AP~(Y9dnnQKYOPc?;~h|gW>By+jlNDcGF z^VO-T&@U0Vn)~`8{wFswrxo%r5zfML1CmABpC%-=DRF=0KXxD=YFs1>iQ4|d#L-pR zPBhw8O5Y-NPWE^FEqeCndBNw)vL5=kw*4It8-hGJd=I3kH9SKts64S{$_OASe)C2G)joK7doM zZeO_0hSV_rF+qFxhHuMa4(Y4XhVTnKe+>2>#!0mZd@)EnTaNGY2hGc{99=owTz5hD zk@SU?{qM`upC37UCEOZHC(5(h*HpN8t(Nf%-7A$lbOS59tQ@S^Wt~66o{`Uk)o$MZ zee<@ndK1^ew;)<&oor?i;^vorQXwTQV@?ydoWJ-Qy2kmPhrxnUly+}gykac>5!+T2 zZNpYj>ac3055LLb)pe-{35bk6h8O>C?+ zK9elJB)(_L-Dhgey z+-6$r>h8MKjLXeeBh<7yHd(pSiBfqZDmH2N3ddGHZCkUA1!{awz9IgKe(`BtfJOLZ zM~+jPoZe@bdn>$~4P-0_zxXyAjr}(~pBhHIRn_uw{`R!Moq2`B#_2&6<2$&!|LQUxU@TP$HJ+Z#g|!>cE-{5Ky(n*J4dSNL_5H*Wfc z{&~r0K4b~=l!k&GjR`9zqc3$xPSWHIEkpdHt+qRFgkCcl6ilF;EDc0!^`BE3wmP_@ z7_+E0 zSo+zS(jzTXQhK5eB72`x)`;f>QVgC|MpYAVtkOO?^A-b4B=YE6R-9LyxOvZoI^8l5 z?)M_A@OiB_ss@$DK06WSN0JNeBX7mx;58egg)Zu zrT{{IzCI@Jy#4(?`=!e8$I0%G*XG{;^!*^nzcgIWq{ONdVjEph=n~E4{^HTgy|225 z44tG@E&XY3e`GDU7ZX0ue3_GfFQD#0@kB&WFr}Iq86_ptKFnnkMt&}el6#{IC7-i9 ztRp5CD0Z2K$WWzjj+x0=f#o%E(S(57Z0EOdHL@z0ZiulAR-HF6{ZFvYSjTXzd{()q6KG^7f)bQ{uE& z0=!(-nB)JdK^ePTjNAZk>;QG3IH`{A9#5TYa1=0C*I8>!i2CTJ{c-F1PR#i@WLX@$ zYItY|HI4e{1Mx?OXPd2GwQJ`e?qtMQYmhRLzaQM5KNxr4NiSbB;FIvqt$(P>H7vU( zlr8*#IDU~RprJ3F=MI{qlHFJ(by}co&EW5zj&YhmffutX1;H5u?k862qFxhHQ+MV6 z(CXfUnW^RxUvnFDtVN2zZ#!RwEt9+ve?)9SvvbBhwwYLw`ta+0O{C&&a-(ZsKG(Fj zDbH<`pzo)aO5AlmjF~Ik;+B#tnoX#Pi6Ww(bT3o9fGIk|eo|>4CZrr%M>RcQ!f5@Db*ms6 z*7#xkC@&U&A?xvbwDKjpl}GXtM)nV*;OAbt`nY?Q>-enFk~_FI8TVM}JJfYZOjVKb z;|t|p`)FI3#CY**Me~#%wW&hEmQcnN-=w2PjX!miV4X>eh$)YWoGsfQ)b+e;1$p?{ zsb%5_(c<8#L}8LatslX$=(y0a``$5!Bm><%zr1Spo0FA>ox`m!3tJ!~h}xwqZx1_j z#9EB~*dmRTy|ai?s^FkoJhr%Jw7e$k#(Zd(@U}KJsg%Wg_6)_}#VxuWW9lN__f7U4 z5r0b4U{@{P7dZu3ym7Bd3f>mT{P4B(@SJnPLoN1T?7HRxQfc&Yq1510&Y!UfKKEk$ zh+*$hp^}XSZ!7GEgj`AH8MuL@XagSmc=EN2gq!1-GwzHx;11YH^&%PTCfS3-+vr;b~*0MT61;hlp+ylzbh%ljfn*xtc;|M^H0pqCVfwBeYr5xH9x@B zC)GH2NZ))^(A@m=a1OJ-!)Ds#v)}t|p(L$9YkBIu@6L~s+JK{<3(W`7Q-?o&|IW2{ zop%lJUHdyRw(t7p=*Lm}w}8LfQ^yVE$J@(?W;YLf1CH0i{o2N;rfwYW{pd1#BkQw0 zGvBx4YU;cDXX5IPYuQ|Z*UD7muHEs)AHs@Z?7e=}frZ|Ex9XhGA{Zr|~=^DD>e7&HHk z^@%jIrOQW~f3`}ZkFT)(-Rw?F?h82nRl73Ty!*{@-|N`V(5%sSeP?I8x$1Cgpq^*% z>$kKASEriySC%XyiJlS!4@L{0)_{Yz00o9eqJDX$W0lqeumyV0M zS5^Z4{#@|-w!yaTY_wg__x`Z{^V`sWvD`9>Tq zOf)n<>6|k99_9BZOuJQftFtG%+`sAg=xA%v^^Ix%LdDag09CD{;~TZd5={lRR3;|J zJKwP@pO%iwS27P4I>Yu?rkaj2%l!{_tG1lA`lEMbn|2o$qXT?*Y6IQ}Z2iiVHC%SN zw`#w6&=p|3EZbPU=a~9FmF-AA`8=DM@BY@lSAdVDPAjnW{4-hoZ|>j3oOZF8t4)8r z;t$*X4-tR=j+Aq)+ssYwarad9Y`DmuIDqy|l>SS}kT6BRY zo#3|(HI`?t0Xtn&N3{WaShn}aQ^#w|dlLaiM|(TR3yZe0?_O!KZGJuypgLwxySpiC zC;0f+GTVLkf~Si|jG_UHM~BI&6Ngp)w!*Bl{fURuG|f-{VEzAYH~a21AFzEty7$fh z#^&GOnKo;A#|AxibjuFQBUGBbllAPz4v6FOde(VCO4+)$uz;bJW4FWd`ahffvJUh| z_Z;_>$|m%Oj4$#XTW5~nyjQcF>01=_Hy};)=>?P^lk8x0$>r^d=A&(p0IOq4Ibtkk z8C|{D_T!8n^5dZaD|%?J&tt{ zZ8?74fK4jmwHB4?qk@Li$hT`+{;$a!n+)lk4~51H64mb|ydP800UFesLC&Z7wDMwM;Sb{ZqK~U~rT8hFy$(ea*&I z2Quhay+tI<^l5AW+MDlcpxT^m98%^mGOq2t&x1^1quSsS{G|z*RQRW#jy}h6!X-=c zDLy{Y2UTf9Q%XmZ``*xaKQO*{?Q>IkUrM=BYd`d3D)eLO>>`QplybA%;8il+b^Iym zzgJnKn@LO>_RlBkdS&`}WwvjvmE0AO@HUGkF{s9UQmoMj<{62TC3`iAxh(t51G{K8 zc;C66s%s)$pr>s5+vO*l%dEY^Hkjq3+crZJza}Ssx%pjeHFVp2&q^Vz5mDYZl>ZBS z8n8+%&9L26t`wpkKfCC@weoIf>m!@px|XYJYmQlkQk8m&<%&Cc?OpB8N46^^6t5?*eQ9HF+vtO!{6%a*)y|Gx5|7S-U(xf% z%_G)5LK}4Jh_nyngfH(qOz*BN#mauA8&j-c8+1J*Gnt{C?pH+le)9_$sex&bJRDdY zNSzq>A2`rYw_H<0ujiT7D;>!hJAb|USg_wb^SW+C(-^|zDK%v0pyJ`w1*{B{wT>EU zC$D~MV9aOk$DJQrcRr8!_*Q=k(=0k@0g_xGzzy}hD+^)J;P zOpafcjjiVW>5}NDS=RJU>BwAbNVchotZ#A_#D_X+7j1YjYUDddl`uq73*G~BSuQ(n z{XvTZyVw;|xcIn7lcaEUj${6GJGw4|qj@y(xZ5OeH8?=w$C~f4<7KZ2`(TZ!5@I!^n3F88U{}*>tv3v&OZ+nQSlWCzDcKyhEZ9 zDI%TIwG!!Aiks`C1D5SS^UdBXMXD#vVvW#qWjoMNvTw}`y|~Zar)Kf0A%lR=Q&L=} zr#Gv(3({uS^xoZg(bNUJXSg&nzPZgRQ2B&s`@OEuiWd9Ir2uwbu^+BrDTb6Q&{7Pz zrLvLYw)tt3zj92tG}iV6z9{=-f~{5$CpIq#+%)9OMs&`WRrZx0@vjT6-@DIOw;*$q zO!!_z*UF=qRC31`XS>QeAH%uu3)O<+e*_n+y*{tft^4HSo1+I9Z7)CNweF2 z6ioiexy_}zwkrcx0$~zVxG0cXB+K<)u|Yj`cGKr#;Kj+4XS@%*zm(jc>)gjHz^)*{*4713$L1sUZp0>OTho({fD^b9NRu{TZ zI<9N|muU0!4@_AaWD^@B!DgY&}g z=(Ts?SE^ie6-KKG6BT9`8?McNRQPIwO?~qAk=%W0Uo0>U@M5IwY<0ES2XNfMt((0b z=#YzRf0s-T-d_aGZM9hD*{*sf1NHW)q_ z81t?EsK_H0@S)qjIS%rql8@No-bo--$^O`_7T-^rx_NKtSzYf2BDSw$i=AS$0%#y`xB0`h7>2%_q7{*^<7UUkP5ZvS%Lf|Jrx| zp;oP|IKfNlnm94DAMy#D>t0!wti*doaIiqv*+$nBM9diQby=(UAVJR1{hH^$d-c`lh0zs4sRBGOtwo_ z(eXVJd!>DnQTm^DNWqV|SgMgi1X!N}> z1f)B4=s2g4-9MOo#ea+au2z{fp7m|!Ij5i8c#B{}pr=2)MF9m5R04U7A_)$Y~^PMEDuvzjT0y6v~W_;(tZ^J!Fy&e^qbKUEZREjtgqB ztHQrT@2qW4!|6%OHO2OLw4x>>oi!V5V;2p!!KwczKcksIa7dNpo=^2R!W&C;0@s70 zV}`HdGb6ql{9;i+Nz#w0im_WZhjys0gz+@Km)&kmGwjBTj1nUhs!7Vd7e7fA6@{ge z)iC_)UlCWblCIqCj~_3pw?(^fFmK^pP_>%$@!p8u0Gs+48|mJX=CSq1;!6Txo-^oS z8`&P;EAochXX{F1OCqWfcg}V=z51NQ%BopUopDGYy%@kXk8ggwUh%;wTb3R@+^Khu zO0p&x)<1H!qH5l?qq#)C&r)T?!O*JOV+4)02bK9|g6iqe4;VhlAIjT;f zT*jAa=!m_gr)N=$_DT~clhhbnyy22|VNK#@7-qZTyI4xUiZYgtzcg?40p7sXb7d5P zXzVv_`+>!optsM;sd!AJ4Z0Ia32heVZo^%`($z9lwf< zrLQFBqF2tY7Atofue?F$xcwHK__9_y+0MNd@MEhQ?B^!Tkb(48QOL`Z;2`< zp#4vti~5SyGRJBycRYC6T6lBRMQW{l+4pEMG`9LvVa;XBCpx+8EBC#hJQ2j3-&*gx zd46C&o1>v+ee|01;oI8*FUQEZvYr~LNYxBPW?M8Ic9%vuZ-?}U#nDcl%e3{z#^^E) zA?(OkUc6i^WASCW|Ky%8D>mb0rS3zM*Ehd59ZAl63O(UxWs%w;{hj<>n8j$p^IYgM zQDOOfE@BU6BmTN1s;l1l^A;Nk=ZiWZ` zj7>F=#syv^vheI&;0jT0#e6Qx$HRrTP?1>d*ioC{9}U%l`*BN ztzRRv-Mgl@&6gy$Y@4}+Mk4F0<3tn&eBPqk4q@dm z<@ZXj@fKT;7}ot54~|#EY^UH2WhAS-Z|!V*SD$gnnIGJoX1S}t+2DHDEx^r@LuF}F z!BXa~DyNw%xm$pyqw1_azNzmQRviV-^RDAp@mh865E&_#lB$MVV<@(<(Pjdi-2_t! z`cw%t-O0>jW0^Inan^8G)l$+s;T?OLQDejdJ8yH%>dYELbuR5W=RDch8EoMB;iD10 zCD*Aa{G9|#&?{{tQO<*6y#kMG7t=mZJ;`JBL<6=^LGp!+a%^?{NNDg5w}D+6&46W8 zl5Rq1>~>gYJ||j#C5VZo+mhLSEYlM#S>9=>;9VN}V|0kp^V-mHthr8HX#$u9^`VtF zhgOpeZ#m&yU4H1Meux=8d?r_JLX#2UsHz;DC^uGg4jnjpGa;+Xo9gpR(H7koDuj0X z&AUG0Hg?!fH3@iJmzV>C+bGWuduTqAX5MSzXor9fyK9UadR(E^`r*kLOc%!3;Hfc# zmQAD%smcsvcKR*W1y@?I8<1^t4hEJc*U*^7adDC<#T%KcR3Zc z#$K%9KpysI@~AvOefh4f3dS2d27Itp9ndXJ1dgcpbf|U+$oJa08%((v=11d^| zSbs=!{sVJ_m_%+n)1_i^O@7_|%i@tL^)I$q3t@Z)PCwN4Wz!s0wIk6qn&H-{C^2Gk z&rcHfnOO!b&t6nLUcIK@UnDD1^*WbfQRZ&WWdo;MszIU|!o!1>3WlYj$(j`BiCZ?` z5(#|wF}JkTFIZg?c~X76U+V?%=3Il991NWFZT2B!GE7C>ybOc`Sn(GA#f)sC^GO7qyBpI@>4=Cr6W9@rrUyf3MTh^P?bcBa-rgb1+Ny^K0aZF zFy-bf+*m#Lwo{1ozO0U8PP|lUq8nsHMeeLOIv>0Z)g{8vgzOd`jWwAsT2cKbd_hyy zW~x-7sNOr;>l+=858#J=6-F=#r-eY8Y>B0d*7^WvGBE+h-VJarYhJ1J9 z1T594?yJ*9W`xvL(to~6*Sg-}lVy47sZ&hob+_=O_zxf- zV7Jl<8LR1j;=ZP*?Y0V`P7e~VP8Z?I?Q#%D)bL5Kefcss@TF&oMTmo^kgXx|I_a*h zy{rVIx}B%7x&*pME3Q|t*nBv*e^*guC+MM0A!*JnOW*PD^ZLPR>38@hYlAq>_cSn4Mv%b5~eZkD}gB$ zG=Acws<^*2XYV?S3#W6*jBO#fC@aqg>tr6`$C4tIb2u^ zSQ190;U`x?7U*Qk=4wO`*rnk|SEb*F*`sJE#7XNP^1Rf<7+J7OT9D7_VC(#s znkL0x@ahaSiy>gJO$*Ves%FbrqU?#ReS1f#4f8W_ke?V{1VPOW9y-RRyJY!JB$~aC zEBn_V{Ocky7Hi*1NQ&p>kg54<;j3O8|D`1pnr%~`up`u#+pUsO?s|_(VhpPz=j&`v zF|xobY1gwqzhN1$qBzh_xX+z|&yL$n7sIQ_Ozt5STlP+VZe0i(LwoTb8IbwMd6(|A z+~}mi7bE>;V_(jxx@v@ia&y}<Xr90 z7?tfDx&7+AYdcTu4Y3PI#@~WH-FL!r8y?!0@Aku<_ZZ5nYe&NukRu~}@+t@Uc)taY z(>t`3>m8GR3znPQ0MqFSujq>QH)wF9$Hd}7A(~OCdw%YJqQDI3s z{oK>d{JPk)233G3xw=m5#@Abb8Q#IbVqZ*Q8=Myzpo7dEDh-%ad33(TAae-QP&^a5 z-dT5)3_D5MMF}TtB<XueLX!{-7PB0-#I`NEBt<9v0$m=OqSOU)rbOP;h|7;FF zOk)N)KzLn)v(Aw+v}a&)xYCF0>g037bP1nMt$6b~Zs7Q;-jUAm%kXh~%fB83hKqNhJ3HNQ#zAa3!i4|FVQ@hF(6Z|^doR>*I&9ck@E|^ z_i_8H|&XG&F zw_y}Dj`%e_kK;sxlA$U|5sZ5T3EHmegrRXt&J&Wt4ZRk7QS1zocv!Hfh?c>(_bS?o zTu%Y4)WH8N#(E4?ES*b|PI$&=vq0oN3l-51Uos4ys;s8!ZcluCNO5WMIazopLI58a zUsXE<-jBSk0IXz?hBpctPe=TfRwny9@qi#o(F1Oq@UkAPSPg~}pi+At7XnZ8tZtI{O01Mw8gL|ZYO zfaL{cIF|o(^B@YmOFIw(V4=~zVZ?dn0~EXKt*52HhWK94-lE|%$j*Mg$q|B?O1&)3 zu?PVfp^c6#{@W@`w0Ps_T({(8x17smmW0cOcmN-qK7g#UyqiQ5|0nl5*&XgJ91XSM zL%>3z2u516u;oC-+6_bCmORgC)}UPD7`rU8G1_Svgau9eeE5#sGsVhb_Bsah27d00 zirh}f?nKFXhaxH?g08nZ6~V#5D^MglL;zb}YC7QR+`lG9(S~(h;fQM|X+h(S+DMMvQqMMt3&UPI@I0Z_r=!uNzT1H7zex42D5H$`7yBqCPP^UDPf%y%FsgTL((- zEdr9X$x$#s;S!_Mw9(l>5Mqq{PaRJ@@qvh3tO*TjW5+*BXU-%nt&1h3DO+P`tZ`Aq z&3nqB#BRfarwjv^00fM1{1Zd313OR62g;PIfEXO+Hd zdt=0dg-OUP14d4KL1?RmK(g@J3P)fS1!du|Eiq%|gtB2#B(@TC1C)z^{eR*`P*gyG zQU=wweq8|l;Lw;7^It3HQRU^vg?$uagKoUQDZEXY%28}_M2_J;$P-DPd{yTnF z6b}>+uA(jgMZ6FcHR9o5YzWqkDEnZ|bFE0zp^P282Yj|cKe*vLs6^OA0GgoN!J!}- zKtb#4fcNM@w8`cT-uRHJ8&e#REle zKHxg|Ze>tdY*WXdj{fk^raKh@85>0t0DQ%fF%MS^6JB!O>hD|zP_l3bl#((>Ei{?r zkvez)qWAAzN1X0@zdxKtM2zNS+2mII>XJnAmr;tqS|I*(VNP_4FhNU|O2@>HAbOqw zP=b&lr5pq^2?*xTaf24nOBXO$lxw;pkR+@zJ%H2;*3_B= zvzde06k5!5DnR;vegIoCBm^acgnQxzycMZS0N^bOcEO1Zl<>mW%FHNyL>YwP+vM@q z7+wfb1JWnV*CcqlR0^EQ)3r{Y6Qa?5`uo?O@;?d4O$o^ znBWG{SHS2i^iK`;0A8U+4Yz|(3U^9{7RwxKI-2!TwMz}(0sdhNR8)c2|7h@=0E0C{ z6dY4Amw0k2DXEI*8s!iGe&Bj*;)rLQq@X@#>YtS{PYD>(vVmW@xM)VvBrP`fvQj*w^Uj6+v0ss*U!h#}{(d{#1P2qsQf~I3 ziar5zMZMbe3C63#O_qk@9K{_AkeX;*Ri&r3XJp31klEoNKR}Be>!m$go!+B_dHvodhL zQ7X-dlccD2q^O3_#*jZ8QARU*nn1~r7yEHkYAe(R@G=9F#~!&&fV=3KL&l(`SvG{% zfx6v~ABk%)M5RDu-G(L@hY~_LGI1IyN-d~1GXi*Q{(5KHT`E)uq6}hUXCbNsnmT_J zy%UDa2|z>$;BdH%5w^eq42BW_3=K%-5}FfEClvk4!x6&-h?0<2@!qT$<>^ixm0K)u z26?9Vc=*(^85MJVFwT=hT}b!H3H+DwrhgG(2arcvS&5W|t+D=4fhB_qY)HH05*LWi zv0Iin>i;Hv0RLQ^1{BZq1LYP*uu;Q>Anj~(Qlk^hUTPT=x|)G|AEn}2QD#j?>%xbK zUtR)Pi+j!u-Pgd)2pR|(DIgMu9->&bY~qLc-n zHW^7Mc{k@4aD31RGxDKKj6h9ltJ0BSI3EpCTLq#7A%rJ50lM5siaFDW*YV z$FUH-))eRtwNltosFnI`0hFBhX&iP;1EhUj&N+@&!S%l_7T+A9)kR`|BLyx%?YqhX zXjgh^!cmm%WPJhBe>hy6Kba!gH7d%j2V5Ij+tnYh)>8PW>2mts6HT>Zf5U-XBs zC@(-n+$t|B*t||G3)nXb_U;~gzljl~yS&s8C;J%LAQlc7gQv%IBVQBPc+1OIieAo; zCe+2*R0nLPg#yp5P=5&saX2{TUe1Bg zPUzyFV7O**#YhizFW6COeHN*a4W&8&b<=S$nnbB`II97-F_w!1mU)p4HRgaOg-HPI z3rq~eBpl{JhXAa90!`cwvHpZ*kd&RO9vB7>h{FDBY;r$-J*eyaNx2PTK)5Q;2D=7b zZ~aT4T;bM@g7I7B5JmM$XK|GR_%uLSE&|$b3HAw!!0TLQ;#0>7YEeQ;)il?CI8p~P=Vw~j@+jzefjUVC z_C5GdRLQG&>K_aVcO#r3^aYJjD~?DpU4;5=T#zhraE%~)yZMf`&J!i0gIiUope7d= zvr44=Vm2rJ2m><_h6EscZq6-3(11I)f)ve(H{?H!$DZF16FiA-k4GR;R9h_nV_(bA zzOKkyT^>PdSOU*b0C^tL1qx%7$B0@HxTM>L)HkkHoF8jo+E8%gN_CxB;7LG5{F5kc z`6c=^z;C!(733GZISECd)WD+$LdMKraXfM-B-jLmKuuT2fQyGA%+P5e=tZ|66eKvI zrv-x?z=tbxP;G-?1p>%iP^|?6szDLtB~#p_rBOFK=ePw%5ZVmc!g*AgwTN1sbFc}N zn*YFg4GaNMU|p5w7m$*a-o6awWl7wmg;BRMtX8W+?L=n^!|6PT4F^!N zh`g{tpmL6>ka+IrP< zagSHJ^-fv>x+O3bXbGZ#9K~}_59QNh0vd)>%(us|xXz2NO;Gm0u#!XN=t}D|8kiRrI#7=zDTEwPu)sMud+-M7Iwg=pw*VaotUOrP z3f$1_wD2zhDozDa@i-~|ZUh!o3)2Ql%2PMLR;C2;b2Fs<4$O($K=-j5X9z$~Qh=V7 z@SsGuZ;HZzk|E@PpLG?ON&zuo1!YmlBEGqDUIWC4HHP&dDX%F8YAQiXL`AnG5A{IB zTiIo?<`}^su+)tH}u>~mui54-r z=E=2h6@Vt;1IR>hoJVpXQ3C=7sKY!5Nd*olPM>vQ0M(~?yQR&4mUMVxTRjcPLgIn7 zJh6~SfrE4;F6ti-XVoI6fmXjEO0zTyuK@V;x`j*rl!iMFx6~r=fUVY`w|Q!~eB!sj zQTR|rf`)DI4hyAQ3HLjs38ZPjV8){$J8SMtj-u6!q3kq|W}mMILc_H3SVgNRw#5@i z>Wwji6M!u`ssj#ovXjy06yA=cNF1jhtDwQ4Nt-~^EmhR+4Qbt?PG60r-EjS-al5K9 zhSfMZk2>CiLhZ3hLx(32r>t5np@{(4gY(J*GSS63U*AXpt`d-rR7faTKs$tVOolXu zJEV0W(A<3D7DwSo2~5tIyXj)K>KWYYt!h!TUV+XGg4 zjt$!_Kr68YTHg97(u4q*hlOQz_)2TJ2`A>{_@J@CZA+atd~q~n5`a^B!XggrPtJe? z`;%<|ut(y2I9HDdUxb=CeJ5{6(6yy<19IGiW~+Fq;fk%SpSuy8gbH%S;(={Ebbrgi8(E>;P+Qq5GDl(WsBJ_sGjltO$S(V~3i=7q!UC7{+VBxitf7 z>ILpj2J&#j+otb_v7F(c(3`E_&Z-4U_>lRd#5tC`=VB2sg2_?* zML-nK)d1w1D-ZI-27>4WH)aoDi=%{-Pl~97Er~y~JUGD+q^ZNcku6QO2c) zcgP8zvqDMv51!ki!k~aI&NXX;6rwMdRJdSJX%58=?)+!4r4g+0g&Ju>#uWx1qVG05 z7mOYPjJ~#is|}Zi=D;pO5}e;XmGw{T@(t>pKmV5S=rnR_F(Newxzvc)6w1spzeA)1 zp0+nQo2qcKP}K0{3aAgQQJaPYCBfEn`Vg#-!B=q=0k_&e6`|BJx~2YKR|p9v!6%E!WI zt$`AUYE6XZp#5#cSE*QxX@QDbVAmZ`@)l4u!=6L{X+OsgT6KfL3j^S#6#;9SDbQZb z^@zWitd#(XfD#JC3{-BHYBGWaG#G$JEOmI(E^{RDi?tvLTfoL{fi^%9_i{9h6B04$ zX&1gAFXJ>bpdgKUDnsf)G*0F*=RSP~pvH*n;eT=@eMMddZ2?Y03P-R&9WcN&OI%+G zRGtqcEuJ_PT?eS>VIH=?71vHX7oc+VfKo&$2lf~Rj`Z9bR-S=ZhkJ%@T{{pgpyrLr zO7o1(J70+gvd?939Rpp}bB=jJR~~}b8HNFjt%6HcDNb;y3Ncn-+C0*qBeB!S%O^Y^ zx}>-Tk%=hS6DKk+oVdcudKu+3-BmJ2C6~_NHb2HmvDkg z4Cr~!;hIpBcA(dByoGAFL?Do|TYbT`(k%tBm@ZJ8Au;A>-j8W|S4Vs|mOy~2Ky*4C z59!Sfl_ehF=Ebm$q}dZv-0hXY-C_8WR4|aQSTh_desggSdn!Z4-iq*u37*3p2Hj~% zfjccag*ZV#wjZVfT5%4d6>+Du!qtfdM=P|$;N8eum%v6+xS{^G^#;f3vn~N;S{$VQ zy#ajY;5$B$8mtitaVBBz4;nF~%{FD`Z*tWDyi4J(Kl+2qf57a$F!+Ds3Zmbfxq$-zyT0n_Y>FgDd zmU+@Adr`ubC8>*zvu1%HCn2c}ntmVyxJOg}q)`{51#RvtsLi#C%LcKNird>Lv^N1D zN8pyW@xTL@BfCwJoDG!Wka}{a)DnkrgCendKySc#atp0F+j+Lm0Nf>HnUH3I(A#6` zMzDbX+y&g6p@a7fSs2RRfEgD)00glG0wg3V6#mC}O3HUy=ITkp5*8IL2o{iw@Xw(# zaFA~Mzx78o;`M?{at8>nNfkh%baAdYPUJ7M&<%jNAd+0DnluY>k0|(0h6Qn<@A+D{_FE zv=C~3cZ4LPe?2C~kSq?hIvWPZRougCIB@qZ6VgwM+40Q4F^f^6 z7JyoJ6@pC)h#;GROBrAzKyn3_q{h(35Vww{f$r88$twVse5j$(my9#U@H_(Xfn)ie zK=lzV?eNTiss{(qWjQgPs!%)C%x|JRH`i&IY3$iH=B!6A&ZsOnJ6lF^jTmc!*peR z4C8829y{m049-S?BiCz!8pv%R8FwGUa}R9u3ysil!XKay_f=efaKOtmTt-_6(&&vv z+#e};F+{O}9)BM&J8)C?oC2{(RE%T2X+$(bo;Qtqh|`F8hJYfhq?BF%#Tdm$1x75GyY5JZ56*nA)u0({$4OWUMC5uy!1>&XLj`*YRhdnUGbfvR)^%KhU1 zN7a`HLe;*1w{Junqq3B2Sz9EsrIIbAtl6@KBpPdsRI-G~jHN6U(qauowy6jWMW{U1 zX&7Z6Bbq_-Uiaa7e&6@c<38s;*L^LYYdvEm{@Id?JOijADF*XG6+SDzIw=iBi<%X} zdlh`$R>wkBds3nMtn}4O756w^_$RU)=L?wK=!|_WIi( z({B(h7Ozag#D?dQva@!63oWK=t-9wINJ~T>5`kVu8oam8;IVQAIueM6S8s`A)O(+5 z!s2Tf%B)!J=bL79AQ`o{7dgG}$k53fi^cRMP9IbtjvN6z0cRopBKp&7$gsC=L6Z6} zzJ_eWs(m};2#+3*?V6%C>Ew>YzW@f*t$Be`OuY8eb;9+Uk}WR+7}t|UTNN~3Sc(J3 zNUDk=Uww2@M29s$kkaf2W&fVH6@@YmkT%}(NxK2cXNVHLC5_2ksa&|X9V$RDXj8MM z-DgER@OJR78>T^st~3<)e>p4N^N-J(c9a+MC%!K?SPy}|Q}VKJAVV%ad+VpSFd6bI z)FK()@)?Yz`f~b@tjdM-b^X8V7{jWU7`C$a2)E+MMN!Xh1KoV0CuR@*dkO%qTM5rV zSPiR*0E40$m(x70!80}QyK3D&^nu4?`cC(XCyna$nTL|a z=!{p7N6MRyg0#iOts#wrUNhIu)9vd|V@(PH)0^c@zI$;;!SLjdz!1sl_U(g-Fhqhf zzK?_2ilkKaveDNvKE4%#8 zzIdd(a{XaF7~-V!?z47|k3M$n?=I8wf)P${Xw(-xuOXgp->ZRK%~sEUOm7-;xxRpB z*OWW$y(Mx8CNd6eb;T)s&fEG3ik$Cm4(zyUyZEY@jcm6D?*ze!yWP5{lG=Sm6MaM4 zbSEf#VcmX+#R06eDQ48?Qxa5kv7|OeyQ`tERUBv8Z{h19Im$A@HoLdZa6?XTdK1D z!S!ePMW=klg}+Xl8=LvZYDWx9Hi~RnTBd5d;4CZKskYV*%bf0;pKd3e#{Ko2Ps!}-figcIRBkKsI$yC3IB{|PZaQ7*`V z)48}1J(|!_KJU7qd>_Ezb9*T)x&PK zX>(kD{V_O;{`xUn%f~=a*83xSv^__5KL%z8nyc)2ad&aE)m?wy$hBw^4@C_I5WA|W zZ*IIiVK&twT)0Z1EH6Al)@n#hOQc*dYH$Oi@civT$wo&*xh>YQnn>f;@4ckweP?sL zWxa6u1CjEHq;EPoFN9mB%}<#5zfsy9>V7+a|IPTVdUm9)fQZ5B1mD`o`WL({(;}sz zZ{(G)o;a#rcH+^<`fgqI9PLXSRT6gzO`5hxgqx?$oq%*}QIQui&4*5&HoaZzrAqMv z-o*t zl*#?zrOMmP)9aA7so5m)_O~dNb_b>vZT{r34P8tt(8YJ>Ov)cTE}2LYd)o6Za%uI+ zt!*Vat%ueCRqHP;QPorP!o@GfXHAM?`*B4uGwLG(b~3$bjmR;yS|;NH&ls{OhE z7tGyBn!w#lG&y~Pxw}#)PxIz3U2C?EonLzRnt1rst9^2_wW5iG0l8bOY4dB2HNWoM z0*dE)SvpAHab)*B4znFWp&FJV-S#cKvKc6R?r;ikxgO-Yi8?5Wx0Czj#r4vVV z>^XuLdKKM6^9T2QidpTYy50+65h(Q%sl~^6${VV=%T6p_Ut765NakY{`Oo`Vt5}nV zQkB%B+BTMnpwxM0BcgdCC4%;4o&!8vTg?j9+8xq?%kas?t2|I0Ou8#9xzm9fO0xOG zk;2oM&FuW=-}EeRe2i`WDKq=k@*b7;_cn-NdE*x3{)rl z7%_ANH6B2U3ToVV=;Wp|MSqIV=hFlWPxLqU{OZs)>eYDZl4`boqU`w-7f<=L)|ktY zgEcKzyAO3AR0@veQ0tOb>b$yKt@<5TSm4QDX87QeH;nMVECJ0FDJ>sn+1`AY2`is! z3-Ps;7zp>>T}_Phvfydw6py<(Fr?qN!bg}h?wl_q4 z*}oTWXR{Eotma;oa1TFqJdVE>vaAp9L*_4$s*rv*RmHa*W#u%S5ZJ zs?V{-ZIyqfxiUoS&(cr4-?vN(&$BwE+pJT$gl%kiH|ITUaJf9(g&}bUFKv8jCMnlk zULrM{t1eQy)gJDM%lQU($X5y1OPs^2Xc{PRE^wOCi}X)uiPTRNJ`fRC=ABnmt`do2 z^QnC!(X;16ukjoF@*Wd7ks@UnM-r}CmixgeZNr{)^xfiFO}th?=i2%{aF>)y&V! zoFa5ID_Bs3?ZcWUbY{ct6oR-C(wxs7f;2R zVA)C5Q}Yv?LJS@J0cXV6W|s!^91)utjzf>HB6DR$cXtpd>d&~MCnPFMs*JDo#O=} zTZz9r#KNFO#Et8O+>K~n| zpz~o;T>qT*@Ey@gl)`R*8u6TV7TCtW5!m)AY71l6xy!&ekujl`i+sgqj`!X_pWId^ zd1ro)<3`%cNa~$crPQF>D@pPnghTA%j`mrycV{3+ZlupJa#;krJvp_r>wI=jz z$?d_2Z99?7=>KF0g|`V=MM%J<@@ol4cv-57?hotd5yiWA7{+l}9#@YMV||dmfiXzK zz( z8y4$W(X&ZYwJWpQNxe&&--mSRt8C5P=}WQxrOgT*33a=GK@p_`wl~~eJ|DZBUfQD1 z2?wC}BDL)h^AgSQV4EApZM_zCEj8^o?LovF#2tf=GN7UJf)>&j!(yjFAW7-yJeCn6 z{M8^I$$RKhy*tY2<<7=7dSCC~&0E5QEea^Y+rmMClxU@c^&Lah(oHRjgxpen*;QO{ z{2x7~ew*C$E3NT%o(mCoYwpd)Eadobz zsye*ukDLHRh{F%ow@gJ!e>(y93Y(2#_iFOm9k~UI8eX8JQ)_X;M&X_+I+RYjeg_9n{M}`-Y7%fn*lgn=;LL2PjQuv(A#*FijDk{`h>vp} zVtQJRzb3W=>y+Sz(U%@?ZxaMFfP6)jseTurbtDhb%29_n2?zOtSci)X2Nas~G|a6G z1L6!M(@_)mAb+8qLGF@oq$rPMyP81D6iIqWkOQ* z_Soyqz0ro!!+~qjv-$u`Nh{q~7Ouw#?m5b+yM>|g3Ks7gmgjR@rM@}dD3h*@Qbi*7 zDOE+EE=!rjsp38M;$Z_ta9@XdAFb&XEBl~2mFd|4k+QM32lI24XD|bQk_DcZ-zVwP z*TCZk^y0Sn%v~z>{9;`cJ}whFp8k&XRj(*=Tt=`QH?CwMO>s(b(n@g5S;jAxQ$h)@ z|I^&8z@hckF}BAtvgde+c#djW#N}iOt#k#4g0rK&)uV#4uQH?)Lym`41>u(mfDyaK z%GOD=UZ@XYC9atI{M|Fa#FSQ58^WrduPWy2ox4QJ%B>EJTFVFx46D(?xu*Q#=XHB; zS3f9Vy{#hrn!K4)il`Qk)6)BDhW@D<%XCPmZoC|7Azxgl3>6UAVRw7u6dz+diEUn?_4 zcEe{&zTTRw-yC|OEMD$j4whdLB5vzfqoJzWOjfmOjh)W;P}Tm(srjLnK)segm(OVl zC6vRrHZWuaD{1DEJz=>>y@G?oA3;vAaPd{`M9AkSeBYTgB{LH3`=1leWwFJ^0uy`26u0AjA z?AhzhnV@!4pC64*P1$(2B^GHhWHe!G+Dkd>6NmTnd!$%R^;S=T4Ez!!fiN;|oY84V zU=-_*OD9k*GaOS3JNBOBp7$@B4JtCf$F;VqSFMb#ifmkqAo;d*)w!RJPX(F#-{OQ0 ziQyG2hC4z{GPx+yCKs*)dDTWH9V^+1E7+gEQ-)2zbCHj!Uia90oqHqKQ>sMHDr(4}E70xWJXWHq=LTos!*3r*O>|=fYo`A&2kkR&Yq;t6OOWAxIqGBe74iuVUt%lz!pyXVuSet`PZ>$XVs(BdGm zUOkj9q;J|OM$DZIjH(AE6blzE%kvKpE)GZ@T~5$jPJrzend86A_O-LGIjK>>@<_H= z;4YUPTVeg|-`A^?%{C>iqR>xj2)9Hz72X>-8 zu-tRDhNJMbU{QY+huI^H36eRRsC^m)+5@+6lQNn6;lVGn8wB5%ZhIfT#`$Rw&cKPy z8%yJ0o#KkZTdHtVj5IrzwxUmEFr?uwix7!EK5}Z;- zS37KSrH*S5^fU-ApRHc4o}LhX81QJ+h@fW#3{jlFQKZY15v&FEYPE|jxI`*DvzuHS z!md`uWJd=pV)JtMaj-ann}9CHI=>~zSrTgU{zFqcof7&iRU+lO4=U$U+{;wE&4HQQ zsAsk4lm#5TQ6}O^c z9YM42QLzEX({Am_o*cdbjO^HL^0z~b7QwK|-SsPX^h@FXB)H>Z@&CWxvH9U--cht( z_CM=!|2^NaxwIiiYch0hCl`sJzB4?NNI;i>Z`s{A+RjV~brI88I-<{HrdYoyGrPzv z)MMUL_2kSoATL`oP=Y#33$O}hIH%l##qi0z(8+X-ozX9ujO0Pl`8C!dMF)T5Y}4U^ zzRV*XMi%6+Qq{QeGNMI%V4_EKMvwUe30!08fyQvXJzqMko+pnM65I+2E)xx|ehn@9 zmPZ5|ORrT5789KM56e{xpX_&!=NPcuK2Ve8yF14OSUdpmxBFlNtGICR+0r#<_~C|! z?ptCcDS{29*Io;n(I5(-JtK~$6GqG~G8oOh3(G1l#mZHS$T}I4mbSaLH)p34_kg9k zRjd&idBx$A9mi+B6?_xSBp|_<#H+@8%wHVa53ka%2K|J^V>6#0F(R7lXwM|5!|8x0 z!(8o)@2bcBOE-GfC-dJ^IlgM1$w+ykEcmgM_hUF@8S~AaC<+YFx+;^%y)otq&WY!T zrRqJoZZFZc`;(BR9042LN1a_BXcYmvoA$h6GEcA(Vfc|VAbyI`AtedreyvaSBl{am zpSTwtG%+H7Jw8)Cug?W^?-bY4oWXd+8Qv@#5bqH!JpX?3H2KwOHTgjW(7#dO$|A!( z5m4=;4!;A{Ak`B8bcl5r9qI^~`F3;W^Y_uI|ocnNWLEnG$St}vOEK08X*SMVt+_67W!Qvao6}J{JVc$vhs$F=I0LZOX zf6Vc8I~a{eG4mupmImyD*IN~WAys;RY2)DjVHx~Z&?CN0p@Z-o%r6#n;}n-0-ZmN( zO~#RNw9K5GV4-HUBi*26OtPUgKmtG#BAQ?Y8zt}_pu4v3kYX$R{c8+*>Hu8)#8r$* ze|oeUSi${IzdayMx0z&PX@E5La2&{2DO+SoMA4WTjFVLFdC1)3-Z)Fv?Yfk2tohrV zJe^ZoFHLP$(1{7~rY&(CKN);lEKx4N)%FKy3vVNe5g0_1M30RPO>CWC%z%%Rz-V<> z<3x{Xa{%6O$3%v6e^zD@A*UWQ(F!`5kIJVxtH3%>o?iL;H6Ofy5)g1pZwLoz#X_!jbbh* zOD>%(22PeMFn#p@G$K2hSLj@YFW-;34n^f9fjBGXHlV%Y5{uUU%7d*mNG7Xi z{Dae%$QA<>m-_(kBKD_Q6DkF9bW0G}{p>{(dO)$$2dYDJFUPAUdd&N)=GU8*Pzt<(^aHbud;=u}Q zUG6;ZOl2UqA1Qc8`m!e7mS;}|pnJLMb{=7?nTnDVzwMc8yU2_rza~?IC z5X_BC*h>*nY&DRRnZg${9X4qS|5%9MpaOKrUJ-idmb3uy#baHbC?P*$)Vrbmcu0-w zVSsqf`hZ{dQt{~Fpe9_;d(YfElcv)DK739QOapNww5@#rh0nYnOL<-(| zK9=tP7_Qe-ki73U4ZhTKUp5QRbs zCigsk4FmfwKt!@AFBKEndmaw=xRYkHas%WzUJVgGo0$r4&0nkK(cI(fzV}< z3a6*x0OyGU+&{WDfJxO{HM###KobgnhVfAYUH6ce%D>4MpBPg=>0S%$qEO7@hn_o3 zZOLT%HiS;PM^DnuJmfbag%q_>FLp)_91kIp7M#SZ-Uw8^r~B_5I5wk@51ugy4_X>N z=?<>-9c4(=!f8eUVH=AhY6PT3X)imMw5TVZ{+ZqF13NRdOUo9i*C0*bxHgq5hALSh zGbJm2Lu~e69jdaoPFhIz)#1dY$Ago=L>{^qAqc|M&XYYQ>`p3Z=0l}8BF8`%ADrk~ zJ|N0za-OHEy#H=ia&86z)4C=eH+<~m9ix|&NiMk!OScw5c!}s90X9w#Ptz-{kx)Rf z-gwpe%s_0bV5URH)DopEI)M5wy;X=FQs=-g>2=E#30Ilhvl{y_1OS1qyI40z$f(V<)>an7SZoACO} z#q$$4&p{alM=9M;0mdou(H)XEG{?)+KiyW#hf%(4fjLo$(c|);{I`x*1FE8 z=& z>A_duIWJtaSQOgNNYRFIKG?ZTDN9)p*AS0xXF{&{h zQZd{c%Nyr10C47JrxeL~iV)(bUQ5cw6H@9SFEQX{5Ze?g3c%6tBj=&`9}3hteAFLy zpoSDX&GG%PQwb5OoW>pw(cDQknm>~68%KJuB*>mZ6pem{Rggk&VvJEdeN?ax<(N8? z&MBdL#)*Cf7zT@g%j1n<3wDpA4QY49lJ30OjfylD74#}BQF&QG9~9G>#MUVoz?W^Y zE&oR~8l4PPojA0<(0ghi=c(DPFN=yuKY1&{f%KEdA<_faAv7_z_-X;G_&aaZ>UXsU z4HyvuA%XfFH2rlr)7{m(ZCon0uPf>c!tJYZgJNM0RclLe&k+=p*J8L`j8UVQnuxm% zK>a`rS6h0p7AiuL54+7JYfA&C*-%F*yw@iMIW6R1JvsGoSeP8QjYWyT&uqHBHw7FApeFx4%o5?6y_B(m4$o|m2~VIFb@+#5GMb!KOP%c-3h ztA#9<29fFkLWLQ~l)5u&I~l5%0tvLPs+)*&FT_}@k=qU$-%kkKkJ%k|cl`viI~E0W zwB@@4y~(l)DEU3{aSIsA|}<|!p~Vk~+B%*t884D!JN_U{ZR z7KL`Z;iH8`>-S)nk30iz%0X+#KiO&(wP_W=te%!8+qVFe>&;=_JrG6y`F?gixo6K} z9{N{un(48F2ME205h}u32fA!Y`KF8u+zo{4UN$6Uro1NRttA9rL7ue0ra3Vt08iUZ zKr$yPmv5-qzDOKtjbV=`kBHMKjIc@HZP5K2NE*>KHtONn*bFGAzOYr%hEsHn=G^l-ig7F&RSwT(KCN*o;brxo3cyL7)ga8tWDT8@X{4BnvnMpr|ZFfOC? zAURxb-s*YeC@nA$6+e6fG)-r!dZ5rUZ++w=1ALjB*S~~;MLwW{D|4&wXZ?oC$|K6K z6jSrC`(8xXT|uBLI5Bqxp<*ov&wv-A{7BFu{Y3Ew&55y76SOmdnNZ~!hbj-MW{j@~ z6HF9fe9w@mN?VV?NH#v6(zbAxSS10DY%eQ2m$$!5^(G`{$2==VgjW}w{$^O-XVLPm50;cMguAo#fH!CI`tNU~NTQ7b=?#J$6wo$rL&6=;z#R=e_y8_aU| zLzL(u|3;O}8CaCE-_X8ytPU~BXG<>%tFat_s@@dTaIjOifVQKZ%L^(m5&}1aCAYe+ zCl6-HIL3bOiUK)j4hc=vLQf8Slu>~4R`3InF-u1(^EM|2-UNO+)syHMQ@&zs6!t(q z{jL=EE__Wv+O^DFVM0at66=wnJf=);B3Eq!7ocpLuGTyHjFSphMgwjkBb14~d7{A9>k9wOnp^&6}19MF9J*w(LzPNi) zcH3=l1SlUTyp}(fc1i9Fo=}0zRxG?Zehv@Pl2Pg%(!3I&oYW5?%Fwf&P6hl_8&07e z1P2tj_jRd803uNAQ4*b%c?{GBp%GT^h?+FJ}A195pspVL5gdLe|U!b8HP)nALQ?qz$~fL@#@Zj47TqRVA?}zaGn69 zaRDw9cfOK0;85qp#!xoG!#M)NOnO8?wE!wjISf5w9#(pI=kODUZKBHIT0k6x@m31g zbS`jaXgX}(qosk0d*|#$%60U9PV53lProY`jN5sY63h~bOLqG$o^dn)z> z`)say>7o(|ja}}Ikx!mtFgxu#X#~|T{wAsRtvaT=$u&}_ux8z~2^@Vy%m$`_&0Z{C zf;It%Rs#L)$W-`Gts8K9t5;p%qhtj}RAwY1P_VCRh*AUa63_iS_ku;1*w{fgRK84t z90Hd+Xdf?2n-D_^yb=u>#@~TbOjC?RmDoqbQ@b|^onq3?2*qSm1Z(}afd|Tia`q41 zP7Pz*-!r8cX5n!n}gCy?n1i*)DR(Zty^?Ba-j^t~Yr3;^0(5%_eX30b3JB zb?`=nwP(SAowa(z1No>%e5gJ-uK#*aRII*B3|Hs3uMRRKR>Bf-1#1q}0(4N#BL>jLbblKzct{;d!qQIxX~P+o+3*{6d(u4RGw-hb3u$GBE@{FxJ?; z#C6YE{eQWRnn0?x5ZsD2lIX(IT*w5gn*WpL3lVImMsVSp!vaW&9t!v*fqkMgPMjIn zw8&ayK&mwFzykyfB*XwP-qXGTk#gm(<^7BILRI<7zwcx?rsX!crd;X*Q_GhI9Xidu z(ZE2i0VL(W32BKr6r_}<&g4u82-cv$!hVD=RmT3k(As|CAt3shtq`2vN)290`0GCzS^1j76t8$am5GyXbvW zTo>4$L;6jQ1J4Sq{MS*9?m=D@Ggk~_1$r^1da|b&=Wl_#w?1$RYh&#utla}j7oI6- zy>v4``L8NI&17kAn(~IW;~~|qKpli`jI=0WHkTMkBTXvdyRr(nS=+BPNeDzP`FxQi zgs;UcB!y1ifLx(cZ-3RzDXuked)v_js1ik zBlmaZ4dBcelfU;_wv5cI#3!;PkS+6KiK#C0ycCDCdN;J8~ zm|$070$L&q8uu;Ag1w@wKZ2EC%O-s(wSxj58MHGwM=tV^YfvvqJnB$cK{ckGZSjK7WkY08k#~75_UWTVs%!eF>r@*71jyP6Xk5Z5!4N|(#g|4<1oC`e9MvWTUUoaz zb9@I|<2~OAl7L=(GXx&zc`j)xmFrZbwH?P|MhIB@(}ws?=*F0ZGo&FV(lzK1lY)rW zfE(-DxZyi506s(5(u87R`pY>0`+WY9!9H{|U>mnA1jFV}Db5gxKpjXAhl)3y5)U

1>0&!eH3JC_o&d6nT;Jz9~78(C~6zPJoes*#nT5 z>BVSGq@gYr&AXYEk;Hdrdci7nHC(s6TxJUsRfP{2Y3LG$Y#?UD7(N$NYr=*S#K_sa zYQIH(qYiQ?YJyIrL9Y#Umm#7b^SPPVX4|dC@f~G8&9W%j0Q?wAvkK!*DzCW-RVOUS zr$CTDO?#Fxx|x6u`Pp&W2RtU!hG@zhUy@|%xb%m;9}*Ka|`d1{MU zk$6MsP#WYSsEQP?dW#`_3xN+ys2Z$J34Cj{-+^jWKZ26Y;-e@*ztm;2^k&9n8dL+& ztH$xMH03Cu6Sbkw-DXVjVeao_nKQUQsACjI*|QA*9iCfLBy0QvI6(n@QLza?5{d;) zvXL}pzeIWouTZMySLQ`#8p_3_%94=RMUj_RJ_M8z7!Wx^(x9wYzr_NTn$&iMiySym z=RXQ^x4;>~Fk8+#>d?Z;b<;y1Ovvzy77 z!CD`Qo(L+rEm9BjV$6n#v`~-+Ryc$+g1vs^(!)0+)E@=S<)k8(_*lxl`agylbkW6c z0UgWRx7+>*g|>4+>fi6jz}gEoU>*(19ZIq$QHxC2zL7zk6Gj{pfNrq`bc-Rj*$lDG z?HDuA$WzGvVL)J!BYzDb`F)5gF-uy6g&y5ME^Z_r96ZvGG0;E%h>asmA2=G`1zYh@ z(;eTe=AQ#)JY8U+BY2>4>*wcgGNw@e6j~G6o%9`)&}$&ga@!L>JS2A){j!#CxJdI) zp;u2CoCKZa*6I-nTt~G4cjj$7z0TIVt*C!D!5JmasOz8DtJ#+ z6Cxu4oNExQ@#BTkgQ4jH!7vms4`QT`(5dETVm!=%w1x6-+LCqyc=l-ZaJrD8=^I0c zklRp@DIUcF6~>_d?7)g?gD{|KE_8L&tUW2nhKsVPRXW36vDqUBu8Rs z#f?Suq7*X>br-{ZJz@a>JXQuqrTLRHk{Choai!~Q17 zE9m^a_h{y9@p2XoXOFVPH-?u7O7b|u>5Q8Y&gBRvz=Hk(1XJK-l9<&eW1 zmxewqt%481;MlX|(ftH7sDc2*a)K6d+ zM8ISTxd>2W5}^jFlw*;UU*cM(HHhn-+fy^AR~x7UDDmsCGcnkyUb_QjYbVP1$Whw? zBFu`)4S#1(Sl5DU@cJq!p>>$4#yU}^ScO&tVr2(q-o0>Xfk?;%^ejGAkcQe7-xgZ0 z@?h3k<-Hjg3{23)c+we~yU4(~z@&qVdiOsJMF6DZ0{|om0AzCn)j8R+2%eDXc3dE3 zJ+QuB;RQ9?A!~&GZ{kh#e{Uk^K>F=p6rgXqoh&6u->$wVvJDNj!MuwPJPn5LH@2?^ zRNPG~lr6hB@}OB3j*35bAm25E6cbn)3ZU{^lm^$3wgK2NHBlKrnJjU7k*7PYmmaoK zMse@xsjo)}NoL`wl*Bs#vt82Qh$0x0kVygE5-|3$#8D#yNFlxi6`8>zM5+b`1r!L8 zuR@6YhGK`(@|8{rvhF<<9}~*;A)B#Ae#+~s2g=hh zy?}t*pzGAiubCW3slXo++YUl}u~pz-9UF=znS?PW!9525j6|i4j$!aL*sEwSM3NvP zE7t>Gn}ghR(X4gRxp2nhFa&59!Vh7rCaw$EL^Xl3M{3&N-L}ygq5ZCS4FV488ejfC zHrh*W%*0Nmi6vl|;}xEkeFAWSwVi7Hcu>BZ_Mk87a%U$~f}8{OU&y`^OrjZ+Fp3h~ z&gFpMH3Txdt5{~2+kj#kn9N{Whk}-q5x@lL5_$_|-U+o-kMupUq((;8KP zmCU3YLYd4a<66)V7+;AFia+4Y;!U=%B>63vh_207P*ej=rS z`~C9y`XPI(uv&T^4b@-)Mq&)2fQh=nB^JJ4iaEIZD>n2aSKcgZ9K)DIsUrntJJQNf zQ+>tGzd5})cW{$nw$HcD?8FTM8efHp9D0Qc5i8Th2NEHo=&^tak~}}u&Kbi!)19<_ z%gCi0>B?v|qQh=VXxipu#a6|WbUQ56WP zJ||~>UtBC2VL8G-AI837BTWielHi{~0G6Wa|6<%k}ui6A{(JbJI z64iPD8FuGStgG88Nkv^;+RJ(@F#wnO`!Z_1+BU$%(LSm*ba3O-1b;+bKIf})k0A@A z7En(jM*!aPD&cWhdpM_P!>=B}kGSyy$%7xw6s{F}aSG4pGl6h_Rn(x7$XPved2vF- zBcZKMOW$FW42qZ={Jc~_L>^wR1gT?RK_F;?r1OFl43=^aRB%9x*33YTBH7@#*2$TW zhHF5Rz;NB@7YG9((AJcOLf9o=<3z^q1|$zChJbjoMb=($K4rQ*@Nf-QzwG|8^Z?Y5 z9>NWHz{UE>p4yRg4JjpeQkTk_IQh@VXU1W`2=bq&7*9y_>gmg}P{(03q%V#_jS-{1 zRotheNl;;b4Q$ptj&PWSrR2~gBQj*6C674|5$aeRxbEH`sJl;b&nFT}wLp)7I+XaL zp?T&}a>aR7d6)cvyQpnpzHqSH8rpSG{8z8RGI)B1c~uHhUWQace}!rcSm3}55nR2N zocSG%mkBUmUKnt=9m-Z}XdH&0YRwO=96SKE5*evFFsj*?R}z@>`o zslJ|oHy>4#cPVO6h;szvRt4jxQjS2r0M;$6pQtt2qY3@vjv;PYV9SM`sLWI!C9@KQt zQNE~3?s9-uu6UFQO#NkH^Ck>gn8C7X=t+T*=B_b+X{vRl;Erwj&6C)O!<*gZQ6T=B zAw!Z0h}Rs@cBx_Rjl>Pt&?kmk&kRp`B5(*ztL*p&A2|>+A6WZKP_0pu*?YE_11VNI z7G&rnmk6;?UDI89#`I+|(C~zRS%4;8u+a;$`VFc@$8(nKJ$gkTQSMaox&Syef-~UI zQj1B1`bh*(+)YaqbQ;>7;O8me=Zj#PZ%NR}-6RyD?_J^;bi40B)3;}_>B~FtKTY2r zTognYZdxWzu>%!RFs31%1A!4}Py%e6Ds2irz9a~AEc$sm}JUQH-PgFq<)VbC=f zfk7ZY3=b45&w{z{kMwrFx@fcV7OEd1jbli2|ENGCNHwl@WR%*c?Zv(D^D+YEdUI^$ z_Ag?MfjjfhlM#Fj*BA-?LQg~E8;VQm{~GmG=R!%=K8Ves-K%7~Xjfkh6VYIXAF_W# z(}ITmk?}B?QNi&K)S+~`=rd(YFa~3wi6|D_^Z!e2V|Edtv>vPim1>KT#~Xm`NSgWy zW+d*McK#OtfFbQye$$y0DMybv)A2X>PU3kH=?3HGy#(T_@iOArHaurN^CeX@8eyIzM|4! z1!?1w>mUe>Gm)iu4o+lTs%+mL;!;{BN->Os5~zExF5bKCvR5oUF!CF)Z3u>apwXKq zp^gpvR0gQtmwF{Z?Z1I$B>2~Wv>kWn?82_0yDGxkg|a1z;0M;WT;wqWy&+%8auBdq zSq&CU!-_&-4r8Q;E8tw7ok7s%ttk}zrMeoMBwC9N19gh4FJ7VwQds|O{JQ||5P-BX zQqAK~c(LI-RE=#_Fw#iq4^#mdvhA>oK@$*LVcWHA5goFh05PBLI{D|(KODvK2uzC9 zvpn@dGd0CsG_ZMidLSP_t{NIayUW;n7Xb!@KZ{I&!4Zrpd;en!G!Rgv(Ao(A`xJw@ zb9Z6lPpV_(%mWnRxO8e^=)QGe#f;z@0D!7OKshEtxvZKDXfNoRvM4r2ZBpXp5 z8x!)=2yms!Rg(3nK~mD7`AhZGFWMQY5Xnz0|HaABAx*C2B5Rx+|@AJ?5am*rg#)kWc9;<;%Z<6y@p2g$(?vNRq zw*)&+-wQgxag2({*^OsW6O(|P%7QhvJ#wNV7_cFRhn2vS%#=^P>7HU!-n zeI`O3i32g^eXYq*ArahoT?^|` zV#C}W?q|J?e75p;c0B8)umbpO%iGT}DYXP~YO-bn=Xb8;uL- z|IyKGh6ttmn;bB&N>U=b%o1zlWV89GBX;mKOaeXF55h=U*P%IWB@ki&pRE{ z>}ibcB53^w-SU&d+}_mjKevpH+Rrr$&m_*_xZ()GLB<=dk+d@|SyONiIgG^af<5ZR zXiwHU`)62**v4cs)}6lg$t)56QXi0E_0lG$-!p8X{cp+%ODU-F(4*FylX42WAcnNW zO=@nkO-o(#^TO;6kBx2QCejNMb!&9<{6!k1ytF5Ahjh^=ztwE}6{e26uJx#y@+d7= z7FV*B;itV2UdbG(Hp2dpT3`_4X&$E)EmxIQd~-~lqu+A;q43r^R(reaqYq4=%m;sk zpcLbKfbY$P!V`Dp&?l`or}6yZ2h+rYi?xMaZV;Gd4@aN8qn+}w&b8|dxorIb_i!%F z@G<;FotbB6uV|A7M>+L2Lxo5f%2UHKQry-T60st-0Xa1PY-}+bTMX-ej&BLrzdQ#& zeTe$A?+$_a9P-x>N&WufhU(0qV(sR#)syZEJRg$Qgs%KhV5G5`9u+%%qU?MXe?9F> zus@U0Tu2o;hgZ>;HI)-Pum3=i?9Iz6tYy~zJVw0TKQ}T$R@aP?Q>&38MSX3&QfXXs zW%BUt5@YzLF&jt{j^zWA+y>z5al-!PQU^A@881A;(^1V9j%27PZM4Z5%8EL4YHpVE zchlZe9A7~k7~{UyPKuQ6Bj39&x;?_S)cj)FB|Ab_a40iNBWm^gg7sSO+3<0;j;yg< z{T0PuSBv~bZ3($BCpA2v$mN_*(u9WZH|27PXteB=CT&k(7Q&(HlKK@>%M5t;li{=1 z1P-8U3tXsXWONK}jYChBjP7;*i4=FTSSjwkMp9DPyEwO0;kfR5_p zPlU;-Rg<9QiRTx0PIQc;0h2|b(g#fbNR&Q+2o%9RMFd(9Yj@6Irwc>m7mGx3!r{y$ z7FTIiQ65`#R?5J3IG+R7A3&*sG$L?F--%Y7wlV$mZTqT&H=<{Y6pjNg? zj^6dRn2$X0S3rDg4LsxW=)**nMh{#V*1o5*8tjRrKWv8fG0~_Qhq3M*iBRzDYG!{39v2MBF>9=)fO^F#RR3D|MJGCckSv=T@v_4!ic81+4B*J+Wh?|>r&>)Xq0 z3AfDl;2wi*>@j43DZ1?JI1A%QVDI$dkwje+M~?4Zf2FkLHtII5o5-{4R4Z8q1WFuO z4sYu@`=D6c&1pGd|G?97S5My`!WOF*l~j94jH{3sMQ~Y|7Habr^nnV%j9V+FhL?B4 zVUP}>!=#q!E-q)&kFk+B7T$_uDzc;m7V(&{whk-`>!DSI8Pk2if|H70Fp!O)flWG| zc0@W1ANj%aPHPFaUf#RW4uBg-Nj$R+e%NXvo&37EiPpg=e3NjHlc__)nmWwu{MOuZwJSeA+`V$0r1*Z z$0=quW zN-xAckc_3yeKiTRSVraHa2$j6A&JGxD2~__aXg6{0juu7f)W;ZcSRdq=434|Wlu)XG4Wv+$ayb|HwB;yI@0_UFQz8GXKvlEc5B-M-h0zyp|KE<{ zu%o3^Z13ESUXGCJ=j01{#{P_-?*bwE;;9K79J$zRaamHLQbxi1)yEz*p4sD!!mk%2uNN0c2Tas7HDMIC*B}Hf= z_@?&-s&iBISm&foovfPMowQ`)RSAr>1Ub$oSl!+G4wv##xnkKH9C9@YFjn%D88~DU zRhu0>H&b4FhFebMI%Dm1ba!rp%C*5OYq_GHIgrXI~bF82fX(+Rx#k(C~@*>l2~xq7IQ$QfuC?ZInv5F)`0a zi+WOM%v(SMF4ZKBQ+w^gxPyA^Z?h&e6~9$bhHPjM2C*g}u*rb7o%%k4-RIutFhj`XOuS~Tbm zXZAK~b0+qtY?a>krC8R+5D)2_+h2>*cL++iC#a7|lG)CEr|$1pn|ftwA(KFQanNRF zMIFl_S}ys=DAe??5Y#=f)Xl_VfPGEpAEk~Pk_YRPgc7^^iGQZCXvX06l+ z|0lMtmA{*_GBeiZ<2L&i8aUK!;F5-aIZxKu@Dhjjkli@qvGYbZE|sHbAF z#Lqjy&}T4O(|}ViyrPILD?X428Hlpw1DlOENt83-t<2*zx{xTRezCg&eXwh5+;Cch zcVPPu$SixA=gAxQ+48+K|Jr`LNcWe!;HRW<+ny$QA@G{-aS4ZGp(L;YK0<>_XsyWh zcU}L5tSqM}67Fq6HfcIA>{bkIl$*Y@w(oa(g6=98OXet26Cb5*<oK}Q zmeElb=Z|lQ{xzU=hZgZ>%3ZKIY5bMnYvTu3A@Q8z8D;(@iD8Y0XBzKTi<&> zj|(j%z7mTg_Af3=D1B{L{VCa8dQ}A!ALbY9yV&0#<*3x%u1Kv@gnYU=Vd-gPz4w1w zf`q_zs8H)vup)t!Q|!;Kw{QsMtKaCU@cGVD%J&(CA5dOsf}!1BAB+e^Wv{H<6+tO$ zr?LXwoxag$j-Wz?xnN7_jX@6hYJ6*u(y1=xrOTS_RPqPNvwCM%-zDFPBfIPcqr5Ve|+1v!!Db8Z!L;+M6?tl z$Fh=2NI7J4sGK@%Dddn*TQDMe_jSDv&)4(ydR=C|)Bh~|z~h#*b4;cDaL>@qoY_|?YGIGlIcD=r z>eY7IK374ne3ue@dd5{h&#N$NrE?bzc9~oy7NeNe0i%mdsN~Te<2$NF2576odl<@3 zc`uKiVebxQHgm;KKEynZCf#J5c!LMR5a!n=kh@bp*)V$=gOc5a z*_-@+);oQ)?TZ zQ?r@VKO=nT<9CZ@h7Z2lvP-%iUqxv`(`xJ?z|_qTj&5*fYqXVzZXtx&AG@q$_lL`B7(&{5YQvn@L=1La8H~xdpWTsx7C7uRd!949<5_aP#^dtP&G;O> zwUo5BJ!Kaq&zLwSJ7L-W)m>{q^GZn3)DByPPiD@8N4K14zP`#=6hfqZaN=_ctqXdp z;UUprkP8l}I60U|k`&7K$%R)^+$xCzj@B&j*wbT*ucDwmA_{Gf;htvl?5;dS1xjNR z2St<~ZKJor<2bP^gLR3kCBCF)L2qI=S+0lIc90+eI=Y23@4B|^Zoc>kQ%N-|f0(Ew z%-5iWN2>ChBh2o~bO|aWJLuSH@h-@&eLN(^M9VUz!8gVBB)Lu9-|q|Ky5YzFPI<8?pLajBF^M;)g}Vf5Ls;}J0H<-%gNVNA00cg=g7 zws?@RV+T~mn5c{vjKT=(xuVY8>oC4SK8{ctA_X79%E&&8&{h>*N%W1vyx{=vnql?w z(pg-1{(gILPaCzQ&i>F=0Z~X6e*Lp>V@?}jlK)>jI=SMYQGlR;4M*VuM<@sBRLmM* zgdaP6%S5ss-UaXO)w|Am7equ`+gMG-qsf_ADAY^JUiaJNLN}jq`(zUEN&ZvY`O~!C z1>wdQVGwWkb7i2YMBtC!CNyTZF<5)6iIHXRh-ZPM#QYu%C%T2xLTm^B0=|{V@ZG(x zYpC^ZjHmQA4SH*6d?asJ`n!TA2Atgp0XS1F4JtH zhABMpc`~t6CfR;-S}`%FH+M<;K(hQNHi9rps5ouTdF=+5cGs!6q2pPV>(wV{nu8A` zoc~TFNT@8wRdGmsm}2PR%bZs3JP%U?cOV{`b9y6ZUMA&@w{b8GV{+pzD;?Bl^42`eX8MKDR%Bo-@p~%TW6$l{vz9r{lYQuV|+;d878{*us&e zjU<>Vq5Gx)RjjTrqCXIhGzl%+Z=AzvB`8iI4s2Hmv*g|`$&bOtY|lPG{MlZ7=TG9G zNb*fhwIZ!~BuB-_T=$W&d1AxSyFT_w0U_&%UH+wEkh`hn*{UD(QdX$!hfU(emb&rQ z4axM4BKuT|1L$%~-82&y8{$|Ch=9?(%^(K$s;ZEwEt+?jutbk?&}4z!(^pY!ieoBO z|DRDEG4)F)Bn}~4O*+UR&V-x^C7$;y?ZD;NO=~^owFlNqE@4-DiCrCYP+ZG-@NC?& z-C@Kl6^Bqn3umN|zgM|0S zM#+<0qtR}&|9e@OEcck=qDpDR_~(k};S$EbnX>lI(orCEJx;G1FgC|oy`47riut`` zx?r?q;QyliL(G|a9tu@^B{w69>5kgd?8DfWiQp8gapkL6Wdch3Xi>qYWDoZ;d^4%6 z+#X2U97x)Pvclsw=eHNjVD}F(BMw7Hya)57vn9K?#b#2%?1JCg!tQ!RuJa%c@*`*^QnqJiI!p5s9rU6>^KB1;gm zoMyb|_xRwevPpt}Dv9>AbW~1H;~4<_Eyn5W%!^s``c?2v|HPT(xRNhEhfQYn8imfr zYCeBD_LcWfv^f#j#}5l0sL8)<#&RPcxEghn@9wc3_)r%ve2@|e$}i;lOGYo$B$)(| z1nR30CC&_FEl>aI6OXBT>|I(P{1aCuqGrvZpM%Sy$CQ`W5$o!z)~Y}(zhK!CcytMozBWDg3sy!U3nEdowWNUYk!NlHLCdcy)cVrLbx20%&dL)e&6dD_p?WnNpD{&1!N)#;kz#G7p-t z2AZH(+@M>J4an9Mh)gkW4jcZgx#vf(HzHFxuJKP}7t9knV#n~h3RK32?23y(XAlHNdM%J(MvM*B6dIOc`K`OJk-NvH9O3+R_*JyTShb#?L}SpN^D zCyxFHMS?44_8BiNN%Xy_UDYwb)=Zi)rYwtO?kc0Um1g{&+p`py5n!bj-!E~96pSjs zFb+f?MZzN69}W3G3qE@&KYN6$*bDLgA#^Th#?QnZf#mEpu3AFek){uJ`ok>r#zf75 zAds!Lz*cWRh2eRdfm{wYCrNrGB}$o(tTE^bo7uI&>p%tN4oey*VMuy4LZyTD7_4$t zZC&UQQgjc616L=}8hQP&`&u-Fk)67`_rUupuWO}kStJWkKoZgyED8xkPgF3hHYSx6 z*K%b@P9Ta^K*UozIyTsc^Dqz^Y-11rk8U#}QH$o?q)a`!%OE5Y0Ph-(+JHHY8p(G1 z3HUNw#5UZa!L&{2gUWtQJVV}pHi#$G$#31*wbi5C0i^AG&X=IsekfGzqt;4tInQ@( za=;aZcr+0azVF1=i`r4BSDYTCEzlyD0@qAxG{2oksDEX*%>B6eP#p(UvqHS1S`N89 zk?%|oNLGj|XxKc7K9TE(HNLoGEnBZaw_66;^sl=U1H0+TV5!X~#^CnOmIFAA=wa~Z zyr93H_>y+?Nx+_A}0xpn2Vk#s*hJU20_%us)l#WhQ8+Z?&=AxvPtntvd4` zW5s`9&Csg+O-cLNOB=~g#{kBnQD^Bxco|!tpAlC_um_E84Cj$_Hj^?Grjm*VPor2aatv#L|Ua&{1Fp_}XVHGDn?iV4c>HzN9w2 zmuT+JA_V0dFXU)wDilD<)`;jcPU|Bk7V+6a&X>`kMcMFW3Y;O7Jbe7_TTeKcK&x8x z%s|XQa!CwA4~|Xz1{(R>UfsIX8oh4mrBcg;$MXS1SAx;c7ji;>Rd@CXkWIaD71?W5 z=$s;6G`8NEYN>frt*=Ak*}p~%!S0prnq3pDQ$rc9@1@^2YL<s}(vZF66KlBEXQlw*y;NOH4c=5Odbv-Tk(NYkY3(!h;ue)SLnra&Bg(|@j3_g>##F5havowcNxX4c z@I?cOH)LVa5rr+|e0iC&WZv-8rV>Am@+yQtV;6!~a=uKGrZ8B+s-C{@gT6>2wi-(sR)#sTgM|#pTw&Si)tn(WmgEb>JMdzJj(p<>!VBhM1@F>xwHNV? zQE1zJpSO-3#q8G(WZ>ONz@7+PUcPd`;fJ=Q(CI7mUc9@Pw_7e5MbTfdutAw(XS3;h zQD{3J4huVSTewP5ox?(*Q{463>onipL3IXS>|!d^$83;iqhR~Ah+1fsHPBdkhY>2F zY=Ih1`1czb`U1Mt3$ykk(mqjGitL(T0d!^;s&j^}QQ8jWUlRX=Dh{3cGMQ+5 z#ZKhPZgD>}%t;n_B}3ag?CsIR2aEe{%!bgd6ySnwX9w%Ry#)mQRU;$EH$EpMJNVS= z&G*dqO36~wsamb?QbcA-yO?x)$fLaVLOy`alW=df*t7C7;c>5vU6O}g30zx*vm&m7 zyLq1_z+sU8n(sm(pPJ-l4MOZVP)|?OFF01>{|>&tCVg^nl;VUmJbD=9`y`K=>}Hx= zArZiC5dOUv^Mw2dWN_C_;!zwKrs;yu!OYx5h{s=d^Zh*&@HR-dHAf*=r_mg|+PB~n zqGCb|QWEj5Wk*ZPmvai6^f->ccw{I$GQRmO;2|;>&B2R?VBZKWZo6?8Sn!hXKM)Gt z_6c?SMvmhREOsG#`*XwI&5X2x%IE>^%!uIyIRUS>h(B+UpWWCpu}PiSo1)#!&4BxD zu?+ut?GMKeF=YVC7uvqrV2xwAoDT-o)y-%^f-ZeQKWxb2!3Q+?{glPL@Q0FW30mu~ zinS1;9)7n{6KPwM?X#PM$HF1MQRpSM8h5)2@K>AuG2jm+9LKQ7>oHBf9fN9Cj$Q&I z>P?xM?>1=9>&P>Y0gKdd#Yy1@(*pn=Y!j?hv;#k0@WBvq^Z`p$NNv3d<~}Ti=uGJTOfW;I1aIrY%}=W zEATsXEEV-6p=N3bI2DAfp+vz;$Fr`HB4ipGWzC>;08i z5biEIJg%1W)wtWzCg}YVvt8MKJc`DN*V;VpwiDr9s*+Z6uGNcr*xvq11w3Ity*j0L z4@zQM6g)~kKU+w>`ygt_$y89?SGDUfvyo^G=AAAV{{A349kpkI;m;*2U~_$X1^AJ( zsCrP;T21c>eUO)T_6I$8hHQ%9U<$Og4dtGVp3v5((M7y8KE?m8LU>e*@CenCMP8_( z{}bAJUDuiPh=d{xKO0lK7OBSP-&6v=}6go*POpA1W?q z65m`MFoSe(D&QuuLi(f~e3dU;&}3|Z+|U|GaZb)2 z8A<^07X_a`lApcWmw6d6*AkrmqP2^{Q>%&=a&TY>!95-gNEF@vOGd0kAnsQrnoIXw zxTvqPY6_s>dT&6CVjpEo%xUt=NTeOR=`|n3O7@C~-pVULA7ig}RHH49gbzfhOUZ6@ zj>RWE7`$8m`snqVI(t8;|E#2E_K8+(`3$WX&- z|2s?}rM;R|RgV+X9O#F-8FpTsxdgJeu!W{Z5k&FHeh^Q*Nlel7XLywaD)s)AK%21j zjmL=;JwI2H$J=)LJ>Mhyk=Y|OQWC=(`7XySU z4MGK&uBzr%@JW7#0U$r<9di5~ks9Eyqtp%nKkA{ZqFI*Gnj>ZPqunG_LRkf{G_`ep zx3BbCc!=Wiq)%P|6QV0I_p+R?BZ;|BLvV|egC&;;Zb@UWDT>WN-B6J5$hAyb*7As- zCXbT}4e+SZg11Cq-;Wm0`DGo!q#@UJk7vYmUq1oj`vyl{a4R`a0M?KD~oPj;G-hi%i z{1idQ;HuN0jHoW8d+nkb?18z8j>mf_NP`m`BvsqWsM;RuR+GnTGly4c-mv6$AdWsx z;^@^SVI?3;A|{V-rZNkuq_dfthH=z#vk9OG=`<{B93{maSzL)Y9JbZbFyeB1c%v`qV@Ka8w=ViAho|7!OV=rfm~YNjfnf3Zt-oPg3(-ibKZ z@VFH?b75pT^dI30V$RuxsrX=MyvIhOd@^VPKQ1RRPN9(?5l}?sRu?=ID;XrDDS}{K z14~GQV4#SiEUJRFHji}^3!JI^=EXzFyB>SGhi9oGejMq>)^HB4uOo@7 zH}Yn3TuK`|6+gY=Dd7O(s4+?;PW0;#@Ld+Xg!6SQ(T6jyz9*}&4&qc@jm2Zybq zeD*3-Tq!ziXLhY5Y)J18X|={S<`Vc;Qrhu;R^fRF8^v~7hJHbuYXJWo&0sT-q5-n^ z3zW*LTdfhfT{!;{EvvGgnsb% z*^bbMpye9TI>^YLV~K9$Jh+J7Fyj9R%~2gj-3rEw*r|kIIf$Q=4>F?&?ltR|_XG3SVnC!*i?$n3{y z=6zwLFzo2SiEFOmBfF8pHK&m^Jan_LbWL(c#^h3>nA(Pf53mODVk)T&lV^|Hz|!9Q zd+c~$*k)LpNwz!h>T5v`R7yzZM_|C&uqeo2%$wX204=JiXYSeTyDNjoW6_!8Z zCD$89ssnpt>scBPL?I~8rA);aQd40*YPu79A-WQvc;j>QlELS!j#?Bto0tOsD!R;P zG`X4B%9P=krjk+bC_AnGFo~rg!>td}O*l33J$;@y-coKZbKT(j9074OFLC4snKiI| z#jXX+dJF7MmoZI_B-D!mB8`{Uh<*b7bw?L=xkeO1U`^28WZy_Cjq(i$E=q`A0*sgv z^GMhdLKXpTIlvXx5Leh~FT-CZ$P7^4Op~*~G^28z*h_0gM1gXOQGv0BS)WV2b|-eM zU3n2&6JtpL?8H|DaND-8vu1KBu*Ktpy;^1^OowOzum?eugyEW7@IAg5PRbIMJA~>z zb`uf*Bhk7?P>O3Hhp0gcbYG%CH*p7Y#7iByx&zxw5j0N8Z)J|yx$1_yksdM?0#5_ z1TaCKF-QQfV@9n9t?g~apIn-NLH4{D(Djscy^e0E1L%fAdC;k{`Z3dgpoX_hp0NyL zplTDJD{*R+kS^j3y!56eME%RY=dv_vMIorZ1eebm_a+$PCP2^(fS{2~R5%sbFK6Ol zPSSaoWWph?Fo|0ohzQ^Si2w>*FG$pcJ@5Wk24vm7Gw!jL|7mh50TnIr@0R39Owm7C zCf5EfcU3vD)aO#VIp9nCZ7`~N$ds2Ez^h1Ze#eefU+u~j|CFf(c0&R^4yqUiqi+!8|0 z8{G>bfVVZYI`e&N{=56%S#4iDc{&*H<44+RJ$|OeP-m4A4B))c0kuE-G{)}6JR@Qs z6S)RyAeQ}l<}>nrNGz8SqK63MEC}N+r25wN=QR32vUYJ$dJ4fm1ZsBzW?m0=zL z^(#H`ENs4&Zgpm6?xRD+^cZ;p-lZk^c7Pkz1a9w|G$rDbt{<>0VZLs3T|Mb8XuxkObdnQ^o|%ji}1@&u&#z;x*my6OACuTo|z25GT~G;QkDhM{;zW{ zEzuW9`X?az9*;=HR{#v`ImA&*C@M3C_w%d3x~W+Y$Z|3L6KnL^@Xwj#=MtX=<1HGk zCZ_D}DWEN4L#bd`meUAZ7MG;t)^{+}TW1+FbvXcb4JZP+zA%7d!l@c05dpB3mQ=C{eUyceXm3b#otky+q&qPqY*Lab zu@t`Ye@?pBQ40ElI{c&z{3Mkzz>IrLA)Ya{7j$0tuAF_qX2mUr)mSww(p6rpXq2yx zLoP20W+Cvl(p7Q0AyEz#@L8Z-?j_P^VI;!P#L+=7(E*1edfre0D{{re&L8u#L*!gd z(15zp^iq=!SBVp#!wG5wN&NQxv5z@mq$-Fv8Wr>U6L+Pr7f#talRb_6v^8 zd2QJzf4+RRG=T9>m??T!?%%zKA3G1S9+MueUIxJ&Zt_NErkXfSNyVnT^@nq4sG%e; zs4kTraOLf(?2xRJAu}Qc-U!{c+DMn4qJ9Y?f9~{FPjNn{aX#gNrnd>)n-;yJ5=#q= z@WWay`amV_eR42#K1T*2A=~!NDZ>0$6UX2YbR5o%1UH>yXSg$KMLI|ka-F7kt*oXH z_=8aY_B3s{0u%-pW)f?EQ%9YdO2RLBYt!9`&Eyd$XJ*;m&Um6nN>eUP3(pbrH(Ka- zh5+d692L^!;q0yBoz;QiNVvJ)5be+FY1)W24{@8Ek&8Vx5F(i+oONY`%P)7qtWY}M zvX(f5)1(yNIIXnL!b1)JwhevSi-@%$Dv>!X-E#M~(F9t@vu*orua77RY&J@EPVda7 z8}j&O;=h$X#+4GfzlitG>ue;TchB`8qojhdN6haT98-+z-M-5eD4Le*cdabCcD zW+Aa&*$YVh#eQUGWq>PwSo@-;-mjC=DbgXKq?J^JGMBsC-p*ypqq!n8^Rz+5_V^!G zN(Cd{rv$xk_|hcV^8)Yl6sIpWBfpc{q6M6E{--s@5nlDDlp~K1tq#fz`6#-dFW10R z)_bI}zwSRbFWRs!mh`m?3+adbSJKK?&<>>+agX>1E#P#|RgrZ=EpUb`XUyZ#=q>yY z$GEdk#N$H&A7c;h{PuHtIo&xVZ@g6Xllb?ckS;IUR)7E74>hySZV6cMN#ge;hy74#<;}nCVLW!SUZe+z@_M8u-z)Vv^huuQjU3 zYO5uGapZ5}=qvjb#I|m82)*EJ^eNlzJ$Z2<{?MZ3L}sEv%_K^`{_KLf@`pKrUvQ_! zN1m)-Z${gi&%W^Tb`EWOtO7?j`pxPE2WXQo27WppnXjwtUVOaet<1SJ4f(qIGwCf8 zIxlpiowIf_WVkh-6|%X^`vL)xKTmRhEn7lkZIW^J=0TrFB96F@Q(%jJqSoq3Z%~SqICe9x*y0>TPcC)RO zLte)G>(o|m6Rv-5gN^y$D{7mBA5T48fAn|py4tKWWU7n6Jc;hRGZ^bPI} zn3y=MXNp`-;!XUEmf?bqG!a|1DJr4)Eqm55S+=6GFUNa5bse?# zCw$P$a$y)o=dm9Re~xRpp&J?r>!d=pUm{fF&MKG8OE;#e%a=y|=#X4L1rf}rU-F+3 z27w9v89Vy#RRwKd=SfS$>*DxN(SPSImwUQx{MPZF=a&wd(T>NIJ*J&yx}Dk>eK&b! zx}3#Z0qy(o4^XK;_VF+F*Icf4WI7~UrTd-IEy9nt5orvqN=#^b?d5&l_0iJVyX==9 zrdI5KuL`L#N9kChtDeg2U5;9u{(_a?^w$*lTzCC*>D0}y=Ka&4dl8b+82sM3YU$T3 zA1|?!fna^YUQFz0*{_&bv%|^xr5iiVDo&Wn-kRbq;Cud-Vf(wCmMa!vRf0OTB-^!; zsVjMEugIxY>welHyePf;9xAoNU#vgn^$j0yj&}WH>C}*?naY}swJK)%I4=Cn-*)Yx zXFh+isJ>fuJiqE6?c#@TF2`y3i-U}{$IY;t7y0{oTVI`cDEuG}8oGj~R!*gr?lpT$ zuUM?j3)_lLp@ZVlifWs0Qy|*6;)_@d8l#qnWvpGx$??mOUgnH{x!A~Myz>IJ#Ws>H z7I(|g`zbAcL}YPXKvQjoJZ!1BX!^E2(8pfik4Wlu*9J2Bjgc_6&vXzbr-hiD#`5s8 z7d0_+2aG>zW+p^B6woRIcV^0|WZd*$9yVMs)O3IRCI=e$$X?f!a9LJMu3M z)Lg#B_FpNP8GAu%)N+XCz!a?P$zb+^$5G3tMr3BZ`$+2we39iJxLPH0xLo^-L26u1 zd&N~b3p2L0MNTmhPLY>)q3h$NPwX9+o}(n7&~>w9mxIc7I-c>~tWxvLU9s*yy@P3E zbabI_nY-fS`q3R$4i({Dfzlf^l@0G7f*V?B(d6m>i3~5 zh40xvnMFDql{p{JSsH%Jyo#Z8jNx%gjWfeSrMUO(ii5uv7?sKnc!qRr)x(e9)Y%|r z^wMNY1Gmt-$}=?fBzY({*N?KduEJp7A4!>Qw9u#!u#y^;oT=veY zOdHzL#dE$xTc?+m$oDkR&Wh!SZD^ch@g&W~EJ(Ng(mZYVX5oX!fps-9ZO+nrzq4+AswBfT8~9!lQ!9%g1^_{o; zU>K1AO=U;^m=Du4?%+-T*%Q@^2P3Z0Hx%hujXhyGRGed`eja{kan9QDBWB6#yEF|R zN1gd0E3|a@^YBvHLC=s|%H5g?&f~o*BZWHlmHQ*wHgl}cndvpt`Gx=UW4BYJm&=Em zHmhJky~6mj-?@J^aqV#C+Jh19r^>4RXNGIfdiPkbfSc{%wV6|N&P)O7=-xT&9VL|m z=FV43!z%@A|DCq!pI6Q?H$;~Q={O$0D#+WclHPxp`M<@JPSKjdSESGnroihs>_gXjeo%`1l*h(MApmR(j;_pKrFB&|` z=~sBh7rQIA5+Q}N&&aWI%@j}~{9|B&Nl$ZdvHjWwO(&SnT-v%oeryz5t63CX(qD7G zEI~WD|0w76n&6X6dGpH6NlOMSHhl+ZtJNZke%)_z>Rqr|t@t^tQlj(Bo+4iWS_42Gd|W7awwO zj_UKWVt+k;EyuQ_%BEjEW%gEl>r{%@1^j%Lrf77z*u34NCX%(pNmX9r_S`YnuZ zvA!C=3nN%*qv|7n$iIfBeF2hmobGl-u*j`B>g8{$noSVHQ?52GhnUXov~?4#bUE#f z(QmxGH*$(jnkgi;#E#$2NV5$JY1_!LK53>GceEZ$wQA&i-U}0zcZW~)*T|#}kabs< zJ0pEZrQd28{9N3Vx6Q-y%Jsbxig zPog7N+GR+0wk?D0wcQw%5Nz!*>g(=n|A29@*`>fUzK)*orM4Q$cnq z))Un_*Asdf@k`yCws02LzH4D$WIBHnzRs(RjWrMZC38V|sp>muBSft#OAz9{MWyCw z*~H{^TGz`z3a3X;^{c#dmHc$+%R#wt?g!eHnNYUtf{raJvbTtKwTajlVFFJ9Ys$Ra z1x?JAc{f@Se&!k`qCaPL{|8#V=FE2r9~WAk!}@>xJ~))=TsOYHs?6SIY3V@C{mu_* z+FY@F^Z0|y7fjq*qkeSV-Xf7Fy$qKm!{|2`Aa12~#BhvP$}81ct97Xxw1{?R%Gq#R z{;JB6yOVw_nF!admMVLF!GMKP=a?mzHdruZl2o-oIki75@s7;L8;8^7KIml(ZDQ_? z2+>qC-gW$nAa5O1hvB)@y-N2A*oc`2-tWtNJLGW7JhQJ#HwB9qr|v(czoc|SbgFG& z(Ae=5xyWyQO)B>rSO@kfHr9_8#&3fY=vcp6oOPSB=}BGi5XrpYIwA28ZvIn&ez#|j zrP%(`Ab?FBe3Ay&tmACEin=_c&s_?O8@R&qi~($F`x?uSzBV5O`?Ym5wk2|iUHx&Z zrH{nuk{hOtZakeD46NgN!RWG9Rk$$A%OEaHvmqVWU|txxxoEuMP5&$UpI28KDK?78 z%zbo^Cv^hJKVNk}gCB8iXlJS0uc>J^`3>RPoP91ZU7Ga_uiZf(OD4M4s>o7`+9*=> zPW@$1{kK@lSigt2?5h}=hyCx+{Jfzlb}241TjesmG{b@GgVEbr}!Vo|dyfSafj zR^tno(>L6q4foqPNiMGqH5Cq*(FC!4Sdy!njn9}_8kLx$C$S_qG+Ng}M^2aNqzK5@ zX8}dHr3kXzTF53B3Y&!Z_Lp9TFV<2^g<`@+VKtEuNB9s_y8M5pG(82%^rrH|eAlYf zNQq^@4Q$CI($KZ52r3%llA&)~`8>4rHLsj$Vbn`r`Bp68^l%U8m?e&bgvl{m)S zN%E={=puEkP~aHXkjp_o8o%pOeB)TPZagt68vX&aPa&i27pMOcr$Oj%`{Du65ZkjSto&h`ga(@Zs8MrkbaIPm`xcC)`c)lj`2*aAUzLh6L$I5+YV|o#XVm`pk6km5BIP|Et@F| zMn^A2T%V&_J8!m_TFe)!mCvx#m&r~q;tP+d1d2=yC68Xds~Z9NG9B!!o_jTc`N?S;~xHQhLkImSF$9c%QhiP++ zbFuF@LlrK+{>23>{UfsUB1Gt>&aaQkE7pjPN6JOocD#Rnp>ecYHxetP;L(az4j60<#Fni*{umJNZIovdkE}hB@~AHN}cv{)a5o7vr_|mRg+OHxZv`@486Yw+fwi|XZo5Np_0kwg?1*dK=| zjvFu|E@pjtJ_`ubo)5&a-cj73#rF)!TUq!5F28?@^~a=PkuCZHZoZBkU>#j(7rer; zZq`jV<<2$be)|ZPO_Fogbu!ukolK3l7WO{BbEqtxXR(PaQu|3q!%Bvns67xKx3S>t zxw2Hz*XeHTs2CNaC5!lDyWwK)T+-s#eEOn?vKYpWC93q>GFyH%H+wIry62xCr*po$ z&kLHT^3h{QvyaKntq5Gd5cY0zcvZ0*+7wg*54_pzeZr=!c!Z~ja-!rX?{6;4Yfma( zrm`v8!>22dx??lXQF)g5d4ZboL`Xtt-Iy{_e1` z_EMmX9wj1d>s}M%TYzpzJ;Qyu5vLYOk>lgq0EhIzJx$m#RTcuzF2YerTDieTxD!7ow@-f&x8aG!$!s^=jbs6*)h98t7&X-i;x{ z=`EAbsi>>eO^L`kLE~$fL{LAPxSUo2u;aMA4yRddr3{~Awtx!a}78 z4eKOm%r};@WnF6w>VnnlqR{=`JvA9mY=)y%IUI|YHv}zKa41$TvN%g@hA1FVjXN3N zKS?4qjml-5L>Q;Ds@4K7fNPoSWkCZml17DiG#}xHZj#_o5-h;eD(8L@+$GYi=p;}S zzkj$|93RW`46#W8U#Nffn)IhiK?PCvwb@aX{k2e;IIFySVwtRGA45CAYRwkUBOdCE z1%C|c8g-U+Ct5IhHt$9rO^l}v(Ul}Oi z8kd2sa^I5|C9hkDZOqr8^Xew&RVM&!I#g6j<#xH9c<0#djB1+HgXi?t-$mu=y#B_Wlx(t-ubExYdgjVXj5;cJkX&|d$WgT^M(KK{ z#d*MB6GM)KgP)58&8-a;?fx;iU)XAWOUCNmTLr&%Way~ z9ZD+;o5+NbiRT+9^DWvzZK z+r&*2V7<;BX`dOf;i7?ao0Is*WQ1c`M$GwF)2fRHUN+&goR1MUCre{onXgNL+E9Zn zwu)`5>2fyhug`1gX3bSHTmqQip_l-s z2&i8@r}_UpTQBd6HPXu(n*>P|c-=s|1@Q?epsgez(Q$ljEw&{XUz?bS6v2-O9~^v{ z$rP`$j?=jgaBje!-zit|4qOBti>bu{++;h zYdJSbOmGSS+&5??5MZGLsQe5K=fp2NXYDJ+#4YhQ`Fcm5EZ>++TN6!y^5|{hSauAB zmtCj5S8w4SFL5<**~PqLPkH#uZpnhCT@Wc57kgNVg^w-8EwXU3-npk;ncbZETI^sS zU}#O{?$xd809U)EKfT=Aml>bXZL+-u-9O}2LrqD;=x>RXSPfErPH<`Z3w6#-brs|x zgG#x^y2%oi5gyy}c(u5N7&q_S47f4}!0BNf<{fiHF_(R}2WjJ8?6KX+g}kF25c%If#ZT9Ov;|zeb07quG!Ox9jS)JaLY_CcMj?iQ&)(7j?6S=o8!x(|P zg>b=~IyJ$}Qgc|kHU6Hof`hOTZ_jDf2Ky|8;OlENpfZvekYmJYGT=1#WHvigL}!}Q zd@Y~|%B|7EJ-8XxCZ}TeMQ}+40CX*~65|A9W%Sy`fA&}w9L{A{x*ylmz;9o=mxjRl4eeEoFAunWP8(F-aow{Bg`V6$ajqv@IqOW{(aQpd%kUO- zeiF@>SVUMg%H&ZYEh|`q6_sCM^xBUG8>bH&ms2b@FcXWe(h{nG2{LbxxO_ei9JL~Pa3=P|b|z(nI&Y|_`USje1tpEl zX#}m{JjAAe9sZ4$#HmVfk5+Tvf3=(RGYR=C!U zWdYYcu1GgvYt;w)C`kf1-*{{hf@^B<^2=nul|}%0J^*<+ed=}3m~Q&7&jHM5+2GOV zP1u}0cUTQ^)3xmspWzdlj1*nlIL<4(2jC(YtU5t_zU z5`yQ_e5PdDV`>u4U5gqGtUE?|0UVROn7k);E@78J*Gq0bnbCCI$0$wR;GxL=XK*NV zezbp(GWFIUvc`C@`h?Dy%duJ@RRRm@rI%ke;deqiSko^B4-zS$0|cK9GG>q7^(zgTb4YHK7sOxZD0@x3Bj8!3}4J6wt)oUx3Xk;Q+iO^ zb|fyf8bmB0)n{HeHClrS=mTg0-VC3I`3|jFeZISb{X4sPEIb+ZO5;WUXA_$)^5 zc@vL%7;z`t{08aNereFE7qN)pYg;#zBD}J*j4E@Bkr~2UElG3On9Nh zu`+~s1n`e1-Km^3BjDo#&TRlbr@oo6DG|iPm+9CXzbwdIhOmg`U(Ql&5FMsaVUoaQ*wVwTKhTyHpVhNS8~MS}qti$;~^_I(s`qq>Pv&XPUK<5rz}+zQF|vp9UgplWksF(n= zZq7^~X0V9+k)0}e)3#GSB#3zFWk3lO;J|$$Xd5z1#9V|G6J_zwLvrEs^I*xz2LrrH z@1}3~#2%22I$9-Y`$+hs|1-~SW3d_W8HMq$83V=u7gWk8f~G>C8a$$7i)5Dq*R&QQ zdLi$bX5&1855mhdAzhR$AD6!ugIyymMBMA-#`1QrREPk~u_nNL|Kt~r`y%!xEc&O? zOY?8Z#>FKpBFQZMX<^Td52H!fw_%SN^v1`DQ0WaKd-$t>Q!nBGK#5WTG;-{N44HO> zU(42XB;9Yhdo{t$nZXfU?$fI;xc}E5N*qLsgw+Q-H==hrH>8$jo4kZKMPjRy%cnQG z!=7r_BAcUEv7MQaM6Lc2|EX%s5{QUn8 z_b@=tTd_%^!^||#HDYfi@?@3i_}b2$0`)to;w!%CFV=CWEJyu|4xVg(C6;1&?HYni zQv__pHk+n`yoq9#g9>NdCI&VzmmorLX=^zhgb6QlN$OrACd&-k0IiORu)e1KijBb} z4-A}2_7qCuY%M!Y=7H!{_Wq!jfF3 zx4;0OWRj#hfN~d4aRB>4XB?w18K_)10B-GSr3kx4Mjkzcbp%p_0pl6DNa3w)yP1akps6s<0JX zf{Ci7;^aK?Mv;VYAm@##KP7qDj*Tj^H>tdAfwA=7_B2lQ3CSva+?hg32{L!z)8mlB z3c^S=mWyptsEi=<&=tY%D?sj^uhHi|8yU*z+VJK0(x?bjqi-duY!K^uvp zBZ!L4obIfuOclCy=Hb^so>J0So^;0XZ%Uaab)8SEfzRs- zlJBq7L7EJNB)zd*6Y1!dy_7H-IgaahRwoPC`w0XH%phtv^RwfIDfuXUuAvtHkl z%(E~To7+z*+wapdaVRq41yxzuoJ=Ktsm+eYVWxse+#^tH zT=HPp+vl5ON%u)6tl8(qD&mfir~QuO3^;a+QPsI`{F9&Zy8;+fNu}{oY zq*5JHgJSBU$Pyg`xm$u#{ch=KVf+yxO_NedRkn>VoWZkbuS#~aZ`sE5gSQSWtD~a` zNM!=CHE&81Rc0*=*G-Z@L4MaTb0erYSbXX7zC91fzuHs&J?q&rm3Ko9&FSP_ z!%h%(hnq;58aTq8rBds0tu}3SXEj6e=00Hda^h(&WJ>oE1S;Jtl{e+H3SsQaOqhHY zCC1Tg3u#28 z;+DFNGOK>s7=ERA87FwQcu>eJK~l5}K|)qhXevOTM^9?1LqX5a7MnPI{h$T+DT%!QkO}|}@Zce`du1ZECV~BNNI6r#y}{+4eYQEU&}ySC!{>Eh%oZ~d zC=D%84tGT6oJoRd4W#YGziW1yRyS;9`UOB|hmu$LMRS?5sRwABIwTPEb;(WzFeI0# zw}A(OvXEsc5*O83+FRofS70z6ilK zd_hL0A*@b;w9t8d=J<;6yju2w@+V6$$gwy|L^F8_G553`z@F7 zJv;~{H-0#`$^B{nE2}!K(2^aJV#(xZNTIK=`S>P_m~C={`$?!VOpYwehY5BkuI7|dws6duB69TE_u)Sd86~*BTCNn9*12Vq z@B@jy0N&N^pfcw-n~xiy^mi1?K`7;e`i-D%f^+%pTjB9SSIZVH-V_;*(bX&qTglOe zynLjEYEZmng^ch6StvUr62GP*f%bt4Bd1A%qNCuX zoqSDp1_`)R-h@|W6f2;ju9Y$US#htE2JpYA)SnWCCEL^B5T~FL7W!&q&Ey$kX@B&w zg#Gs*_P>8eFpElP_G@&lhDF~4i_YDHB9ebMhZ-%UD-(N9Mq6#I?9yH|;xlTA=~#*b z6S0Jvwr|JX_s}*W_pW!0RCA=7awTn( zC1$LpEZ;lj4Q4oJj`afK1#Y|kEJ$5Wc>%ib&*0c@Wev|^Zk;?6J&IjgE7CKxz*2&Y z%`*|uDGq7y`T}Oo3K%H;{Hn3mM%8wnD#Q44mQs*%# zM*yq`Fc|$vvP)MnTXRp60JQvM;k?+hDn)OPZSjrka~NouOYr;(7V@N?$CJqosHR!M ze>>#KoIMu(O?BW&gFok33>-1B^)Yz0{=V){q#Vhf_jV-OGu!or;(elsgyv@e?q`jK z!RvcvNN9derw!SDUS5oZ*q8oxIvMQ`6=roq`gd5hAirx<4+^EXa!D^rti-V(?nRlt zsbk$lI;P3^xl~V@jju`7ey~J4lb7^XE&{DT5pGNDe>TkkLRzG|)csd@hlwSeZq%LN zW;;SD9m=H{U?$9z4$sTUSA0!= zUG-u@b<>Z?*Ig7iA@{M- z_r9K)KA-b_{r-IBe&%`Z=U%S+y586F_W9Qq54O`y?1+@?iok+eeFAIz9-BVHxv$?y zH7vxye5<6#n-q&_{3`0m6okYWAS7mY_VQ614Rocg@FV)3`TKsI4mNc;`>i!L7q?wM zptASH1B`83U9ne6YcWNb#l6zw!&5l?_Gm$d3C$XU$QU1^woh?~x1?u@c1TIIVp-3M zdU8l^BG-mN6MV|dqycLTeRsGNfnd`lJvxlCQ%2GuRcme;+n@}6x(Z=XKNg2kL$W4x zo%vlxe727>gy&xm-54>%cs}WSUOh{l(-a};As?!v&1xfW>BYJ%*-+^E zB4lGK&w|1(=4=QJFj+!sctJrToLI79Lzs63doIpAAOwgIHQ`avCBTYi_|cd=2)?AJ z5;MBD>pd{vVhX{ez*7pCLzqRZa2In@IBkpdoWDV<`|zW~U6Ng$m=LQCaM<}U4m-r^ zGe`TpCVMymHo=aB>$9j9zD^1SZLBYG>;f{4go59MP7E3hV0t;P82ZZE43tyflhRR4 z23W&dUcV(3RwKAYOYlM#z+qIw_JPTi!vqJ}pTPIjuqi+l@f*Mg3Afi7*hQK%dQ{7% z*j7^6?_d1xTQ>Qgfj!xiFIE5{+;%%;RpqdOp6*%L?mO255OJ%?ks)Rj$P>^46>@KI`95+lAVxWfl_L5rF_zpKZQ!$gpt zh&}C&d|c*~xyX7TdO;_&VQg4%{0l5*_@iV-9TP!HZtZZIz^jn$;hZ9v_ml6`y~vUD zkZrq8O&e(HIyKp7F^UHZr)FAiOh@r4GRGmYDRL~H!-mZa0E9VIRwkb6C?EX*0pWi>y8F`|fj{DQU=jjj#E; zDQ{j&;HLP94y0L5DzNQqHJxQ^lo0pzn%N^iP6KT_TvD1K<1$UG`CB{j!+#RvV|N5N z>_?>Ks@R_PC6gMQPQp!aZI%0rx|f!ZIw;L^2dud#yXTl|4%B~-ewsD)36ravW4}j3 z!>VY`hUL5kf~)g%YNHyemm)`zQiJ{6Eh%1*(mpj>&m#xGrZ(r4If5lv_oD{yIYYr$ zA%5;HvP4hv%buD^nTVZ-2at)Fs$hJY!mlnfiJXp<$hot}cwvjS$M|90TLw9Hj_aZn z$P2Z@-qV$6nbopWub0ji40wzSn@y&M*elfxkFzMz^P)7;*UJY~DmK=RtC!}#QkH2A zvP=uF1eh>sf)u|6FSVXANw9v<=QvcGSx+q3UXnI);Aq{OM`OxUTS`+ic5K_M3@US$&IDFsPf;((i&) zIL)%0L)Eb9pPoM%C01=3Xt@&Eek|apFq6UDz7g-sHjS=2jD+6te}^wx{dC0pD_hb= zZ=C7D*`+ppLLJy_Yo-uqlYAFC{tMTmwvFrJuKqBpbLhvJu~}gE5jlZ` zS=g<4XnssPku5OSd28%XDiZzenn_#GjLXfk%U_AIIU(_HzL~;Hi<0dMt@rE(Kt5~D z+>kc7>$6V$4tacT!{)f-wf=Gnp{1ip{_pmc8h9MVsu>uO9zy=7praGT7x`bT8*6F z9F(ZDPcYVLnH*A*sK_wn>Rw?Oai{9D}EvzgmG^JU?(s-L(V@t2bO*NvH`_s;{NvWm|GO0r3Lj`W zjT+EY;~JDtbz%dQ++7P6ME=ancO@Y+HU2@F=Q`(oZbA3B1F;%r7GM7uiHGF`d=x!w zOk4V?78Q;?%1}aa=nnwW!1 zxkkJ-!8k4QdvWJNu+8Y!Sob}g`|-PHy=d6BJyZ?URZ9?O%Oe)99R+)5czB(y_0k#0 z&NJA%K0)|0p5y<0g&JLtv3cV4b|bIaKDlOPpCgT2je3pP0QJ&C|MW>vS3R{?aL!k76R|Ay@@2~}8ybGUnW@A5f!Jn`=9Y1$h~ zP8zp;j5Ut#tac17))D65h3|G$nv)!W~PCtQ{2Sr+(ZPPfXU$EC0 zqCUfYX07wSodJ&@$uA7D56HInP7gpn6a@{ z&x5NDjFHm@_FH2${%rmkb7oU3TLGw&v$m2bcc!5h$$qBXv)rZN86LUW7qQ%^Kw*DE zU)oZ;SazoC6hYh~thPkZ4#RhK<bFo9=^|AuzwD=4OJC7{aA1 zQqia~jHUu5LsuG|5LTgj_LViK?nFAuI+MWH^Z2kgE;)FHK=ghMi5yp*xW+z^3j3le z{hh@qyMNr${XVM|b#|rK*eteAvL(pkYMXyf+Xyy*{pz)H;+RM!T)td^%Y)r91=py; zzug??8vR;vp;0GSZG%ru4Ay(m`W^BAc~Qf9n50S5cIDM2Io9Ux^y}IBskS`9%D!`U z1|^mWLT4)fx!0R^kALp>-Zr`hF~iB+|1;?i?41_z&d6cTv$j~*^Nc2=;Ay*Le+5&C z_ROZEbNkd5#I=Wq=|rJ#w>vJ~=^6Zo>FK_5$^IA=JPTfPmgs#K^QyN^pS2aUh;odg zuetIAn&}B%l@gL6$zFqk>OGUSOe@8wOsw|UPQDqUtnp8yy#fw}oKH7zxFqU1zV33M zb-z45C+mPQ=-3r;@>-8@aLN=ROT!F^?}uuRE|w6!~petW4+gV zkpQ(%DDp&IEC0%M@^mR}M1@eMG4@Ae7IWzy{yZ8b7x^{c4+%ab4Js&%z58~qL&~Z^onbF9^E1zo`|UMPz^!X zRCFAyZa!50Ke1GP;0E=in<-y>iak~1A5##fHla4(6R(!Np`F*2P$kR<;nqrR&r9SX z9h*R>I2ARWK6-_uxsDZ7qM+8Q153}^tzWb{Nxtp5GBKE_LWmsoGe8BcXBO`xILa5c zp`_!DOy-Ld>5E09Ix{7|P`zJQL)Xu`JGUveKOY6Ir9xA6ovmP%ah}eqEHVL?251^q zG!_5mXMoyf_4TgPQHZh2ty)gJdbmn^4zI`VCn{c=lO*5%Tp0yvm3FM#cX^_KnVSy( zbLsosW`p*1tbk^wB+z@6Q(pUX%cF`t9s$a2IXoS6eST5MXnZj$oprzcm|xqwQ=Km- z9vvm$*^TXrb4@~nbM^{K-zi_1->J?oQbHv>6c(Q49lx|n+KM8u-@AW8iM^6}x5o00 z8>1VxKRF)udq2YJ=F4TM4Ep)m@mzJcgI7$y9o0MRw-rUKcpZPf)q6EAr8Xx)zU8?x zh-mV!4bstjw^gy_`6$fPN73lsEf|FlpPQWq$*Rx|0?8^wNzkkzShMfElrYZ+Nqevh z_&CSojQ*XXkT2@^5GN?4iCOvuRl=PWLNN6Dgqo;i-8_DW`l@VF@TcI>RI$4#jRTGz?m)6^Qy9WbKu$7*@@SBoXT499}`5{*KF z52i_4P>gdVju9^#ZOJcjEzqk_@^b}PX`kGpIVE;etsYJuwOgs`(!8Mw&(uVr$t2}qA-)#x%I9( zIV=$~6t2X6BR~x}Ur^9g2zS(au4ca6myDK$a*Q3U+0VWaf$qYH@<+ z(E{jK1CMXVFZ`gxd%zdBpx|D6*ptS6ZkHv^U9DmM4gNP*)blPFI=(J_kR@(8P0Tp` z=-u-wC{U$ECZ*6M)?NK8?39hLYA${Mwrw#{Ryzec&(px%Haw{#zOE#{lYBVL! zYu=Pau$2T(5_c3UuFN%Wjux0#c%l0so6E;EJKzb62 zm~x;i2@Mnl&qtxt{8YisHKJ1L@@Z~GTKc|>HHLg7$HoP2-5mK6RwkXiyOr zbD8N=@c9<8S~|C&^I6&J=pjCfnv#tC@^?v=Z*9L*|0GB9i()H%LuNXu3+*VK`+O9n zWfAm^t&`rB_0=0iw?3yL$jP@ZJaZVwd$0rx*tY_S+^7VJ@_WAqOy&GMjS9dPgiiP& z9Ca8*qMG_1$V!jaBO;+asF2Gx7H&u7XSePOrZjI_%$C2xuZPVQVJ?;=Lx*n~XVCeg z_!w=Fy1fy$0fEO}Is4Wbh-lAn!HAbMX_fxD`Qa=&)`zb{qmgZCfW@{E0= zO7xCS%hr{~?wg_e@BO`mh1#Jg6)GR);5pmrTnUS*9D3S)GlWnDx7(Vzxn#sL6sV5q zbB8cR9Z@}!(;uEyFqiegnK8uZb+3qp<08Uz2}c<;iAuG@MDM7|XutEA+o1A2>Sv52 zq2AuT!sg;IWvZJUl+S`d#hZf;;mwoEi&$WEvoY<{q`yzc)L78es7^X-16sQdO-Yar zBtUajwq_Vh^v)Xd;5+AAB}|MUOIxEOelNLbt&i0QNmmg)mnr|>`h0#QB>sll(H?W^g(d?#m1-(_-*M!bvi~bk z_WvEN7{#ak0>v#!Hxo-WZz=OKz-kBm5+ohcu4?Oko;+s#IM4!zEA|MMc^`q^54B1X zM5{ZJ_B!TO3pJ(PQI-^ZdifExz3=F-sw2KfKDN<%oJaIkE!{D9aC&@94`cVf8%8sS z;+dmF@6_+fiCt0Ql4!8Nlsb1vdCGZvT-A|)+wam;J12}t%oC%ru7=T0E;UE zooEaHoTA2yfEDEbcri-Zf26a#yDp+2bc~>fG@&1K1EB?$(SF7#cg`Hvjd(DYX&srR z*TabMrv14*bIj*3|J)+|C#fRf)0)XEl~HDGB`)Ig0b4j0TQU9nZ7(ScdT{UeNn8_1 z{7I;V8l=dq_luNfORST8$;WccXsM~ky{IkEnngx!&$-0inCc4-t>^Q9BgHzG@&E{> zvT!i^&CiFpE_Lm+;pvBY?;YhB!lRPVC~bU4FTwBSDJ-RkXX$HyVm;0jt?2w|AP6<> zUvnc5Tyikyy=aFJv8zaCYBvAg0pdtzyPb?v)mZkcUFU92*lwzU`+hY?zq%-F3T*Z3 zp1)y6jSXd;Vb1OAt&DY2#DXns{FLO?PTjBsn7Z|#n*n#uVNNk=xsA~%?M+-X;Left zTW8FAStn{*XNB;hm{QgTD53aV1st8C`>w+Vf)rsTrKk;uRUB65nBXU7V2WIZ&=cb| zZQvu!;3-d1Z6R{WWTH!`GIq;mqKGe&dKdD(3eKp0V=sMlGtu!kKk-5wmrq*@xw3lt zVWP~1ybLmumadUWADyT;Bkx$ID>(_=_UFV95c2kt4NJYMhz0V?1kNq9JY_v7ol!TzNW=2w^l|NhhMWUPaO9@hM3Vo%uciXf`38g6yLh=|q2tT;tbf zVHu;?V_>o6OEE};j@GAv8KBjzg498+TUhr?ZLR1A6$M*Hd?#>%VHB9ECV=IJKkjV@ zpHGU>Zwx0{@Sfe$#=n@x1MSSCRTQLx-xxH#*c79qmeOPIwg31l1NFH4XdDHWIsQ07 zi5b1r!z@PR=)nS!21rQhuQKkxlp|3hwFp!j7Hnv$GM4vD+OyF=cp|!GZdlt?74bT4 z>HXt-gLY4ZOn&KYSxjKd)7^azL=segFNTr*dv;G`ggr0l5RjVxwn`4qiUiMr56fl? z0X?XjK$j5#uIJnulu&q;r4jjSYp}Aw0X3+TGP-@$1C!eVj(_Su1{7>G+Ft)2FJDy z?O-#kSXDvmZmg;b&sC?*v21R*xTm_R3d)>utc|)J_QzxWrs8N>FK?{?zz|TPe`_XB zGW{e!75Z4ag}>cthft*|P@bi)PGt08KJ&7(+q<9|uH0l0*KQF_qDsZ%2tjXHm9fH> z9MW{Ztu>i1rMn}yF>7qi#fjzsKp7u7Y2v$|j+${uDhR&fv z{DUwXrERiD7n**(hm$?Pa+OhxaC3}t+67}nOqXReq+H51&BHYOwzH)uclzVa~6`sNKd-Q@&0fZE03(7alqYBgl=9Roh@&CF7Fg}D@s z^In0@dwVi1h6)@|ANX2eL0(wy`oqFrSXT#p_wG(+RDRnb^A8L4pz`C?(asqvXdTBK zELx4LIQ1kss`0U&Hq`E?=M#_GPlwZ^VcFvcih6H#?NY|&!iS{2s-#Z>_tru&} zf)v*GCvye~S_jjkT;j<_`cxhv*Q+*6s<@O~Y`(`1CbJFIv6+>)a~kCTm*%oB?z4}_ z-5S-arhb=BPt*G903ZAH;D*B}VHM0O?rnJW}D4;^4e)WRh5H^Ggx(HLOW!*R) zpETyC)*nfX1+=3HWP85nvBSowW!{S=qSXOn58=;(3O5tgC~Q0 zELH)oWoT=~B{WAxo33&fGk*m2lm*Q6?YWP*g=6v0w0!%@nKM)sTP@^qZ+Q)G*$~IW z;Jn57O_pr6K0OkG==VeFW$a0)SucgrcV8hDSlB@-u>RgZwLwxI076z%tOvlBvwG)! zZG2C?3eE=%GL<(WIAenSi5e5Q?!aj%v2WRHZx#|f4nhj_yGMmX-CrI_G}J;wqTadZW!c>dnW$+{_AQhylYwY!cjf~t8oY@%QTbEru6GslKd_Y6)YXr5sG zsbq)Zpu8hABvU2lxnrzw=oTN#4HZ8)VXD}ns$>m9I|BtZJbMsYq`DOXW3L70D#RW1 z#~??!}pkyn6Tiol2s*L3gaBy&3~QlVKnu>FN+CdE1% zu%slS2I*Z%Yw;rCVrWMjcVAB5_rT+oel7zO< zNXc8h=jfw_pl-NWT_MV-!(nu(8vGd`lrEcJq|gX$YC9MRGZuEoEXa>;=k6wsnhnE1 z;R;<>2b_bXQ2w<{_H;dq_j>_wy@O+h86sK}vf(Ro0Yl!0y_%QYF;9(nIDgA3s9$Ak z7x5kq0UG%54@z7HMo|MVPBnX0H4KUo*;+q_x5@hBUf=VRYQXgC6VLE@Y3PAtks16B zLXkeZUcS>8q9@n@vc~j`frT4NV}$)cr4KZ1NrJ-MeTiXvg$)h<-Xt7T^IxjhvM0f} zG~+2p1v-epMRpx!`n~QVEw&VNlEt;Y3y%@HAILK@CvwRoj5EXAo*#HwGFE zonkl_{2kCrhj~i6_vOc8BRZ~iWYgQ;crlbkY_t9i#2Y9irIJ8$A3*qjuCvO*m>r9a z>dS~A(mYsMwRk+-Hh%e%S-|^usG*)e=w}%q$HyaZ%B4)s#V7{0UUb@lREhZc)<#mQ zS{-XATizpbJ`v*=B6pyku8#k)>V|-!fEF`ETuz4!5EEYKY7W@zFg#nIo<-R7WsuKf z^2vS2UtO9aczp=+{%Q0gSW7#C>OiC*-5O;zz@GpT69chgPpYcZ|ClNDVufC)byIm9 z1oX@*D&#K^qM}2Z^?f=#rMnLJ;A$hwSfODom?mlpb+&>hhEa!TOa8kNY)>`%(w%+h zN}VcJkp3mvbNR4X7~Q2=WX3BrVsrDMFT?tPg=8%VVBn_!Pz&1L^n$W#>6`&f!jq z9oFXtsR6R3D3-ELO$+!xAsEQb9*;qJ_G)1X84a<* zmw9;glkymwu97)-a@)B%sMzuE*4vmx1>FN3zCpy&Sy=${>;3UVIW3-s{zdyhq@ znG9jh3802_P876D-?Api8>?rwO270uIKPsg{5)V3hf}@Cr4IW3MT;MQ1%nh)(WMRp zS?@&_cAXNs8C%PdS(b1RuDE5!ltSu8FKuG}^mYX{43#YLr4JubF;xE*6S(R*Z?!0d%zMS@A^88Hl z<;6n^RP_C~TUhh`XJwCq7w~j0Lz!FlHSABu^|Q#?ga_D%){>qN6C{DduJ)RA>QH%G z3G}>xeNw?dCdDk843gwKij{G8g1S>bOiSPh_u?0?2gz{dyU~g7YIrpX5sVKsXPmI< zb0cxu#K0q7e@+{?%4{Vo$6eXRvIm3fq}qAks&l!AIVp@YvURcf=Xv8mYY1?KS>ZnL zduD5e=bLKXTFB!9E17I@ zm|MCop-xM~YLtA_{H`4t-G?~Nhd5i-1dQrvUt;#7C(FD6F3o%Bu!wh`&g54AR45{A zFHaGGGm$YpQ1k>xXJ>N+^Y7kzlt5Z1ySb_Lk(475gt!2ZnDKEK@0c16q&A1!K-9 z^}wq$)*l6BFoWAH$L+UZTMj7+)cQl2#|4Bs*;=k}yItpWsJbjtb&ZlC$;#PEK#@V) zrnz;Jws}!hZ`rz3*3ZPq=D zNnf|R)m5cRO8H!)9!>nPy;74=;H`OFSXTVhZ$mW67rUdQn4DZ``O7L{z1x9kn*O}Z z_TN{PTNyWRw)EC?2Y?LnRfr?UW65p%$V&;Nu17Fp&O@g`4J70XB%E%5dWr1{=Ff1q ziyA5Au+iYRAi$Hia8aXqt5+(=ln-LNcM(Rr4Z<>AWn8nZ2vm7d$tDC`h(JgD{o^i3 zxE}0;Zr?M82mm=MG-8Z%9FX_e;dy~K0@QV?WR#3x%SA^#O)8j>n28_{We_JAc%=T^ z4iD>#snCxWg6EEGFI4yXsE64>@JV5wo8k5KAUG-p!n55#x+gL3SCY#7K76WivMRM1dQ_FT4^4hjJ`?zr#eq zgNd*MxaZe$iU{2y63Og1fuRc#peMug@WO%%bH0i-W!UxYkm<_2Q-ryvtblRcT1+cg~DE{IzQN5v^AB@5ntc|B%z7}@$7<&)%ajJ zRt@^r>%oBS|vDx}R?vyHfhaT>;_w!(>fYpn|J`BoB}y&(|St(WeIKz8Lu4ss`| zp1K7_#uQ%h6y{_|1e@@14|L0K109Rc<6-DmkJ{6Y+uXS3pEe{eCpu>KqW=w9 zF_%=!6O_V5R9UlcP2rsaIoif^L7JDy8}b6)kVU?87?*k%5CU4KQKn}$T^cO_6ERNsWEcu*nP2#UhReyN&*wEaghlkeAi^%KL;7XxF!H+2b)D8gJfd)U zzjv2*WOgzf*vu!Jnsau=?|ZlPyncaA?+a^SKygpLlt)DOzF-`gh#FxWqtE6+#*zfx zhHh2J78JUrLROFbN&qCEL-J&!ecB+orFcF=FBBr>%@~tOhPQGxb$-W{Tq@1O`%%0i&Fjad)sdP^P7eX{k zQDQ|_2V!Abc$tXa>{#!S1&Z8lZ!HhL?U$2>j;^NdtdVlacl?aWcJXH*c)@l!XI7-G z$JjXbNQ{fQ7KqWVCc9`YXx3)5bP$t`v3cB4RSdbTqTq1Xl}uMSFqzih3At zXflFao9fe+Zq!$738R3SU+h0#uW^vyCY;Q>2uPHotewX3O*NS6jptDzC_ ztJXtcofjEV)^}ZAQxo2cdCd>4r-GI@+O@Gae`xkl0b(Nj8_u_(L@#X_yUq;PiPCqk zQ&FDZwl*Xha5jGs=IFpe$S3A?t_D^&PZBZ+ZL3T?5mIBm)B8EVC=gmI{jAoygj`K< ztOB3jWXOxm`;?aEhCL(#uIPg(ZrtoUY3JKuYXHfL5Kyz9OwzwA4yM2s0;s8VhPnH3 zyg9Idz9gdPlWRzV>rerIC_18fX*?&6JmV~Gj&!4QI~@`B!B7>at1)8pBE;tMp*}}o zf2@KOrAr2IJR+p2IS@vI?QJczp)gBk*Kzw|2(G@;J(aV1Dq~UVvh>Tv!6VQm0EW^o zS)A5qm5W`0AC|M4-z0W|CW=`^vl$lR<~bP13Qxy+-p87?4Mw27oDS88Xfn4>`c()9 z#dSFPCf0MtXkb@?+FYqZJd@0tW(S6cxaHeBHC_~usM0KV>;9Lo-cQo@H)0^iF%Q8{07x*Qur*Z12oMTQ3w7=S=rm` z6uwu2JsneQ(HtLeh@%+J^c42(Z^G%n8IPWnA+oVrsi|GnE;-!>wRQU&eXIRfVH%3a zanASM#zCEzkJ_;jb`r2 z2)E@=VW0!-D(R;-JTXL^KU6|(R<(F0K*e=C&$)x(7zjY1ZeTnd6pYLLo>&>fh35`(Ii{!a9HX{zHGi7KW1aW;k_4t8O+j=F)FE z6l8xirbLRoW;0IPIRhWy^7a8cFEw7O$s-$2Cifi@J;*rvA@+4yvPK7bk3*8IF_Taq z&x|hw2H){l?#SU8sVa4ZQ7i%zr;j5cyW6c&JgJ&Be4o#QDH@TsPwL;gLE9$inWIAR z$fyrS?O}u!7n+hN_pZuL68uDt`pOlI`+(0aVo;j=wPbGOtldxd@>LpOU?9Z5Bv^W> z$VB{yirZ#jA{BhTB*W15xBN{=m!o`!GZFrul9@|s>plOHjj&l$$iM$hYZ*fFBb@Kh z5^PerJdOfZ>y4Y4Zg@K)7MDix+dd!BHmGeNaZeGIE)tj@@KLIU&S*jV?6tvT@K*fa zKQJyB57;sf3vlwqbBq(Q-WI%qVXi0G1TgrT3s|gyNvkP#hRMsq;(-l+aAD*G#gD7+ zsndL?7S|cZMKj|q=qn}ol^H!X2DpSpabMg==!n$@pyS3fE!z8YTo9woos-XjDq!w@ z8Q}1J3X$&U{rvIOxVZ(0JiRZTbsrl3+RMoSgMy!~eKIhtkRz<_J7;4TTh&)ufsOey z7;6|5EQ#A0mfFd^u=~pT6VkqA@(qD@Cgc`y@~UXX;I!EQVbOmw4CF6{(6ZS&Cls^p zU4iR6pJQBzt{sc5m3G`!9~x38Bkq4RA{uf31Dm*;>v8tTy0wlLKGTh|&%sv{o;(K? zawks7y(c?yO74;M15w@DWPybSwdQmD^2tis=CN+mB}2j6eC&x1gccfNh(hZ?Yu)UL z71goQ5V0$9w`7lgSU0C2R7JonM<(Wx`sLec`=is*XJwtPQ#j*VM~`AQtF(`>-)12v zgr0l$O8UOzZ-C;z1&R(t+5r=%wZVG8or2Y6aZQL)jOr_m!1D6_@Op2N)0ibbLj2m|cPCcNNZh^p^wfC~qEd=1m$+Om0&6bzFAZ3?uZF<~IV<5j zUeQe03e(6{eC|#ODY>i-!hhA_}UuH;|{lEV*YYDd1 zPOs#)FiaIG5t?xm1!+rR8dQiU!L&Ah^5yMmhN74tIA?f%t|lV_?#Gi)c-0}=OZ?V- z3&(gXR$DZJNTi)Kq)tlJ^>rPY5_j^K+Q$Mvkv`WiVPT#jx~vLODLJ!BTo8l?E}JRXFfN69%)K}wT@5Dz!qC{WD!JjiVS?YS zX{yTKyY`A ze!9lu(Jwt5zaeq(VSQq|sj8!Uk4pWWK70N#=1kTb&k>EoOUt5mm#lwOLw#~Ot)*MW zBn3K)$~L(fAn&mSe@C$LzN_n3-59|;+Gde)5NS;ruDM$>-ymf)iAfn9&*`1Sy00mz z|DNzy_@X8isJSce$6EJRygZ>Zp$xryrxxFWq`}$dBdut}TtCbOc)V$-2dBq*6u-qE zmb#XtZEI;F_xFBESFKOHLm?B{%;U2y@pz{*hO3jA&H%`IQJby5sZnG-aqpf*BLuWA zvTJWnZ_wi&<~scOq{cr<9qT#?b8Sv zirS$fWLq|ko63`nUY$Iljc*3mSgqzg%4n<|`GztYfsDm_{driT8Lgi@vJI)2;0a$n ze6x?`E88~}|KuWwJu)jBtH*kxVBE0L?zsaJBt39DpVS_EV{PUNoDF##$-6h5E_87; zm{7$USAV@ASl5FSd9k)ev_;kUDQExG0M5$;ld6jTxie%}n*_PM730m(AK@3x4fA8N zy1hIC`?cL`SZCfG3&;#ru6o!Zs<^Z8&D>-Ct{aq*jOAFX>)Ur!bY;sk=^8v=bA&!h zx~3~)m|kTMNEY9t5njx!S!4`N%IiRWuyhIgUtk&YHeAc-w#5rf2D55uiHqb7{O>)pR=D_&>uy>JSz^PAeHvG=eclILkwu+FspiVs${X{v!F`_Spd zZR6@$y&z|GnxT6o*5I!Jo{#`^>B$l0pVraMjzX#)2;GB!rgYz$V;EXsbFN3R4svy| z;^>lFa8y)L6`GlT36j7J-r8!q%udgxOVal)m;7OdoxIK+<}em}HT#>-A$d%b zMDlqm6BkK0!&AOlZT$$!JmYRVB;71XO-49|VD*iKl+K;#;nX>!lRd z27?Ak;f2kmCr=^8f8ei8NsHu>cwDiXGgR6Q$EKeKJXc(r<=8>_(c|)re^KnP6Q8f$ z^2H$hm2dfmLcLixL#BA#c7}WS6>ey#Jtfz7J}hF1&$fO_{w?`;qfq+qQBn1^uiA6+ z<{Z1RH#e)#Nok-S5nPJj!vf~{W*3Gi<7vBI{T{;$y1aB%Gh9oehTN1^XlJ9phxJX? z-k0I0UX{|5tU6CG3(;hHHK(dX^g=m$AwnV#aejt5fc%Z$jH7<#!uvy)X6d38=23u* zoNJ|*uWfj$2)=*e{+|}ur`z8gc=LP8!T?GH2+1D|S6r5gv2g&-ql?uol3&PmIX{qd zE*)X;PhV6F$LWo|$Bw7qrFDIDso+ymTurf~Xl3jR+2!%R|6L+Apt@)%9B{-K6X&S?yl9{NmcU z_UCt*n4$y>OMZR5pzF1}Z$%W0wIZbXI!))fY)Vg1=~zO-nl4AkUGzdtO~#ob*SB*J zbllQ)Lbu*lOQzOD$XPzne|y{_B_xf- z7{9nvm2P6yzxU@2hWFUJ)GMjCz6`Ke1s~?~gNz~S8&Iz~-(}?Auf^wohT4arpUYDP zrk0U-NVJnt64QNdEr5w_uA(fcRF?V6w{Ym@;QX#Ycx`v0@4;ht?=4f-_>>lY*(F-| zk7YF8{xW^KRsS4KJ*PJA_FNCiU!|E_Y}E}!*gZcZ9P5{bQ1RdTR5IK2P+TDZ|7JD_C&dkB+3|-$E_G=qDWeVvG%?&CL5w_ngkFh7Pn@;;HI$ z(I{~sZi`aubIT*fFMM?iHJv@gu9tl%m2n~Pxm&3X)t*y%F8ZtE7xj|jUsAM&$r<~r z^aP^ibNQ_A-XEIFr%8SpOU}~lya{U5qmU6Ew-H!$L=lGho4hdf@}j{E!pcie=g%I~ zugn`mkgEOH67lMW@17&qTLYsS11Fs7s;|ZwhKD@Wcq5)q@EVK$XQ2b;-2T1Wp0sjb zovU8idoIs`a`J$}j~lZqK?URS8Rozw^|GQvz$Y7b@UE{J$D7eQuU&D3^!pWS^vjEw z4o$8ep+QOBDyYtiX)SMEH>j1!T5jV~aX`RH9lk<{%Q2N;*B@_~nYXt9o~C#++7U^M0{_ zmM&df3O>ABYh+(AiR&0*Si!zZaheLXnE9xw*!Kfm6GXXw@2JvOo~j>5f6>}Yt8^g-M6 zv-2KMwFG|AAxtbX>CJrrFTBtVm!^O@3{RZ+xLmYeWwfAjG_&^_S+aXsK=CAkU zBK@{T!d~gVB>vG_Xe#hHS^=R&6SN1fHLMgr$TWP~fa`q`6DsdCEz00~&^)k%E&wqLK&q*smzS-8VmEs{x(B|zm_3%9!+I}01Ny}2vW<+$t z7ix?$T@j!Fl%@H$gcc}bMSnChUTbON{*KSmkNmdoCL_-Ez8}OCKIH6pVS85cGfEji zz)n!pk^I?sEOtfjSIfgRi%yW230XgJ?s&cJzyEzt9^#T;t^n$18(+GDvjDq=ghM*ulGwF^V-C2=Vp@31 zXA^?gH(nkp?S5G9&G8za=22qQnJBD|2!4WP3b~=)xm z|H%-I8GKk+1tgmZVUqs)&!?#)d8!xYyQr5jv&Q7&Utl7zCH+AfCn`j2S|_5vIK$uEmaWaUopThHfk9S>uoP&JM&$KYb zB2IET`Rue*h6>_FLQrdOm{Bf%KNg+7!cTDB_io))b@D^X!4J7H_s!dKZ1XeN$q2kP zDv#oInK+{uB@GxI3vYbM9r!t9DD}j!I&d5zW3D0A(gDjbb$7iqNYF3@n=FAJjb~dq zt*(&`Jt9Z6b8w?NBiBygQH5D63S_IG3C_T6XycR2JJFFp0su+qRZD5FR@BGzcFuhF z_7Q4e($@5^WEnlyl#S+P8qK13L|4BY2ayOD4Z*#i-k+8|*>{eID;(3b(Mt;uec?LuXD1Zn}g*W`A182b+l6uRo&WrlhV*}8aAx!)PFD)G^SBbdg zpy=yOoi(ZLGbxOX&07$T7$m%;i}bqBq`;AbO{tw}bVguCj#MZ@@Gw}@|JN28 zg1E5-n{iSiCQ{y}0s{%{#v|zFL=E65>m3m(ra{UKu-u&U(#B-OlF$rf7eql!K=o-t z)sh(%;`b|{kCF_pq?rDYD!yd@T?{#bI1s(HK(XCUT#H=553*c9rn7~nyo}tnn2t6( z@d^bl^uMB{ALEj_?#8pl(D--pm|yE*z$pOJ7%29h-B zkzx&?XxEdXz4{iRqD4dS!HqjkcwHY$DW$K!&6q?_3i|O+C51CM)AAA9Y$zA zYOY1i4(aLw*mW}3sqOiEm|wp6l9M*S1>F1fJG`- z1Uta%I#RG5ew>iVYs2EC28q}dQIkJe>ZwYi2Tf6weu^| zmU1gU#R~@^z|O|>bVA@se-muk!rLAq6< zKzq^bNn?6qAUP0VY{ee8hVjL!-!U7SWUGZT#6YXo$@!kUENzFEu_=1xQLAS0J%7tp zvP-@PpQM-VtUr+zj*D{kAPhbo7fP)bC5y3q5wr{^zr~yBO$PVa zG&6A|5wW@!lpY1>U(dS9#i2fvl#^NNZ`#9_=cy{LZYV|VqLB>GWFJMwT zp`pYL9A(s8C0WmC$mDITB?=_cjV)qef{(E&z0r$o$%Tx>LuoBOJ9spPD99zjAu`U| zW(Kae(bmJpV)W^gs1h+4+PHhp>jmny4r#B32EF`pUGA`OGfEFF8&gM{Az`%ivWrs8 z#`1>1Za`6q>k%8HguSHNXVj%xGWsePVV1NW^(;u>Un^~Y(rQ6SL2Dh0CF=>LbYdp+ zMkKdd{2MAjs%Wv@a6Wq`LX?rTGm8@?Rg0_{qkUtLrK7A7mX6~`Wge|;gyRzwz}yMB zOl7kPMd&fQ+pAVblj!os7Qg^4`#(J&T!#$1KuM;|79kC^k{KHW5~)A|%FdmH%zFmB zaO%88r_8e-H?AVYis;@+5HN>6RQPhQeE&Sq&EtgE4HSYR+>n9?)`)*q3M@pc!Kg}L?B z*-j)~c4K`1D>|>skL6T7NW&Ibd%2P2uFV@l>BgX!gB6JMV$xRa`dq18#g$~;nuQXD zs}z#F?kaZfG2tM91jbJdYs|SxYDl8RY%OYC?@^fOD19&DYp3C;%yckLLeeyC^OxSd zHNf)t(-@HoyUQ)$vAD(Zpm5M#CSqTfQ7x6-_i09|YAv)OTy6qHIi8ty0()bYbZ?wy zn!5>86t>JFH~CJ;V-gW$nyET@CAGF|>|pY@VfJKhISln)(1qC4U@{5KIDv;|aYiq_ zv<({owr+H!Qiu`NHu;!u)2lW`Qa)u&I@#mDMt3llv3rq8xPljX6jbklS}$ zD{n*6^?8X`9tl?2<0#T%^!Mol{bVkX{%&P;;;QYn4wq}yBM;Jc6ItI>)v@h+?Z~KO zw$RA0kM}rYAyxl>)5^-*WFTs8>yO6Yt(S-=y=vdulD71@`O{4-T}df`k(fKe&Y8Pk zxx+ACU>I9xOma=$bg^;B<6gWlbO{Q=99U%vIs9zuG-{diO0<7Rmj5WqM{;cu0f@=qcEvS$HOLIBJX1c=hRTdFt=IQ?h{cGpt^r|%-pu>X&>xAd>K7XP?pjVaCLDlu2bA4eKoevTEVkIqg7WPNUl39|{#DP*$mGpV+PzjB< zOS}&U!8O`de6f8?*cK2uOWYMu7)E*tjqrLzG`^Py{od1rhvU-3SvEN3$kr2;QaB`3 z3LbkF4;jEZIg;krtzkGWTe(~nDwozI>Pa{x%!ok+1xQaL6q%#f^d`>HNOa@~`+G}a z|FmuGixEoY{f~Pg@7)Tbm>qDoA`NT)!e!Ydic&ht<_EHb|h^HqLY6MAJ^;Cw(hw3whX8gK>p;dwK>8J_YZjZKYvVVcp|1kKP6jdwUj2d zmTv!)@W?PZbj8QNODA-@(+P0V>-v}G*U17q@kRrz@@|xe+hib28XY9`3WDXi?#Ig! z6(h0rp%Ke)MH&2VzvH4YS zTD^q*Q!{0!H&o01-MA5T@_O+qgo}L&(`~^*wRry^ViXoc32lI<9V*St9NX6%6x&CN zGk=}9D7o2Uekh@0oRz2LDTuc_SkgR_Llq&PG}gq*7L!Mi`_qnFgnZtQ75}V(bt#Wi z{wDkJC?p}HpWC9WL%L{4f=U8^tlGk?a!vI+Y?6^heP5nMY&kYX8 zaIt@;Ixd3}DCw%`WPrgx9T@TNFtFmL{eeFp{b&z%;xXW+>O2F&XV!P#U-GX%@9%^9 zMBt4+HJ04DIX*A&qy6Q8n0C2+C3jqaB;Gz>%VJCghvdMM{XT+ZPDWzJJOfI`T952x zoZxN63lS66x?aOWxdY)?#~M{?2H#_w;K27yd9OGJy8G6QBx5K<{<|s@$(|6+hJT~N z8e#2r3NO}rqej5qH9XSUYE%>%oF{a_z~XU?iE)-N#oX||VSp$Vv~cRfuBO3y^-Kt_1+8nexkS0`pkp_)jcCqWc?XmcGm@Hgaaehj;btRpJBw#gok=ExRJxKFI6CYP$P!tOsFM>)Qc8>f zPcjL`Ct8ci8B1sYQ^5o2f?H?JERv4Cy`A0+IS6YTlm^ZKVrc4KqfDfk-2&e$pnP14bc(|L#FmKoOrI2ke^St zqYmRDXsMZ5c(^kG$jF%@%tB}+dvoxW%J1WiqJEwH$`OkI$OHLe{@W8e(@`U)&y4^A zr7;Gx7FvB9vVPbA@-|6ximPFYoh_{@zCEa#Z34hRARgjTE=>xRs&b(F<0hdPMe!hn zw8lLlq~hIl@j{+FqVAAz%Ra|sw*EjW61{$W7SqqAy1EZ<#IiF+#|k~EZonNe!p{55 zU^^hT)Y&8OMm1EU;JK{3(i~Cy*w8?r%&h;%*PF*Rb!~0HDiv!%yw;OT;L6rfPOjC>xUw%2W?JyQ3-}r&-4O6^qzpxCUArpI}7d#;34`d z*7t1pTsR#Aox|Ez?L}1g0je1&zLS$jqMVAmYlidVzE$)F2?Ma~KxeHl1k?u(f}eT0ZWu)RU`h>U z4@-WNI`@nSgb^M=O&5G;gU8J-63)#T0}V3mkVpS*DfaU<)VLq5wG_^lo^PvNXXbXo zADF@*!stkK)-8ms{>zEZF$l|$2oyEr?!kCEPY@bhSy_gRhRQPRV71<>g*=8?j(5#} zZ*a1D{E z^wDN~R65xF@Q$1rUL*F<=|7vuJHW}|u=ZcG2xv4nTEh4{X&%oBOCDrk98m)8*T?&U zP@?B($v%qi4^J7*1^#C_e+T}pA)7ycw)zncpb9M-yI48{4xDad9Px8Rdzq$r28N9@ zh30r=EqnPSm;U^?HwWlf%-JPOcghGJ3@SSlSB(IGZ_nVLrzYZP>9b^j{tR(p$E2C( z3JBKDu<`V)8HY1Z=e1VQ0w4wR&HX$;Y5fP z63mxb1PWi4Wu09z2!xVN(-9_v?kxp;f2?|ja56S2v)I>-@j;T8S!fl%V&}Y}L$Meg zx?BO>Jp;#f+AUaR(b)1*m$j^Rq04*tUgs{QEJwo@3B@Yh`ZLjp z(6`MIkd9g0@P~xtl=IcwQnYR9S7)mKBb@v%xM=FVurMQ&ixQlP+z;S}fnQ`zirUl% zg1=4Q(iUWMhwx~NKRb0a@bCBd$|^EO2OD}3Y5Y*@tW*6%O|HJ!M`c6xe4&~XB@rTUpDNPKnIA< zNt{oI4&qxPWMt;f-O4WiHk^Vk=b>HmD}5f7Ff~>Ci-+8JN3-x}t(Tc=GU+Ry7L2scr=JW%Zwm zgKNF$r&f5p>F+kpAuyf)dOWu2P1vTfedg8B#%2#aIpD{=IMtd;yn#OBgp&yvwTxtv zTSU1%MTF?k@m`P)(*kh`u_UR++wk-9o$odgPU>mV(Q=1#6JQ`p%Vmd@2JJ=fiu*lc zDEK*SdmwZt>2pePkiT7^=-#x54I>F1Wxy#`(_1SRAl^gPDRF?%7*6BkN4Rt(Wj(Z7 z=m04u@5ZEgkIzN$kU)_Pi8+hB+_`n6BB#%WO~h|9v{npbSR_vR;MB*<&~;%t@&4C8 zUz}==-=bvo+Hze^jSejR_587U0z!pRd;YOXR5OSVm1mmj-;feW=^mTtO(HPbx=Ty#!amH-eI#_A{q=FxH7(ZnB5d z+vD8PJd*j}M%tTXqacMi5W3I7KSNMzAz$l2e1Sm*>sjmc=QjEP+O&2o&$rXG60(e= zn@jSdJW;ZxS~zXriMy>lA1)iY+iu>m8XVy8Fgs{wo_G7@`J<$QRt~~CBWq}koOk2u zR{Nb4Nsi&FY(Riz{I8Ae{50IKp{^G)(ZrF{h{!O=fKZ~qyTjiNV}P#_0qlE`Iv+vm zOl+6K-wU^-WtiZw`I+yAAmc3M@88&T|3K5!wTT zoj*~E5c`+afnOW-OL}qw(nogV0RN{5Ea`sqLll<8^&}K=7zGUO_+&K)ZAZz3SHN4t z!-?f*ST&QHFSpg~O^Lr@46Bcv0)__R+L1|}?<&7@T;KIy^Bi>#{Ksj-G;~LZNBZr% zVJ5h@Fa_9WE5T9k3|T=%SfH7P-;`)R2HHt>afmyhicdkQIZR17nHh~a1a1@ z6HlkP?{4K9K-qO?mlOk2?|$|-vr+ivB?IqLEE#_b2*urt5Tv^9p$(mwCv=`DXT&!v z0HiV8(et;L<98SG(8^*;@%U`CK$t`mD=m%-W z-c@@aw6AXO&8VWP+Py0dDA@wZ&cTlv;nYY+5_eOP$#qAsqzjgTAw$srY5gP#gxuIh zR#+hNQayx0HvT=xY$=*JWct4ZzWZRTP`vIis%LFg?qKz>ui__qXv{NQKO4h^E&0DB z;BxfDW@c6TZp2AU6Rj$V(O|SvH;o38Ho0;xcuP#5eB|0ZTqZW2(bUl>Q07Nd-fbZ7 z@otzdd=mxAB5dG&py9r8#80c)e)wUfIW5V9;o4gRN@ZPk5+1Vmoe{RzTKN9affbks zYMh|>IpXuKbmWRnC`-ST;ui`4(t-07+KoZuCrB;mkeXZS1ibQ%&B(m_N?9o3C{GN; z$2-CE==gF-p^sg(`S=3NPdc0N7!GqGyW=EmbT}sZ=`pD^m$JO}mlhzkh6bDPo!x&Q zjM@_!P_q$`cl9sJc5?1AYX1?Gq7Jp)i`iBSj+e^$Blo-rrKVMD7mgoiVM&gcK1@JL z)7JCe-*N)|@0*AH%t&_q!RbRqM|i+7h}P*(GkR9W-mhTpTUd=nYjy$vpd981vM-Lq zM>xHIEx4Aul~rgHpeKtaK^|)o08L_=_wq~H*$~%9QSXA8x9QFJkU5+Opp9Q(5163=rh^<21S~Uj2O9r_!2i~H$ftdKq;qu3Eaa6Tv~`*rO);g+UD*1v zgJurrvavM(u6i5o>$Y1KG5lwHTcd=fK+D*^kRO;vo8{h_NsPYJ_OgR^^?!U9tdH&z z!9~--GL?ol7V^j3q}-&Ns&l%naWPBzL9)Ux1szgypG7@Mbj(-t@8rDmT#YW5pmfzi ztNn9#l-*#=e-Htfj=KEPrU@mFG@cLe(Ew!?{Rq zg*p$vMq^w{Tv1~Q`|gBC9kYq7V;SLvN1;1C*KYs%Dx7An2P*tm=R4nh&pHsFPJW>O zKuy{B9Z`J(%x=D*J^kL~2nz4Nh+2Cw)o~hA4VcP$XgqON`ufg+6R^=BUAV6f8Vh1* z)tj+CZx0ZihZ6)!*EPJI7J7G`{R~~LBy!1xLpVFm$`1u~=anKSrk}lur9xELirtvST`24M!Qo6L1r0yioFaM980iSM~Gz6KOVwbqPcCB zRz2FXk<8IyPh+9?B)v=UyQy3~05*|V4{n5D6LswE(?+lQBGo=QeZ^sAzs{nqv+V%Y z{o`B%W{ReQZ;_L3$mZVubc}-zDG#(Z-{g z`SPj^W;lZ5%ynu*4WY!wIL_jiv$CgS9Hw;8NNs3_bG-A0GsN?0E1&~i@q2)Voa(zU z?Ci&)dg!p-xLxm&F+T1PNlEH;cZpvl=45PSUR(BR+^k7>sA5%h5))7}sBf6NbmGCt zp$o;g+p-Jb7*~(t=g>Ob*d}0d1d?bRI}JI5#?u#z!I|g;`Rd(}s;gTqWEieGTA-9*PrXxm*2gb2H@BayTo7 zY>o!!i2O_w*5GuLMuj1bzIx>EA#sB5{J)39GCl4-f;MUwM;fD%5UKQu1oJUCMjXE4 zH|}*(b6j~pPh?;r)b_Ul7Wz+2M?Y=l817HVv?ufM3uW6ZP|*74=3>JH`wPR$-oPzS zCN(E&^PbvJlp_;wDMMdRDy;UBL9e+pEKh13jVK9aMBPhG~Se6O2w)tz+N%@EcTz{TxGQ*iFqT zsiAKr%XT1ne|mxkk+5CJHCNkD8<=W1*co!)?bR#kHi_@c9C!5F0qM-O)3VlUCtJ<| z^f3~bnbnRQ5?+*>8sZYc;-**H-&S(sU z>Y2D7N%N~1Z`aSj@A@@22;u(mAKRMO_5<2K5~s~WKnZ$z94F!%$-5VYgBNsc+ME(M z8sik%mn6_lP7A%bY=*Pc`QyOvcE59$tq}T6Zd*@8BZuYRk#2AxSscFyf%8sUuA4_zli&t{lSSw3F+Zk3t! zVj--w^rFY8JU`sy-(KO>mt$JSLPvVJP5aUz7I{&XFW0&c!2s6?*AstvrNsc!VUE1E zDBCEnN_gyf?AW_O^w95k7x2)SDp6R#*LbIYc?m6x?vpzA^8B-&E8YI>wLs&+JAYet z;Zxy9uPs}DdsyT#_%82c*M&{r7!{`6hnkWE(?_?_Yj3aU;t(3kCHTS9nQcF`p3NMC zN``lVX`BD;wG9}|F${UZEl}hO%fJ8i-NjG%`I~DyGR>GE_{g;{TXX5H5J=JlLmR72B|r0F__+>=zi{-TC{?sSN;X{r)4y zGdV90I3~Vmv+1itq)-++?z76C&3(W~+`qKuXcbhHRu6h8Q<`3ki5?<7{_|9mdJ9C= z2{;$;_z6OlvQG~akKL#2OdBGd&>%~~VI@baFoapxY{`&V;dWtvxedfF8X3iXUtw#*wL!_B*jgEaUti1)b|zpkys42Cow}8MsC}&X1s7f?;`oKBZvss z&KAstl=)!Lnr-7Jh9Ow(I2HDU=65&dw~RLnFZ;{UbjX zkC82RkRIsO$7d}B+*fwgw(dxt|6C52BT4_rBOUAu$^`ZfeQLQ^S||>q?~9YuO1v)_ zDLPK>eKS_QP~5i)KO!8Q&gA?tbaV1<8XfGw83NfqG8>+bJ|bgh1Q_EU`OpNv zd%D-{2#ZfNVU9KmGd4q}GH!;111wFCN((a<#kY!FjzcoNzh(e4>%yaY?0|seG`rUa zpvO-#y+0ds>Y1de`+gS9_zcShG~+s!ZBE}c8-=~d`e;7Ss^6h=ol|BE9zZ{h{JUNi z4L}%Y@f~TDzvJD(5{Y#`I{R0qkG{kC&#D8pbho+O-7-doeMyRCoE%5~v%QsjmJ@eX z^$Wdx-Zu8~P)|3)I!xcpy~|*<|HSw;!?3EbK;md=?tPuy>Ou0ft|_DTw*~|~C_8{g z@!TS&qSG?-Z(RQ`M>YGJH4j{QOwP7gobQO-q*FMNv*S2jfCnrW5maMnIR}Tz{2AyiNgUZ zB37d_mA64y7BhQ=1*cA(5$cz655MY})Wpe6!7%+JHs_2gH*#m($3EMz^WxVPSU1L^ z@sAtSHNnwyXiDRJ)IV-8F|6Sc);^vxCV-N>zTy)I(p`Qkp>@FrB);s)v{+S|QJ45O}UtYAxCxN7*hF0TBEsl)| zweYf^*x@}spRkLs&D&-Zfe_gPlckJP)ZIok^~xXz&?3oF`lvSUq@=AN$)dC-EVr#l zzEiUnaYou7=MJ4j>|AyG?k)MPhaAV1~5{qgID+TmE*ZG&QNsLo3AT-FfBH(%?z5@Wv_n zl}q^3g6&1WsBfNgl+Wt_&G&=G{Wy2o-I=m4PuK9}JEg%pw(Q?EwS8mGX8+p54gBft zlH27am(%CB8yl9CwTMwRzIx`H=koWpq~{rKNwEV&eGW*iZH-dpb*aLRU%f9|ACP{N zSGCS1_@H#eh|Z@XkSNkkI!i4o*ZL&cKlb#IxVR4#)i$@_3{u?^!MGAvr#9n?8xp0x zbz)k@$=tPx{Y6=QDn@mNAI2N?-S6)cV(#^!t;XGA>VdxFxr3G<(l86VeQ&iz(6Ji)FwB1C+R1qL3_AD;*qGle?S_1(lpG) z9pBsW*Wb6|Utium>hv7bA#Ka0^6-`B+6T+SO**$7S9{OSY>VSwS+u+AYmwue_RC!v zZVTE^1*qd|wSWJblVpLXp1FQGC?ojx`9=Q{^%*F7GEz@Js)3)lQuDg_?ltRyqK0Rd zk)gXwQap|szt`P!P&#v|W{?Rr1k?9aJ>NoDGH2Bs%7hTF{cZQ#9 zK9;+CjLpL`t0xO9f|Xa3V#kZ}p5G8e&L}^c*>*Yen!x&;vd1G=U6`VLZ)dpvYk#$) zuHoyMicOaa{54~KE6)_|gr)o(%j6DWF0sCg6g~e)(>HKTPS@)&F3A>37W`p7lZ`G} zZunTxWKnfw!Ai z)l8neLu#pzL7o@OZLvG74%rV(toAA|4OZYz?|^H^WSFEFi$qU z83gCpSDh4e?``%idZ(kNLmUb^N4CoU+ij0Yd@R_X6nZ~-8O9pBo2$p!@Jo~uuhm`h z7lAba~fJ=1D7Wof0=Nmp#)9`&9GeiyrD^m{t zk0H=){VpAEo~dY&1(i!(@4da;^=r=Mbl)z7#ma-*4cT|CA}>ljt|%oH(10S``V_uR zb-&SsfQm`T5Iyys_;9X#gU_ELE8ni9xmJ+~T-*fw zv@Ld z>R#opx>k}>@2I9wA8+_ckem2?faz|_a<%+EraJKI682z=C$jre-hHX{)=Phxs4YBg z%Qe06A7asyGs7*^?-Qf>p9Gt&ey0Unx5NBXhU^nRG$JZizbUjQmT6*%YexsBt?6B_ z)rzpR*U2W=mRtT;Ex(0%8)l)4B@$ZX@uyOW();OjKWSfsf*rX_Xr=;nJ&xw**ma64{Vzl@HmQpuGOzyE7{l?IqjT9e7 zmFISP8kUm1BfWov2~(Q9-4uFmUWO5Iuc~*nKR<0hx9ATk?+@&7-;9-6K2gj6z^F}THVP@hFG3wX%iyk42Hm2b+w-s7=)?H_3|HP6oLb!1!rkyc^Kw~%$l0Q-oF zYij6K)}B2CZy0B+Zb;mmmGG}G9;;vacP7oRHOe+E>r>b}Crch=mJigF zgJA!6DxHo=+E!$fpzNKHre733*oW5;>N6d06zmppJ|Ig{F~v@&)3XQOzR7-fwq{F9 zn=tKgy}x=cetk5ier1N+O4DkM=L?NIp=Mn?VtjGPJyrHCmE?9+!<6z`ji+HTi}A&X z@y@{^@FW#2$HbHnGL|6yd!%DwA<_-UYWL==vaRFU6w2wwTgznzR<~5y$LrY)zWI)O z%nQ@`u5!y_wR|gkfyMFCW^wKIyr@>8)f*vve#_aW$|vd~T=gm+O)Sw&Sy4=Gxm-zu zW+8sn)wH=c)+H)DZtTJ^Wk+vjHLNLJS<27RJQW?I0>C4v;CoG6iLiNU$)Zz-rOid- zZ&ru;O@K{o(JrRY?Rmo{1|u~Z6H$`cFYj@UU=F<%X@oc0`ks1Uw2s#6590rQvF=qa z|Fq`mhravQBShZWyk5$EH76z|08Z_e7+WF?cp&uo-K_Bh5+GB#VWC>LkRtUFD~jXG zM&F!4w!J^^8pYxXilGy{42{BT=KLQQ{p56~K-=^sEo*#jOVX+;6Ew6VlnEUQ^i8KM z-M*&|JMmFTP=D1O**fXuby91y*jLp#al?G(4E*p-OTXi^q=$J?luucrTcGwmo)+`i z@j;7q&cTnr)DIm;+s#R0OcyW4aM-K3M<;B0nSU6IPTOR%ME zjZ-O5*4%vOb3j=u3))=7m9mQ_ein+M7HpIM{7JCGQh=L=U3N3fSL@~@(ED{x>K_@_ zmTeP(EwN^te81GAq9swN)UTyE)kCtpuX;n!zP9XLZIavmXD43sYrW#U+zc4AjT|Yj zonWz4u&?cMm&M?)^f?fGdIrPs%oHaUOE)|$->g@wUmL1ZYraQK?vEVG%qy#S?Ip8? z3g_VGQ|z+ND*GKv({~QPC=MO$-{?J3F?6Jt;lGR8Hy*3rjWN_qR_w2Kw}|v+pU#yRSx#@uj;={QH|RAU zJ+}xq{y}QJE_H&eEa!&cK+_@ix2=&Vxayctd6>r8I1YTsij}|4hb@nh2M=bpE0r0_ z)w*)*Kaqod)Q31@d80?&d8K@F{|K8%Wxq%+Iz+)d7TwWd1iz)9h)u%5eG~Cn|Ju(t zN|QYHR_}&)!|Gxq6U~Fn`Qh3LG{xC8G-2_kerAfHW?qJWEq{bnohcA&j;!v zOVlLp7Ny>WFiy%^Q=Cw`8V=mlpo8pK&(u5uKz?*>vWdG{7Oy?qCK8F~CE7AoM~kyh zD&tPk`u)>nq2lfBpow-fHI>ux<1=5^AX|2?&690nZB*1WB6G;^3}ePX)*09t|i8D zcY3hm)iceuK|7Yj`Nx*>r?T+FPfs(uGCkN)2$rs$Ay#|lFMVV zGVxS|IcyU#{YCtWzk^j0@_@kS)nSM0LMes}_D8aNHILUFt4BDoS-Rqz>_KuT$J(FL!#APimv{hBniz6Xe@C#b;yA_=y_vZMZ_! z?sK95dXKP4fnGv^-u@>0@U*INg$Pf!mW68Ws+(kDA!ev@q;-r^Ck8cj@xuvT z{WIo0Vo&zo@8Yh&_15%(#$$F&#|)NJM7GHoSRx$G!nbNi#H&wYwV6%KAB#TrfVoc} z&Eru7@8vjkCk6D!(LqP7PapiMwm(JOZ$h?}M z6=i=7VbcDqDHjMi_Z%Po?zmD1Zff9ohiwhJHQbGBUd`@rlfyiEKRkLx!0;^f&rx+< zWRq!1w*{(GM~>)~jw~IzTvsLPfuVDe_s-{UJoK+U1jl68%1aWP?g&qk*OpJQkbeU& za0`>%77o89^jQ?#o{J|xI(&g{#JzpiF1O=;bGFIVv zInpQ@rBT4{CO%+`FnFS(&ve?%j*JP|ur#W^%iA7)30nEYVy#nemG)N&sk|7K_oPO@ zzN<&Q`JSkG{^?=3cPt_pj!m9O3!rq&Bkvc&;rBF2b2p@i+9;4@J^dgv0P^(gLb!Gy zERa@vA)QINEDx0S4@B@cU8tC3*YaxiK9y)EB?=9X^whr6h5N9$QXoR5EYx8U@{|79 z?QQMaT;&c0=9XH|G;l1Fb-V3lq=u8p%ze!HOLU9WRVOf#LkTpJ9ITM^ob$X+U+mG6 zxWn~bJMj{44K~$vIrjXBVgsQoR;d%q6$CAXm~^CGeyKz1XDa6W^85rhu>NP>JKcFtzM6>GJWEg^SD;&?m9uO6mvOu>`y(T6tW()1cr!`X(;PrjxW2{AL zSs-PBFQ>Ryqg5VoDSe8etz!RX7MkNdyzLcz?6JML#nhuDGxKv*iCAK4pLk>O3?3%O z7Jj^P|7K)juf4T@FSNCgKg!hDJ{P+Uy{0TseTpj}&$+Q|g}6dHaxvS#E=pFK(jD27 zEs1IJ)UJ21;4uaKmQ0~xk-BFQfhuJ(hp|%#3x7ZfpGXa%%)%7pxVQAT{{s{GSdh9bT90%+zG=wgRfVA zex{y}6C5EW8?lcf(u1|@W02sJle*yMJ^h9{&3|eB;x@T(MPfXUvoTr;T$8Ip0+YPGqxQ*lli~ih35+ZD+@9wy>22&*5mt}Hk z*0?10Ih%jm;{t@r35$~7$l9Vs}6IFPj+J}OMEz*Yx3LY(D z0Rbj}#wBn@D{LI_w?jd5R3emAScuq_Rq1eJFShMoUxJ;2xq~Xf20MD(7%Vi-AJ)LB zvBx~6;;c8eD=WAv!iO)y2|=nXey5AcsjcADBZs%Ywmu0k_qIwDjat^2u-amE?_vNb z#vMBlFQa1@MC?+D45`pHa*aUnr0JZ80z)bf>K??Z)@H>1g9)L0#bk=WcdBfBexr4n zXU|Rei^~ts^AHjXDI~He6nyEq&EK<79N`hKJkg5$1-~H}M(u?sHJ_(wVtF<$dZ1Pp zgV6Wtnee;d%~Ecq%Jrmn1^m;=T zc>B?Gy>^jJ0tInw^bJ_zp{9Ikj|Xa>gtQp%kg8rHg+5Yyib=ZYRj^`gx*}>9OPXf` zZjch(keV{PymzP6@BxJi?R~-|F7h6oQhiiNo)(!)igrq^0BNkdG~od%p5g(957fOM zQ2KDhYE`20!~lZWj7@;kgo*+7iHX>^m zfH*z`;_Ly4(|wU@y01}eh-}b3G5uz+k7x$`U}f@xh#Bpo=!RsI?By5D(81u%@-l2+ zy*?3PGBMTzgDT;2n%Q_ARENctYtA5{UL1TBCT3$wOgT#RuEgeyQtwQfzNZDs>WAvW z-`Px>`Jcfy>0>(3=Ub82oX({6d#^8^5!KM;JB#HO;)x|JxA^d`*DOWULFtBV$7V(i z*mC5;lxP#3hA!&|SQ2871my|9LmyKH=>Sf?5Z*mOMy1~UP?x5pihGK@dWd{}f4wdN zqYgFIPC{UNboXRZaYboP>tOS)IBQs52Thif7QBY8NgH_YC-t80^;>oBv6v>UW4N26 zaH9m`vV1~!RG@V5o=QX!!yk1@t)_@v=(3y7`=JJ%lh7>PJh%}s6{XY+Sg~I^HKU7s z{XdHtx*k!?wW(&Y-2LR}lLVLzG(cMxvD~XYj{9>EOV;m<@MH5$8wF7O=(cFM1F8TH zwyzGep?2AwQ(S0w(G(nDkL5CXsVzg`gSne<_-`yVjh+r;;Omk#^^ zQyhQxsC1aGMD7nJhB>9r2mp_AYUMbos$~we)dd!T){#+jh#;$J7pl zix~Z8&p|U*FP;Adyw>)}YSo%~+UrOojebjsU}(K?b1wjS-B8U==|EikcepM9B17l9 z;jy$@0&9-4je@&q6#l-0a`%JXf7(kMDCWW;_=fP)4#U5)3IY)$9|*`l%wvCRx@xb8 zMsWCeV@KNu1e!tomJdQdF5t(cC@BC0)R%t{nr;Q~Z0f%_SXs}v(V}&o+gT#0-@xw) z%(T2@Is)mil&0-$oJPP@(1>FO<@$}L`J+0ExQU#N?j-UyrFWu!BK|>cWR^8c!Dgzw z>U(z4itm0_dlC8HJiDxu$}g~-rn$G7ZgwaTKFC;NI7=a$GjwekXadro`Yw}f{;oCSYcW~Vg@*HmUR_tt<0bOBv+?aEJ1zi~RiX>D^2=ZY-Id^SlK zqW5-TiFm6F^{Kr=W)C=+6J-l4jZkm4Y}Rgd#6-PyHnNG7_AK( zZa*Y12kg=w$Ce*D1Jf1J6k>n!(S<)f^5((mX%FlUv8Luaoz4icZ`Q6~4EWwg2O))W z_FXJzN3XX%j`lU-12hI$G(xXaJH<=?wqR0Fu%n_c_J~S3x}s;41=u5Y3=TVrtZ7T$ zY)n74vA)0*Mqpj}E4_bUpIwpi>e>4Oxpr#i8jvZ<&h$i zJPCIdb#`7EwxRX(U)_-Sd+rne`%f11|6Oa&LbEpJOVYSdF~)~-@M5cr+@D;l)~5Tj z+U~3NvqkJi%l^kj)%%w;2IT9+c?iVn=Z1t9_>um)Wg|;NXX&Maz*dtselp9U7_E?(y5xQB~8$h7FBTuNP%jUELcLJX1ma8&7j24i5xAlaW;b z>&7&*47c3_3+YAEy2T(|FyoTn(bDbM7e7G6W8rc|gm&VPJ2K>Zl@rn{dWQ%jvd2O( zdPKb_yBaYOJNHG}x&1C2M@`={UJxQR2R?zEbc(wQJ7D8A`KE>}s0GOY3j)BK1D*t2nGTC4h?;U-`Td@&J+`UJOR2EZBu2BC`z$>XCZOB7qMT?f$v8 z!#gJ_|7BSy@KIAam~)KPzL$Rnl+g<*`Pe7z%@cqjU8LfVp8SvEmq(D%NpoI(79lPK zG_W$1pj%r-E=q9hB>Q>2t45u?bW7z?pmKTim7h8`%a3PRBN3 zMbE8)OIV_ASQIp&5UFVQpMkb*^?@{}0D21r<58WoT|-81o^=xGMQRQe+5rRTCAeD0 zl+`*1R|ij1^afH`$?u$Ao~yY?b(qZHq{q5g7Vrre;-Ro;UuXTnQPVPhcnTpT?Czbn zgYs(**JTkXvC{FRsoJ7+h0g?bv#%TsH+Q2SZzfH6w>I@$p(&H?URIwPtsi$O0& zmJtM5w!TFRWlvq!aR4*fZUkr)3U+Z|0RZ^?zc0oaXA-2OhY}0?1GB7g3gCLpQ~A+) z9R7S+F0Iii5R5MX!j`&fF}g*1=pFsF{F}PQHI>fVKPgY(VE`P=Jr0&3ywH_OXlfUx zQ3kS7Yh@NfVMeOX;mZ0k%9A%fxL%D(mKB!wR@~psjad_micLZ#J6ccRl%&o@`(+To zZp(c@KTPw+MgU>&g%Ui#I~53xBu>9Bs|V_vs&&U%Q(!L;=rG`($HHp01IZ8@)}hTK z_BgJTqvZwQPdu?eYbc$%tRc)$n@+{v7V?0uZZ$9d^xezidWVBiu?wI&@Sv8Lb2wll z3q^0VQ=G$7#GzkX*&!>d%^HG628utiO@y)+`Y@)BfCSq-4CSa6ek?MBHIk|mg|5`Y z`Zebl*25~Tlr56#QTxQLGgvyTZe#7?+N@jXe^oVjXIOQpdZ#Vc zWR2dAsZkP(>J}31S2>DJ(tGYPe=MU4 z0gR1EWgpmf3EEnFtJ8%y52Hh9%I^cLHx4jD_FV6AivFx|$>5Oe)1S!U5Ci0}Az^0? z?_T!7(klw@%;Y)97og$#2|jVVRH&b>3$Q zNXM2yPwx)%+KYj7@kXFEH?*%DGq?uql8?Ip$>$t(WLrY#jOR2kBY+#cx-Oq_h;lIn zv6wRHy*Mj%Fy{7R={?vmY z+yf0{Tf$xVKvs2ttd5Pmhe=T<_}MD@0{}#QRW`Kz)m$X!`*{hP?F#^M3I9Zpi=r5? z62>F!)QTUCpw>mPcnTkDwL~}#ar;ea$=;x1R%E{rP9xNv&{6&RE(-V=r)PuZm@aM= zP6NQP$d=$_U)%E5-dm-^u}_WU<=1Mqmp7w$vTq*b%2G2v(?(WYal%A8n&}{d* zh)#fOWlJTJ;y1!+b$E`_ICB};3d2z@ypufy`3ZQa@t8gJUE_yM+Ft6HgywkVM89*e{Ij z!_cDC4RRlE|s4ggkbTtM?!drg9LTWbpmU zBlVX@UEoKfoah>lVvn#*FmL)G$$H90Vwv@NtyG zAZR5hqbQfRcl$Ir;ZyR^!kXxyg#aPTYncnYS+d?K*b3``>+XmymKPgnFu_H@GyNa8`M*P5-e`Y-<_ni!r_LXF}uSo45%IF&`bd;oC`UAs_jrQ3+I z+U|_%+)hYFvG|t^^b+a@ZeF-H)kXW}GPD|ciEeUL9#7sG#G+PHd#~w=BUY$BuZb(3 zX|@+W)qL8J$nZC9TqB6;!zOI(C2+sxMd4P{+dmv9#LBJZXwaPY50s8BMDriGl20b~ z+$Q6xOG;;9wUzS)grj_gY(4|+Rx5?h3mKPX+e$Xpy&r@_e^n=M9W_l*-!xZ|>P%fok*7ie#ttuiJzI0(vrzMkAYd{spU!=u?#4baZgp{7xyE=f*D} zSM?GJf*lyz#a-3nGxTT#`B~lLa$?RyT%T_{HxY%+kKpEpEHdQEkO|Qr2MCU|%^Jte z*`f)LGR4NchAb+WPo}D>9_f8XCD|nMuP;K$%r05vXM{bIa>BlO4(E!ALH@5|tkk`5AXw@j;_m2o=JDzq} zqxnyK_K8J>ed3kA@zfh>DHEc?qLsj#|3OhS%*Vu(%8SX=j1yOb%~K@M!9}sEp<@n` z)qoLxUTwSTvZ9gc#u=%bzB{ei#HyZi0Y6`Fz9VELjuA3_YLD--ED-o1jX_6MM*JR0 z4f5-ri0uAnM`1e+1~H&wCtfh{uaT%2;;3Q>%l$>08=#RpPQe%}_0RXhG^~m%leHm9 zLpBX+r-h=>0)e&$h)hM1U=I>0L3*jTI#|j_CQ0l}R5W7asM;*z1(_OM6n8Ykm4S$4 zvZn%7LXS?h3@y7&ARq+VqWq0fGTvV9+Qp?P7Kq^c+WUcUvI5O9^T$rjwUtEz-mWO4 z!9D7dH{V#k0%R~NJNGy+Yls);O*P<;noWP=W#cTz9)G$*u z;KWT6kY&~*b7zbsM7nFrLcJoC8x>S;JoHB2j`&QX$V0@?DyFWrnWA4rn*MTQ57dYE zO0RvKWu^#HHvQGQ&~`_cEx#C)Vp%}d>tBXfY}}KxIOfK_=<>PS6IP{ltqU4z6y8~p z`wiNN@26k$RF~9DvNdusO+z+x(4?$!>h))Exd|ctY;xwluGv=MD1P=La8}%nIngB} zWAOckO+$@-dss6O^>7JY7U1&ZkT$xVk>}&asfo|=^{;B_y4|9SWujj*`x!VMZ2P8e z@4%zNvXlSOJWU9!slczb8akWE_cT8F!b1Lat$%=Otoiqv*T4Kn{%hNZ=4aVH(U2|p zdnejkcpa(EeVF)Dy09ZX+N^(mS+%XvSh-2QtJR5vZGQ?K!gCgTwK-(Cb^bM;Ic*)bMd8bR#I?y$h08+Rq{B#QGs#`Lt$cxGe{JJtBX%+C z<17nB(2jXNYc(I=Hopy*wc+VW_BT9_oNoFdQW>4QEj=b(FFs|BWl$oEZR!wnqfa?a+t-`4@D){BR&N;6r#IMU23^h7|z0J&?L-eQvo zjL#Aw%WPCE5uF_%FcnO zg!vyzyuYUr4$hyYc|FnE3HQ%i986r{m7^Ukyk_s37wsm!NlFB#a5rhp*LgfZeX_RH zHI;cW2Wpeca$9>}67J}_Qr^1Vz%}jY!L~Qs9KzM%7b6Ov;dvSJLbl@fp{p8Hddyy9 zYO6Z7K_6s}(s5g#u|2FV1n(sVTMTz@rCM1#3G;Tams+F+nvUx7j2H{6`juF_Mz@6>*B^LakEPk* z*VRHaRQ@Wr2hO0#IDNChW<4CFseSDMGKc-P?4xn; zij7gH>B$!114ib?(^T|zHSkt3Yc}w`WL`DX8Bo~r_cJC4y^6@c0(^>YEG@c zXy!Npb7j?efNawbMaqG?tdIJIWx5XaZJVSM3ql`^h)MJ0B`y$&s25T8aNIgePROsJSU&oM1Srm@q0*XWlaA|v{ppIHI+qJEEn1y z&|)dc&b|dbI~lE6|xnkpY85hgn2}X!u=W2 z36j7;)stl382kIU|JjF>M582W`!*E6>zRI+8R}8Z3>d1^J7h9uu?kaO03V342+>YC z-53o2!m>(VTQ;!xw0=+J%xcf%1BzYK!n8~3k+&*Hy6v|G;{D|`G>_3I?3vYanAKe6 zCdDj}7%AR*0j z(!knXnBO#s{n8c!xz@Lh3mw$YKfOk4l{K7I?6g*Sz^t-MYn6m-vI?0S%hII(WjLP6 z{KT~E3iJnuB_aknMMlA6c}36wHcPjE?RxKKv0dk+^bFt4!`e@$6{>F9Z{YZp?+@5hSP&6^EUoR=8eV| zr+0igTz3^xZ`RC%?2no_-8#yxmugzkCCwNpk@sO4J?lw%qnMedbmugNK3D-KEU5o7 z5sTZU{6<_Fv0P@M*BuBs+$;qd1$hfGVsnFB(4;b;!ic1D+_jJ1RH1C#uoV3i)=&5b z5CD+{lhV+nLS4`36qLra3j0vY@EfX;1;iUHUU3QKU&}RXWnI>WpW6SUH+^`a=4Qtd z;X^W+fD<@yO;CPXQOv2UheCJD!OvBIjKtPdP$S@ zS6Cn%gq{eKbgMg=f4V%Ujw|UmuP>PtP@ha(QYzS~+14C~aGq|RsH9o(b99v>21w!- zNM^J@K>#`Fg#w`4A{O}Sw5JX??;nuTG%=+fHxjTkx!UrX9NMJ=Qks?(r>rGU95C>n zqCP0wKw<}_0|ivIUJp?pbfnrx)}OR)y_py&SdYsu*L-cDDOTo1+%PKIsUhRc zY(y1>YxTO+nr30KMPw6-e_8~LyA4gRmc!Dv4H{Q->VcAr16G3QC%j>swA1E4a`HE* zZK}h3n|pQp?h@+B9Jq+lO^=91b9hcLfQbW}>XX+kGPS|8n^#(ySQC;=5FqJWp`UdtZL$V*T zKXAQt#A)0Z!UrJlPl`4d6Unp(Iy22iPTuOXyB<_HSbMKxs4UtIEBPTVG0qXfTm5V=BNgbp8B@)>!jR667k<^@- zg@>+~amB)Jx$*PrhRsuoR5v;!E6=SL$8Qp_MqFmJE)JXA`G0_W0w=cRN0A*kQsj~Ka3LYgmLDQ zO%E((2GZIeW0hw&OIyHWYf=Z^(s&Yq(9^mFF*S5V{t)bY?$#uM-qB@!j3APVK~VJzdmQ>!f?u zg8@=ITL9$e=6?3o@}oER69Nnji8(MM?B@VYouIfq0YzzU&}=lS3{V&c2G?k4hr#Z{ z-3V$Um(SO*NvN@GP{}V0xlO&mC*kw8f7>pA{dwWts|u?Ad%(<>?>br~>_aqfWkVN1 z-`+mliZpQi5HO3{5d(c*2>WmX65561)N?#-q#&&ng-@Pv)dL#gb$hKm!`T zfbl8$>BO|6HY|~d)yMsaB)LZkEF)W7F;6>YE%&!LWRA+1zzO6x;3hlHA@oRa918@J zTkXoHQ(mQoUUz{4coPaRfda)OJJucRLr8yP!}otXeHg3z5jV#vdXivsw|ZvL^`!tRSrI7dNiH2jQI%4QB)eb>uYaT{IXxfPrLanXwFRWC!!m@YE%5f?iX zQd6t|F~_%neooQSz%feR(p$u$GK_?XRJU*~58;!V&)^U;5@%d2H?dn&{~jRecNoDi z-}&wA;epaUv_^}&BdyrjQqs{IEDtMw`DD=xjR7?i{PI4Wv(iS!<)w)L>l}3f-e$Ow zO4Rkl_2~-Qxu#Z8hks6QfKK6uu^JEVGe>PRj2dg?VU}g9fG-l4^n2_a<(rF%w%UWy-FX1@Spq|93r};Wtt{qWRd#kxH*SYLlGBDXfiiO)(1$#R06g%wM)Uy=V6W( zZi2E0coKeSqX4I6=@51VG6d*r-3cNVjwh_dfb*+M{y#6mOq6xpJOBdced_$IBa>FF zxc0xy20jrpTWK^s$m_1pXSqZ{BPidf#`<{mhv zg6aRZOGgmWIyemCGSaPp@EPBKy5cr|q7s30P@SUNS!=RJ@_!aCM!wcDTySx2N)7Pdp~yM^{TrPk5)})_ zsM*;NYJ*nLYYDO52b8D@wD)uTnlWy^>#StGAQr514!$_51^CCP8CE`{J)4oz1mG?l zkg{w1^kop$22+)xCg^)h@Pb4o4gBMcbkO*Q57)mq*M3mJ1jFfy6T}>oA?t=7TL+2S zm7@06*4anef}J6hCMs;nIwvp{FGJ8gnF;`|Nk$0#j!AUV%(Ew+5E>P=ux)dqyABa1 zFHyRwp89!taiiL*MAoLn^ia0Hb~D8L&zewJ3=jpdnq*jZ=v)PL^ftf-3KG_{by@aU2UDbS?k{fZxNLnc;FDf+dI>Q{M-C z4EEf_&(DQKr3^|!qD+GiP79Y(VC@8)^lZ0?*Y}m68AfRRNON?c*b7Vx%bkTSF$|1H zCAaqIC>ubymr#8Wn9p_cDl28$DFI%A6JpqB-7T~n&RqFClx_i32TgUiEKzHF1Y`a| zon+Iu{ErjU4tBpDeijA|Y+9e{qKluy;CiFIS z#2E^OYKBDD1V*#XIP;fuE6sFOHlgmCw@v&W*@5ZSTKOd7B$hDE_=C!5XyU1T<;?EJ2DEVL)x!!pwbqo(`V*hE@?5Lz-0X+Cv z0=$0>ou**w`#WU$jkYZZ(TdK7)PU5iXcfe#=-0EG<%E0@x^y(sY0|}co+ZK0^*Srdd$ZoyVy!g9M4q6j6wY9~bhp6%firdm)FHPaoTFJGXc*#&B8VqY z>UyELiu>w1$%<*Mfc48ZVkka})wnnJO(9%aGUpLH6v^Me0o)FbZKE6KD`< zDD<9Uqp8vdY!7Pk&g0$U#xi%%7Atr<(~P{EJZ;gS>IFBu!^!9l21*AK6C|7? z&i|^4V@Y2PkA?X=8fUg#+tiGcmlUy(TfLqEq_`{k{!Op1|Ed^1z?(F8yyeAfFRY%U zila2Q=Kl9|+yXe?F-mV}ik6N3FG;7sBjMAUG)6!pYCOHvB}6;5Dvr7La$j=qR2W!G zr02F@B%JqDaW6HS%Sv-9G2$>FgVyCh@rtU%q9e{zK|6?<&*xZQg1?z)*5K7 zZkF1hQuyF*L3Nu(^&G~anirJ2W{}qrXxAX|+^L zRJo+;J3>Dya=k&f;bd>1x7G2fcLkcD^QMBLPl{k?wA}uDjq^eFYKo}n^}93#G4tZv zpfysPJ>*(o`i$e4J_UkaC{YIc18@YL%a2H8BlmwkYam~+8=XJ#h?})|rAGU#IOP{O zE`r*gICY}HjncoD-!pn!fT`bp-fE4rFN~9vpa5Lpv-+7$85= zRu87;|FBhvl)V2#InzCv?m?tmrUgzX$fv0CFyz{FZejk(WaOH5+?MU*h}J`=3B zbo0actH#hq4DOM6HwPR-{4suID#k2NO>rS@7Rh43^TwHR;Cc7vX#T|W_AKVktKl5# z^20I$S0oax{s82M$$PV~H8T&Jk8?E`Q^sF{7I3VxrV+0@wXXXW2$i#k)xqpUAYobt zoSfq?1zbdF3g6wIF{F|sZmZ({LG_d+0*GG3Lo}9K{tbLl%Z=kqv$`u?@gpr+i_&66% z$hP^3oQk;KTcPS%&;Q)UXSQP*e4Gg~nYi)}0x16E>J_FY+$t5Pv1qyJY%Dk(q1L6D6Kkr&r26%I+9Uby!@b%`L^lH4uPHU|Gpaw%gN&U8yI{m4ZGc%w zgz#qXJcn$vFRV1Jy}1?r(BCKCQ%JmD*C6@3tmO^WH7Rpre|s+@g6q0JoaZR!h|ACt zhI+Lpn2)B8yGJ+_Y%7??tsgo7r;rX+pk>^5zkwB@N{?$62HUaxpPiP2^B7LkqUPA0 z3!FZBqo44P({k27DEicQ1(gf3hH9^vi*s+(+dr%!f%-eUDC_|ElM{U>1fB~xEyH;; zvK9&&7bs|Ksz*co{P?WZ_0*PUQL*6v;p@!HX;MiS?<|e9Otg&FF+=)2&hs_7_xt(d z_n$G%Yk5A;^E}Uaobz}*m0KQ7{ssW=6u~}Qw;j;83p;at>HPy^r$15-eT;f1Asr73$Pq$Wg{grz0zxV@(s)iK$-P@@jo4 z8bHyA>6-B2!&>hH^5FRFCp}i6|B?vnBuw+Kc#A0nxRK-?rzJoI*#MGAT{n`?k^NFfmxbvk1g{Wr_~Gd`dQAQ)i}dje+HGQy+vQI6z^N82M~ZVA4LJVFi5IhJFC* za2bn^$!MYQoS&rmC%dbQGvB0sVLJe+c5n1kSig7H5kOa9qw38Mq zyCbM`wQNBbYrvt+oNNFC5n>hS`fLF8i4w7_>u8Ol&shD2w4&cOp!A`6T~%DB8B=Ls z?w-`GBENnKfu5QaYM`YFT%)Q_fE}8#G;<`}R(Z_RPqLf~4&68{Ep)fTr+;Eq z6ABL5w=Thi`+T-|MVzR<@E**VSYtdl5qq!hK8IB0?8Xl#XOG&C5&{BI)L13~Fbmwz zI^~fEAuh7~mo;&k4B!+{EU~IfW&vHpoYgjvIsvDHV0*JmV_-4TASMfwpHD3}Or2mX z>0@v!YXp2LdZ5qNd&4D>Fa^a1VBLmwZwdV9jj>8beV{j!8JR0e^gwtMOO$VJNi(iE zD=q{u%`GD^DwzHNG@2Nwik)Z&w|02jj84yatna!bCe<43ap-c-D0E;|Q8WyHXnkbs|rpWrBt-E#Yy8;4i*Mp7m zf1gW~8%h0A`Hj_hMK8P}(F!#D3j>Xa$rA5ZnRsl9S->X?oXO1RLjHc$tbSO;;W6*0 zjYx$q(G(d8wIC-9MrlDw{u=sr@CQ)Fn1_Us8CKa;El%d(h1B(PA$Ye`$xUxzwDB(9 zt<9IsKFmiOaKblBRA(qeCGBMR&!Zti7P4#P&r-v)DctQsf5gokKmFVw*5YZW`DquR zzmNMV*Tre4dU-ykvmhMr{I!8UR-uK6Vx?=KDMS>?S2L=(fhhr)k!TV8w3#7G1OWCY zuUGr&tv7|;fA4!)mhkB2F~e&9WNg0)CuS2z%ebT|mxmxjw`kP=K4-1rsI`1@u)|0f z2QmvQzfk(n)dm{Em#~C^>*l9Iqq4dHL6V*Hb#)L{J`vo}!G)$~^!h_f0zo{Ow^T%C z5)BN#QN3inopYZtHoS2{{_evs(O!&;6>%49q&77V@Ja@=r-O?*%=fqgHR3={MNE3^0s(7VgaQqx(QqDy)CfY(}Txlk-M*P zH9#Ot5(1Pridq7%zodYbm2{MGhz7X%f%_vbb-v*fCwiyIL-@rB}hc0griXHZ())Wph0P-JUz#a1AQQlDVl}x;CA?qc$5s7 zDU;+v*DynJfdhyfHKW6AkEJolNBPXq11})6Wg-xeTSZx;Q4HDx`%H-m@c=>W&f{t3 z2)tHKg8(Iil?=s1=Wr4l<_ic`t|$4h5+;-|do`1dCiMnttl%idj$m6Hk?^^8c@!e> zZ**+9U#n^pno9?f8z3`EfX0+YTmnjWz;FsT94o-=5r%`tt3vX~ziD(TKCD3x{{gH+ zO*1o-HlQeDKc{RkVpo^M0)-$Xv5+37C)f``1tJufGJbL(>t?3BXrrsaD7A$3pRh+d zKK7G^uI5V5r5YKFV(ZOR^O)BqYeBgX31EPU(HD84pf_Mje#9qecGP|%^0iO;EQx2D z{L@d{c%O}WaorunkDo~ZuA4&B>WmoVtNa8Z)Qyl`!H;=Mu~olyVZ>X3$nF6tVG?@7 zvpz3nj8EMpCPUL|TCK&pXgwq+Oqx|JwpKl%Fi=oe36*X zSO6okBL0Vo@9N4-jo5sYUKN^J~B zB`K>jM@J`xZ$mrc4AhCPY;HK|S+nRi36wLo@(xrdpiGxvnm2pfnlQ%!_L_&QVw{>N zD0ujgkScNEHTTl!Xqd~1Y|8^g-c@+Sk_Jl_r3FF=BWp9K{U6lZhsKs`{9r_8(m)}- zc2o=Fk87zX6H=`w*bVZ^>T^&%*hr-XV`P;aOV?fDPMRWRfV{amv+ugc*~^azEgx`a zY3sT!+5lbmSr~eIXu1JRQA-j&ajXHNb|BFQLnf1GAgVZrNR^9gB4BtCx^WOe(0cT# zIE-H^-0d2v8yam-vRqDRfjX$@s^d)6$JmB5Nv!i9?WW; zP-j1{csqfqpqNbc^r+2bBHAZ&LsGpcEG)uM8P<*r zbU4hWE-_tljtl0)@3pRbgaTo>UgW#XX&1PPMbtaSHdrupnJjl%SE;vk-FmQx4C)5f z|JJu1m?gINCq7f35TgLo^d8N# z+_`4Uc}%UT=A);v`Z*6{MGs7+9HtM`7CrM9)amA^CoiOehFtSKgwIznzCS9#O}&1X zh)zHQ#;|mD=KFmP%2TE$r7qtF^2l>Omof?lQGEtP%*vv{Bl`pqnI6rs_Uog?Gb*;D zDe5~ktzS#A98aAk0R&gU?W|+;i}WrweO68oGiRU?^U#hqemFm3a`?7Ww;h3%a)y@W z$PO1EzB?iWGzUAS)-U_Vu-vFQiZP)Q6pW{ZvTP5OWtpUp#+3ATFXRL}G*bk@jzXqk z18IKVDUGQwlZmHl%xW1k^$XJV>dBiiZci_CjholU)_J6pfHwXlSQTkDyLh2k&8@Dx zBsR&d7%X?DG!Y_#tI@+{NemRCJR7&i^m~`NA5DCs8B}W%dmV0FH-}hdyAzohs39bK zc%x9(D$r7%luVe9`dB;C4hbjdQ|iKf+xk%Z^`gh-HEUdhX#FXekPsRrUUNg?lRi28 zwW*r<3zAM$hrk71-@}+wgRO@$T2_53XjvnDt2inWHA`-96-v2?8o0_-ouFTzX`OY!q9g^OMMQpYHlLif0k4aUq(>O zL{6FBO4k1Z0$I7uFAwIDin{H184a*I2zeBALnyx7)#f>(6u`iEy(YEauL`2&B> z+T{4}GN+%%O5u&8m&%$0uU16u1C*&fLE+|0ZNcx7;n4WOSq0Qvz`i6d5;xJSUm7j0FIfdw!>X*1tYFeB`Am9+l~uzarBF7QG2%W>jda7-E_?(*!pA;Df>KZQ znPHL{uRsSQ*R^0FqdG6-=}F0CRTnYKKzCNwV+UGkeZV>;t{vwX;O{hCJM=fB*MQZC zMY$JwrFq8pqyBPAL1Jnq3rq(Hns(Q!Y|E3P&Zn(Z)^eVJJ`yuo3?VAp(3`*{!O2y~ zGpYDAo}?^TuK=XTS*cieKVRz&i@x3MKSBR$K=L29SRHo3}v|J{?hl}-2!K# zgZF$632n0pn>+Fn^%`seo%eM&a+gd!huIvbo>S7r#QPey_kq9&5ja1rc~`2Xq3KaO z0To?XYnYj=kn%+ND~%!iqb|pSOGfsicA_pOAk#acegITe(4pO6O_Fh}KY&aI@&2{; zE;1*lK!g%DN5IS}5wzZ3AbXvS-zldqaYp?_-`EMbSGW(785qU| z6ShMa$qE;-U?MsC$H1A07JMgcv%^e&qAi~kFFlMgJ7|z!ohr!j{&J|C16V#Te>>wS z&k9ld2*h8AFc#eoULF6rfLfiZ0MCSKDX9v*C~O}MY!wwrp;R-fdIWJ{b^XpWxnHX< zES_cMRnPzbFDpgdFO%}kA8A1qZZ9qy=h>>q3aX_p-2!Jz64Ig~MsIh?%SvEu?Jq}u zU|{K0fTfJRO{EettcY>gR2aA0iPf_^(oMO3kyHiOOt%2tGNI^}S(&)r=kx&ku`r~) z{Sb|5qffOyL_#l&V3b5`1hl0Pf{TFvP$M)P8G#v{vLqGNZtcBTHh|?c;6nfeqIPyg z9wOKL%i!5&W958pXV)XXGc{qMen;CA7C*-mFK7B;6YXFTY@l)E68cBjFz3Eq*`-XD zq`B}rgMzQWL?W)EXkgthg5_Y#=o zUIiJq7Fz>&<38|^+UT$cXu>%Emw_RWRusBHmS_eF3J&Loc0YVrm-Aq>~AV_)nCktHm>(Ft#~adnk6=lccnmOjE1JBN|nNnA@KSrWiCV89@+03`P#FzQSp1?^>swW;VicRM#@)rGO?D_5!%U`If^JCy_L?j== zn5-+|9^JSvlYiQi#w{42W1QJ6ftMup0OGNnY3TukmQD{r=OmyG(}BAWNCdrExjWvN{g@bpCt}0SxCI0u^#veXiP&gsbrvtLCq?~|b)ig^UZe6pWpd^lWlStn)`kH2GqT`R0Oqsd$SsF_Wvez*V z^1eUK$#@lz^y1^7!t7bks@!xoU6xK&#d_QZ_jZO#0BVC`+3i`QRHvK0&U${?+MJDc zsMxX3-A405Cn~>@r;Y8b0~^9l+BS4?;@wvU(KrP+4T!w5Qlvhf!YRbQUNv!#UBO+Pukn*Qf$RcGC&>nUH9%ifyHLEM!Wb+;Hg(R4}J z^C|MdHX->+VL{+Y?n2L{pW@SYd|SA{FD^^pvh2hh*>oJsQPMxK?RHB~5zK$j`MZbx zM1u$7KZ=_yh#ws90sb#|dzZ3^#`j%d!*)B<>QhIXzYQdQWC%ZYHA%NOuLuBxZJOHA z`_XXq`&HAe^xZ*M^|Fom{0I&FrBw$QWsQ#5c$(jq1YTM(7;+%DTE(W#`l+;P1L$tS z3EH?=>dj-mk~_bvOzygaF=r+lR+D7?SIblRys)G4PtP*~Hk~#T1TM56H{d!hVEXj} z6(HYo7r@gHUv5TsjxQ&)Sb!fi?mGXfx0{>#%YW7+#vN@DZ@Q3w2;{$zni3ava?R<# zoRXKF3?|0r$uXc4Hm-DyGW(0M>b7WDb?zGeXfjCj0}CB8p3DzBT7&1&%KJ<8etLS2 zXfEEM!R2TR2*^$*_f_wA*%%BeQl^1)0dmV*)mACdqwANA;F*GTc{XbCv@37W*!SvF?UDFr0Jaq&6@h=c1t1j_X7;(8_ zY1NNxNEd_4mqd?r*3|6*3b(sset80($iTvkS7#Hxk5_$ZYp~5bk7oq?Z(|x5!lMh7 zkFaKr)T9&#jU80T9?>BTce?N^ecTtg_M50Fg1`kA^8Yvpehpw%phXaU^;<7dyImby z09wIU4(pY$uLRetL~vbtit!9>^w%@4^Atu<44Sq-tJ7M?)o->S2x-f}LZ8l=e>o3t zby*zc(Z3}&wRW#Wy;j%xTY8j>2WfOp=sEWz5~`{C!+i|zrt94B0)N6m6ia&#zoB*P z-rROW00l=m?yd9?ac`yH$+r>rR@|oyGbtX!Q6LQm6miVt_Iwcf?yC&@3JWcjEgiJ* zlD($-me?;$T4pQ=N?1zN=Jb)ViZ33gvVN+a8wulMrS+T^&@~O&ix(oZppU7Hzk;co zHDi$L+Iw7;=M1ibmB8q<10Cj?hxraS`S&zs?qYL53``>pb@SgwW>|d=l=3S$rRie+ z*g}U9XSOtd3q~q*5UOG!PTe(b--n!6J)=J6u;3cJCJso+aMb)c@p`W(OmGdWNeRUg zXN+Zc8%!UateS-*ow1)Q$|=p97(t+WMk^t)g(8<>^*rR**kB-D)uP$u6}db zb0+uOsF)qE+G^cVsWnKRQvA@??{~1F11u@u1(#c%+1WGQp?AqjP_4|oF{N? z8~yCi;CsTs|B=W?ol?M6n=~qg10Ol8dK)n7AeIewH?3--smp(jXF`lMZNfGcga@v| zGD&#g5vB;tT}B$tmQ2|oQU4D*EcH}X?^NGEPdvSF_GTfIQLWHqA7xefcY^*`fl3442bNwykzJ%u2RmriPsSnfvn6%C2(>|5c(Dv}Q5( ziEfvcj^?My?EI=E%}=>wO(u#3fqP;*$L##t&!61Pi9K>h9b4w|d=j(bF_BIn(H0KQn4$j>4YBVSwfdr$07!lWP>ENjHc6j*z&3(M zEoBu4v6LO_Wz72Rjp@tlU%!Nr;!HE7mZQH^iu`+^_MtiA%=GPS$t8CndA<@Jg0ykN z3egn@O@&wmJ*c+Zf6j#P{Q)NJKK~gN*WQ++LOGpf?jso*0Wl?~o3&Vf1r*ujDbJVM z26UGvJb%)e`6)qNeJ5bkZ8I4SM2Fv5qFNFc(DHeUUGEj+h?+?sXKv+vj~vFCau|^1 z!V>CKhNk1fsTQhXwvfDLtBVyxrZuOo0qWt7g~h3xnp4*ZeNWAa(VXT+hv|HW6Da|8 za541c2prn8Kt}ZdqS)f32}k5R=M}lgE?MfyK<k^pKmBs7Y@P@Vkl8*%3x zpQ93nM~`NwXf?W^XD41UL)r2g@%X|K252>Orm%9k7lq%GP0U4**yPTNvnH-A2(5nT zVqu&cbXwr(IL1A=HnyNn^?pPHqiqIG4q@z7oE93TyRO)wB92jM0e&yJy*e|_s8@-S z>Ks)QAbjOq2xZeZi%uVve7STp?IV99#>IkhIiYrn14l12E)frzQ?1E!QsA|Pgpf1E z^qy6n-+pBb^C=x@gaj`;%5JvdL*o7hbiGVh-R;?MqdR96dnp%IV$C5*dwOZz52nO} z2~Ny#jCgtiV~cApTMjJI8ymcbxQiYu5fxO=tf?c6zK)o>HY5+$zXD4-BOG+z0E} zX;E4}U1JeyLJII>^6the_F6n|nS`!Aj#N@NwU}Ezl#?O~S=42L#F^7-%^G%7OMe%1 z2S~t-UWd@OGSju=G1FTMZs+l!Nn3^Bm4Myq!O>$Z5}sm6EekK33%Ker2Sg6 zQ1V;1*_$P?B4qm~70?>y=7||U1WNA4;n{et^lWy1`-u^tf*N!dWf^y{XQb>40`;pz z$<>(Xm|kZ>-6%VSjpG#I@otM`T7bVux&Z~Ilnt44eD*VjdWVm6+jl9FBN(ak^O;rR zbTA8;;b@a@kuEsLb^Niz2WKmSZ9Jxr8=e*{SW3@fWV_5|>v}gtldh!Z?d4P5kmQhH z3Qz)8Q#DmDE4v$;b~2W*I))gA6=KoT@p=Ey$(aH#l>zXVUrJbUkJVAV7lx^r!L#ER zy*_5}N;3klel>Vw6ZIlwdCuTP-|RyJNd(b4I z+!heX(dBb&W`=4oexlb|j@lQ<4!TmPi1!AiUDAVxw6eq)OAu_|mF$E>Hz~;pa0gvM zf|C<22ue80bw#S*a_SPAOUeGyo5NfQk#=*A7V))_1v71^^9uL>70n*9)%XQRz0}?(qo$)>i?LjQ39aW zF;djNh4`eKTAO?osiSH1AWV_!v$L=`ZX=TmbQEcH5g0p6!=U6=3xqi}$`T~oOPAG| zFae+k-8M{^4lLp!ReHWQPnQ9h1eebT-_m(+Gq>^X7I$x8f2~anP;P`~*RBzx<`hEv zjGJOg2}tI25QZgHcIXHV%8l6(8Z<&*%K$$H_Mx(;Zd)f*))Zm@J4{z&SfD?cS?uiY zU-Yhomnb{On`XG=&(%G0CI4fGX~`!+=_1F~gLVzFaQQNR&i7jnT;IJj=5U>N+c8N+ z_rQ0~K&F)rt%a*^{8mrx8Q>ur-5hzTM_^7*^^>gh9I@9v3t6;9L5KtN$%ij%wODml z@8-((Ba-g%{C@sd{o`?FeDQ6|*8blHZtye?OicYQFefvf|2jL1?9o1oK99nc&}p-9 zM5jfn=ECtCtQrqUOhm2g{pQHJJ?8cHh>@(YKfpaw*#?_NkJ>ZW-OHK?wOk*^k6Kf< z_?H!0c{KL@d#mG<23SrC&l;}oyk$u=N*_{SCvV|j_AAH|GFsD-WBrAS{%@s-YGaEsRpP8&% zF|T);9bal#Jku-|hu#AZ?-+~=Z8r#r@3+}wN-@vsa^Galg#gdJ5|qqzD@g}_&`sUD zXJETQg;5k}mrCa1^P6LmDaO%~mG)`1!}Uud8)fChLY?s1M)P^F zw#ch(QjSe1-;Db)FJ-o5#ZgJcK+G13Dvd{J+~NWj$o?FRG51yr1eX@bJ{-a8)PG3h zt0$;yCa&?myK<;QYyYtrD)C%#?eOx!^y7+^w+-;^N^i}T+pXDS*_Mq`_r6l0btvbZ z-Ri6a58nlXJNv*8l%<7kTQwL@`8cw1aDP12S{X=V)Dm~az5%*2jye&!zDIP;Z){MtcbSvTY=GzO#r*w_P zRYTsnU&aSQBcJZN(jzbvbMi?U zjrbs2(pmg6+s%5Uxm>?EpcNq+^f;gJq)O_>DScUpI8ndDp1olb)S0TAi!%9sv9GkWVS1aZP+H%nWWJ zTi?SLWSz?Z`O5=%5~qu4VayNgfo5;aPKo(od$u2gw{5Yp5I^Grk$ddtBeXn2IDngGX^5nzVjmSZsGD&{oiL9@8XOkmVjW@Cqy zO}~6x{>~2zvO!NX4HY-CvmU}?%1NO)#t$#gTUxF1riJe@p`|}=`!1w!YXkEc+9_TG z@KEOs3VNzhsNC?O{M}O5f2K*wrYXHL3HwgW0g3zjjPx~z0W(|K8p%Dlan<%@XEgBA zGp^a0xHhn$&(guJ++)nmSGC!A*+zRPJtez48Oz5$-$ubr!UWwbU7o>M_GNziWO$rU zSOe|9RddttTi2S$d*30<%)|6f(t*304R`R}T+J(%y_--SZK0J{T7@Zl)Y4#H9JvlJ zybWEQrUF<~gTsQAhu~tDbd6TUrTBV{VJTY8;ONsecEpt4^GY!A6f$uAVset`-jTB%aIdg?tcP1HKk7xFb((ROYG;E5pDmRx zzER~H-!Iz3EgC+w3J*~sH1&itHpp<3((75aB!0@UCAE{ppA8E$0*nNA9H6$^(ILcs zSm$db(~jczTa)r-FHLZlbyu{yN&hjcu}WnNf`i;<=hg$9hiEr(;NFNu2gUSly{{Pj z5i*A474P^PHEUsliO{#C61SRU;(V^_DK97JNcD>{dcqUMw&=?XHbm9?8q2h!`Tevn z^26;k6WXo~Wg@3Q*CfsvI73rIX^bg)(e+zi%GWuoSrn#C;D=1I+q zG#m4uD(?qa>&3KZa5pWNW*N#SF7ei;g@4;|!{`2e0<~VBzV2S(IQyvSek}Hi8_Cf* zf7Ltk)sRGjt8NfU$bEKLt0+JSF70rWnk+f~V4kJ+8+>hac^v1-XZ^{3%XxC>tkK^d zGE{qPiAwm(J$0U{TM@6fWvQg5081%i?1(>A_uqJ~u_9M&pD66c{PYZy;4KvxobDK$ zz8AC4GKUp~Zt?Y)?mPU)_1~cq0TaAO3%24?RQ>B>pZ)kHF9nSg8#a2I+4LqUFP>GP zx2=u!6KjKQ>i!lZEd#Ff`7nMw+_gvQp9mPbwVN?q3C z_k}#Gjv_c(XzqL)u))*I-^w1OKr{Hd?4M6Vy#Dfgm%-d;EW0q;kZB8G52BNzj-cm) z_}UeEqjxh_SF5ziQ>>XdIecI0h@}ssijI%55k(Ju5Q7+h~La7X~NLUN6zd;x&mPPQ;X|^A5N6OuL zuy#swXj{Sy+gue}EyoU9u+eyOsG2hzUxWEqO-z!<29W9#zhB6O=T*@bOG7S#Hm!Yu zhUyB!MVQfJtP^kb5^T5ZIxq5t=h^z*a?K1XH|f0It{2tz$qCKEV7TW`k$T)%A(rkM ztF-W^b(|eZ5o$6IlvSBk)04CIhC^4lp9Z)FTXbz~N}=ZcibIm6i(d>Se{~4{>U|D2 zI-Gh&lQ4UAmLUvdAdS@}h=ZtXZl^`uNwAk{<{_O$G@lm2d(+74S|i-lOsF}ICg@Oq z`EQjb^5P6JtTbC*u=<847Gjallp=&7Z*}r*WG#N&09jk_yAXZdJs*phXmQ>w?OKO* z&n@>2Ofi;KAh2=<6~57f_7=Lav8?ICJB!ekpo~ig%iBo)YKre=f156g*Ad~gaSCT9 zML3MptS0+jcCm^Nw1bi3Z6W_ojyG1Z9-9;*`Ji--ZC%EfCd*RzX5735m+}yD`1oQw z-xm<<2hSl%x7A$f-+Lh~7wm;d(lm>davneAJP~?nwi=K2?>R=Lh}$WNh0>>mExSo# zjj?!CJ7dFDwBm8kiUzYj{l_sTqI5^MliunQ2W*GurP;I8VZPS!76^%FYdBia7;7%tK5W;iQ@V8qJJ}DSZ>=Q99WnOo|LevN zGB-YA33Vyj6H*1MZdW$kR}qTm}cwOKm*>LAhdhH~{a<$uZFu>b`CJ=~z5C z42(#;qO}ojSc(8`IpzNKzEpX4p;YX0YBF-Km><+|4(fH~%1-mnSlz_!dIRVH!k~L4 zNVdTk@SlTObP7fT!ieV$CP#1V!X*C(Ysdg`xL9s#P6@Ng+VKvuC3|e+6s?qNqn%Te zuFa8sKj=|n14`PQ>JRCC$2R$2YA4u=y+!R)QEud?Z}rR6R0(v+Zr@C zKyLZz#Ml%Z33n-Gr*HQ-N+z%z=E&Xw(D<@lj~Xlei|oGMH#{H?aTWp`?iEB&VTdI@ z{>XA2(ERvGi%XcP@lakA|7uWR#iV0i>wTYv*;z{2t){7uA5mJ3R{g1Y3zWC{IwKb)- z%X^ao<$KemW4OJM9n2;6dXPCAau zVIbdWi91IFOeqC~)3H<=khGJzqah}Z$1?ZC<^k;q_Yq85(^h=!u&kwxV!ZP)2wDwJ zWlgEQoh+$dlVmB?f9%r(51PZm;errlJanq^Iee(Rn2jHDhb6bO&vN+=I*Vfd1rXs7 z&LMYw;O8~(v}Pj6)0otelOiSJ7w$6N1%-`9A)mDGkBR z=%u~W@z_5g{L3m8rEC6J3@l+pwdFpGs?lq_%&dAp^qKY$QK+^3jIy38>-~6=HFkpw zlf&SVoBFzX3JrF_=^I#zT|z5O?=?}dsO2iI%rpz(zm_l5re05{OGVKZt5XXqKLUv) zse}U0zecQEd-Q+ro?75pY~kYF4T_OYIX-V*_vYjMH#fHypWJn-b^W@d|1-%?YB@S2 zuVS|wZ`XH|OrDkH_6nis#yk^2w%5ePl0R|FiW?`9C3vPzQ}xKBtYEQM$ae|XMyq-} zAWK}r5S-*HtsxXPIE;~xn=~x+ZRVV&pt&Wj-wO!r!I$6Dmp-SWksz4O?fsX})W3LE zuOt1u0aG07cSN!A2)whWt%Y`Tk&Vk7A#XljI(U@6fk6K+jBkd)dwSkWVgAk_S}ktSPD)c+{teTzLWO0vj)prjx(9B%%yM#UcKl6$6F5MyxTVb%5u&9>PeUF@!x_8>{SwB*AII^04k7*7f^fu`1hs>*@OL zLS8opCGBSzxX&0_ul=;e2WCgY6z(QybrbS>Vw5LG_>YlQcPC8Cwf9H(j*u1IB?Udn z6f1rPj8$>TlBfTtPj?J}(t2N1^z}sp?tHx%&$Vp{_s38S#2PTT^@CN__V$~9ihB)PH2X4$_Dr zW_Xinb`X}9`*s4n>k}7x>G?E52v*ao5Ud8!{(HfvNsIxF;Jp_MBlA8aBEp|>JNu+2 zP|&Q2{1EAfb^1A67Wri%1&+FyxTbaenlN#Dkggs2IC;PShO70hNY_TX<|TZbyaFR; zY@W;JZG`jwx0$EjiY|Cxvpue8o&w9eHEk0X*U|K2P3!a@01MY3^u^)kAqraWikS8c zPs2PPKZoYTfH8O``A1}lhpM+sGnR-<;J%GkSHoy4Ic&VR35HkY8+ClRYH|$>Z{H(3 ztM(mLndC=?-+u1WwopQjs>5kw4XnlgkzI(Q*_Z;TKUOrFkiGkuakrghPxda6w-`&b zbjf*i#`38GFPlgxCBCF* zzKCaL?l#wFYA$LUV^hADiTB4e%@6q9e`?6t6z4EI&2Z?5row=1EptCkR?OofyMW^q zVd)L1%-j#BCbFXhHmZJukT-?GTxYetQYpG%?QMHZ(L4^nMBDW%SstwG zWaXA=QzW9P*q>Z2vqIUhr-9?6RMKG81LX=)Yz*njFPfN-?vuhJH*ZdEeq&J6Ox@N= zE^bBf6Q4EgB&((>?9h;pFGVjgm|5(U^J%&^;U3&0Q(q5Z^e=lNn7Dr~N2_&G&cJ;E zI}J8nj5MWR<0y0XYtx~o2GPlfH|fq^ec7;h^$mjpe;fw{ACa>~&{93+omPkS!=ila zEU9Rxu62r(UerEG*b`Ai&K5f$IAu+alHn5tL%z2zW}9Q(B317K+9LD;pxVe7>Z8w31WS!Wk3w)**@T{yVV$C-iVMw1t zx&juq^&STYv7>u5a8RDlq32qMGOW|`4IlaRIUpBWbgQAKOoNkc9b9owNOv9=tS;uEpxC6N+|sOeIyo zWDgnazFd5uwVp4Ixwn^ zjY-M%-HCuS#r;~cM_U}i`34H-C+P_CgC(xUTN5>38=GQm3@2D_5v)djOC^njEydxx z2=IXl3&>3vXO2AuuobX z`dzB^K{!)@P$SU$uj$nI1UcS+yET2fpTx0>dl}I)DSNMLE1qGQecrC_tz-jo$%T> z0yirN@ey{9R@8jrwk09*cE~7B`FQWW1yGa5yN1PnML$AvqS~^0-sH0rZ?2$0Mq(Ns z!w}VR2#NbMM3v_{Se{9BiEMVzgR%EwKVAS4oVoL+L7GsA?;7U@y!!Bi?~ZJ2Py3L^&mYImnMX|TevN?~9y3^>+lYCt5*`FDq_b`Ydi1k6zL$W&IO zsk|YVg4-E@Q?yF{P7cxhQVj2=fdL2-1zU+~7&B1A0IzAo2m3~X9@*o2Fgb-K-hdw3 zcT{sDLBCuSkjMS;i+yQ|Dr0Tt z=~~eRdvDu#1)2!pHZ)%rgc$rYNQPa5bT$hd9oMJT9EKm~?jOew zUYz?T>{84L-EM&d#g?}eQc{5jBv7m525Lit!ZtMt2Qc)9gN>dw<@SuDD2So<#?O|& z)t>{P-MC@-TSBqz#?J;8^TzYV5)&#|MggbU0G#H|6QfMz8%tE(+00#L4)7w*1Jvj2 z>|>>fUbN%WgN^7eNb#5`t_`?bM|&NbE2x9uJjPf_y$S6sY9`RfoZZOZ4oNl}P{1%^ z6wVOJZ1f|1sNxe@TKdW1f8S@YL=M3c6_=9h2L=u}0#r(YAoIJxP)nc;4SM$ISWQVq z)!ROHT+iBoA(-{Omu+oe-+h2W-GCI{9Y7HJN#{%cgAnvGaHQ@GM}k|8Q^4BD zM8-N`MQ%-uPK{}D=pUB_*vWmX4^|Je0%|BATp_-JS+)7UteVCK2w)gs7JbEGTq<{? z)k4`kZ^VE-)%sL(Tt_4&({-2(?;=fPfBO9h$ocfIyYGT18xqlgFX?peF%ArUV4Nuy5}R=w|={Rti1%^4^am=-fCI$q{KLUnJC&dE+Qhn%& zzcA4+RPL|QI+R{Y73r4`0UZxGlEorDY-T7y@9xy0lZ`J^QC*+ga1g1Z+{tF?UW+-E zpdIQj8Ou<0B20R5<4!J8KY5_VoMMMFx^1=h6IA*XXY6`9VqFy%oE9pnBGr)Lw;PK= zj?#iYl@l7r%=E<@ zw{3Ot%V;r=qg~L@s%FWGAUw0?eFxBvgJ8YiDaD3U@cr_&S+R;Hf{n;?J*RIeI_16v z`W;_?PdET!m9K#^KJ~sZv=5bF9sAKFnHm-*he9-4?s38=0CJk6($W6{K6q3 zxW%0IVo$YzDn91lycoLgU=KOPZ2NrAy%mNA1I)tGVp}&-qE(QU8$kQu`w;)R+(;5w z&gXik==g*jW4006p+u!m`>B1SUDu3wTpOaPM=P2L&F{kCsnSpGYOd%h;rFY6D>Ls^ zVLP-?e$cQ;=}Qd%cOMqoj z;p`#@G+9CWjb;!vNh`#SkZT+Ad2L%%>Jwoakh)K6Q>T16d`J>Bws>`TuD>~(Bphx< zvH1X{KN~yx~q>1vIX2>+(vK-)&l&&2RG=Fy1960@^ z6{Rk3Smm$i-(<1*U6n36`c|&_D55AQzPIR!ASw5|WG>ou{oG%Br1O z9lhYO0^QDqE-BR=V<+%HLyOV3IHsjJVcO0Dl;xx2Vg_k1IK5NCyCkDkZr~#j zlw#5okJGw#VPV&Ik$`5QvR&EY8u`bbiBXDPuw;*_b~KFv8#1isVVJnqA7l&`GA)$X zv@ep+*MSLT!Eoa|)zslIB&6-oAKV{*LT4V^FQOE#m<&nU0JX?C0MHU03_k4h1xS2;2u5)LN&cIDd0l-8vSBp=kaH7W$<|t4Hxb9C6OiftB$iurWVU_Q1j)K^yZa zMH?*yG|@GtQ3*y=O;X{JTMz~DmZI`m6EL@)%t%linPc=CUV(=gRo5CVbwx^l7!k@q zbn`SyX~Ol zIXN$I!@c&+Wl;vAQWr(F77KjPPhuw1LYz*8eiY2=Q1wMhK~d*B#Ex0zy;y((b!;H! zJGo26SCoq0JB_tO5h+^H3w8SKTv*-L-&m&gHLMP3d2d$vXE!Pld#>5-QZzCjh3qW0 zdQm^~lRU2^mpV$m(>zlM*(#?|R!N50ISJyrhKr%KI#iYSX!vS}Hl*-=q*ktr2b=}y6bb-&&SevcZn(kqWni_40n zUHt5>w!M<)6p^9q{YpkpLHNZFYG*Et@%OKIU96;XNro4ndRo#DUBIC(LxXmrsbPtd zRdI}k{w4HV@~Ev@h+^PT71UeO&mVpN*qyaeFzLFHj>wKHSxkyRmUUi{wOSl-o`3gg zZZk2d3l^dO^-jXbz_eh5F_Uysyh3TG{^v{98Z}?-`~%vVP$3%r+2Gm|3?wyju9*rC zA|8hx#JYdSy)S-7q(!grEZIQqb!sdHUi2{s+4C5+GsTx{ChAmwIf$JI;5uUDfDt;? zv9($rd#)khFHue_!D_8XIL$7LgGNxJV##yYmx4>F2TMlHazszoehH1MI=-T%hZvTE zI$U-lNik#B)7T_IYE({TH9MNJqw9+SWNfeVfMh3udI+mf;^Hch0631$%UT>ycuyLH-++ zGbJiAlNU$5_Io$2n&Bs3rW9Uz^6~nvy@9FuvWfSfePb!dX-Zl5RVn$|@We0D!Yijo z3&t;3_9bpE;&b;X-Ln;+m-!*i0ipLf?9Oy$NU>*mi`74WGW&?A*wcvpNnMoy?*6hh z{)GDv{6?wV*H5LiiZ^!*8Jj2H>*_V^bF@#Is%DBsubh&SDug1cPf?2J8EYq4;qJON zv5kX^WYA-nKN(fmKF(^goc#Uv}nL%UR`;J)hZuIzax{k1QC5;s#L#Zj*x1EzMT zURj-`RjRj}%xxxb=I8D7zB5mC2HmKWV)?U_6T(a1c-~P8cb)nJ)6KiV16ea;j=+EE zQwL-J__dFnLn`Zyf|_Tt*qK+%zRqY#%!oo?rbsTrNv0_ts`W|n(dT1qqI8ORNU$>K z`%`-OwiBJ%%gkhH9%8){a#8UI!|JyxFWrW!cF1A^;&sYs$(8S&Em=fOtOuiVjLNR< zz@K&eIuq}}a~)VK3T-p2?xFV54KDrcCY6l_OdGZKk@K=Yqh2)&-(8;N7(14C9gj5j zP}`?~MW>6l0)*lf(SJC|nx{Is+nh{v<_@e8EpHordw-U0 zUde97N6G5*{E1pMqT<|&Uat#r%N;IuVV5&i8<)6GyC)k@9pRLj8Aohtj zLqEH?S4-}`s$N!OPr(wTA^+u`@lWTFg!&tiko;WaR2GkkKbODTM3$ydg#Pf>cE#N@ zeBG?;q8{yDsPFN^EKc!fJ)01wRa1cA&1tM?qCl8zke}OJjdrVmJY`{g13+m}H6{~P zan;(SJ?Xj4cqWVzj$#676mA8*%o!Y-t^Cb?1#`X7y@?RkL za_X0dnajR)*bwaMIw$khBMW(FE0Vkh2AG7zPW*kZaPm0kV&2*J9j)=qf?7RP3)oDG zxtZ)ZJ7nL!UplSOwwBwR3m*JCZ;3$WCBGE)%erFTD)8c~*;CIj8E-m2O!Qm?onxm6 zJXPMS(yF&@8+$y%^s+~$FERP-OHWKp1T7J;56XdB9mEn*29F)|2#**v>b|gPDAw53 z$jU|DYfdT7SUk}qgSJRy1AH2E49v%=@5Ej9oJjUO#`g3Txn=xLOq1pcBso9+plZX4U~#rU0qQ~MIKsHiAkyNLha8j;DT5rQLFVuvqE zX^B0H`C@SvD>iG4{?99E$$IWr@7!YeMA(!BKXxs$(m3jiC2CTmr8pbi<+n{L zZ#g;zi_~Ep?-BmMq~mlt)>EFp8w{)(aB1gn=$X4L_PM}}@gk2iIK1y8@+le5nKe3$ z=UrnTjRgKF072IN1&1W|3NY7ve8~LMTi9{Xbw9*E%YPqpJbSs0`lH>m=mmaPf1>R5 z*kPlgfufD55Cm&yM=0-N&Gm#U3@9M0)N40;mvnZ{0B8lG_{hW~b?4G<>N_;DW8(RkAlN^xwh1h;HQ zkca?fCmQd>re`R-h}5HAceI(Hgi_}%`D4OW!|Ex=Wv@};cN0*w!gvn^~uVL%>^RukGf#W2wZy)^I)Go~UItLq#&`6M2tPwRHzerQ~c zpIBbR%edpDAVlV8TrX7MTDbUpVl#KUaE9N!C_&^{Xfz}4~ zPlQN$qu=zXq>u}VFY=ydJV6orr4*3V5y@{y5i*PTP2LhmJ4I`c1;{;e2`NI%Okytd zwc6-(=ScMa6!t_+O+ZtCiD2S^HRA&2$a({1q`H0sF(u5X<))rmZWxHgeOpAinPwc& z8TGPGRSs}u{g`cTp9}lMdu#&kxTeeoPlsvza+)}uk27AGCXX}NCMWsqL4i)oTU{eB z9DGJouPY#Cn=5*cfr9l13ijFMX7&-_SX?{QaKgwuT@g6;a(^1o>DDk_%GZf%o zG^GH4C_~FL4j@(rT8^SZew=0Nb_PQI2O-y*_Egw*#7RVj|v)m)^h4CM=)lKNyonlz~tZ}F|ZH6%pACWkX+NBy@?843C zJbHpzLeEtJz8Eu>1}54^dt7Mk%Q09dqge#z;xNzzF4zjjQW;KLqEjzJV=$lK(<%=GPOXp(e+$D zSt;U#C?M{`392-CifzA_`X{PGc#I-eJSK9iW}1so<9pj6RM10%GlqQy^I!$+wLjMZ zh7k_))W={%$d>i^1`GOP`nHn77sEvnmG$4hKS9o4-{d7kU0&sWsr;%l$-k z0uRIRNrvAdEQO8N3^SB17Ty3={#SHKvcGlvanvW2eePf;VNgwJ3(k?sYs7#E{|i8Z z!*q|p;D$Fg0!QwpzO|qs+WmvbxVO4F!OLM%Si)8>VkupM9>7b$@|owGH~M0|70V5e zXNQ`ob;?d(A2-sNdrS^rnox~QlW?CctfmlU_J6))86Af?>u(0Z@1EVYGz`R8D(be51PJ38Z`O_Ry5gxvXrhfic@57O^H_gBM@kGT z?a3Mk)oFazyDX2XC$-eW2f z;JL`iSr#&M43!V3 zeSwk)GId|g8-0?6?+U*FYQRj|HA{q1cfXx0t{Kjntamw{O!2sFyEUf1M2ItusVOkb zF3N*pv?vRwcp$d2Zf}$ij{_!K-x`(rR>*h&5S;Jo&}WyW=6*Y4fD_ce-%+4V=#rV- zuxKW+Bqj`ts3J5;41UdU?EGjgD*%;&J%L!4`_BB%2X_he%v)Q3DiG;j2;4Bn?P9j^ zFuJcN_Jb{w3IaPtx#*T4m}6_qe;T6e|8|n#L}a6zM4RYO_!)J>vtl<#;-_=s2dkl%b_`$c&$9Q_#}TDms6W+i7?eM2E7N%`V$~8mHTQt5NbiFyEH}i0oY=v{=~zGjJ|Un zi~&PO0zDN&y7sDqQ?xuVE+*X20ZfJW|Jsf#-8M7rgmxdUp3?}tI(e7}J)G@jx-lHP>E!Z@am zn_;yPFXeKWUATuYno9R=%N+;T zV7l5ubvPLPPDGCkZAOd5<;ruyp5xd^O4&%RkaQ2Hk?agY%W3}sD7F*thc%=Ed-Lrc z?lDD5sO6Qf4*>{}<7y3-{t@Fb1${1o-hZEU_MIa8vw>AF&~Fms;X6fer!z7=BVWAk z=*{UDSAOW$x9IQe1Mjnre(!v{?(pktZi3O%k7VwQ{I9U?Mvw0j9sk?w^v)a4FFFob zDr&}&F8rzu+hI)=V+@9M>c`Adt`w*6#^$XV4*@KT`PIi?Epk3AeN%H!I8?IGGTG~F zfS#VCc;6tz)t{+d1vb$ZJB|T6hDm=I87SU9ws-OZn5TaRnKEXXpVEX86Sfi05zfTIu~@!Hx)z zRS|q`tCSeCUKc~!)El=&@Q3}p=fQKH-_Y<)m%}qQ;|5+2#9q$5s~r#jae0Hp{Ze#O zn+1KGP|bbZnHU{8*TmUs$0?6hr})~1tA|1&$q&vA&~X5%b(9u%YFI-us|uo}@} zvs6DH$=&1T6E&ZuryZob10*yQpOsg?uc_PRF+jAVIKyuWjm4dn_;vN;WVl+VQenyC z;293CT*gqbZTAhsv|VWl^Hb6@%w^92Rqx(ile}!Fq%a4g`WuAI_gK&FyD}y&F)71T z_6#m>w`WcKG9UR%6!CJNzj3Dri@5N8%}aXFeOuYB2c5nzk zb+iW(%6^@{g**`kHg4ZNj=LM*WKFpIH9cCGd9=s2X#TL~t7x_1Z=yWx)&rU>yr!Q7 zS1d_XPOO5cU)^Odlu``P@-qi?qy6fty zn^8f%RelC$a6-OkTA~VxaKVSR)Ei@qjRb86W5t#&+pS<_3*9cLny1J!VRP*w3(b7wmqeL)6yZT`S7xo;5$#c0sCv6%aiE^wofYjr$zKkW ziw+mX*oEb8iE_Aix<1QhN0i5^C|J^=`7+u(xaoTk6&-W+bY<3xE;~Ck|9QS->?pFPZ%fKpo^<*nyk<#LDzAUb_P&^EzumP0m1c~l;nJ8YbdRcT!EIxzf~MuF zei|Sz_#k^_6P;F^)v<5|=G{}$PvCW9T(L36`$9UB|KBj)Bc9z|alu$tQ^8z}sQEa2 z(l5L3ioGg@XWnAwmhC=jufLyT9URgfTOqrtxT}+!x1(-TW_;ik8QF1Vd~Vq7OL%@wJ(XhPSc!>rBT*p zapQ}4!4IOAWnggWYJZcJ;JM>Ukn~if1zzXJ zDNWXC*&F=w-tn0z3$@SMzlU~s`VEc#+1{r73|xS8sEB!73qKFGwkAqBcdTS)^B|ra z?laTsEYvgMjvFkTA5B2ybc5O-u5R5oQ9 zVUS_xch0@v`~5P=AX%Ed{0F}CUG8%3x#ynqx#yfa&r3GSxN&FE;6bobDbE8J!EVVB z$K-A~As7VTwYkTbGqrWuA58(q3ftLlUl$`En5r;yPFF6HAt7+ctD1|vdenajx?BP-Hz5@TxZJEB5j$TtZ@z5Q zhv^l22F}>-s-6v`G@7`yGPM$BLLof2m(8<>4i6s=Yn}HnXiNsjQ7|E|%5_v_+=Mg( z-LHBrOu!AaW1!gIOkB6e*fHEYQogk?3%2%82ZLBPLS~G;P5bfnx)W&$Tl@V7g6%;K zSPB`^Vf{(}>Z%hgWqn}Cx}_~j_$B4K?H8R@Ww;6#q;^@ry<9T?&U<7%87WTqa^-2C zxSwFY9{ev?)3xH__Xx>Gn&qYh?ydFMQ+w-zg;`a>mlIWGC~5ar;*g#dr9{+LQ?U`; z3znCh2v{^tJh$Sax!`M{KdvTQBIxvuJjQ+8|LWXr(Y?0X=a!SvfGIK)2AgoD{`Oe~ zaHgum_2ShtVMfeb0kpd+&3+DM#P;O#s?fN87BQ)ilbkBI;WBX5{& zFPIvo2Ll`C4lO9G^(X*=KKfwriNPdWW6TUNV5UdP5<;HpV0!BR$>le+_%3;V1l8U0MqweI$ z%J?yk_kYsg9`m8gPS?Z}L(<=M9CvA5!OVhAbso>x-MTQ_v$&IQ+{7vv(Ajgg73tI+ z=v93r{y_FP#o=*eNt%U_*pA}BwF`ku?{uT@LaQ>6bwmT|JT@28R+*_QbB)c%%s7{| z)75n+C_M)Yb?PcbgU;RXaKhh1oQEgBOj5a=z7~CPw}tBkqV@DB7+B|#vlHm!Wn%(~ zz;)_SH@=?wi{W@8qBdmo(py!*8!;Bt(5Mpn3T z5n*wWWB$yko9x7Wip*aw3LJas*6X&gfSA?dQ?pUG%}fmgRu1#Xr!V^ueIA|`ml5UP zoh(I$hC#WcEFZ6LaP@icG3@k%sX*QaVf?vl?B^h?H#8l4`8yJnt=CkaG#%$=Or-=dje-w^%*zW+`+ z^*dlM$@p(%r^gcR0?VV^eaNK)rLXx;d;>m>HL@!x{c`j$*ZtY=D|WpPeBZw($kg{0 z8Q?XtYL(y2+6Bu)q(_n}W+hLl>NlwhRL0L1A^Z)zx#*WXV#@&uo`Z%3+x@4CXtwVv zz|98KibYexVn85WxC}n85ultEM~4u53f~4sKfJZ5j7ox%z)p4Da7unV`{iPDz}K)F zQ^Gzc-2k>IHh;M|aIC8MLP+WI3!cWH_DPc?2R1LA)p$;9cN9T2IEpu8>IkA=Ay+r; zFe5T+$or7_AuAl$%Xx!fL0nmEz5qg|djpLv4x-lW>kCbt2u>Za@=Qx}m>LGYuW%@Y zF(}aAI$T*KOt0Zt>T{kjiXTBXfX5hJ@j4JlRz)Q_lC4r?dfn%n- z>{d?Q4U0j4qyXpwUTQAy;N~5Zz%cQD)IKeqHQa2DK z5#fxWG+Zx1Ozm0O-FMwfzAF}`4*LpTzKGJ`&U7zG(+bUWn8}U&w#&iIFEOSI0QHx2 zW0b=**034tc&2;vs&!Stf?-Fwb_{WTlZdcrN8=37K^dS5uj4szn;}?k$btJoDiID` zHv**+*XULIE#TOIE`9m|Q*q3F;MM2ry6J+r95JeHoeWOZ!DY(7cYn~l+9D5AAwGV%fMY&1~PEvUsV_aOC%tb z$W^FU-=7ah?{QyGbUrL!6#!hoxXKH->U=-2DbvBK=(TQd2$r&fNoQsuL*`~r~s z)L74A^MCy0R=mCtlv>}}Dsz~qn}Y1N?I<$e3Q`iL!yciN4nv#`omN4Lgp_+B$r&{< zp_b|`#aFtBKmEI}Ghy#fXQrj(70-?`OanJG5QKY(*sS^`lW==Yuq?i7^3h={oI##U zHN}^A_AQZC(x-KkLK}idMg4cl!QDP1VfM{5>REuVe^r?YvGX6M&EBel#coJ4SJO1| zapRdxbC6vH8^@a(e!3F4Y8i0%>&^oSSK+*oqBObF%NS%mFywd24?$Fc+BB{Dhhpk7RK2w|!)yPWT`jYQHQ~+#)Uh?%V zpVE!Q_2ZfjmNN3Ug?ha#8Uz*uUZs173|F$m(Qzsa*VkaU4LDVfN|Juh zoCtCQmQujO?v6NQGc^+;S&*c#7zB!PAZrH>?}$-2Jz|n}xf)vRR4xOR$!wI{lr#sR z>5`St`R@A%2)cu2tJY!u2hf9u9+IoN5eWm+IKy)YNTI{S1-MKP%19VZ zi;6G;jIT=i`AyTMNdxQ9*2Lu#bhW148)P$Zk>5TBp6BYr*M&i{L{#OT-vsM8VH-ep zK*W~L_Zp|56AOhotSbHMLMZ>v)pp0v3ArRe{*nt=Lu^!Yv@crQY@-)5Db3 z7t?B*y;MFcq-mkGQm`%{@dY6xg&?|TM#|5tq-Y`?{nvDoHKeO!M8r_SJz!7`1s&K1 z7hDT7zy+y@_P^Upd$KJQ`z;*%_Ev>*eAv6+yg{Ie9=dsK)2kr zq|i#0(MZWbP{DdwDoX9Wx`4rClM@cg&|({Pk$LwMMpw(utIoLB9RcQ`1V{Ty4(EO$ zAbBO9BT&N;u;XZ5#iv66DhS8aFI}5Q4|~3@E<43PeK4dAu>b)-VvZO%xH)VFNzFr) z$0#?$5dhNcTL)_ObO0XCg0{2O4pMrJ1Vl#ii>ewdu6jd=kdSU77WoK?3lx@x7Upcu z!qiRi_R1Kg*gpzL7zoy?jjK1Pj}Z}uh6||ynh?JzRQX{j>KM;CI?P3cZG;&BKp&R7 z&G9(UT{J3~Xze4WgVv6A0i^ixt-L}2=Lw&^X*hO4QDrr9j@k6B_1PuGKPFbr%WV=c zp^vA@;v0z-usa*T?st`E3Q#4Q9Q1O5rFux`HHO1o{h>iCop#~l)?eqnS4&DCFtKN{ zFKAn!8>e}WfX?qXH%bc*K6>glsB`!m;3=|bL=7=X^F*j?uj2)a=L=?UynlsY=N#Z4 zyEW=8(fREN;FKUc83LePvR<&}Pe;f61yh4gd?-Ubuf0@`8N;epVuk^1Vp0Ym5o@_PG#jtVD0-ysC5Abs-1X8Q5-Jm1Ma_-zW4*! z+KdEsqBy#@!Xbabuyn5C*PW%_dVMFU<`Fzd5|M>Qx#RlM=g;@uTo{MQd^bdjv*-%| zvq~*o5nV@cX^LtdLKq+mLX-eyAqSP@O90sdSx}O{w{|!MbynfFvE3y=#r9i7A^c$m z3R#G9I)dF1V*>%SnU`Qi6t3N&h=VSYMFJ?cK2%beg6hJj14K^`N{9yU{E_K9b6Br*t`Gr6|Y%8^HU+Nk}5&ea7TBu}9R@9-$5Y zB|1c1l#+7Ya65Dip{#;bSHt2a$REH>!E3SCVkyQ?X3VO>m|mG(c9`=-*|cEY#g=ae zH@`UJTV*90!h0q-4oZI;#9Y`m^?LvfPL9E*M(^$ddrfh;*OZ#C2UNRmUH!2v5^+RS z9_PzavJmxln>Zf@zsI2Sp16lYc2&?+GTt^iM7abYSCCqW%@5ZlQy2DJs38UVMX1v3 z{x-m}rav#%b6OJbzVeb!@I}D$hM8|Ij3b*%06>7DIxH)?`^ZtaE2f-|yJ7)jmmce^ znx{kb?X`eFjWp9w^`x6gunquI0j!v~KjLi;g(PM1DCB;|H|q#wNmvw?0kS6pfDI;hiMJf|GfoSBIrO8cpN6B%E6e5m$T#cjZ#34 zKjf)i$*{kby=y20=n#%flX~q5#Wi4N!P(m3i0#1|fHD7MQWmGq1d&b(b}b)-AYvil zQ$%`b;8Rx!K1Es;30`&cbcogn2ql1qv4*{i;Mcch(pn3 zt&cJ{S(Sy$zYdE3eNkH@Ven>6k@bOj+%0XkSS1=Y>gs#7E+8d`I3JYbp1_s-IAR$c z9ayx$8ls7EaHY#n9ff-UuwhFdR!GqnAx76nXmmCHUmyf?8Ng?)t4aAIA|8KfYq zWW(M2lQVZ2E6U1XsY`tQdxXX7lXe>`q@mIZw_Ib#x%&c)WYZ5jOr2(vmiA4w!(au9 zKCgk7KuV;0nvgv+Ff2lp)i_T_c!IK$1-w)|-)od22YAP6)z#RT{a_SAwgpha%pBiJ zhLsx4*{DHaGY$ot@$7!E^RjTN0!}e43@u79%(j9QPlT?94Uwgv!TP4eP1__`-!`doz9Q>eq5l6_2O*Fc*8}8jbl*8*$eKu7rz!_^s}DF; z#qB_)0heMarflfiJY_)v-Da{-U~9=j;fV_c0^EfAPou3u--cCcyjQN2p#ME!l_CTD zZSht}NY*{Ujc?MI|FEOuaeS#PGL>ynwARVHZ@4?DdUPe z9>0@h*T6OGD_p}iaO{ZtUu>H&CGc#m3yP=N?x25oqyB*#O1Oy#tO{G^oUb$r7^manxqTR|_0GLgQj2iVEq`BJKr#KD`RjUzob3io4 zpiZWoMz#fT;}x=Bps~IbR+38n;pStyL(n%0jn~FIL#Qf15~|Z9C>hQU1A$+L0zYiq zc8c^KY%)!Zh3gddf z#;hu0cMsU4D_;xqdGnGw%ef9`j%9yZTfPv%ZIB*cS=-C9K1J!_rhn)cqZB|AhN)-E z;_QJg#i=f%PMIpoj*`X4PELIs`YCh9NBhJa0|7ASqp4e!)l-t=GL@OTSz3zN~B1{_dOnQ|`DK4v1Ydf91g#xvd!0wcCM#@m+(07EJYnFV-g4 zZgZOV5#sSD-uLSbHxB6aBBFd|{=PA&r~JFOJaT96rJEXze?cVZ@HdG4tXW=xKS7WG z;TKQ^Bj2>b))Z_sghc^%cL#7kM<9}aFr>j)j_+R0kKZVVhVA=+D3ST7L;~Z=)q~_< z0W@FChgASnhsx2DDsijttz`N23ad*NSTgJzZXGOFzv)!;i@ob`w8LfAhaD~`W7k!V z-h?&7GQAsu%PSYuxSog@1Z%`cWfwL<4159IvDpZlvS5eLjGZQ%I1QE@=bnd>^^?`c z$)H1;!ycr$YBZ7?wq5bt9p*0=cw1~GF!JEd=Bk+n06xMi*pjd-X6j>8_r9vQ{W*;2 z*$GQ4yW)oLXJ8+^s)%^iv2R_Y|7-^swd(piD|~F-VDX+fA~?VFOP!#YsV+gvX+dC< zj$gOZXY;uVKxxe8Y;g`EQ)OFzVU2!44ch3(-}LUQxYQSvqH=5hyp+i6mn+_u?Ry8P z7P7)o7XP0E72D-gDn_3&1cBYZM^3P^Vi1Zor#&@wp&>mZyBlvFy36El*}#G@5s(&ZHI|)`r;Ot z2nXL9bVj}UWi)r|?tZej20$(Mc)MOu_oRw5yB04WV*+$q4;pMh#0yCCH)gC?R=kR< z)v8VKdGapT;TE(dTkOzpqpt9$fSRziHRx;-0w#r|befOt3}Qp<=rXBdwEh{8^yS4O zFH)6Rt|)e}Y~o-TucmQRH!6V$Xf%LfjSa!4@5m;;Lv*2e1HI#b6Dr1!-B;OA_+OV4 z_3Bs1BKir~cL2Y0ALAmL1;Yi4=qrj#uaHGFtFmCh!LDoQ?+*cQzw-ky5{wPmC0q__ zIKc1QR(|TU*(C)g-?)8Qm81WCUC%YE&+WjHs`*oFPTu`OCrCX}wznp1Y+&Wdp^pE& zw4wA${@NP-FJUwrz6X2oRoTARKo&&w?v?!VElRP)dyry7J5NbqFzySn8a zatk&rB5}jwExG;~wecC8KEOoJ?}?2Wthn?tYP|Vhq`*UaL^&}&vn_Kx15qtH2V zU?FT(jFlPGntgiW(hJz}vtNq7tkKuS*}7uYF5ri>Pr)Z`kZj*zpkiKX7q9`QI7Pi_ zaz;Jq3=GMZzWa9e1yuPJMZ_zxsuf(=0{QA}KLwGqZiLy*SI?+xqbkzhKj`R_RW${jHxn*MUyI%5InwQg_hx%J z8+E>!wg~^d)|=dOnY|q!{bMq@=e-qvynWl=w<&tSD?8Fhb#8ujOlcbYyD+*q?dwY$ zRx~|#_lS9P^WuEz`MzH?Sm$P@CT(6?Rm2dR#+`MeW8S?+a zK>R+S`rcW+qP+f{zF2(Lv}Rq=yPj(oO-L=WG9Px-{C3}l0Q)26w@(!JclvJ*zE$@* z{QLMq=c@-(R?jkNdi&qjMrlb_tN$K{|Gxhl{xi-upZRj{nm1-NjjH)(Vey%C^Bqg4 zoiwq@&1~rRMOHR6PcdeZ2i#2zxDXRYJJoHkdA7v;!j!O(^CuRa9ech|`D*ro0V8&p z{;TZ9iXtn&M`}l9ss5EoxHo_roZ9KDx(G0#}Jtnk(2 zeuYTRKJO5!u1!6u>OXN{@|fa7src&hE#%dLci`2J&qj~97_RfL>!WTr>oy&I{TPsK zk>3%8ec(^J4Mn5i?L&U#?WKlTuyNiQY4fOi7rKApa4J4p5^(QQHF~YFymCcz^%|~ru*wnlImrbP) zCU=iBYUS?|?2 zkDP5kHO7jK&hND?d@gZ9NXYrVsjI)w^fpj^-v8fI&M)k?uysRzGF(!KC6GF<8>rr4 zE$CP$415jGW`%vV4l4TDQbH)VH?vCabHujr(>kXi`b&Um>zyq3+U~uzYoSr+qwU@f zTMYg0Un;Ks)>5KT6HM@mn3;^~I0e>Pa#v>?XKMc?A+I^yWQueydD5)b_2 z2)zs;olof70IWkE0GH+Us&|r6A}SM#*$-0n8B0kNGAu_U`ZXC1ZMSPjOTHrX>g8`+ zxKtnuR{ z4s#C(+p6c?Nc9b-av0yKA3hUT0FF^JT(28M<99?HtmQ{hC11upSQj!nJhklygza)D zPr;&xJmuHfvs9c(X9g^oLB66m$`ZY}hO z(}MEVmkK++9x_3mefejg5VxQuRbBbf+}lzja7B^W6jV**8c@m~d|*u2DV$@cz80`9 z<1M1V8&u0fDMx^&56bH$!YQSV-NJx_P>mu&af7dDpRlx)tA1a7-XaGYSHG`Rf3JTiM#cEW=c|@dM6jkK*0ef z)$(j!P@T1uWTBu!GsXqjuZ2KbE(j#i67+{0%#r9r(%uUqUTrw2M^Sx>t^ken0th_Teg_EG4 zrKKZR9~H+EGQ{aPlsX*-f}Kut3Ft*XI2gT3#9dO-+VP~NZz4VC^7O=l(#<9txUn(` zY4`A?B~=o7Vms)tVY{AH^8|>Np75_MvBjNizchJ6(M|dJRfokxb!}($IY|Eb*B`Vw zY++%){0RA%bLT??JN>YOBWII;2j@uV0^i*DSlac_oB>xlHLDIryNSvsO05SJbaKRr z^PSCJvlJbf1x%OsrPl7-`}pAaer+bXJIthp%u9FC72wALd*>pj8=K7}laf2~HcsQa zP6wj1^HQQAS>N&g?xJm5wU*uDZJg?tX9?8(i{(Ql>+@ANn>5lIaFB;B&_?cMqGrjo*v+e+TVu(UKNrw|KiH`ASMdt?Q>5 z%=iG>{qVP25c_JTsiZo>X73hgx0bS7yxn4Ge$7C>-&{UjN(LDJD#eTMn>jAto}b~L zv}XTc+r51b+Ks4my6bfJ@5e19E=TkuDuL^=85sy+WP zl|lpg#RJ=cV_oVLLS!LIIAf4-&Qj72yrhfAVt(;>R*g2IO_atV5yevRof=EYa6)7^ zQ9p&jC9){MEV*6pbc)b9O}@$}+&UQ71z_c-xjN=BMnO{Uj&C=QQtriaw=_~*^#7r$0h#qCzT)7p4js!AvfjPiX^ds!I(y!M)s(>m1h zuH5kIwY=@`x!6Medijr3>m$E*o7oW+u=Nk75dKIWeBzgOofNswN(ZIHT3$+EJ(PF! zI6cVdh!`)aifP0PqlH)^VIxWa!aJ{VdeC#`61=49)>xif{~Fb7HnT+{8kidx9TiIm z>EhG@-OVL~2}!)IMzwnzbx;07)IE*(sk>0nJ-70@Czgu3Ctm?dh#5T1_wqw)%?~X$ zs#P_XcF);*C^{RkPu0Gkv6_Y3_Re>l2J&xMFJy0^$?+K5_9w4qvzZ~s579@&_LLty zyLT~{4B+_TB!62S@ZfD6DE>p_hiG9AqLx7C;1-@AuvFv+z9i&_$vi)7=lNk6&kxwB z2de@5%QKJ6dyYAJv2uVp=96ZGxo@{wNH6t0Jkp(dvNuqubiAe~)S;)Qn(tKxFi7{D zikvJPa59?H&E^mSC@YT0dK?~|8_ z2&P3K{b|9tqT%;ARE4bAcHiV61S}GlD!y5*%G5N^>n&^M8>o;U5q4N7O~oD_iS{0- z;%=9ghRJ=d%Y6v{BO8;KDf8mH$g=%CMBzMpYJHQgD)=JmNbQv=yh%Y5EE4&gZxb=& zX-jdIXsukMPwl?>+d34H_7QNvO?jGpS*gf~8{DSOtU}+j&Xy78ye9F1Cu=6WFMZRTJI^4RPjNNViVzV*Nzsi#f*>6} z=Ab?g<-qoDBQf|laQ-5eNQt2hKqPX4RlsA3l;+w1#7C_r9#rVjVpE1@<`_u=IFz#O z+bE9M8$^U@gG+@jqNwC6XcsOOy7=@~Gf^6a0|=&QEQ2gz;Ruwb5-2h=VaLgKZzD1I z50MzLyi{=Gr2@rNd4Lm%!73m$N364b9Q8L;<6AyH8vs5Si<-GQ$Q*ogfjL++gxkNN zCQb16v32NiS93A8IaFMmepZ=YtbT%@(BxbEjOE zZ(C;&sdJV5^X%@vvf!qCNdWnGH)ou*tMZi6s>rE{K%(xV+?{SB_m#_ga+v5Z4?#H_ zi$YWV30`P(w$Cb?z3|tk{L4hIgW`%JEJ>7`=Vo}osHrbJGrO&0sorgNJAF)%(*dIv z51JjqmR~THnCZFFzxQH$soVfxGy5eSU_>hpLv83QV6s-78EQ*tfY|C~`RV}rx7-qn z^6zG;{^aTuz;eF^ytT%0sx~mUj)1w&B7_~CMToi9nra}vZ6l|M%HDZoRM!7dQQ784 zMP-{G1(m%Vi)x)k=JF$eW>QVG&oYW9u9N0;>f<3gpJQ-IEL_i!-ig~#ogKLPnADv zDm2Eeu~H5oO;7mN^fr@T|Y@btTZ>{+K7MNEAwxxj4rkI_dnwI z{D)!IhvqcaNh~By-CP@|Z?cfgIZ-$B?_Q$De!2g+Q0cVf%2)2mAhQM^9B8|D)}bRo z=6dFm;Q)Ar9Rh80&5Fs_8i9j)J4V@6$O#zMlpT0?qsbtt^*Ob?iUH|nGTXgYC{A=H z8C-G|cJSA@D`$6fBsf`v4C+XTxEy;qs3;@OZnT^HBykI*VFEw`i+e z;-BMQ0KZDNLUAbpOW;0z52jL;bxT4+90pv-AO8WTD zGFu8OmWBm(^9kpW)r1|d)F_ARz_+;E69AM~LB{5C2#AsgDG^TPv|PkWIg&hWh-8Ig zUT=={M)%+vHa0hJC0Gt1!>h~3yYEemGe){J8E3m?@X+$;Ui~O=OGv?CxWo-WkCz&h zoCK58#As2KVUzbyy68PauX)1v^LH`$SyJZNsd(ES7<3RCmAV1ji{1DBrqYE{` zQzQl}iSPqOXOSPYfu~PFHLWn(^zj@qfF80}NgA#KBRxfZo9 zbOYi+!g9$&aYk5QxYz&Zpu&!INa1GqQ#FU-pSEd%00UM~!w_VU7;WOv4Ddy^_`~65 zo-rsePNpbg-P4K?RYZi0NBz{+3mIq#dlK#6#)-nefgPr(YkT17Qw$eAYHt$3yi3?| zodL#xDQ%Lb5`?ww+bAsA8)PK3LB#^_icFNrDnOZ>Dad4Djplt5NbQeM%|z*DZsjoT zFsuj$9K#5)mHda;N>jd-ZUP4iY84`)*vkJoRMJZmh)dWpiYI5>2G(0(4(|3-Ot;Im zsP&+)29F>5_K)Xr(zaklfHL^oIJ)dZ!s?F||9sqV;qTHL>V(NK+BQMwmi53MCQojh zQnA96;wL@B!l;JinZ0WQ4fmoe#p zPE*l*=li}#Y}O{4OyeL^neJ8jz50)dpXib3H3Mg~bR`XgFSj|Phlih`t}S&OeHche z97idPcsAWs(rkfllG2Scdg0VFj`K_HcQhU&G(dI>_i5S>jsqthls zTif#d{GGquSsypqUDRYryIow4#84*{Iixnf0bpgneDKU|in8HxTlDn2JrP}Y-7>H< zZqv}SmZHLb-H7XIkv4Z#bcHo~R9D!A4UYo4-p$5UBdm1f^&?{HYZ<3Ak|B*Q0XpUq z3J_*}43K4Pz0(BPS|Qg2$t*1w>+!FkCGv3KkYG8iF5E}G#4TIjspT6P7@1(Z*DTII za3D?(fKw;51~iGBV=rs36@@-{wLTr*q@&fZFSF$~rjSe=1`2MrE&ORuss)mJTk&JU z==6lJR((Dblt7F^qG>4h6df#L9z~!{ShG8&1Toa z*G+5AeIH~+sC8p(x7D3(8o&8lrX<&Jj@_OVh;H!j?GoTV-`Fy<@uTC1lg=2#>0Ip* zTH^%FGQ8){_{)7U{q^~7gUJRng7fmkxY+LR(j|L30E`EgKA#VJV;ALJ8$5&0x*6X3 z=%dQgW|Qv#PgM@z#NhN!O>vWNGspCb%F@K0t3*#5a(a{?y(s5+7#ZiUR@9R!5RVZD zCV=f3iv;k2M8g1gyo8o{cIQFbdYE<;nXYUES+408i;7HF_8b+NuDt7x9f>Dt z)Sqzk#kSOm`gxWsc6SFry}%dUJm80F^D*zZZ(i>5f3M!X_&4>J%|SXn%HI9i|L%~P zS+SRYd~uI7b-hyjnxT1&a`#ws$%_huu?`+C&H8-jJulu&1Pz#T8$+SvY}kgJS$X50R0XUgcr8RU-B>Fa!5lyI0u8 z{nFHpJSRN-3ORw*4SdG6qP;7^39Lhe6G+$EyCR%$LM-7}xFc7{2@*yhijw3H)J8OT=&X(jhwLmc6qhR|iyI z!H`(Qno2+d;ALsHEO2<4(=5`|>Upac8$^?d1^hADT+)N%k9jxb2Z>n7kPl-opB&SX zD{SL-57AIyBihD?Um?4(x(Sn!R=u1oY|pdX!>^Ft?19|j-v3T?9giZnA-1>IO797YtQ_D4)>q&KLplnNK<5Lh zAdVLfNmKE%H2ZMCN9K}#+@R;&ke4!{aMfnvL{2Egc!A)2duW*rp8?ReD{0f=JjnU_JrxP5d+PgyLF=f<6 zmZ5ZR?+TfR9~+dsbd>NaEj{6%SwuJE1cg6sjYcgkMz*lM!8)Mo17qT~(oGcQA#&w7 z!RLh7iz*Ezd6Cjod?Pbk&z)HQvtVCy| zfy%vUII)dTe zg9&|JK>DN;@>;xA4o`g*j2In<8}hkjkYm)@yI;It`GAK08{!*`Z*&5s=y16A2hy@mQ7EBo zBbML0Xj6zvA&LReo&=SW>7%~ksV6zHe?u+zk!HDn%}F7A7X=&Wr0ivA0l$nNCNdBO z+gx6-#X?DBVOVV7#%q|QekwB_te%#Lf(^8BZAH=v-l{~cJ<{Gt6l}4_#n{R=i)^cr zDANJ`qqF|e=K}x^!Jr>)p($Q-$zGbwA(WjyoOdkAtW)Ui+ zmHCBEE@e*TWH^=wfST$_+Un6S9*~Oi>bS`PM8l2o3s0pg?!3;f^nI)}`-VJQ7(ZTn zbmJAyLP1-_&ygcQ|HYbVKWJ?zH)#`)BQ#4S9I@0uYmtbwv@Q`jg74LXMRLT}Y$S37 z=-Glo{_sW;jyNHXeR#ixMj}V>RBo@|LL&)Bz*uUMQYf-5N@^XPyJ~s1mHMS+x*SAR z*c2OlIa6j=hNagThan?~cZj`?i@gY=$LLtzkXukawp0HyC-Oqt@_@}AB2<4D6nXUX zq3;r%WRZbN&>RJ2Q_xujH5Wg}fdYk?7K#H!Ya+`%KhIi~hyw*Wt+pcRa<5q;(Med3 zh)(kGM&dy6oy39CERxenG#W_;3Uud(_giQr4ip#-9q2a|2H0(!MPLYMl2Ry=LT{QS z{<^_w%GrY;<`u7o?8#Hdf{jxalYTb+$}i%qPU}2G3f(>DY)?0pUsS8oEAn9h-L&wE ztbfuKgBTq@tFryJF0;z&?Z^18%*s=Ly0|*O*h$vE;GzMN-3Z8~Y`P1=slmSmP%1#C zEw7XdW|u{k2jkf3bp%Ni5J#kGM=?bhSj1zI5!ZT%-rxn(!>^D*9@+_p1=Eh*t3VhO!X;soeXw3^q*%F*4FGRG;b{IW z|BM2UO0#q7N5T4jC2of!^bCUKHLc$rf<^puW)agc8T!b5XrK zrCIe(+kr9aV97yq1aMJ!$f?fbP`YbEf;DlIad!;%dcHA; zDaqqMzLvxn$pfw^Px-sDKv4M}0Ui|eJZ)DfN1ma!{B&s_wMAGiG7WW;%KYk$O$--= zoj8VFf`DL{Byb1C8j0$}-bGcR1%?PFYW&jmXjj&_ji}6T3uHw$;=w`Kj_U}3*1@6 z!%jCL9IDsoSs5H`uusR&0MXJl6Pl&N{8a^$_v$nOnpU;3$=qI+a;xP}%ZTPJiv#?< z5D%?QHwc7DUi$~;K>B| z{TU!+9?X7_H2^9?IFjL_-V^)*Y&-$R2;fm!c?{!><&n?Q?2)S}97zPrqu_FhApY!6 z@HlAw@HGtIbWw~qthbbSLH!6GSI?_r<%53#g0vtzaAo_`ppL?_sSUqHnaPs^WxFPj zN%e8;H^o<;6eNt`*Ige31jE2P0QQHoNfSVi<fy!*@j-A554Xk12 z99CXqNwHC|lN!NnIx9v>AQp?zJnX>$9?+Nq5Z%l;hCIgj>*n$;PGs;bB_-_#;%SId z68(ksf@~W;98*Nq;;)OPBIp;HhEOGdV6}M+cZ?m~pF=%iKcz?jL#uu6aroa8Mkxut z0!TP`S9bUJ+(0&A{5|i~!d~Y0#LBJn3=X3lgg7F7bUAa*2~^a}FRiyJWVmH^c?a>x zC)`6Ag7zU!3Ya5UOhh&755d_U4i=*V_-k-jMDFfdpuhv~vw=Kx=sofs<}#TTy@6qU z*V4{-|MrRd{`oWQ@_F+ap7if5kX)+GPK6T(0yaIJ>@9$Ud3)|-b{fmbBd$rC3M z|1$2IJlvu4X(t8mWkY>@i6dQG_fY9^cRE<8?fg7s8a;YXJ z4Yz!7ZkQVN#Tl+)E}&Vyyo)RmXTlCTUZJMh5k!}S+7O4;rxM$Zhn2xjs-Qb0z5*H< zXIRI)B!LwK2T@t^|DJ;=MQw5UQUmVicqp2oyB>~JJZf9s0<~>HCk6#06a8jK*5<7_ zS=+vQ{~!OHw#`ic-Q9_w^qW2S<7%ZrkZzo%Q%}!dG<|33jLGG`%H2izV#H6w#J1ey?aE9``SB$1Wh8HJ zZ*I){0O3@0zbyB^Di3wa&g0x9O#xY8K96@`cZG9cw1M3>4zzOvmrOr`wbqBbiwpp3 z)%FhP1mID52{Z%F=`$1{JnH(`W^YgIfoCeOS=jEZ|`wAyZ^{vqtP3>L571Qll z(~eZ;H*4eEXd+2Z_%5x^5*$qL9Bdw_f<0<`MQ3b-uU8DX-SVY$0>{_G(e9#sW8-!G zyu6_DLtLb6XL-Ep>;Rvoot-zO(Yeu!S`I>tgKveTqlV44noHn)Jd2XNi2_mr zjc81vuM!nTnpY?jc@P2x13gHTTZ2D`9u152 ze`XM(xrmwwZ!i-dINn>7#+07Z0hi2FJ{$!?g(buZ+gyqS&bhK)_#BW%=FS8FWT^I_ z%Exbm(@hk#IxS*-`_E;jU0Hn|Z{I39gXc5#{jRs<+4e7Eu@mL zk1wqF^*R@r!4EQFIP*%X_TjyxfIAq90NlY1$>X=D(fVOQk-q)2`Ovz0!F5N`nKyue z6R0JJoWNO!)cSAVs|25FSdl0U|B}u=a1b5=^of5|kq~-1x&`fP1=^=G+CP4r0Kuv& zwVX`onZQCNVw3?O2olXIq@OFUS0f*sd_ymlNN4638_7Y@-r<-(Vw}AQ-<_&<7OhUq0ZvKH67##Lu=?Ao}Pwi7xDM zx3!V{=)ox(8>-R8{D!J;PhS?G5tF`~54-?@@yBea@_P1PAnc=vN9(NY-hl1Q&Rm=i zF1QvfHU)ek_?Q##3C-;U`k?*7zlyd94HVKALsLt(O`7m;Shi(g({VAm;{ig#|AxGQ z_>=%kSd}^X;ns>Y%Q++5LzKuV1P$zUA~t)0q@iY*BR_!jD@2g7Tr#irNmC6$ZJ{7K zmPC1+)`d#CDiAbV8gPRz;@ZjA&r0IZMr~E1f>XP=bx9AY5=FADxkOvz+pH270zXEm zHX7enl?bk@F4+`nYdrP7q2oXZt0qCw$Pf*(cnh!NX{>%L|cfz08`>f#WUAe zXWThB@8H1DMbze0;jx0Pgm&FbI#gF!k*@n*3jW zFVv^9GQY~ciu^yG2N`PDe`6a+Bh_W^SJ`zvfU~v!w@rxiO0F8xrGy54JRvwPj3hZJa zy_?_r90r=3SLA?>lco^No){lb+%5@ns|9f-Xrz_tVWHn0K@?dhFav=_^Fgtxyv8#_ z17dEwr$Qr+C&pFLJOGC$&|X(t0)*>lSrZ$)a@`4lP#;P=3*O@upx{mvRE0=HOayQV zau}qfl#nz6Z2{pFql+@zj7xfZo#@k$GBXTZoOMGOEQD%rV;~oNtz0#OR3r ztOq0_zBOtM-sNnJwW8529e>nGyoXP@0MhyP6mrBx7bCP+<{7L{)QK689gr8q55MXF zj7UQ(sfe{17XcF>$OM*s0rpqgPs~?MiOU;vwQ_mt_2{fPT~=~at77mn#=AI zMiUHwZC5B39sxwu9!yDD20I{J5$_8Yiiyl)&ohsCN(Z%DNOV!QE9 zT3m!Hnh3xeY%G8^fW|QK_$Wx<&zPf2ObawrEd(-_Gx!eKfO!KEHW2)>wOt__u;567 zCG+VlXwta{?-3coT7=xI&Gm+315So?C>a_Rx0yI|{s)0w63Yxb;pht4emrY1?A8LT zJr@XJC*`C8NvuPJW|<`yOaf_R)k%CDMBFnZ6h+MMhlKL73X7!N{5bOe_zLcj7?@fp z;IZe0bUffe05B{O3kqx(WXTYsH983}sO4%N9aSfBQ74Eyz}CsbljLxHd@L#;ohXqR4oD=jW|3_*5+(9u z^{#yCu~l&Uymq=_Xh;EqoHm7_aNHAdA#5<0db6kDiH4Ul7#;Tz|z5c|D!{Wp}l^-3kgwwo&O~9$;8Sl0%#zJsaYJJLt2AY{A z;IQo?u1I%=?Gd_n%vqBWfB@%Cv|a(E@tp3c#?1qs4bl!!EZUc4R6(F zxG5K_in9`tla@3i%DVuAXuD!wpr%5u7w;C(XL@Ht=C}wB0?Y*wSOHFJc^n|1rTV4Z z&*@5xI(l2`y75lc^I;X`h-KbDIjX5oQj%-ldr-$DMWR|k3ny2%+1WAr zS47HeawyzI9NbCeSaC=hawbm!eYRnEKBb$c&s$it$>aq1kqlYMQyJ`<9qE`8n z4l_dKo`o5;*mhM5o9a2bHZ1ta!)g@U*3N3oqe{|~QGSRb3w}l};Y>|E=2mYZw5CY# z2e4%AMY-`bXZ+wNxHi3#V(j?z$q=~>4b#I)ND$m8#2TsDetKqX4hxRas$vStX6q|l z>R1d75&VMly|ybfI$;GfD<9zFN^xg@xn`Ii>hdM#|Cu&BAc z-?c_OFbS}%OF2J#9&0d(cN8tZhrXbm-4*gm7m_{{g3|B!-7~L+%z2kOC5j;@qiK#V zCLQ&J-MRjQ>PHT>rKc9XV6vJ+G4U`XVtCT?gu*zW6wlZpYF&ww~tXItWqxpX(i zieoBKi}Evy@B9r))Z9@`n;~uA{d#cKbc7R{Zo@fEjTmBn4WhA624A*M)P;kZUR%J< zb>dQ5CVJk1Q=Pc;f~tMVaZBeCwkEpMQ-^GG8-ttiYw}9^_XrW5t3{ti+JHUr0KviW zMD=;{xWqo^0Fgrg)5m{88x6oBqN2%}PF6k{>^!NH!Ifqok>iytAov|yOkX*8i9uAeC(}~ako7c2)O#t5>>3!h=J+Z3s(@BgHo4p4| zL6AMB0~LD$Q3tq_!>;O$?&|3C2V5bwxd$aA$X%Tt^dK2J+2$@M#Af7Lojv(3d7X_y zOCnsj_Q*u=2tY*SisDqs$>4iS$X36@IdU9=VDI>`=&RD~@_}eY;PBc-U)ON}x+JEr z37{wW-~muk;-gAZVvb@H((_2}(2n!{HbUNHb2vg!Q zmR9FJp`7IXWzaH3N>dG0GeS*hq=t2e;;2=TbaP9yktkZJX~%_xXzMrUZh(s?N@KH{&xbJp4hJbqr{w{>&}&0nlsE) zh^2EA4x}n1{x%#q5u-4vC|1N({j7)^N9JG#C=grX*9qz>O1PsCxGo&Z$)kP9^+p!VfGv8CgU%&p>$QAwnH~G>@o2 zeu#g((RYYt+DRu8qqvNrppb*dypD%VL;0<3a80KGWP89Ox7q~tu|PNHTmf(OW_YUx zU|1bp+#2cREIj^fy@gyZW*#(shJH%4IWN$Ogin8^8$-(|B+n{7KTuAFEsv5;v|=df z4z~M_Lut)kKvkb+bJDyjT*0z9ZpOoy_!uYDK-rEo*bqD%3oOBI6Z2mKP$Z^4^BEwF z!0V1I5mM`?gj-qDQLIXM#Z%iA!DY4k1qdDj!c~Vzp-CQ8x}G{D7j2Qd@l=)ctYR=` zY)%FkpLjGGWL}*J8*KK3hFSd@>E1ROmS3@F9Yj2vkps-UyehAl0eC~!x|s0sU^-H3 zs@{GTE3xHmw$1sT`H>ZDMK$w#y4)^@avhw*XW$VSJUQg9HYk$7@`#UOU5vnN$S(p ziT9#%nv2F4iHCs|>F*FWx4d(@yxi~Jn<<@|ixw2Eoak=@2j=7-gMfHQ$Qo>3NB=`Y zQ9QRMJ0o12qx3PAA4_V6(Z&PJ?>O0rI0O_f8AiGXQ($(oMGasp$!BRnd~--f(5X$i zaI|^8Q&Uk+`l+=&yS?zZZHqIJ)ZHV_7LC>GZL61wqWuzQ3A3hSYSP9T+b1tuY z{0h{s3ZU490LbBj=D4ZaOMq%ES%e?bAt#5NMg-Jq9C!fw7ZUromSmR5SSSuk&Do0ny7NribYV;2FtAO-~sL}tyd7%J+^JKwZW3XMg>qXL7 zU#5@lE<0b1silaR<8fc_fgQ`rL{L8dD^#riYFVr-2>ua{ONuxv=Vv~TT+S38h->pU z0mN9QIW$AH0(4Z(MW_>{JD-sbP2|Uz6Apcf6oz#Sf^|t30xQcTseCs_i@jJUVw_py zPzL{X!!XgwGBOQ;ILO=Ja*H`rg6_c|7SQHxlopQ}tZSJnOHfQYj-*n_cQT2rjS@bT zE*7|eW%dFt;G+YptqZx{qk;9;4ZPDhqiww4Kf2=;=HglA@(J_IjEQ5%wIR_u0&NO# zCjn7dK~E6myzTIlGUj#MfYm378-*0`-UE4W*eoL!74_%o7_k&udE#o^!%6!qd{+^^ zn^}Y@?7dcc4>w~-VwPKmkhV!Ux-D+Uw-iGBGeU#l5yK^VB~EA7eDZma5F9#;Dlp&g zFaf{SM1TJTkSAi_$kf_VXKs%2LYL%OXJ@n(wK$`#*F2WGs4TXa;f5}r-8mc;N%rT> z)1zG!YT?3`Zq>;kPlgrBiw;0my2yw}aYnCa9dUInI2X z)26O<^c3pBw01V12x?# z$h$(H_h4D4S*OIvkk!X>^3;Db3tJX0_t|{qmfRyi@#&YVkNFN%`JVjBAWO&3 zN(65jNtB!34qIkYbKV@^oD0UVXP=D(F9kp~{-ee{rMW?U?Ou9i{i)0MUmxGxuaD^5 z=c)eVo`28#=#~)YNu2BCS$h5zIXVd9_|dVK9NYv4JArfY+k7~Ey%Lr`@GF4arCw4l zwkm1@!VcOZ#?fScGABSCQOn~U&2K53xahB_2@RItOH*l_fAhdkm13{vUK_#v6TJ}} zWWAYIsi8sE2%jiALkA&Qs3M5(XhYohtf%~?Mh9iOuyxJ5{Ajx(+u4sJMvd2uQ^}fU zMAtOm&+gU>hcpS-CX)S-h?MREE1dSqNFGwMtnu%h90MCP8`+`sz9K9UMGt+K=u~iK z5w`?b%e{JLoN(IY)@T=mah(HY2wi&pg<2^ zwN#9WGxLMJA;&Xu$-Ta3XEi1E55*Z6HDMJ~u`^p9&;$p^Yu8YJd*_%nqs>DCcl=o> z)x!>G0tlWDkN+Q0^bT@-I*hqNpsGS0BHFvsP>z}F0(JHhe8x4eP$rZ>gh^Jy65joS zKZyxqLu-YAwR9n`sP~gQ9IK^g0Dlq_8FGG~UdCdk78JqJZdB2IDiv7l3y#qr5Z9$G z{)tLJe2P;C92?F(wP!Vw>MRs496wxdxtc$cSDgfCGw~vZqnZF#ew^n8qr)>5 z!z^ndtDA^n&X*aMb!}Hj@IS{9!RZNKC@5w}(#eJ~(!zZ6xwpu`je1iR1wbyyCqoP3 zH^%MLTLwDto7>JAe83H`#e-=QP=T7u-X>e6yax0a2;(6tH(1ZV<}@r^EpUy{7GtHE zHMGr)85%@~^H%sF!WBweOcYxAzowlXIkhXgnA=Z>^apJoAVr+T1xYD5lWAsSMG+2B zy5+nMn@u!Rw)IZ6JlsR4NZwyI0;-AaCMS`skSgYIfcyjwd>9=K5@cf&?>7;a0iJ)_ zh>1#PA$ygGSZ(7&!`JW(B|E7<4vj(EXEA|#6J5;bDXq4z;&!L8ea|9|(6D$y`9qQ5 zi2zgS0BOu!<%-vAur#q!M(hfh3q3g;sqPe%5~HIKrg8nEDPU_m&8+lP0~ z;4>K44-@vV!^ih$d*;9-+#WWPgnt{QSNo@gVMGn;q0fSo3b_OEsJ1C+PMSekbl$cM zPO7jZMm$Z9rPnC95=8h5t^`%Qp93(;qnx~VRi2s%m|)SAA`?k`aWnX8Cg{oxQq)N% zl94r5hUWXycPr(ta8~`uny`jKIKn=<*t>EE9$_ytNQB+Fx?y$X{^9_5EmsP_W<#`1 z;S}Nc_!uE?r5E6<>{R&&ZeN2_8fu-TsXI3Ec}ZOXH|0(pQUMac(v?1N8=*i|x|zg8 zIPX3ephI>FeVLFd^?}>-iVB?y!`(%$;3Eq;2N1N32LO;|Sh*gWrYeYuCg(M^`hh7BjGATfS&$<^NdVY* z0AS%{Cd^_Gk68?YgK5fASMcVoDPS!CFJD4Rx|biBhEODI<=C%c8}T$vX`Jms2y)Nr z1l#`+&_ItLlq6+o^LTlRT?9F@iIXh2VGg)o6o^ey)RpxNG(^;h!iW47L2Xz?PjJVd zSCcksxzd0&5#InzibH#~U7^T-yl2O=u%`I{m}x_d>B6G<6xT8>C^A6QmB&A%xnygX z7`I6NWwZuPpId5pvH8ES<*)AFd`^65rg!rPZWftyPN@3>&VHzuZ*#3Z{dwhQ@^k;Y z__No$@UGbF?~Cw9aMBrkq&L;v9?l6uFVL&~I=0iSiRh_e3^cdWsc6=`hhy;6MHD^4 z_WJLF);;SNXy9@zK%)7!87=g6`j!%$(`d*4X5Td)SpQTQx~D#e(c=I=c?SPu5=>pGMXVAf0v{Ztacon$vPsWtC1hce zrV^+OBm#$@;no9xH$gX-p>A3A{L5tRe};QfkP?j&gnLo?z{0ByqHKZpQlx_g9P{IY zQ%JK&8q}{@A`zv(^3<`JMF@pqwn;vW=)vqvfYy8Ffx4qyjrc{34i}01Kj zz(Yz6h+lh_k_pEj@nkCHS|y%B8Tr_OQV`IZqlBC!K$=>I=zt2*HayRbN6Ba&CZa9C z(bg;l5S;8Kt9Qm!ZrqEwZ1RygWxn?qgaHKg2=Pozh@vRPi>rvJAKN-Pf$dVY4k`OURa_Own}&q~Y?m z>{hO()l@XeFs;|TteUhDjzE;zjuNxx6}ft2l*!Q;h%()gtsTNSy9r z6#8VpFG46G(zC|Glnv;I8J0lYzjXe9FeL#e0T3gYyhN@v^Pc$M2J7VElXO$p%RtI& zMdqj%Kx1dVDfDc47vY*E$9k_2{=3QUwEyC4lrM2eY%AyfbHh5@p^i`NtKe-%z$M2I z7N^2?Mf3NZFc4Nr_uG63T-1V@3v0Fb<@1xtm$N>kU%t9S0dH2LZ(0i^*zl$U{iFH6 zs1yoL4AB$Vo=C}1zH_O+rE*N$LkW-oI!$#LSDrR@xoXbYs#(7`P&RC!*@ycOf^{yq z2ToR{C%u%4FMOmkSafg=L8Nrf#Q;{3!ok(YP*z3;rFpoJGv?cg3Oxz&E^|!>5N0TP zou;9a>h83ms(C%HNY5#(=Dgk<38GI!R~(PNr*;Zr|0*wus0x%e!ak=B!NJEX*08{z z9o_1dzY6ylEZ&tY2_j0#Q%Z{GydD77%_Rugp;|e|@ideE$RSO;i28IFn)p2dlO>ku zFGv3hrxY6g)MIR_b5*axL2qzqc9R|FSlrO^ki?7gPH;3dd-}61z7ysMfp@ZKP+~oH zH+ho8lr19Tyb$ zd-W0Lx961KmFPcBsXH}0E^l&u?E8!TO*tjsna0!PS0#%wj+(}wjeX~J{pn$!XrsO} z{mdtLpZD{MoVD6V$0WY*yIVEqQH3_7_F4QUGEudDyY_x^dqvLDFIDTwU5Vy#{~4@% zM>Q__XldxG`|4vKBjq_#w$q#A^y{?uv#VGO`h9n)sJOGSEYGO;TczB)O&yL>>R64i z-n4F=QrVi@K2szgjf!u~81LM#U3HP49xCzACY1N6c0{ z!Ht3`vvQjF9<4|3>@I}{=ec8lh@SD3+L9ycHa_qTsg~WQ>c;E4RF?LoyaD1`Kbo?p z-f;aT%ldXtN=7X z@%uQ?$WVBYk8rFN9pPB1{uYy#ykv(_k@Ja`R>r9D_YKz3Lfl@)UgCFP$I7cgpDuY5 z(dN7W@}S9ETkoccgSVKK%CXpiieQC$yEcgQpfT=tuVCFhq-Vgz==L%igZ~hXq2{wr z%_BIVh%w&g{f)VzF?a!J^QpY+SCH|D!|F~xtgup-QH;HO*^&j3IE_}TCpN|=MbnQkb!wwFZ}h2QF}OUfRn@@X6r2y< zQtHZJUO$b~KyB@zICSKKe+B6@{*~2gzgE-9(2+4-G{Z2*YURngkKl!0 z0DiYApkO$Z5q#2{e{s@reqKh2sa$(*82icdVR5yw@m|TJQ<9s5_Ib~MAMC5E-iMF+ zK~s6jd1W(Ma{;HbWEH1pCnSOymIt1p)yR*858E=#`5z=a0YChwcR@(2-+h6P=!+Z1 z2eKdL!dTmvQ&M7DJ~qKW@P3h)RbacD+B{~avPpXgo5X9;q8IzdkJMXCJAxD_5Oc%E5MRWce!DXhL z$loY+7tc4w;sf^~pEn-j^9IcZ=cEICP9mk?GRq1i>oL{>haW&??B@_&79Z!xeUS_W zI4J$1GzlGG)pL_Cnd>5?%)sFpC(U)3ps`ruM7xy*1GvuN>d-(`_*6Vd>~< zy+o6*>nl?Czow^ImR5|I&n}~*CvP6kC+lZ-ZmGK(iE7}qHHwx`7v7$&c$JD7lVHU$ z5SeH`6P)NjikY4v?ib(J_TzcFbGNFPq0H(+m-r(3^*&3L@9D>%@U1-VNz( z{GK`=6S(t%MW8v9tTY@{JNckm%m>w3GB!!)Lsf`5u6!}Tg?UNs_vJ<6$e(bSuy`C6 zXMsFz*YeY!iKKj)@FCwzsTSkax8 z=tz;9<|-94RUeN10IrICw!$ts{mashno{V5;aoj7(ceHi&028gb$zjd^smwHl5{)z zq5LvB9`t5(H)s~vuQX%gw&3s4S>f4sdnbLcFiUh^Q@Y7h+=+7}y%9Ye-Yj0ayE~~9 zL8{rQLG2amY7>l8XN)JwIk_((D?r_Sm#vN)J9K+dEBT_rym?y8I%_u`atjjjlaWd;%QT$ zPq=q(ku&E{&9O-_P3=#Q3WeeC{KMnTWLdHLXg=@wlb^Z$<}k-fqu7>a2D$ICJAd1eT}kH#hX)3&(1jEgJ30~c3$Yw4Jm zHxU!)A#*-o0704U>#nk1EI5(~mC$}QY+-egnDql*rsL!6x!Afx% z7ZY{|S?@eqi+UXWg+2RG%$gGHuEtmk$1h7$$3hDz=9v^J0Mt+pSHh5yz|LNQn0)0x zh?97c43x#Lr|@idDV!Y!2_D;hQ#M+n|J*=e=#;I)vSB1}6jd|naf-akuvJai(}M?( zt=)yQd^T*U8G2a{G&>wMbyoAsR)L9Hv)SD^^w=F_gby6-dF>Tr&i{`xvP6QH0n72K zqZCQTfnCZ#mO5GGc6`7jL8k=n?iMVHG%&?0$*)q9}Sb!eainxQWy05Xh$5C#mx&~SGd zheiDEwJeTR-GK}6*DHS3&iOHB^HyG94;k5E0p1g-Bo0XF6K}z`>|VKv9&YI zyT>=h`t>{nbSDF#d)y+hP2AGTFwCn{@FVF-XR}EyLJ87WLqE`pcTCD60Ckw-`S_#)UtWnjB>vSD_S~&>b zC6k1BIt4LAR0nT93216f1r)q3>?ph+P1h;Nw)P@Ut@F1tSdgNq(%ynYjQGefEb%+w zSVYv4!VUteL|_n?>4&Zm(kg+Y*LpD;>(?QZzo5`{>qDn8FK6aXS_j*DU4hn?znp%dF^-?VAAQ@FKdslWyQKOZ3IUy2(@ANk<iuS-JNtu4&ny28mDpCxH&1a0QO8%A0v$_G&Y68JI(`DtD4cu0Qiq=<5(@w zKwSo~{jnYKuq8Xx2$E8O(l~s0eJsT#VVp4Bue9w!C5KcCr+6j$BZ!GzHjE}|pUCk{ zYV(n}R&lJ9U>F=XM5sg#o6^3MW2HmIAPVNrXmsDSW-J4ZD*`S_J%&#p@4O&)N%Abq z4gI(Uku+RDI82u`I*Ws$2@5&Ym%dEJ;5!&460CXsA)MD9UTe_YX8XbgYuO)3`w7?S z2-amKZj+|0rgjl(A}1QW)?U-ZQY z7jeBqqJs(DeT6sxe_qSSVYK{u*lbs?Fe9^$G{^djl%^T zs{EY6axhUaKoTYj>E^*30*PSJ^%Kx}8LerPhe}!mKI$&{xCNmy^cZ;TW3B+@W(iz0 zX|#at5+sNeeL)VQ-jHFI=-G0^;WRslgGNJK)(=^S^S*!7a=|5NwCe0)?cPmomf3L- z4(k8uToyq(%w}51!$}ip;3x|iB_HcyG#$2`K5inhn8V#-jhzE6(StZ>+TsFVk|@wf zgdqRY@%56(Jx3;6Vy&hn5ViSnNwX3nIUAM-HkU7}g+NXS4J~o`;!=J{8O1*NPd+f~ zy2DR*4QG*?mo5VXb*()DynO;+ua|-+JB-sDv90sIq!2WOeuj<=U$w;gb*tZh0b-ni zfvM>UG)fmn#!6)%@lcI%O+3QVI2?mU$=h_RvTGbQcHOA9NDg2t^oa zO=4pDvT?Zc1w?gA4{@Nhx?KT5oXD?Wxasv;%%}VfGaMMg*M7C-un{sm3@ejk!m@S> zfpd(_x1NPVRt)1Yq`5^>z#}@UgERKA3;frzroJ-%XJ7x|t~Yi*v@oW+@DIP45`619 z!_K`APT#b%dc2%VX^4%#3o8{;N7RN$L~?V0s3T3%U)5|q)|@vADZ?0-M7-~vj8tPj zBjCWJjelcmWq}{}CN)^;DQ;la5G2a24M8DLU=!qmyFjcBOt#^U|C;BMT$-2foY#&= zROc^bG#t6!DoPDO_%#wGl{M#>tj>HA^zeT%KNyOstHUvY^f8iXupsy7K7}KCV`p*? zO0&{cO^x1%Bige-8hzyE2npZ8#4+sJRa>B2HkaVRXFOg1exg4;1FiOllhfp2G;llt zf8-^JlenQGuFf(SNy4P>(Q@!TIs05*AOymkW8lCvW-dq|M5-Tj5IEd;?S_bqqxdmv zPbnG23GyL%>I~W~^<*4SW#Jm3Pp0PV6fh1L{{#?A9ahchAmT3AFBd_%!&QtoR3f@S zkv1193{F$bi7s&PuuN|}Qj5!G8~G^FU+{B!O5tqyOt4N!<#eAy0>48os5+Vr-OQMR zfk={Z0S5{y;Z=;g7h8gyyeZj45v>tthz5-i2D1r%jshh z@)h6Wuv@`0!s+1JrSu(?bRHovzs%H23OS*dIGtk;ERs0sBr{%bEhLw37rU8o zRC4KgyO0MnY<^pjYb)Y8Ime^`n9MhH=;oAxtI3`nyA{}Uaj#Vd}&rDJTD(v|m)t7Av zktPbFoZgWDiaq($s!ZgQ;v4T{7Wfs>r`O*Z_@cfzX;FE#pI^tJuTio-|3kktpLU{& z9&>wsQ4NZ_JF3n3OB@&Ut*1|KxGk_*J@Gtfz=NoI$Ij1-m^2b7r8h%`NEv>gfb!C5 z6htZ*_e#dMP+FZg4AW8+uzwwYl1A?Xy@+%iTOeixGCxoUU?IdRSSQ9eW)e;J56?)- z@Xcz!7f=R%^a=P$OAxs)0jPf@O`rnEkSQ%Wo<9X;R3^Z3`|@g3B0@=dbN;)Sb;29) zlhYQ`Y!qY9#Ga!X?d?S8I>Eo{f!$aw6p`AtwDLJB4IeH<;WIN0poa}D0Y)k}jn7I4 z>S)?_?S)}fmcBKQ3(^U1ZBwF13XocBnm93(I~sh{MF9S%xn^z9DRd(yG{kPb7@}h< zhMdKTP9K67>If*I7QRh3var8-mP~=22%*}_r?un)Jc7HYmX|&)oZ<%s@VN$mf^!X* zw#=={;MK)BM1E^8sFVPI@x)-onkOq=WGNwIa_WDaJ7GiTDNE{t$tx*q4^fDaXGy0e zd5$=D_Nv{Yl6~d5LcaFRB}le@+SJg_dF}HmnDnP#FpQO4#>bwxlIc*Q31C|y9A)8K zd!lY9CV+9sC;Lw7pJ)PuLQVHfXv4M;ozoIM!vaqXh;!6gIHmjrd#trNgi6<^Wf!-p z{Z3cCM(c=E81%NhUT8?shUvW%$i#sG`Y>oAx&)Ssk?g4n17wwM+k+28&y^$tU$+GG6w#V@(06aHGe5XHOsAnVK^}zsf=Cp*0`yVc9=d* zo>Dk0t~@DmTjjcQYQLh3r0@%x%suA(wIzo)y$QW(j09#<-iocJTNqDr;&jA$5%PtV z3cx&B3dbNS$@SPC(b|D&8LKV!JN6QeQyBbmfi-ucYvLL{4<6*#u*d0yE>cMRdnj3Q zYo~Jp+{6XXbHr0~J3|xmDpq|!!87#9_{~_`ImGSlE`@Db&j3?&$pVPe++7OW!pbI~ zi6`n}+A2n3+_G<JJYylk9tu(s4M^OVB5=QCHd5PXj>0~V5kh??9H@ihzuR&f{#QhRYI0Oor= za0&O(d?+vWqy^Ct(HdL7I#+z%N-EBm!^f)GzXBE-{iP7C26=-c)!hViMy4Z=g{3_HFTaFLn zfC9FFEPnG<%8{pA4`mnbI@@~hfr+|8&{mo?qD_Uy`LxJJaMB}F3blBBeq%8D>IV|` z+hSX?8vH_~ocD0Sey(30o~fUWl# zO8|_MnQ0dDf<&x1J3fKZGnBlKrc0URa;7zYbi$ou++}YX}?)0UifS;~NqE zY<=k1FbT6n|H2c_$+rO4g<>cGyYD`rkRV;d!{F(0BK{)`!IfD9mUq|{3S?NW7(i#} zE?_V5OFS7)V9hvBT}^QGLk@T5&C=!}0(r4=-Rq#-wRKtLrDRF365JdKW5d~c0PxZ8 z0SQEG5qq_~2T4z}HZNTYku3j+qOu!vQnwyMoYC>p|0>i>t25p)j^nBT5OiZDT+aEe z=p+pe2o{mCL&-G$!##YM`!dJZV6;f+CK~aU&gdQ8ejtwLE`3-Yoo;02_SAF~>uSz#eBD6A*#LC;w9Zw0jDYmXepoRmO)Py7vG5oV=q; zvwhbL6D=(I^sbZe3Lx&~LujIk4Y!G6;~ieF_XhUFiJ}i+XFm+$8YNojwSl3Q&d^_R zY|&Q4;KK4WAC;Tv(C#2k3fv+Tif!o!*vZN!o$D!BlXf$Hi=8`Y!#2SuY!E89{k@1Btfu5nCGa$3fR>VU=(|jfX@(AM^ zAM>HWO}M_NDUg;%ZwfWFLwPkI>vQ}o<7cB5#aM7$C`=5K0&43hN#oRLty@R;|urDd%Gjs`sM89{a(^I%8TC7)?CUw>k@x%f5y`r1!@J>0K zDp+mcEw!a*Elu3H^6is`v@^U9x+-a&`}r)P#*#f=e0d3Ai_cx{fVw)NN0?Y zzNNNvf2*b?vNZo*<0pUk<*oX6nt%R|-S9!)A4C4Hxc%W@+&cH5DJJ z<{P!i^{4Zqw?=z|3X>t_W?YiJVRku z?(=>M>Bc~cDdBzJEktu^P396f9KQ>6llJ9*;E1n{jrPK9ju3)M_`6*aN!pfE{+uM( z6b+=9dr=K2WG&H43Ld#&d-<|bVEf#b0XH45BlMf__i3WGqttcICMwPnJI3;j?_yPr zetF>2ltA>zWGJf<>cwgY>_3m_i#un7l1a9)1=S!jWmoO-9q)L465e$e6xIywbJI$f ze2|XQ5xKh&G@_D0r|NypFG*={fh|&cWi977@4A?al=e@sX#t@o=w$V?wh8%K(gmO; z@twuAEB)c|HZSNA#XjRrwXv1JeehmfdhK2!G1aASTxt!^Hjsrne5}xuDBooNu-XB% z1(m>baGDUeCWFS-13ocCO^b9+r%^zOC;2&gM-gZZsm`?Lp>v#a#EobRaF^T?vFJG2-n?z-hGO>JgDx)=kxyqL+JmEYxiitg0L=xwJxuxm+ zk4ix+l}U7IaTVhKC> z3PYuoDqM0*9V?y5?{dcdnpP_sM6EGv&vGwkH~H|pxRmhwfbbPQ;5r`-gF~5?9g%64 zs65F{#RhMw=Vtx}1zeF~mOi9N0QtBD2?T*;A?#P29nxFyN2V^Uu9`LKd@|8s6(5j` z?iNNe$;5BmkwsEYPr?w1Jo;bshAdJLQ4SR|Fh&C%sZnAm6&fGf3zRwsH%*6WV(PX% zsG$RDe$~M2NxabdNxx#cHAZhv8X2E)d$114Ceb66l5|*k(!!zR16c{tBMo4A5^*H% z_|hVY&H~Z$A&&1*F;~xMj4?9s1w#Z4Ja}G&wP8J!@C?s(l+|1Y{ac3eI zyA}+QbR0xUP2#+iI1X|+eV|AEouOio=ZY601a6^RC;2mFA4B7{ik(Vh1Hd${nIhP>aEVJQNh0&YyN5(Uv$n800 zj6M<>*T&~Q&UDRo5=9K|j3 z1cvl=hm#H!b6G|kvv^FQBmCS$@1T&;$$^3R$-Kosi6~2lm6ggG1HmxnK2H~W6 zSrPi;tcZKR9oAu)ZF#WcU_LA=^R_Di7;V{G;%8Pp1pwx2s`c+kDCgg_8yVo)Z8A>( zo;G>?Q_lcAJcfI~^N+`L)T|3o=Bh6IE;ggaof~+BXWMiz%gs8kWsSX50KQ8 zj(U_ylA&v!AhnmU21E_xfb@Ru`cZ7h`E`)C#*H+Ri%L@GWPbUwMqdzPE!mVn!7rk6 z1dt~~zW^rlb3ETZ?>Q<)UoZ-W2BQ}xVom7lg15relb|5_Ror)-(JU z-K+zHyETtn99u>uBxR8uiQ`AZn~UF)^lyZkie5XC39GnEBDl+Mz?U8)rDxkMK<0;? zjNeE;X+WcG!kdfyYT%V30XPA&kK=MXZnRl&b{RILwZjz02TVC=OhPtxBT7MYwVR|S z4pACiG{Z-?agft`MnR>ov75#*6>MAt*7LU>a%~m*%m+wM2`}q?UlM{~m?GsjJI)cc zm{){fmKEbjUC8dh$!7=z^;GB?C5{VH|7i7UCOH&gqqM4p&|zsz&Yv z_0k#{U|Cw>lXldULRJEZ2H_B1($ve*X~W(fo9K@MaTE!s1z_je-_zXonF50;wj<4X z>K$!vbo+#yA7HLkUg6!y?BST;wZ;j|qsSi(D;kpSlWa6qpG&qLdKc~LHU?tW*INa0 znG`Nma)K{Oa46cHA){pZe~@o3JVAHpfN-5`bU;ca2LxV)z`7#6J0v3V|_E z&eXKwRlK{)EYBf06(7Jp!l`a>PNP$3<5c*JVRA3lG@%*pKK8KZD8eAgt?UofxdGqc zyVosudl{XN;Y{!xr-&7NUb>UV4q}C;ss-!lJ26?jJ&bI1cd^<8X!-ml4W@k~7 ze{25Ii=eyYN5cOg>=7d;TPNKtg>_;GqDxq3m(am3KgFQSzf`psYR@@AgvbU8@QeI5 z1*DCIY!fi1a<%d#Mi@rNi7(c-oq>49wXNeH(-#LvrQNX(;s+tF5#lXX@7q9^X%~b# zK45Nt;P)WovvG|SU|K)E3IiT71Qlz3APw$g*egVuVjO9wP{pnRtJw*Os`YIjYm@sE z-WuV2Tw!N0ao4;(SPjEOFG3sc^&C3e#l|GY6@yb7rs|8QNpNrXp{xiiLd+~8&=?VW zY^73{`7VT_y3gC?Zj67D%(te*ri^K8Q^Ty2Ta=Xl*I=V}!L++lASlCm^ULJl%fBN3 z_WhXr+xusDH=i>0N9OL)cnJS`G1y(hEh|MtoSYht)-$6}KM77h}0IP*6J zJ~V(+4j>w)a8Y#g>MN_1jw=`sguD@<+A#@MT%Q5uK(z6+9V7lL+E536p9R-#SdTyh zDG8*fx31WTk%PMnhpWaEjEc_~9juE+A#*>7GD0wD zG-oEn8Zt>Ha9f3Zle-8~0jr|hdZ1TTqFWh6cX26$CNiKm(I10bX-r|~_*K^2>#LZR zN*@yM8>|T6A)U^mSM|lH6n+%8w<5eVZDF;=w0x1@|K#9^3BL5IfuM8v6uVWcenZOS za?#EAH_ui;2q3SXErY9@_IL z#n}Sl9ZVvtG!F(0<3mUc{}m%wEo+mMwFqT^XGYd5$^*S=J*94J_J`<%Y;qPlkVt2d^WD(R;)uS>A$~@W07tjOB?1LB zw~ig{M;?%3Zf;L0GK_H5sZfHztMW;=@ldvo9uYTJ|vHbW|8Ce<<@bW{r~`U#^BnJ=5lnO9q#YrIeZ`z zBGU-t0O*c!mQEv|8V%_T@Tfckpk4F0NL zF{amsc!@F=jA&dc&h9hXgh50}0AfztL-7$VGHm{%0(1))k3d-fr$8vr7L2qPBe-lB zV`S|k=PGjL_K}F-%Jbr0L9&QLEy#_D>%&Z@nq*wHgy{}J|95{G$HIUTSoSR1)Scpx zBNG^5;zSLh|C!bi42xY%y9q{%)XYKN9^M%Pp`b)rU8h@|+k$i*z#qHFAJmfa&Y(P! z0Z2eAc7rZbrecG48j(rbxvE)4A)0hM+&#;I+Dhrsi7N83qp=bte9VL`5`>E;ffP^c z{HH((?Ngw)BwUq1I|lThooPbRIru%OlT1|D!@DT>Gzb0^RFJBK7*g$)bRWn%;jk~L z109U&Ku*oNEg-Jsw=t(Z6jY1a9Q%xt_>s^sGUT9yQnLnxivK5raJIg*o2VhV7f|A)rFk7&v@P$P(-kviCRa*MFalFt z>OvZdM4b);RMp?D#8S7!t0=tWG%Iy}BZZ)pdsExHR0sJ*+v4=anW#U7PExPPO$Ezp zdycB69|W;nG|4-f$r+Uq^3RK5x>Z2lG-(OYVE)4aL#Cl(_XV}zanq#amIE*P?n>MG za5nu`@Jd2(yrJU7 zlo$AjDm#k6IR!$~y%wdUpk#O$pIMquv*x#ysS~H0OxacZ&5TdAdB|XtKB_?{q>tLi z9Hb3Gr<@BS@vD?Q%2PAZj|Kj-t=u8#+RV8MwVVi4R!+QBV|SLLdm79US4J)*HE`Ub z(FyI*nzyr$yq!s8+FtwhU;knY5C5j*Vn<_I$KwIn^ZtI!QDr`1BA+*oBcEe_e8L1X z&A%z}(>KbK_~GdX@q^d$W2VAgWzP}WqN*wL>dDk`eAsb`U9=S>(!e-eYM_&>54w`z zItx!ViSH`9Dh0umvePDQ{>m?<`X{9rs02)5WX%d26T|6yS#4pc-n3VtmgI>H54VQF zAZ7exyng&@X;7FJ7_kHwnOva=2PSZKb=Q>6;!=d~UNRXSjPfk$$dTuW&m8#i<>Hy+ z#NmCnfoEkVMv@;WXx`(^Q^tbPs3)bFaOsRgB84xj*uAF1`W@wms+b-EorHRq_y7TS zRnJ8EE;^t105Pg5LUu0vHq4UlJmop!10>fg6^v7Iu#fV6VUE~Wz-Z$UDQaRP&S#lz|pa z!MIWTpp12Gki`NXSNST@qioF^mAnX^3XaUG_e)K{$&Q;Pi7S+KYYSXD2creHDYv1c zq+KO&MexKp2x%7lv6=}xIoYgw{|zNmb=aK$qcYb)Az1xKmu zhYvF_;kf3$s9exX$bDTAq?tP&o@j7q>d|94ZThw+kP$#=j*r3&L2*@5M}|leG@Sc4 zIUZ634QF~+gIcmnc)TJdLurHI@&3EMnE06R)`3&)8dn`VoIIt_pSf~kTEh91r*P%EIt;Td zr$P7D1Gqe{D-u0uo9_lQ)r=FO@MfWk1gi#9JA$#2eBEg+U8aUnTV7^kTGK(f|Y)eD%A67FI_hiLx#B7Z>Apj~vh&=mAxBU{dlDjp-8+5j6>UeX&YmXHa8< z6Aajpb010`|EnOf1~E>LKa>zwAweX7M|?cLXDk!Msm}jQLPXDRxUJBKf~N$uV6bz! z)k_ks+E>z$*2pds-&YRP;tI@BV3cF*8K#w$j+>eE{0gQkUk{jdC4=9} z97P-^1h0h)2$^H!0VqQkZ>u`RaD(YAbw)^g0rmo5=-^wUgEnoR{?8xYXw_Y`LG(COHxYVupAox+^RF6LY;K-`6H@%^6a84;{f z8~Ckl;*Tz!`g}449v{_T7zT)E6U8Ut4c>B9&HnVHvn}`{Z^18=I!k8Kw54!ORpSZ% zq(fbfe)b0m#IBX}QQc)pUG)&YVf-G2Lpv(gfimviCnj>tcGs$ZF$3AgeM+EIoLPma zsiTYNseoE953!!9pDJyTIsA7qYB9j+%gO!*gF9{7k;H5;!~CsE5kPR>TwBI(3L{a! zitLg3{kSt)-W)cPs#6(?nGzQJ-8bH~G;8c)ULsDKs98lPJ5Q-W3q2zE!O+z{2z&{& z76h6k^qk7DxC!;e{pU!I=B`L%Kh6!l#Bgo0jxdAkiRt@ZGk3wKaSSA^FArO$Vu7L; zQx|e!DI1GP9juTbK28A)^+Z@k$7cdhDYUqbfyM(JNb4>p6oYGnT{P7l?u=Y+JtINb zJJi6b;kmx}z(ugW!v_w-c@W%!$x?LnY72)TmBvp_S~OqU9s8~Y3#=^DKM-S#s}{jj9|b{ zLWh+F-;%w8@Mk@x4khFJ^K1wz;Sr|>7p1Q8I~n9z7Pp^chGEO%hm^XmCL&rN16^c2 z1D+^_bd77OI8wVJjRDy(I;1Yb<$?7lS-5zR#2inlgfN^qA#Ov&YR2v7L8f6Yl3h_v zFDlg3Sun4b5K3Gg*v(|Q5?-OF6xNYxf03=Jc%$wiMK)KgY!)X<{UutTuGh#umIa^U z@({$A2T!TN4hY*JxGJ9o*S@WQPG^RP5yBPJK#Yk(**Nv~5v+dFg7_hZA#=2?!BNd2 zKv37=aj53iJj(Q9RFf3Li9O5iCezTB7n8qCfRpIXlX2<`3n2wFJXI16C}Ex*Q%gtR zo457($v@H0_;;^c?S`i(zw!f3N8GI=t*as@y!4M-2yY?MIZ$emLC2qK$r~|SL$s?5 zNLvusB)x0jdV)_J>z$k0&&aJ2WgE*mzP$P4R`iXmdQ{ag1o+EHfKOTwRl>>1@%Xsp(J7KPQ(08BR}4J|zn)kCkD^;aTBroU|86PYE)QVW;G%T)o>S>xlv6NrGOqm zw3yeS)*PgZL4tuAsP37p;?R)`{?%svE_7tohy;4AQUUF8OaU`=Oj!+PCwADT;%z}| z)xyF3RqvXK8O^|Vkf%SLfUQg(4d?$8-#@~d3D==9l&FE!=U^VvPKA`t7o4NM^VlhP zN^eR|CKE1GwN1P6)NH|Pdbl({a{ZM$;QmOJ;tAw8#lx|e!gOV&sUxP7nnIz-fQm<^ zyO5#MleFY~KXeVNHy)Wr22^rndOJx<+?RY(S&0k@l$@{&a*94wAA3yg zSEJseBF%1nC`;&D=|z&6jcG9fTLwGUZmh#Y`$#uhU%wR(=hKtx#^H%faLKAXN^ict z&Z%G5tvTT^HCdP@zZ3sR$+4Wgm8wuog__=r&B_^e~ zT30RUC=HA{P?uBjL&Xe?+*NzUx^v~rwucf%z~-dP#|X*PE7mC~qmTeQSYJy7c%GZB zP^aHFD{WMh!^>t4-=|$LCTri!seUxV^SrQzak^6$UNzp>NS0JDNRef)nKh=@|# zY#+xq>*>V{*qrs1ihF~EDMU&9YFr8Ra{cnbsB%zMG zLuSB;fVcHu+O$!)1O?)%o73oweSa}!B5h9fpH>h_p4Zj8gZv=@4PRKD4uEos`BhE!GCYCq-IX;9@opYj2V-A1lJL!Gl?C=*oVQZxm%DtRR)03>&ja|(9 zF!eHlrqDH2oE9{Iv6CK!{nwj9w@FH(o!Qk+oTX0KihnG&;&p-ubt}_&LWkZrSVwtI zofCF?;4dYf+;y1rN;?IStKvDJ7+y1YHdIpNZ5g`MvU$<1`qKtg2PN2M^zWx|N;=}tkN zj5CqFn>@vxbfzJNqa(}fgj1GVI%av{IL3LKa7J_?ZkFG94KxTvvJSSOXjVvR=$i1O zCd&2-!y-dpOcb=-U&d#a-9e^_?iH`H$j%4-wVGWaA$fTvyr880EE~WeLfu^Exue}V z_&2cZxi@Gr8@0Oh5>xB>wf5&;$eYQGbOkC?uS{A&L8(3w93R#OQ%MK7;E z0`d<-91szfa)V`d0Wd=y&lmhRCIeTM>+m!>%wkIz%Bkg zs_Af7_qxSLi5?f3!21CzBkd?dM~xPNgKEMg@Dm6s;c{W*`h9e3%kROJg2Se`QVbm7 zXB)ivvF6X^r8zZRG%7LOM*y}qX8J!c5jxG;pe zyNr(>rxrzbGJrpNok%|E))G~tuxh*j97DiYE1_SnajzP=L@Bm}Rb$1_9rvOP0PtRG ztyo8X)oPq}GH=AWt$%a*bVyfFwh&#f)`!ZgSZieE8hcr7^u}&j3eLtkiN2ryg}Mh1sf-CiC-L>VGlF`|MaqB%<$;8_~F>S))?*AhNy&VR!} zRbIkyljMk<#AM==BIo=;(vT9DaS`NqAW;7q_ig5J-=-7>xP;C#X+xG1(I%9`taN}= z1Q;J4gm4FEF$4juZAHv3q_kp$B(er-YK|!aAI(|HmD3#aPDuDDjtG7k&326lsul16 z1oDp1DnM4FhGCjA?A7R8-8-lgC$rw&d5wXh6)vD;s=z8;FXt?kAWR$<49(=QC2cRt zMNwx!F06$!au7p3aoG;y51X2AQaS}?4p=cEj=SeYVxS@c(UKx-o>O2Y2y9D}dfY=G86c5q@A5?wIIF7bjel`^ap;|>pxP4ExA z-(4uF`%uYZ5_gIiW*v!GbQclXUGW&8d10!)c=}!sk*s&MRjkwOz_3CdOu#}h%o1Zg3l#S9n*)Ex5Y^`FVl~K66%1EGkm*T{KLWbVN(jqrSZ*_gpePlF z!PePMmr8M-a38?GDb}x3N-);;ywWAy(>3anL}MbLOY4A8G^;`-V8C;Dq%I4O<&mi_ zT`=cz0!{m0@NOD5SX+)ye|Eif*(87(;dT9E@aQqfQ-Vfm04Eo|$LH-eeWwUZI{UCt zPlj5u=*|9Or&p<%i?E}QJH%sNlVU!dEup5cMEj;1iszEa5*Dd9fdl|TY$fA4A6n}I z2`AhdtV8&5d(N)mfVyUDZZkiDs107f2=5Id{{DN!DVtyVJnnWW<`q{n9{x&x#pmMh z6RX8I(2v!KBEp8SXP~iy$v9y*4}hW*i$=xKv>3d_t6WS=7+q3Z!*mm>q?M-%gs+?w zlY{W5oizN3A;9Q`DtiM4qqEDyHA#>e%=)Ft`#FRg>Y`U=7s#&5Wn9V;z$U0aO-e5n zxQZ){@Wthl0>i{(z%Ito#{p$ldFnj4)2kW@#V~~@W1*K9gDM>k78P1w-#+F}CVOAu z9%{sLdJl1OCuLxf)InSf8*%ALFa5J>7R=5t`xF`&FaZV+Z)LCPY_+-j4x1)_J+>Nqnz!TVxlD({Q9roZSTNFYgl z_Wlv9hT$Z20l$ABy~`&G(c+y;jmFP6oLql=^4*m=dg)TteF6|~U!s{MsbiUQA$Vx?wao*K2rA zafoeO&fGVShiAN#17P(2|Z#Q9T+ zqq7*HLqon`Ew(Y%Vlomamj#ycy|PufW3a$$*EO@UL35Lts#+2KiUL8v(GYxTqrP}K zJkY?>#V+Hs*9Q&`)Hh=s91sxBh%pjJKg-B8U{r7p4jbd(=m)(6PLhlDjvSlPWJks!@yHNPQfl{*iK1#Wmz)V!}i_Qzcx0DEZ5$aU$bW7Zb#I-By& z%#ao!wmz#|@?jQGKF)8Noh02C#i$X&o%3iqZp%@A4at(&JW zK6~r7jF`%{XB>n;4t`}1tn~)U8=#g04%5X_-hm(kb#@E>ZApGQA1F~vfFu-TFt&jv z)P~B9!w1ihAYsNx&% zV-`~u|L}W704j84CUqQ|Ncs)Tk+r38Rde~Yyf3lj-QH=*$aP9;0cj-u1p5SmeS~Jv zOg$yrFH1m<%(-T*4rV$+V7fUpvS#sTwkg}p`F~D-`=9$}u9@F>>Df0!^5!!(O`JMl z**TQ02r!8p1uv;Y+QL^BA_yh@NH7&q-l_7BQnQP9Nq!x+v*esoVj*pr`>A6!uprHZ zSy;wC+F-AS;z>?a9ODozfF=Qg9=6f!3%X8s+PeXXc;&`wXOI!ByW~i z`Y}^0Wd*9Mjtthtkd-lUbn97*sr7^%In^7K%?DI9Bc#2XA<@5(Z))f-amgUL(p{b( zc$t*)5pP5vtMyZDix@PR6XkB9g(3M_nzYKo)A4OgN;cgl8q%_hS!S3Fiv;ftSepTE zYNu8EW5&g#OqJzg@>|juXBWpCyiBCbCOgmd0wksF!epm$ntg-;$g_|mxX`#5o+qjH zDHBh?dXE()eYim{6>jvqB()z@zelvabfwzrt}LVkW9Ge->|ZFDPtDqvRG4=^>loXH zHnAQ8tu$W6))08KsHt3%u9?wZCfi_ajAVd=kn7hLs?df;f;qe6{L8d~U=AEkw2zvj ze@8XBHrdf>NnTV|4ND^NUts!RGF9bU1?y_!=v`FOif}nGURJX87M_c6fQ04&3Pj+n z09<8V1;0A0WJzS3m?O?ZtWJc!NS-C7)|2N*p1W?cq~lqtWTSc_>;NNcq{g}ymzV0w zJUa!v30h7=!I>^KLMIRi!Q{eSbh7oN+eL;WvoY}kJ=qN#*=C%^O$ccRuomWi2WtTN z20qQOXmMt_V4F~JE-8~}CR|F&v^E>3v75xtLv+E?L-(;kq5ei1DIP3_jA6B{NCK7( z0|6+lD2Z(1=oCt!3i`Ls)#7qYlf*)cmRzGR?pcsZaK>WC4S=rKWvgbv${JioMsGH- z(#M-i)4FeZeYtg6SZ9eX@{lskF!I0%E;dg_!Utv$>Zu_)*Cso{e#whq8f5@nykklX zRicH}rQi$)@hV106lKH&>~3O$?%}!x(wxDG&v2u;i|^b#!jd@jSm{@R@(dR?So!Eo z62o}ca1a!*>XxPM=jbT67?}W=(r(}R&!{8e(Fpy=W-k+1t#Dz`EfBz}LjbGB8vg?1u;f2j;X{sV%JmQH(<>b#K7<{aL~@mn2vF(<2R#= z;|b}cKIpZIdBS^-d9pFV$(^06C1pGWhq!$TR(-&*X`K8Jwx;W)Jk>|YbB;8z4y?g( z$9E_hcL+e2Dj0_oBj<1iT@7c*1s`1EJjS-%Q1ryG0XRAa_g2-Gxu;C9a=L*pb8X|^ z=iJXiE{?!@{4Glkq;QSx5$P0|C#D7-%T0vw_M`>fTW}Z@Ih@5flp}C3K;}`j?ga}B z5DHt8wy>KKwMB%ME_Gn3>`-ILNX*pcsz;eiEjtm z;D=3F-+Yy2PHNZI#8fU0Gc_eQqRf*6kVOUj_ob+6g*Hfru13~mjW?XrNbo9tyRReZ z?9UDi>wwo@YJW@7wDZ};kM8LTok4M+1|(oTIe3TiLqRL=JAja97N}VRp40Fdpr3ER zZRbJh9i)a9gI>LRyswZ*HYI;xK+Prz)+7jC4``lLrApMD3c2Wt%OV&&`UHT%DZK-R z$K1LZf!82{_r3s{M_I$Mtp!B?s8hQU5mAvAWdYCvd%iJm-f3F~fTL=KBNl*Bz%0{} z9WfQ4m$9>ZOj?3V$J{*z(AQa(npoBCsiV08cT5IU^>u)*{Xnn@(+FcrKLJFBVVm~P z+Zeq4;Tc4zDVkjhLQe!&&fG>spE^OT43ce`{n!5fT0$xhwIFU5B7u>|?6D<2)kih{ zM_^CA(?kGNK>98Lygn~*2`*m+qo@#+v}(dDLR1R6d?=M^+T)}n&yheF98g4Ibpf=A zSA}wL7H1dGVxf_?YurPKS>xcx;N7(Y`R13>{jwg6ps_`0Gk~_&uz*MY)mAejRHV5XN0$f z=wh4|>!w5}#yeuu5Wyq;-;iA_VXIibGzPhH=+PZ;N=FSAMs~vtf+XA2uD~e;6D2t8 z>R`1!;g{XC5=UUTKz+MZ9^v8e$QpR-1Zx`_f?}a-OD^WkC7|-mdz3nkL^n8#+@^6= z?}Sj}hM%L{uE4X~Dp2&ZuU&>P-b}p>J6>C65h`HL5Ft-x@Dd=Qok6KM;JIcPItx96 zgg7*~w%9cct^&}E{!qWcQCPN^LINbeshV{+PBgVuvv$Hh>X!c|?;9W(6`ZAmrR~Gc zpo0l-p=_)daH=Zj%56zay#i?aYI}r3pR}M_EQGN|GxW2*yi!1bWt#n<%s>TYogvK> z1SE6skYd+BLc|1-yVzDOm4OeU=!X^U%=i#Fl+FQN+nKSFU>M9#6vOQ+EbR)9YFyw^ zn+rUeFW}Mq>l_~C-a{pKnml2+R|64sf}HLxcak~DmYJ!D`Fl>HKLX7paEPJCLxHE% z_ric#cPX6F8H7n(m)l_KrEh;drSR$NMnjGIN|&pvM)tf6W<@`YDZY75;d~!36nIL6 z%FrhoSWIvvj1wFQ4B#ZMJxKg!w<&b+4yxwx=<}XaWF#5vu-Hx zly5ud^q3+RXUJ|>V3KYT5uy|+wD_O{E1!bJ03QU7x1!I^qMs7|hXPM&lnp$N%s20p zA_HM4@RW`s4ion#@N~9c$KJw6(vuIg{A}Bj^QL{;0||`}1p#P&tU5>vLsf;zKfWK` zM3B%O>Yc;0wV>9+aZ#^#_22G=Fhq=xCfHwVf@d%k(IJNX)q(!t-!e%Yr4|D*PlQj; z(vsj(8ihI|jzE4aOw?TnDuk3~yn6woFBKRIx^7nq;*;l;5V2X9Kw?$#yYw{})H)*$ zV@p-=*EM|eThpB-+XTRQI)Op6@if-8=ig^_oSSl4F{42p%RX>{cl!~w+8+1VWyZ}e z_(t>t4O&Hb)iw#xYLI@GB6r(2)R(NN`0NLFy|KQ@`r5r6yCXjR?_cK@Zis*L{^@W3 zXvG&7jnfLDCs%1(^bpRQt*{3Z(D-cRZ!w3e@P8da3_OX1=)#TpOQjgy7*f_@++LHi zsybXcEKLg1E%ROhe*NY`U-T7W3mo<Eu zQNgH&94R<}Ic)&MrmfU|V#_$G_B(BREzzIk2uM6kHC%*Ho?<`cs|xe?AT)Isb6z20 zb(`8b{xK382%&KaAf!ry32$+yhwKc|RjsKw5%)O#^7Q800s%Jm?3l(MiIuAA&QTWE zt_znL%-TBUuT|MEOzzI|t?luR53Z;mA{m^f#ufe z5dgB5rX`(qWc>8-rf+epICD+DPYJnkm?XZ7Hk96y)6E9DlP;;ed>>V3$=w0*Y5&!3 z{m!O1Nk$32Oh3JO|5kS9NLHY69M?lGo7kP#`#pKM{DrE{LkhuSI0U_RW z^qj&S3#$m(r-*kjT~f_?qmmc7muGJHke}s(S%dqR#&KPIV6^)8db~<*GCGUlwE;FB z%(NKvTe}OlXp!-baol}^QNiB-!>C{fcVJXVufXxC<2Mh;D|tkhaUig=$v_Z6&+by~ z<0CoMalr|uL7c0(9nf72rNv%iH`+A&1DDF>K0kUvB zk7`L1uV)w5syE)oPpo!@?vu$YYr~X{2gcFtfpQaF2SM8 zt%O4t4J!qUaG+Gpp`IEx^LIG{L!AUq#>59c&%+TDv2@B$z{uKzul22bl5kf^J8lva z(r_;r8GmF7e~;I&^9*~-m^W)gDu30dxm`N8f+iS*$1L!LF`9rMu0a!Ia}$K{eo79L zM-@-6adQSo*7Q1YVyA1S*j0n^7!I@?r@WBPCu=C4OnM(q|3UbXSmg1H%ApoKWdesH z*?U$vu~fHu8++>q&j~w&QNER(*dQjL95Yhx{MAE^r!yY#bwDMga*iiyq+ z!AMeCF?cNa>rM~0VXZ*3?_y_J82L^QhQVo;pLxM)mcC?VS<;nvml(q^*Wk))AIS4T z@2ci>w6)(nQ`LTYip4K#tEm;d@_h;WZKuFA&rWLAd-@#f$ZGJ5n$!%zjG1+-t4!7^ zpET2sqI6hK0YEc>q?<{KbbL%<2gHg-jV|_wFi08z>E^OcsZiKozFS|M$xfAbe?Qur zWwTYi$iHyhRVa3Hi*Z_&>5myu6akD8(vP4I5cMPhtY>2}nwG>5LxFXSp5bh4njWg1nS_5` zEB^wTiO2BD3*`0qhjt`!W~U--WP*nfz_GO!Q~lVdw;ze!!$VLP!dvVxAXK36Dh8$E z6weGM)&JoU^`a*0DmbpB_y&K7=k=%$uJTwIIyI(M9ax zZc#cIXPw`l69ktP)ZaJceC+8wqV--HMiiqh_C}M!NOjdKgy*<7!%AYxz3Dk;AULm7=Ybv^a9;}VU$B3QC{4| zB}AiT6)+MQXqlHf76P!h5SukPtG_EWekxHqzy}q+s3%=}{lAJA8$@{uCkSRN5}hQr z?VeKDmq@$O5cq3|S*O_FS99Mk+jM?V8a~F7qRcpwmH;m2^=G9XnzJ50$bSQHat$~w1 zd}i2h)&^1F@nUM@8DQ>d4x!si30$PF(F7BLrxdnmFoUc7aSQ4(g^yq#Ku828ac$xt zE$(GXz+)@?w|milAmoHrA3zdRWSL4#Z{!%RGvlgZxQJHPrr^?%T^_b9nqiS;aRN4V zhArW6VwD##=k;{3=lX{epM}wa<3SKMUH+*n2p|0Hb)+yN?*xtE!srgSMlTD!)GKVZ zul2!#Qohy|~UeelGVIii&`q)QgiNl0*w3G83TqCID)4EC zbNC&W7c5OtO-bkR^uBK^flUv@?XNNw5>ixp-7qCx(E+3B(;~bc3>2E@;(*R>Bqupd zbKySa@YvrWK9Aw23I2tMzu{r|IjvC&`!sRJp98DE2ONifUs!T3)uksSoEKgI81;ts!*9>jrw2|vX-do}d}iXgSYuJukIyXG zkvg_@)>F$AW!~)*?%1sb_`~+VZ$nDs8y!UxvgcKKr7xIAZryd#1TY%xjVkB=f}A@- zHl|#1d=$VP1Xk<3A13F1Xf!efNGWQ~kDGgsnU+_hbu(^p5~9l?bE`o_tuinyQ;UQ#; zGsJjCRgVAyMzK=2*;5L~8xIymPg{<5Qq#$=^%DVQ7$+IjBI?Og3ZEZlTM_`sVFFL5 z#mJx@aA2B~_~*@aBE9QpMGS%~pCoAghru?BB7J2Nt3RpT5YWl}cd^&?lp1h&6C+9c z(Jd@$6b>0dkRkB5Zm5HIq-8drY zUp`5K=y1r@Fk+;vlF8qV?&vzbmjxGB2nTb1p zr>mO*;(DlwIbPDljG{@990gIxC@$ca!v*!`a1FO&lOHDCL=?V$(&wLOOC_zb3^h#$v3wsqpL7D41h89u~ZY? zs&2gg<;36UY6CKM?;#4s_>5l@Qt@&P_Jb`{VKPX!OkeySd9XbtomRuE3Zr*)ee70v z9CJ#(Gd)X_AV{iid|sg@`nZXPj1fS8M{MG}bJtPRvpCqu1ezyJC+bhMn53$@^jA1B z)L>1h2tBC?F)n6=W1Q!ScAm-SQmhG`vWJSfY@31{Y8&Bf|UK_h9r@VR}b`)HVlwqVURtdk4SjmHzoOSX^^gcjcWZn@|t+K8y5Aql)BpS zfz2=|)&6Z$q2*BTp6^C6_XPh#QDBg$I7{rMl}g=Xd!gPgHF3$?0|n#Lyh zzxOWGyT`j-j2)-fYtM$)#{T?%sJHvPUGBzbb)%Majak{xjvSK^j}Lex)xA$LL`05B z*=ufrobBiR6dUU2Bsj+_Dx@|ZWf^Xb#Jj{#V z=?FTyUHcN5Nx(6Y{|a^CsS8F0YvI%>isov3J@=(Zf-o?a*Q zc&Tzj#q`B!2lKY(|JG*IqVMrU=8u0}_C&|psKl)y_3-qzeWgm-QTAM$dSc2Bwf}{c z3mZ-G85bgNZZwsce)7Q{Sa|OE;n(=P&)>`*ua9_Kk+K8(bQUZHrNh=~&o+nY+RK-1 z4<*Y1{ZP9+@IHOSHx5&iCHi-9yC#E%d_g49Zg*C_214y1Id9PXGCZz6mWZ<(USk=$ zQ*4jZLm@{^i+OudBfbY=cpM~5d7i9hs1c73pl2!jp<)guqlXewn!jc&6Ta7LM?x~$ zfX35I4d1REc|J^cYBo%y!xH^}Q;BXveOB=osyX<}y74x0JMXBGyrVoy-eX6-sxN*^ znlw5p)}0e$$u{9l96xgp!I&|9Wq8dwYq2{u_$sdfQG@@fgbH`$hbXNcRw+SCj3|Ya#EAHJT;tN zCdOcQ;Itk7=xA}T$^)Mg$LR(>5E!`#ifiq0h$R;Z4 za+y^l8%~7G=~azr*JCxJ;?Bm7b5|oK5|3~NHPiK3%$S6BT$r=rsefHxtdIsl^K6Bk z;4$@;K50iyDQujKP4qXAF0+nqlWxb(;+GMMp*N$oXch#Ypc!N5gDNR!`5mpWpc zy778pc4i&A3-f5ktJR>DN0dsPr!(zm}nTk1wIq%V<{jAL*h#n#S`6MMzga!NLL}^D5^m_O(dP3! zBcqbd#R7zIt5i(5<8Euiqqv()**Xjdhp4DiRFq%7jFJe(JMaw}gvG2WL6q(|>?-c$ z=w-$3B2^8+#bD(Spk`Zj*UM;g{zH7C?&NM)5cjpzxHv&C0;WYhQhhPYiP-#Y{@{AT z4!abSWr_Z?Y-osTI$1Sw6tQyZvwK%fbU$jk!EWjNBCjU8AHzMPopgSYTVoIx^SA{u z#>QAn>;#4^I^s`oIMX&xTuu`xr_IZc-i^lKcObUl36i7_KEj>E7_5M9kxx3mAl%ta zG3A|yhFgSISNyevu)@&bz%7p8A>>q!oUXMu2Py0ZigeB#lf7lq(+d1oIsKriajWyO zP2TO6*>M-*SF2v@crEvxxfva>3g@r-SbN;Klzo}DU9~kN7_h~28h}#?_BXlrU}!*E ziK*3sKw)icYtR{hSeFMjm*1TJz%0c{^JKibs|dHGHO`pCDf4uret~H@Mu(AlA-v;D}`0&N6ulO=h;;ML#1sKJ|u`V z04Ru+;+!+eGi>S(E5)g8Jv1O&bKC0il5={od|7Qo{)-5eHXm4M7Fo6gy`hi5%Qrlj zI#qAP4Jy2y=MZCsdOw2>OY>KqVaQ{JacS4f*CJ>LNG!O!^CAhNMLw)n9?%>@BsRx@ z=xnf#qNSP%$3D?gu+?Z;%`f9d3&CH3)uPX|Si*7%BGwD67F?!?Z&U;mCT|`iGP!H! z39G$I#jGj0V3~bTy_UGD2Mu-q2d~z~-t?CK0f@q|tWNlMWf)8qTN3~nhfh%tl26sU z$)`{5BA=#xr7$Mlo^aDoLIK^}dDl$_^gSbHJzYKNjSlOKSr6P5xyKh6W2y^{55eOa zc~TqKvGQm7;x8alKE$zFc@o%I0vfAkjWXwdT(ShHKbB|4b^LhUyg~Gb_3ypLJ|VE1jB{&5_n%UX9Wdwn-9EYj^!w5oIlSqU}SwPLZ{f7x6mX7FnUoY zy4e!eOy5>B*w}N^u2L~;N)R19ZUUSO;%o@AS)aX3RUf;4S0sk)gpSYyLMY+r6O@1v zQXJj!>|%;Q!u0JhMZo8k&R=EC!FL~Y@W-nJfo0wQ$#XC zE3!(GO_3aarJk=GbG`gxnxFL!k*q-1RrUU*`eIVDxQwGu$Jzk%ExUuf!C~g;jJ{re z-5|VVU`$ZkilAr+IHNwnx=1o*IwESmQq_=`m(cFE?b;TyV@)(q39pY0W2TXAM>imh zT}EV?-b^+w;{7Mh7&k!pd$eH-%eLD)sTYA+l5G*I7BRLwPjRQTw`Q&bZx$=v?VWTd zi&=JU5X^r`)#Pnn*vubB_QDJ>EP7We&Pu(zv%C5UJmE?jd`v<#&a07$syVYIpfk}N zdj|tB9T6^|o1hI9u_qUm`7*j@5qNZN5xe6~kuau5{rign7- zYzfk@Hd*t|NH8qUVGNP2ube)fHOE@9n_VVTn;fX^FJ3(Gu=Gmh0(|xr!6J6k7$;&f zHRE_lr|j~Coo+%!33x6?Iq7OCM^Moi*K*Kjn#<6@w>|S1@(W{t0mm>j++8L^1FeB` z1PiMr^Ip#(usFZ+Kwg}aOT{ze$>{wkW~zQAdIGR731UcRMSxBU1_ghjhs#(?{zI&# z929hcNa@f(Toh}`3LwUiV~^C`r%|U2ejVh+*kQ8|h#~`76K&%-c>>WO4ug>6vVM8E7tPP0d0c4l&#?E2e5-A{+y1~~( z6l%8SmytjCgof0nk2>!Jh^-3_>_`&;wN1q0;yU%cMAb6rv?BNt2S!uJ)^ohnQN%BY zx}d88x)nBpDw>u1oUzKzSRw_3TmZ!McPq-?UiZike)RZz|9Sq$mmWC$?1CSccYO8T z^COqNI;v!mi~@-qlw-t3%`N92jvC_(|@haR1T8m z^Lz+1PI{zZ(Jxe}JIbf!l}Jqk%`3*f1vKT33{C}w$4`;|{wmpFn{p+d&C~*W3S+xy zuoW=|iSqU_cXoRjYk7n7VDwLgSULxK0b*)7d)&uJ&4R=R>FGo|FZ#`kY3|6N%YrYl z4k8bgT(gdzAH{2UY+q7jBYgRCNj-^b^8d4U=7CXFXaDcpR?@c>(w6s?Vic@ardCRR z4NA;jUJF!#q^>j-60{>x3qc7<2-#}WioD=bM@=J4;tK+@2$Y~PWNRvFM?xa9hO7$7 zK(+}P$Rtdb-}61^o^xlCx!EK%BLBe6oqO*&_pHzP+~<5BXq~9PDv{f~b!s%TOcE5X zwg2Dw^Ydqg#YC2Ds4AIpAiS|XY2~z-_vkP8r#>7rRzT-Qu@6!_Uti<%gU>1hc*+bh7_4HLO{yM7SUf0J`R6bs==PLdzUO6F%!frXoU}nlFgNnB- zb&6xp)81sZ@i{wS4MnPXnCV-zPTnWAbTiLP7Iw@q0p%1g8EkNjk zsJo|~kG|eA7Z4G1E-~3-pftjJ%nlkxy4`;Rffedm?^6eqw=~|^Dbzb6EoV}Nu1Nf> z0#Q{^FNA9Gz*17vq@(S{n8~sC{yibH5r199NmB#6sxfrA(Amg}IP?yW`qogMF5;u1 zVxhTv1xQgaX=o9;4h32&_xfucp}0#$QK2jFLhI`YgW_VLJ`7tSM#{=)9YM6Bl?2?V z?xhk6)xF3d%_g#5Di1B?PsBa4J|T3Wnrm7|+pGx3;!k>Lq#Ma1vrsil{f+qR0z?$B z#?bRpE;r(kaxn%Xq0qr}3*@}SgpYZ=7pHT~xD*e9ZW5x%DT)djM@$`Iufa!FO#ery zA|H`+RE)D&1@C*#=TJo>SyzMv@tZ3qCGHqXdo z`K?p+K(p-ClnT?Drs*P3s92UcXp+j)DD$gAqJt3v9W6PVWNUDayrL=TI##2pjO{yt}#*YAl-qg zi5<`zwNiL{_at31$+?}Zj%`Uz)orm?$L=}5A>3<8b8=Wru&vOdkCWG~ysk62tEGvI zk7HFd!@cOS7eR%*+YVq{K1M-_PK~0-2|kgZ^7ud$)#>BWBqR#q(Hdy6)$5Nz{M5QL zD$1+MbTRP6`XbW5tS-rGEBGUYH%g?a=?FT+q$Baiu1x&+Rx!Ksc<9n*M72+xxHx!G zXJ<=f%0U(>X&NFWdAE_2q3~~Hm5?l=N&_6GAVJEL=nWsc-&F zN&yto@l?`K9oUOETBamYG%BhwBi&iR|1%cFE`z8jqE!{-K5}oASAB_Zn& zwrXuiT|5@}Q&n=}`kefxa zg2o)8L^tIo)BuFBU?P%mVgFiN>Jwo}KXgk7lz><|vv8cKi}7BzlDu!1aTr!*$WCs$HTu1(hjIvL@7nnha2gtf;BMv9?h>Kd%0{i?g0*|1 z%Blr!i?j)bI(P_&*0AVHQAMem+eg$mbdB+X?P7XfE0^_JM_*gmOOC;42EHZ4Se|;G z8badXCz*Y`M2#ReI#@(9d#_NyL24!MGLd2wcA6k^DC{Cx*jh(d>F0aTL6S~6(RTRhYr(JCiWxPGm zm&^v%)hS?G??7SYP2wy!5VbHUicT;(_C-Yvq^)&?X@`{T)Wn^%zAd=p?C?bu@lDT~~Tha;F9#}w}` zNoZm-H3QDgn^K6IgXvM^$%zSqz@bkf_&IAm;#$^D7*_2wN|RGk_&9-ZMI4s9jHiw# zV$_kZ)K}oAp$9;^WZY6!-{!@Jb=T#OP6dD&orGaCghm1xu*ZRU`t$&07LqJqTFt(@ z#S!LdIqLfd!9i_>lBwmm=L>vRme?$w%c>qhn4I_`+9^Igf{f$z-a>vALZv5#)Xv^Kx{I;FhM;B*MOz4sI)hzAbQi>t*8@eD!i|#Y-lo!GLZjN) z&@uHqig`p}cvN!Jrp17wccYkikRybZQi!Z0YHeVY8zH7}A1}m??9@HPp7X~bi@ANF zYK_AGgrIT1FaEZmS-^_^*`2Y73ktMp5NNYCfQWXY_cNX3mgD`yxVSq{GU5r`-8gC& z*{wO-f6#-u(URwrAb~BnA8Jy`sR}a*i}9$VY^EZ0{imu7r3_}OxKmpSU)-byBT?27 zpC*MY3Rgz4Mw^~sdgy~BuuKzu(^J1iFtm-|>l;fs+DC&NEuD zN->lrkINHrEXjbCaFb$A5)v!3Oj$y28}I#0J-Ip3Z49r9>)9uGvEJYSEjNVO7~CoH z6<^l1e?v}@T?onE)qMtuvL+_sYQUPx0r`Hy78W-#!$h?SE7hqQ#&V^dqPv_hRd z0-ww(Vf*xekQ~^nt1vtiMkKjS^nR*#K3NOCGTdHop%U0;<@A$uNChRNZ-0_>TFyxR zNs^?TiVhJjt_`QvRMOJN1pFkIAqia5XQ;_sccaWm=yHBBI@eTzWHB|5m-dd<(GWBF zHFbAowrx5JRhJce{sF}&k~{=51kI#IaYS(?Bv+#?-0KkCM_kN0s|cbP04OEI$^qt#Ls z5ALY63N63WU<4*(l{D-@$S%c;ao<_IqSg@%0V2+-z0v;>x}I>+WnIsi$MUY{d=7nQ z5R4Y^u`ZXdcP(zJb77DgeC-lB7vfzs{6ssWJPTV{P^ILZGt*VqQZiJ8A1WG>bee3n zDN*1Qw|8N(^nj(T@m$5BWH$B9runaqIFytlr4wONv*4k$$3=ueqe+9pSi@-&6*C;J zl0Dqm0@f%wLNAgK(H^g6uE0%ts`d`+hQ=rI&N`CH+q90*k@`Tnd=eUQc(-F?!;5<= z_W#FC&qv<&!-a2kE}guga@4ji`KynRr6WD|FobC_C(d3n2|Vud z#p05d8=Zw>v?*_Lmt%QMvJ$D2c1GDn{LVoRO_-lBtqaF@Hmytd9G77$6Ip;!yiPsQ zm|68Zj74nCS5Df*Vqm6N!(u|ovWTpyBkAyG@(P;P;IICW8LO?hWjPL0MyDFZv&lVD zc(_xe;G^;7{pjQvgqb>Tw z(-)I(>`3)ChIn;)R00)Nth-BhAbzYaZCV?-3m)z)jA}6*FdQCLV$ykr1l!#B{~rFj z3|u_XpPWe7-DTQaSiqba+n@Dnx10&_lJVNt6K4~AZn+wHehZOK#T(Iw1(k;Po$lJ?e@jSqO;`RT2sS`DlVM^x%+?ok;|doZ3S!fgfnUsr^V~Z6_(@9 zVDbm`^dwA5=+iN`gl>}*CtVwn>SP9bqxMuTjPf#*^KD5UJXxa%^Crc?n-j6-i4ze9DcUz}L6&WA9d?u4ga72F#OI zeHei+=H9i}O!eQ|RZVf`+X{Xf*Z$Pr(J%7-RwKll3Nh5jZj>?9GiGoW;zT)L6M+ zK!Hfxq|IVKWsdhRB#G!O+?t`Addhk^R^Zscii#O9SCP@v*d@6W~Yu;iWoX|yq@ zC6;O%IELEwA9^PM`$jsq?Npfz%)UjEyE-4i=9Wc<7UsPFmbW$MbAx(0o?pkDv9EcT zn))!0?z#k+km=<+*MteWUlxteDttAbNm*m1oZxb|5IC$pERhgC?4e~0(muxKzytC>V8## z`$BtS`@(oK+4^md3JuVoRC|r4{2viTB1?LrK9u$GNnoYJN!>i>>x*RDJOd-iV7^nkC zkD{C@7oTAMOtk0k_zcA*ia4??F%0SQYD^qju012(|EPm8k8TW;A!KhQoiyPL(T(~I zL5=z(3?D`+nv58)0&o$OL5N>kIJF>5p7L_$0JcVc*YKpFl#hG-E}(Qg7lw}YaB%H7 z$?otZ>?IOuVSH_uFoa!*!j|caCn?@CT1jGn?bzG%NxZLVCCLWzEyf~;%oEg)sAd3{ z`OF@lk=%FrT%u%IN%#4t7^G$WxF|DMZ;COg{YjlwtIYUDAYT2fJ{^6=j;k9c$wF6l zSC-P)nMe+M%+-imjKbQ`GWytFsX96-?h7Mi4=HQwC`C=;heP3)m(BztTR! z1!JUs;%W+~_v`Age~ zEIr5XYsXbR4r&QfyyH%}F`#^>_{N2I8D8&qpgYVMBW_ay_qRvZI%{f78>7V*2wING z63OxYyDYxE)xBN;R+zYreKpYdK&XB`#GtT9kYS8yTKgrGFCa9M4+>(xWAJ%tl~0wW z!~0-C?%9M_&f2TVQD*&4;(8(U|FjjsfrQZaO^RawpRD$2C(HBf8$=BQPuYHQcvLr; z3HbH(?wGUePi%KL7tU^Zqv)QGBztqk#mGOiC!&NSsLxA3Jq%A!&h}a=mkfwXGHM4W zPV4`3q^t14Tu$56TUz)w^_~gxE%GXxjceF6Xf((`UnLws{cn009-xF5tI3m*+$eo$ zgMC3Rlmh6O0bu$#N6w&xR-Z_YJuA8Gr-320{@442jeD2g`-WYn-!ih>(bBZEf*!Q5 z*UhfD?1Y;q^yIoro1;9j&wl`X+5C*17&Lo}I}WME4^PqopjGP!|25RRX;T-l-_ba} z-6h|BOrw5ge0ov)f7}p1cTqyqtvlA`CXnwaIcO1l+?rWY4Tmx1%-5SD!uQOHyu#pI zD^1U}1h==RDre?xtXTIW@hc%m?qSCU7ePAdbLfC*ECxW~Imc)TDujP@);hwlCw%(Y zu!qW4g#mjWIl6;cQUr;lZ(-{%#(8CSHhp$8EpLb*3fM@?9t8r9M7Y;mKo3ZnS=<=U zwT>8476=$dEub-9jcOgCG4!(&mDB*GGm>6a_^Jy!Mq`x zw|{7;tbBwGDpF@?MKzAK9Jd)=x>V{O!$3AK#-@rQz+qd?Y_`Vl%$a?hwxRwX^}mlt zb9(!VZ&}qh^01%?e<3EhSs}CN@S;evD>jlApfhrHC_O%Mpz1KNNZgG@hF0nEUI3X3 z$wy06?AIEq^3gyCK5DxvqJct%vpHIMq#&u7HMGP-lzPHi0aYr9D{JL_dBtaJ|ErGX z69vUOCD%BiQ#=MOLm<|y`12Cn3T6!$L+%d)$Q*A(+)<40m`uD*1)?P?5T(W;b~ly> z3aL2s#;cle!>tL|UOs!ps4=XUn}rV)b8(|)pen(|3ne((p88Uks4F&R<6?{vgW$Fd zL`HY<4{L#Ix&%;+%y0mKB@Uo8LV(gM3j~4~q5~`Bw;x`svPbmX%ZiBG{26zyW+HGC zI%R&TEl9ANGpkz=Xlgp$3J@La>w&0kvjW=1EsLL+AfREEqeNind4UaSu*m0|GudDv zt`>+<87IL(`B3zgfPu&)I+WZCjQL>%@9!m8`+0T%ED`>}C*Y#YIkgFaWg~586o`vH zoIB7hwLRdd>VTP@=is6ls(?URfRt=d9NK;XOKFY{|a-FiNC+ ztC3h2D~M3Jg3vlbVN|(vG?|w+})RTz~G5=Ceopj-T}(pHRDsu`*t+2s00X}2{Somx`MLA4tJ*}*L43n zIqq=#PiFZu@|oCthY!sd0)!?uuTN;fwtDVAYOnSQU3thb$D@P%2G7!uldIf9NL`dW zE&j5!bca9r6ylQt92JW*rbq`v=`N^+MbF=_vc-<9)lqwruvwi`(j%b-?$gM15k85x zMjx}lEwdQzrS}*w*vZv#OD3qM+ilSQgzF@^d&U_Vp0rn|#&++rV^_U5`GU4jt>cdX z0$k26z^^gHjC%5@5ARpPB= zMT8bH|CqehD$$!ehkPEubDvwL~X_C<>?WbBFed*$eN{&-W}XW#7nXY$8) zytVT`(k|{i^Y)Ln{%QPOk4c!{L+=V5=*n=qn@MBuLuP!bqt)`XUxq^~2`)P3yJP-lOBgxO-772~>pcEGy7Nr{G1 zbt6NGx{-le3;%Y7j@i%GDe)*w{6)&UT)tttiqCEx2u@L;b1RvtVr-~_@j~w9yYtFrPvy!ij^SO~&dQmhF?(*d^n#vMI2(E_mCZUr+A9lhW zf^?0g&pG1D&R0*>K=H`%>DeZtcqA~)4L%~SS7ZJe`kuvHU#Lx7`I-<+wo*uz+GePp z)%n7+x-`4O!TsER1-hRTk2^7e!4C_?8w!6XQ+!~dJ|Mp>HHmLav{NJTko=}0zQ$ly zxe~nb@6}E1PU`-%pRT)QgEe)sP2WXsv^Du>Vp~YJbc#nuu-4yu;!9dnCwp|zR{8^p zhb($qw|kOlPa$pQCe_m_(`Tjxld?bkULJpmZCzQ;;ux`Q>n=`Pe04hOA8s}lrLHCS zP>jrdUk{HL@tB=a%e)FEU4~?*x5uXD8%~YdMDnOFdc0~ev>Vs2FDl5jd;hJH1!Vdg z0xRX~tl8rl{|X6E$h;o2>4E*~M^B={5P#G!T;>%Xkr+}7(3(GneyS(sRDQk394>lF zd%L4vM~tgoq(+cL+urF7ji;jd7I^354wN22ZTgqOQL$WbpI6E$-%RhL7FX}Wt!Hn6 ze-RdH8HHP7S_mGm@(5csHRc<%J&yN)0|P(=d2$X+Ki=My-C5#GAo_n4KR|8(VNQl?XRb`fwU!y*Y3*LH55x!U#Ll*dgw!fKa$)xg?sO9@(=poc7+@)R3c{6QqoOR#nPNT{*Ku5;ADboh^Srbq%+B72Mvg9Nvhs2Fdb= zYHQahb)$2D8nYnFtcEh6#vy#g%G2EgdEf(B-^1+J2iCXCmwov%lvzYvu7>g?_EnC< z(0ItaFgi%hL-_`V5m1m*HV|mJ&hr&8ensUD!iiqlSv{bSWxP)yk0TP;f?#6w0;9|i zVN`%Ez2gJbKxtOB?9&~}K0zt_;eRji%I(Dk1Sc~A6W~2Oa zk{ISF#E_Y)LhY8VI^{?ZrE!EYL7|X5w?4AgwT{pdB(1~*fZTE$TI&cl+Hi>Ms_Ha2 zf^jd(hqVN@Z=la37+8bA$+S6v+60DzV!`Qn7UE~p-UMD?Wm7MTCzhulnkaOLu}%wC zEEK8#3wG!H4tzDCo`awDLuPoPvz8!XV7>zkj8$Qveac1d;LMtWxSE-c&c5b69cM3Y z)Y4!ap}%U5;ach#yzS;HgIwGYz4qB+PI238UE3wfp4vcxa4x5&A+c@zOvM#_a5Yu0 z--&2GCF_a{^er2@DR%u?-!{L{Ft=oq9YyT=i&HN8wIgW#=q^S|&*q%5oW@@LX>I(x zWkZ312e+s5l}7Svy%0fSIOC;^XOhDfbOd1{o{F96?Fd=Vmg3P~1&|+Q+rTeo2G>e9 zs{Ft_`hsf_WSw!jW2O!Vxl9Bp;*PGJp*rhqb@xB}0Tv8JQ9_`2MOCy{cCh_FyNkju z-Fk|{KH4hZS3VuH14+^O$&{g2prs1W!@l$Bm>r0r?xX-%NdhDHlTXKDgWSRK3@RVJ zc6qwa&Pj4=>%3EEO|DG5{-CJ?ilzX(J2Kppnm#PZG6Ri9c@-EgSfvYUhi|=E`kA&z zA1iSS0_m-%>yB5Y#=@~x-UU(CKyuMdy73Dj+!CKi62lEQueedI>T|xlDoDENCF|kj zXc~{I?moC;PerxmzPbLTk9mb07vWqnasR$mQkEUS=jp(W|1?f$dp;)m zjF}132rzJyIdI}$YFeEhYbpK+qtqRDh@e&MX1PiFxWuaGd}%`rvD}uoW(t=3e90N& za=e@)&U4x)gFB5{+8LO}?Kg^NPk@hoi;p~B_(%Z-MZ%~2@|`JJ#QG%h6z6FUqsu?G zahnvJRk1oQCd$Z2%Ci~dQ=Xxszn+{<+&^$0X=J%lpLiKyA~K0-xqJ}&TV>JtDJ6~e zF?d*PF=U^zbHffrtW0m@T%elYc<2Clah=UnF28)E7Fl3>%bpd~NOlFj0AmO4#ALd0 zyQfTrrb|>_H?56p^|AR8<#ngZJzE2t$dheGiK6 z4Iguyg|Dw5HY`N055n7?v_}3}77f&8aW7^&5=JS3ydZxreJnlJ|2v#NzYKZ26k8m` z>x+FB7!0qJAYc!fVTQyli;^LuNT`c|oq%)WL*V(bM20+}fxwmAUbGC4(wl&)eDo>{ zm5!-w4pqPRYaM}m4f|%~UB28obe+l?52|}VYxS+RuJM>5glA`@2U$korWmFd3m?*$ z8IRGuUggF z@t`TU${ul=rUqBS#Ergf9En2Y+aaL+7)7arx4R)mr0>2jCSumk+e5FNvEcqOMTN;9 z*Zt&^XY;y$F#bDvGq?YG=j>Zcd}r&T{%*+r%=8m?zXPKm(?xAE+%qBOb&vhzQKmEa zH%#_^-dOZn@T9mCp^@LGHMDU~%Z|+DUgP-T?#%L=2x|DIoqjYTdwPR@=W;L82gS=$ zPMGGO)xWaJSTl-0`)V?8MRoh=tQo6xx9c9z&6|+EW7==of9vNM=f|zsb8;d3Z<$xL zS4YLBd$*15GCvwoqp#DS(f@4gw6=^@#$9o4!E{Z`o+z)*S;jfH){F{AJ-rpY+4sQc zd{or0jdP-3_eelZz3iJ-H`%+b1@#l{bu=`xxh6EitiSk@Z`!?|4CHE5XPtgqW_k62 z%;I9x`H9h9uf3}IY=^5+`$tRYh_vs$Ehw|P3 z)eePytkfs1Yh&={S18{a&vv-lp=x$y4zVKdGf$#U*sRYge9ky0%3?T6JuWh3v|n0n zC6&Tf!;>X>&Ed1Q8P1Mchu&CHx@7mGy2EdwTgP}TK4H3pdS--ili|q|roHB{qVBrg zh9}YegGSo|PAJEIITk$KfPP<^=svAM{{}rPv-mU99sH1Yay*K6a`pr^fbf(sfNZ{p z29Wy6#yKDGLpGN1XR@&bufYe9xpDxxn#>RjZDa9;li$0L>qlcrl-Gql-*_UvF5`{^ z#jmZRPPjGs#Ojb3j~&T7p9`T5()EKefz&9vp8StMYP{b(+(u35u{YcFX8m`w4jDEX zZmauq2&=!@RDWgUQGR1V$mSs1&5J`=btPrYNp6}E{So;&Z$4!+oi~R)7?C^utlpP? zNTmkTS}>abk=*oQLh%XHax{{R=P*$$koCMzP89eV&GD>qC7UzO%K7N9oR2mmJG>1c znPZ{8X)hXCihOFCBAe6IWV8zHNZhZf5dBL7HcmWYx|a1`qhUN9wg+Mgx2;WDsGEA) zj$Z9}-mD)L<8?PxUT6ee_^h$$WoZ!nSe80|$6(!{e@<2|l0fAm36@&TsB@MnFPOvr z+{mqrf}A_j4@{{>6t)r^EP8tn_3tg+`p!2li1;uCjUAUg$_1j1zw{8vbG| zdIdeYG+^TV6Q;?cVf1|(bu6x6FMO+ zytH!8XA9@-URlXZh^|CskVU!Z_qt3r=*N_}dB=D?qKpks_j#HXhPZ;w(9*sudR@*I zKbK7ePeqwe6A7R{zb9MEV%7%HL`u~rLYWfDWW@i#!flR(oukrevXB|2b|P+~cJhLe zrH)3V9P-L{&ImU{oKr_zEj?k<%81gioL}SM;yH1#H5aWY- zdZK^t($_<&6HO2%5gW_JL? zR?O(QP+b_zZ=qJ=9^-|y(eTFb!$%`xLuwc5G#}5K3$hNQ#mz6R|F_^{1+vaK+3tb7 z#aAJjmwdxf^JG~{#F!H?R-(iBY0n7qNCu~RI&j5^frf!%)mt5PCuS5^Im?MxX=sl6 zrY>MAOv?|oxvDFe3e$4FHdp1VoG58=GiEz-lQ9&ZGOsU6Ci>}&Jy%Ynbtp~iMoV#XXJBeTZI1#W~l>6h^IpMU6+ zb`H$2W$7W%#;OepF~vZjFi;JaNSv~$ZK#}*r8$VQVh905$C_v6=1zswUltag|g@Q>oOjDR=iEob0v{pb*Hveb=N)>)${vnRq zn}dEv&l0y&8;FicUNZ?*D$ZkWAY>~piScqqplS+yZUA1z+;EuqY)RgC?t5JUVYDEM z-W;|U)@sKcNXS2Y+u(BAG-dD^ykL+{fl40#1iPG@q-tH&8vvN9J>Vr4FkK22PC zNt3D49VT=4J+@H(K4Z5Vd=J~UMZ;jqAUJoUUmAy{Ii4r~Zs3{Ev2T#4d!t%RL(2#9 z?%c{{sFtRoIUfi2ptjs>(L%MCDH&qr*8f)*ct2|ub!Ojczo+YFeN%7#WjE1H)$JShP&J>w)Vc#7Id*Y|v=lSdg-E7?h zp1=O54%7Vuo|B*U*k6$I;I99EndT8vifLxBbALtK>C*07?h$`;UOuX;V$-?uHFayD z2C^cqHJp?`z8qTp`#{Ji%-;bg(-xZwn2UP3wj*cusqAsqR3A=aKi~3Wi-~A4H?wVe ziCyEpIPAsP=)iq1edaD}GP8_Zu<|feOue|;Sj3oMX~j4rAw`bPW5bsd`mAB-ydv=s zuCcIBZnhZ;mSpT)+)MLIL5Sp|RVp+k6&Ga*^M#E;P84I>fXF3Z;vj3NV~3Ok%5_az z`Ln-#GKAz-?8));6>OC{k7T^^v=c3+#elqGc=JY{3!G+O>ST_zV;03XHx)&u7p*cD z>Dbye$MfQ&IxB-oG4`6G~H&N$�j!BKw2H^}c_p8q z*(0$iklE_}OouCZGeY7pQsiri)LmZ5moCU=?-vTN-CX%BTY$ICAMH<_rc+{N+YALO zqxDH9OLOwT5GW?ifnCXY4d}B|O2bKiUBJ=`m1R~0NEAvXvOpkC8aWhDi7qUddZ`#rxjkXAH4<#2ZZ%J9m0RD0mUG2pgJAiv`1MN_Txa|BP}qaw%?Pon8x) zs%#RulnJ0P2EZmqQZjajrtv5lTA7m5MvV3FOXEnEnue>>Xc}J<8B40dYpc&f$51p# zGCd(W5HmgTbBPmUY%VFI%hOn8$Q#)}=8QR2K*$H@UKkUL8E2Zx7c${HetY3 z(-l(WYytk6$fZmGLu9sMdiLQ4I^vTlH;3(ycbHH#fU`V}c}B8lj2a`xn>EC@BqPeJ zo2*Ob78*NN0MV7ZgP%K|BK}Hu@*v&k>|WYrI$~f2O~NH&a9t94r20$ zqN)R#qd8m^i1o3+2=XsY>6nlZ*XE-*aN1O-&GrD{yxJ@4c!6KrZLyojJdhQ>N4j31|F&oFQ{4UsHH_+L-b)S>KFN$!bF)orb_4mmAB~B*5_E^)mIh37{bbZT8T9V==ol=PpR2^{5aOoAr(38f(vbzkPxEqV% zO8L2|X?&s}dGt-xPjb|N6Mq-@Fy4VG>JFc?GftXW+>)rC$Ka~vnyGSBhPlOKu_ET6 zwoi_VLhOTH@;1l(P^EY22uh|WuEpAb%}?6Vdm(0a z)9@45I)8K?EM#2yXT}EHB~T!_QwY*XZZ~7NV$5_j! z6a8BHv10g`sxITcgga_a0Q=QW27WFzng7W>V^QC8gp+Jb>9>UwZTsSH3Tm1VNSnZ% z{a`WV3V3Us__!_R*4tkB#`Fg_P5N=z#oLc9-1NuNf{eTJvrm1?r~KvtDq0+k!!E^i zQlxSh@t$HleT9NTS>73;8yjica5vHO{Y-47%qBEb>u(^AE-q(+3+EC=Al8|*V^dW? zP>+NlYrhHzsy@QkP78swQIh|I#lfVYQhq+F<^|q#&(hwL}Kj3N;Gvz7&AHjUPjBltea8>nja47WaG-8l@OJ z>vyJDOiP)rXnIF2lOau?oOfoO64c(eEq(H?l%)u2@9DQC{*djow1)MHhtoaBxo5B%Hz4`kC~>k z#wa1_cTu4BT;m1OxK!jXPbu=3bTx%kw^8WzlDt<-N`2F^?#>;P6xUASh)C2k=EdWM zEFhHg@zgGo;Y@}4Xj}-XaEde^PdR4Fz3~f@BJEfYozysVMF?7wkY<)DpE|z#4MY0@ z=#S=7AR@|S`VNG!-y@3xp_J%J4&tk2s(|X+WYYeufdXkI#c$#{ASL_KH>16lu0m9+ zATuk}{!0&$<&lG=rcH~H!@D6!icm=OBq*~gil-#`A{0PRg-3Z&5Up%pU_1w;8anL> zV^P_UBR}nG`Ye7KZnv18Noh@F|IvHsSW%{g?UIAO;cs6;d&esn8qYOo=<-l$tV}tAy)o2l- zqV~YFXB62`Qp${@IKcNYUAM%HqW2X+I<0s|s$t{&Sj?GZN$r%wFq7q^Mj$mbdk2p~ zH>MKMdL&4k~Ciq2iJ~+L7%cu*gicacm!XeAgF#nv1}n*B1c)K$^gy#`3z zDxF!CIfDwCDwfN;E#!AGrclt@{>5_DC$h0?kfO1JRrEz@tU7woEuZ#22cj^4LS-;6 zU*#;#8hy#mURFxT2`&n@|05Lk>jOcyyko;2zf#~Wefw}hJDtR4CCiNRvd4F?#T?-R zs8P)eMO0c}NI-hLknGQ|4~C49-C64hZB3RaJ`^~UVBW%<&!MdiM`$m#T42T0B`9Wr zDWb z7;y6MDB?WOp0}||zj9_b1y7=Y*sW49BjV6pK;Pq*5#(|}pC+PR2W+NX z21e^?<=GKoELyh~v4sK{!V9^j2Mp9;glP_puwdP5gwVkBZ}2A4W-pi`qbX@H!XlT9 za7}DBA=9wE0(ZVu%>KyA1V6n$BGL2Y`l2!pPp#`>XFo~4k@l9B(i~HNk14HvVoDj?$N|YZ)Hh!NNCSuLAQgB%djxX*&mKjWbo3YUIS$w3NLQKg`ho5&qWZrM{h&{qA-PqHQEXD zo(p@Bvs95yC7l(X+gL`I;eXgRlJl@ae7i>)2-3(CC}={GZ1iHazFA8kx;cydOA3i*=U(^5D<@{Kjfw@ zPy|kKMzIcPQDwHU7QTWsQ=8ci8aTtQsY~GeGyPDNh#5sbBNA#-ph`(VOU}@@;wHt- zh9V}EtL<0H`ttx?Y|>S&CSX;xU;BXr6wZ9Eyp%}xZe;>*%6Qyj98hZb;aAeltZh~$;V zzuNaxXUx9s5N>}#f@V^SkfE(85G4<+Mew8K%q3u-jCclqu@Q5wpu zg~HFWJl&l<6F5X{O^{KwXsA$}H(>&Zi!WsmDKa}xOn_rWwfU*jCUQA;73RyP<}+W- zXK(C@=K3{7oK&rYB+rP*G|vcYsK(UTuENX`H!{08n~M*W0kx>DD2x*e3_(7b_p-F* z7HJ%@(Oqy;n15RFqj&?(3}T<_(Be8N2;98-9SU46&vz$#h%?95M3ux^QhI?y+}w-F z@}W>QZJm#X|GlVVvN{@Ege(}(rP|J$t{gfsBFX@1=q6g6mfOJyRsWC~why_V2dX&J zs>akxcbER4tqBU{#JgNRw&@gdJyC+zEQ^fxMe~Kf^i;K1^N?L^P0*9dDoX}w;6ync zUEcSSs}aHWznRqiV%Jvfv>A#Uk7uR1|y$2>wloBd!ma6BS-$+2fU ze{g`o&G==xV@?vam5z#p_sEg4IyJWY2*nle@Gv>~Z#u$4n>h@j=Rph0ex-oUDhjfG ze^=al1LB4D5B^1Nu9eZ`gu7&ew{&Oygt?FIC-+h5i7LG?mzuj@t#~A6j=G@$N!yYoW*Ca%KdUT8;c^`>YuibqKi+vi#D(|#(6D`h);exq3PC+@K0`no&Wax^*Ao@%{w7utja}78N(^b| z;y8f3bZeYT;v15oo2uGCTj?*wq^~oZirV}+CQV8&BB${7EUIlR?x_dw@uI};!w9@jma9n~h8mIM2s{aLAop6?sX{!rQS4WOHW35hOUmSPZULpZ^&&n^v-#E4g9k%wSKwhh)RgQoZ}-nCNG*$uCPrxav0Ah?}PMb$w5|u z_g|y(z$d}&#R?RAL)})gz>qDzUs98h-zBL@DBl~=B*gbn`3=+62S@c&-dFUiXtFc0 z-KTyArgp*$i4hd}>De}k<`opI`s#|8i6qtd^2|n+k@xl1$r)p(x>qamxay2SYclDK zKr^bc2MlJ-*Kuo?&G|D={RX9M(B2)qO6JP4iL_1XYkwXVB(iw1S#kiI<($%DOOgR> zmO~$wzBaHlHFx^)r4NjSZC1`rb0%5km-XX%f~DA1L;?+O6m2vXF~F9+z!1m3kE46Y ztFid0Rox<0Qm4W_*eWm*w&oGvt`~t274}M@xm+zuqU<R_%GOaDi`*XA*b=S-?oTkng z{hr4S7)+EiN>`DBA>A1`pv`@*|xRvox-UCB{;$WDQBLT-^7ay3qu59WK|=aWMF-y$>uDM zE?D)oQke&g7LK*8*-wG6HXVK5L37P6Hxg!7^yS=wc0Rl=E$}7ZX2oLGKf5zf-P&eJ zQ8*~=mUVR+5J<4pOX&x48Sv=8kyLh7ZW6E{+49-{R^|MPaczcZe|YVG1H$}+1A8-R%xM-+@@HDu*xKof#)=r(BJzTkhU^p3G#};Kck@OYANvRx8dLOaP$u{AS z1DjVkx@1>uB$sd00Ie}5bc$?8+RjLdEw9Uw!`XAFArR!dVPed zc(6ppgNfHEcn}TY2C+R3GxNXQoq-ev@h<2Gw0uxkSp6TNAqXtYmS^f3NaN@-5K(O1 z_y?PfqVjY7@~y&%rOUDv$~_R&A|&n0 zn4xSmp@At=ut9V}dG*NIF@ZS&o&8D%x8z8W4zUa2h`+Hwg6#P7D#(7RYiJ-FVp+R< zyRj+^iL|6hPFH3Z@>{e!E%dxptFlkNsK{!eOtW~TZXVr5T=RS&$&6OHRly6Dq0MU^w=Ak59mQYMu4&EpTTZ@x2-yf&46^O;E#Ne#4d2X0>Ts)Iad zoDp7@`)%Zm*%eNZ@d%e4jX2^#Zd!HhdhrMV*`*PAL=?k{cd5Dfq<%5B;nSw`98&DO zHJa&;c8*shO@RP~)+z3xhatc2;SS!hN*>6kG>gPe-zsM4HfST?{g3o2=~PDiJtUJ# zP}7e|lXk8Cn*$);m8tCBw@f3!(gD3gWzgm$s^e)*wD5|p;8Lu}ch_3yWaZoOa;Rc_iv^=DW2yx#-x>EU-JM8)SMJv*w@$uo|DNt^*xPjfGF+f$Mr!j`licg^QbqMN zw!TZ$f_-Y8TD+72yk}|T)3EG2%YGzm8*;0AqQnq4vEk7ww~t8&BzbyE%h4y8cPUCX zCItdnbS7iQDh?O1%pw?gC|zd_4E`wJ{Y6SX*+apb1d3@n0uN8VXm>usOz6sK^N9?d zb**Bew~`wxO{A}4KNrr!^fqbYP`iJc?NH>o%(r>oT8=(XUzwcUIk9AsjJI#6QZ>(7 zIi-E>T8^feH;6OKg;W1WPC4s~n({AHAku^4r;S#9<*F~TB0|}M$R&ZM(zX=5uwv=| z2-3Sheyo7%+{LtY@|t!wS$h9MAi=V{)$r9UvrWkh|IuUboK)O0?bU1tk3iCzC<(Bj6sm%88 zbT&O{S+H`E;z0#?2bNlw`-PS5tjk+1AZdBiTRrU=1+ zwR$K9Atno~b%e<`bRe#k{3FT^h1AK62scVzi_Wf>EFnYawot>(yCN&r7Kl_K? zQ63y``+A{baJlWpa5`na=+c!keyqyx)}4_2u5v%;cdVO>i!tzJg2$4?xb_iiJAFgM zp1-2)l!~-LfjC9fJfhEqOY?rh5~8o!*#Y6IYv>?Hve7N}XJ z%9rnTT-~jfGfCMgIO5+++GwgLj@A(dxIv(0@Vuk#{F9rbOJ)36)x~t_7Xks&yaBXF zQvr%BTR5a*FkqtSRQBXJgr~Wpg|J5DQ!&~D7xKvfkL;=PWX;&)H+$I)s~-F5zFVWd zzp8WTj<(-q|1sX~QTWUEJ%0R%?>qA;njpfoWs1o0hz6G_<9=$!dq-rm@9`M)Jbd!@ z@--`#h9H*m!tCo;?8#A|m=mvFDNkRLG@YZ`^8l94q3lO!G6>54wiU7IsiZvj$iHIzLs0q6MjtOP^?ta8;*e~6*k;38uCB~B(a{s-^r;waSm?)jtr zDO`8y2@}sFh3kI7ScGCgz-;C4L}|si3ULMEZI{Y`mzmC4N5IREf(H1pNv0M->FW}Bz|f{O6GX`Qru;L7!R*I|2FKH-`<2ru0dWPZ$G=ipx{7Jf zO8|lFQ35xJ1W*DuP>gd|G3|NaUzYl?CG$z%cgk23{O!(B=?zUHV@`S0D1_cwM@x^| zZSaxJB}xusybN8G5L&vMUt0gM>eUju49OtE{7b&!s2E+2eS-|Vp5wVvgr9eLnq^H~ zfxaFkJ4~$_*7G&lMs8O^E6W5%PGt9*us=86lOFwgaP7kr(#z*ZH0XD-K1;3P!(je0 z)Fr}PoMyF*cf^>o##rS1x_q+Iie8Us+u0{f^JSMnO}P8@S(L+_%y*1M7xR+$8w~~i zXXf7%6;kWz9x}}~qyBX2D&4x#$4svO)VHQL-unje)khh4~6>%mdo6iJ(O zPxWW?KfBHQw``=K2=S8#a(FD%C++yRebes!Wc0%r8vY!-+4sNz4%4F_4z9iP+2GBu zEK7L}z3Bf8TWRF&|1iS%njvoPn})4#l`o{X$ew;izm1FwmxniX-4$P*}sL$JQv|2H(XyrQH@;^q9 zL-gr&PnKvA6DayR`)s0p^gtuu+^vWw=vpawpru>h(IaOzm zP_d^cUjLbCxh(efg&!;N>l@P5+E9xV&E+iBBg}!r{E*LKhow2NS(^S|uGq&@GB5eM zquzBnRVm-{OXC64?GEwn>2!C+rXN?KA5rtU8sVOzzhh8=Rs9cs$QNNR%MQ?2)cLia zd|;@k`o@hscs>*1~6vMeJT0GnAP28mBSfju$tgnV|l7+n6dx6_zm)+T{wDnvBfuk z5L^pm;{>&hj@^cK)&OG)+=3ePfs{CEs$HB$Li}P@&-@X{Fs|g;#Qki+ARgQ2mCEWC z>7y0NZ1sMo!0xd#5ob?9)Qf#o1Ul5T7%#0l;e&Xo?6(ZwMF-;V z5E>KQW4vbZd1Jx(g*x_QjLXw(3J_PYX+tjHinQn`vNlE}fFT8-lrK}Y=;+rwnJsLg zf@S1-vPRd{uQl?rrPdH6h%&W?6c?vq+WAne4i=+=RlaQn%v-U?K1JoA78Q@WJdJ5- z1oBN$0#^pDb$FYWMBa63o~kxAjqjAOHvLezgte|tqcP1FSHOJe3&Oq?yt#9|p*=%q z48K3_P&YM+ePi+spGP;}dURB``O%0A3(gxm$gX&|Ft+8u2Zp1uhxq@as(?!$uA0IB z_ejtc`1_Umq_u7guD!Kp6vKG;>#PE7z7<>>{kq2v;GbU`i|Q3l`m%4@ar%};22Ye% z<1Ay*Y=wySeKlsJXrh8dFhe8E`jan_-|VZJ&vv*P24tN+474w^xY)FJVzig10&hi5 zTwjd=?1(8BurHinki#=-=B*eEoEXljtb|!YVm&c(%jUFff(k zOOKABI(pj>caK6Tm7KV~8pZ%GzPFNNx3a2@$aszdI1$6N1*XM%B?bPr=`RIYX5(7# zGwX}|#s^KD3}8Fjmn!R&Ii)7-!HC@HW-6tQ1fr~UYj>qkNre-2FW?q;;|~9h^~y^s#1?gvJBFccT51Fo&+9&V>r1``tKMkQ?<=&uJu`idcU$By z4;aoyH&;At&>bF~zwVkA{mL5?f}TBXTApHAWAsl8bF2ExTwGZD^N`KQ3jshEr!ds^ zyXPH^025){;cNj)%r;U@n*W!PXF*U{u zr1A4DKlXl}<5pLM5A)dd{7RKcs<@R;vCbe7^O%yLk~?V{Yx2$!p3EWA175ekrJZb3 zrOYzsE@VYYZ&>1Xmf~3zOvfzGQS9Ad8mKDF6jTiyTj!3E4Ei`-O7&-bYZU*n`S8mn zXC#n~IL|5OEMpE|wmc4+e+#q67SrV8IxroK>Z#(H_-f5LV4s-oYBHCn&|dOQ#vmRN6I@G#@^;(Jl{@i4q^qlX z9-LpM3HH|D^6+vHIY2&`;R$_EKHd_YaUfcqRUwBe4|H`UpN%dXVjS@=^tKiFamAh} z)kBgUKGZbhMEdDR%^~Sn#bg!!#mG4&O(Gm)VlrPOh-S=jc>yC+&LERpf`Fu`+sOmr zrQ8x^Y!2=2pTQ28PK%dbO@?_Z47JcU76XiZZYoyY6P*qlR(4+t8{+r6O#W%dqnu+m zCze?etzK|k;5xoiaHgVzgmFldH93(yn^EL9Wah$oH5pnk_w-gBN}=6nhC5=j-mEgo zo`=NWR=5SX?6$s60E3!EGY6hXtyZv48WkjeTi_=7X>YuV7UUzSoxpQ^q~@H}1x1A& zB%aR3oc=v1uO>5uLYrmW#a5L@)h$u;@Iu#kSeFWM!@w=!+s+h;Ky${ZPLsYXdg4dc zf(GO_%BOcYQerHbLSd?vHS9nb-qmD=QfSMYg3S6Z^XH~dOu2^e3F$kgwFM`U^*|n- za0cBzI-i{dAM2{vl=`4YN5(2RQR?p2Szmc7rQ5pOdZ*e!KqgqlNV-@;}LAY-meT?AskSbF6d6q3C-@$B~ z={$KcGFQ$h3z6Tgh9_&n+QMh8B+fYvAJsE5*@cV^HcUG~uA$0m^DrHfXJc}-;;WeP zT+Wzj3R){}@>Q;M_sgkALW*y}aQiD>O-8Zy2jk?~xv`=0#ZwRe@TTYY{p$Sp{@DHE ze;StEWG&dR@lUaTFioHMDANN<-j(-jTLlG{JZMVr{NBs&neDoRf47pl@j63$*P~kk zvzIj6%}-rCU8~Pe{`1C=NRN)LC!Y<>_DOS}Q*S666*OvF2!%`gU`gxgGy1@~w?f!H zQb?98`F|vpP^Ftn3KBeQ=$lCyMO>*u{e_e>)&?&+V>3ZKA*XxEuXIz-+w~ujAVWr` zB8af%2i{*P%>o|q3_Af`>J@0K=xRztXlv(QTE$#vsS8y~;%FQqKBbp8osrRqqgd$Q zDr_u`j6ILAUHq5{sGhQ81LHv^Mt zdGb8=bu?nNeCu+#gjldDDPUKl{x-SMW>&6(m$NZk2p=@QnB*c_@Fi1FVCtL6B3u|s z?sbs~yT7WKYgV%v*gH6}(``_`Q?>lGj<9!^B>YtQzy6P|AgKirlK7yiD;pD}h9T}$ z0~On3*x&4mLnJyFLxN){?)OCaVxfS_r4xBbFr@fZ|#c>Q;(dTLCs?;6}u2m(V)t0G_3jA4^ zJQ1r1byR-RRIZ98$f+K|ikN(N&nKdV(@0_`xv=>>dU*jIK1c;RQ)Ob&g9xMbeYwV;^QTT!|(jW9Gnsd%c zt$ji2tgvUX?&Gc0)UFsWq|5VBDXn&%0apA@Ph_Lf(O{R4q+sKJYGjg6UGrb?ry(MN z=Le>Pm2_5Fh9XP!VU2p8P-9w=coCT=ZtfsUXcF>LGzqOdDWe455~D;Pk975xBcR|= z7wUVfnOs+F-Q|$~ZOK_}(Z_k8yY(>ni9T*#9)z1Js9_Zq&@)JZ(O7hxggOamAh>!v1@h@)$wzyI zlMHt_ijx8v)svtui^p?}?yDsv3*pgx!vzZ|angUIlAAuPx;I%@UzI|bL{~qWNmM4g zlVBzhj1I_ec26L&(R$LT#L~1YfMh>A>@^i6-q{|^)It41mo}TjJ}D{nP1|*MN5B&W zv1k2QOd`waw)ju;LuwuV@=ddxro2`De3MUFdxWtlb#3w*m`GAXO?NanE}xeeXD=QID+&!_XV_0!>^(%<6_@cP?AS20wWg z3{G9#YNZKNZ2qMxiJq^amMzBE%MpU0&R>v@Cv-fTR+f2#8b)gFwSvsWc>iLrVZ4~e zxP~f|2o(3hAk&J+HAHRHOV1fQ1Jlk)ljj1%uoN6A? z6|as7lox_HLd&~iC}_KV<=@WVu$sgHebOxTzNh`3&iDM!=Z!SzmZz^t^8Dp-UDoKN zUD3yM)JUohJaxgeB&F*1yDpd-v(MNbo1VC=tlGBkj>Kg->)OJ;`FIGebK;rJZsM*YMZH;FXhn_Vdw*(pv1uxa-6li0#u#tC23*Pw%)6nEbRutU6M4|M3 zgjP5FMRqg}i}LjH^-^|~RtOS;Qc*}$8Kp+>N?$|xU^t1Xidb+o1o(%Z(NjlO=@}A2 zEOI(xlcST$EPda}{njcNux*HO-#TB_t~GB^ps!=r%9|$1g6mC+RgQdl@aN!5AS^l% zjb2BfOay-_n<_O*%hS~mU9I!gcwS}^&kIFCsHFc0S$uT6Z2XUzX5xil2Kcb9-PaL} z1TFnsHQWhr6iP`rr9v!8V9m(bvBYIm{NQ{vQp?O0Gc8e>A%O$I0%#aC?kh zUpK;NE6Mw|5-TbD`q*X5y(Gts@qR`k=Gd{WPD^l$UMq@rWMS5@=p^wyh1xdjAnrTmW&c7w2m>L|kXfWKl=Ve$;w# zwJ3*DJ4f4r{IK?z=adIr1o!P0)l@qYGs4hAB zF9XdUf}uKLXL%akLKZo?MgIhubqi57!&um7bGzQ4J@ctLoz7~U++DFhbq;xmQeb*> zp+(;w*DQ!>T2X9EYN~F_=p|tPHF^nZh}1Iw8#iu^l@d!6yTkUDIw?IOFsE zvAodagQkv>9P;`B9wjbnWGJ+2b$#p}MnhxwR91sIU9?e1rEm(V#Fn#+uhK#`$o7ga zgR46V!Yh|hv?Plj!Gt(^-PExjy9tXN`g+sP}ZqdLWO%DO!{)c-J@|dMKaexCHB^yD7*h%0vM7*jtHhj){Ug8t#hPD zXfXj10bE(RYxyXu-ijEn#Z%dQtQGExR{(xR?T)O#R|AH-7Zbfs$uE(0iXSZ*f7f!D zTVvkA<9&5Jx!0~1c9WZ|4$No(yl8sEU($8{_`pgY!xC6#m81xCM;}qw3unqks|>9b znc=4Rog$CoV%8c)2499Q+kg%>b>kLgD_6_IH$KFVQwDac|6Bq35 zIF@eN9`XAKd)67-U*0%(+S4=ndSdIxzguUZ5yW!fvj)>4Q$qN4oA@MRf9$2!aQgn) zeGM_Cgl}HV-+6Ziqe^@hQAcj)BQ&nBuP-O6JXD*g;tM1^q{t-U7h&3wwYI{W23#KB z#xhBUN9*k6LOX;a7R0pa46Wq37nJ=G6%7{5a6DaaGc|CUPF}wprN$b`8{HWc=7&6| z1maPhx15g#PxE^7OzB9X6&Va2M!KeAiC!wZiPjM+skGlHU=oTq&=KlsF~`Sz{RxoV z_Yv$P=Ms~jVt55$%7Euw!8dM&Wkdciel+J2NMWT&+XQ5t;>UPEM|kJETH8Nds#p`r<`BedB*m?F13)Fr$*JQ07+gGswd~tL-hSXj2-6{?@}Z=GT9%q%`cx1tlFn-L7y}|{_#7f)^2Ft{+-Tm z{Gfi>vTc9**DWDl|N2+Rr>mdX`sj?spU%0q?d${ZuGYUiefP0Bsf|@--<~$+=Sgoe z6(qK+94g*iI6xJ*304G+d`KvgX&v-=B^STJg=|wXX}6U(%}C&p$f{%RY~EvE+eIf? zLZyi_lWB7^6A^C++!(|Y5cg^2MNNV0Vz6f&iG!+BZo_&h;ogw0%HPL(`tDY=)pKkc zq$<8V&2)Oi6-=i`7D*5FbzV5ogNII!e3F*>I#il?e#Z+rpsUF^O4k2AM`+q+ZGSek zBI3L(Qv2E@F3^Scut;iksfSGSLKTyBR_lM;isrMT)JF=^mj*b9uiv1G-^U*klJ%u| zV_i&2nmZ1xQ2s5;``hs}N`88vTkM2<8> z|1#@e{9d%z?Y9L@L^US`YQCaFj(G;^=41W{i}9Fz!t`Hk3aA+My%?_#326S6G{&a= zcDLa+h>!W@jJ~cx|G%soMW$Timv%FoSnPpm8yD&xkaN&xIm*pZC9`oU7yX!_h<9?WTHAjH%81P)SeDKKubp_2*}@P2l;^G?7U` zXK0%ouldta-CJ2ZWYv8&nM+-0Bt05wyLmAS!+TR#VA{TlHFa|e=DmZuTX`qbyFE~> zhW=vF+_>JY3waM3EzDO%I~1K@Xy*+^O=F}=kaXBsl(tz$`~PR}x&xX@w!XUdh7Ax4 z=vuG=mR%HsWYtyI2D`e7Qbj~mKopRGKv>1Hii*k#vJ$c5+UTJZ3xXI8Dk>cWgou;? zkrD~XcV_OrF-qXM`@Z*m@4fY(@n+_FK%FQ%IlLH_n|;sEmRz9CP@{uWthKR8U*4fHE<@MBafsJ~g(=?@MQr5yczxG!q{ z^-ilm?=a6rs6}rs@G3;T9u*dQx!N0lrIR>79ex>(JUX<0#DByAesE59UU>B3FP9yZ z6@P*sm3&NyewhsZpx9?n5HNnbxBR?QyxqLLI7QyOTif1O+UW2FVZ|@~nl$J|wT{^WzwGqG^Z(IGhNHSBM~tlk6pJD3OH5W`~%IdSuwV5w{@l-W@x)P*jKN0a6B`8ki=lCw5y1AU$^4&q#u=gufBY(>R?T; zb!o%CxqV{gnV;84TaWDd#yo55P2H{jO%wEZ1v8zm~jxB%jt3l5<-MjfV zulQ}H_fVfO%f7Vk0VB3pK3n@vzh|@Ao~YMl2VdO!?djU`XV1DMAAV=u|E*Qd_s1@- zdrZ4#n0lc3ee{sXi$2WXW*bhfT)U8Q(`W3v(J?221FltgJ_sE;z3eID+^*=#`5UK< zWPe@e;87H1@*rc)(x)p`hB}nq46g5aacj5e`uJ-@W`94Z)^D+&-l>geHt36%c6aH(w})@~_LR?lm+?niw#WT^&whPuf#BF87o`P+16Yz`*pFT-?hZWf!DtO zHhB6|y$jbyqy;{G>f`gP^;O;d2A8I5>1Q_E&+ZpKAbWhwLY>~#T|)dlS@T_f_h0gA z{M7WHIi6=sSInAjv3v8Iw~I`-xa8blekbLR!QB3t+}NX1H%G>)=fWl9yhhupewDnX zxh%BjtX=Evog(ksoeMY@f1tiF_fh3{p%RXJRnCLZ3ZF%3zaQEl$cgK-wP(wOuBRV7 z>XBIEMqe>yjJw_D1uq^i?z((&S(k^tLmuB4U62zV>v&-6)3Nhr`8r&TNbjk&V)O~0 z<|+GnHPf2Q&Ym=WIc#vVR^P#+jC(8HGgj_)F=R{D4cpAr%H~P?q-JC5EUyik^v-Me z*Y=49cB>q1ubzBsL{_{?h>tkm{vnQ`sB zZV!Gf<^=)IFdO4e(5cnvz)f8haV z|1R^>cwT3!)do+@T^2RLPvUhg!(vTv_cc2_XT5nE_4CT)m}V+DVuTbGdbzc@Nbg-Q7SK8G zTQ#J$98YP}8(l(qtmzfA;r=L(WPXqvIq(NkVY}b%d_PW(!a8>Fv}}9R#NE5(3oCq92O!iIhbhVEqbq1OK&T&l)P)yFfb6muPkg! z3{h97pFbAX(saZi#Y?E9akf^2KK5kW>h> z1RAxLJ$GEslr9acFMik9$`p+gXB8e)lJ0J9Dn4r~d~Btz>@8813as>{rk2_l`8u^s zuiY*DW+RPSX}#oLTUJ}5V?|5TV;v3kvyzf}Nv&Nk4qg2I-Q{DMj)Jq(i$l(a@pZiS zg-NAG@2$Pvq?Hnm^^s;j%f$CJwe`&*>IVAal}0U5#dHH{tDv~8(J`gwURh#mI!B}# z;w{pc9M6WyYL|Yh7pG;b`)^Lf20(BPoI~RD6Qud zl?{n+t((X578>n*9~c_4LwTN8o5g_HIe|HRZ^>xMkMyL3^9`|%%+?5f>2=QegSPL) ze!M*mPUjN7YApZGxmO-{Pwl{WfnNpEb|jA)UVGb3Z+hV#k<*6wud2##yY^~Qd;Zw) zaMZhd`dQOlgUcU9pKs!y}t68`GXUT`{R%#|^TJ@X@l3ynl=xoU1}BaJphz z<5Cs0JtpgB(%QEByFYxiO?Y7#d$w{dt+0KkF0Ih@N`AFVe$e))ECq=s^3)mN#Wp10mHDs_V6?E3ynoIB1l0^B2 zjF8Ihv_h{di8U_GLAC6xLfeFnISs=S98VtCRxc|rD6i>6;r4?BD9)y2cA zDGSP`T8MsWsS#i7do#?f2DrR`J}*)ZV}7TZ!L>Z!rX1$|-HL|nIRnDodUW5o%5C?r z*>Tyo7bs1$=)MQIzBN>xX3=xc>DOU9-*2d2&^y(ZBQBf63U`~_9qZqJ-*@aF|GTT5 zz`{`~c~XdID zl`0Q?BMwU1q++tU{&!%Z@BDpp{WbiMx4Aw6Ka8-=wYq;{^zwC)JGiB+p;K!D>8l%g zeNq=PUo7C?DAEI!*;+2Vx2&PRE@hU>y0mfEoAIZ@b4pW_o!8E_MNE$TY*UK%{vwLq zjHKPa=z{Jct5YqHwP#El>VEX#t_w|vtj=FOx^dm)ZK1;h4(Cld5ObmFuvNs>#~asa zJ=43+Fg&-~m%&>`2pXmm2R`|rDr_gA6geH!`oCsHVJ_?w-uh%`@X55tqB*rxKa(b% zV@R5%kzN`6f~NUoX@lJZQUipa5P7L?K@W?vBE6}ssNMYTrLn^7IrwSrQmPLx3&f9? zC263=sJnIrG~3J0YX!kXsGUns**2ZBARORH69k{)t#5lc1YB7Pec1sJ{Gp-FFV!rL z-}}JH&r~px45MITMzV*=Nxcte$5HO##R_@r@r=MCSi4d0%O_G#Jt!-g8GTYO)!mJ9 zJ{oK4R+$^*Cgk;b*HH62!*GmxgU)vsopr(R6%9HIWKZAAo)!~Nni(|PsllLjG2b3m zM@voh#bqQ-q~DaIyxb)4dIqP(4?nTS3xeHBzEu*bu6w3;rWg%bmbvgM&}xEAAoU^d zy7Te+Z`}Q|ZtvRU3*RPPS`)T)fX=qIiZwTxrAM>f+^nu!dc6oq^?ume^DD1WPRNA?_m<8!>I^V?DQ{ za%|*W-;8&sL=m&*5R(N<1Sr8Y)=UiBDF`N<$8zL<&|wEtzz$X5H9tsySsYOKbKiVC zGgQuqY2y?jtX^`;>sEa&Yv`K^e|W&s9_w+GG1s;^>}HRRCzI1?tfknr*1FD_$Y6X#c?jNsVV30`YB~hZbRKWpE*$GI+Y0nTab9 zsP`Z|o28eCJ$ooi&m+pOj7Sc}dNe1CH(q8&%@l9D%#58WcDl?=oGIR2KAU4%iA0we zPiv$Flmt#|Gz}=pp4R9QP@<~UcqX94SPLwGtpDTwhsmJj2fo;NvTglk(uCZQHFLpc z%M`g@9DEp;PFMjk2OATmi^!+eI=?9{Jn-tTuvD%+fss=yC~`cbbO;2@68M%VQ%^_& z&Iq(lp;n<>0k5N~g_myU51&%wV4($!V};9#t2EDqwA9-{>&fzG!{YU&K!mpGCU>lrFB+fDC7#)C)}u zCZi*5Ma2V_h6R~czC3pk6?Q@mOjS`ABtI&xI&=Bu&6EskbtvqD^$R(L?4%Y9F(X)M z!Uo85*y=zQ-m^+~dxzBZr0+f$Ql~=S?H5uvk-j@Hq)wN zSr^52Q-N zKx&%KEmZiie6&3OKg3hhh^x+=LafjarXu%GPI`KyXsd40iyK9Dx=Fb=iX3#43U3rS z>L!)kDB7u;R9-z>pjU;AFLAJKOo=Kv3a6c@lAE@b!S{$-Ld`ys?uQ(V6rxkfL9{w^ zL(+S(oZWDNarbiYWeO&4|F1ZRO++}JZHhZee)`t$VK zQ08{{L{=Y)4rO>Hm57G2V7{kT=GARkOYdQG`R{mrToQ!XPgLy)#&Tg_MuS9R;|H`_Ldk{k3_TGwwUY;^eCGl$ z;gVh*730f`#~Im_o41H>hJ(>sP;$Xp8%NKJ?fO&?RbaGh04Y_#2p$w}S=}WVp!7IH z=|)kGe-lhpKJXLXAW#+)8c>my)wcgW@iH&T9>fB&@*@wjF4f&R^ZxbYx~FH}S3j;R zIrIMAfT1ub*>Wcr|F7Yx>D1OD`6e z8#_<@gsTSGhiVKS?C{|WHIZ=gUiv3};;l56l-a=(q_30kndp(rBk#DzqeX|j?;UFk zn*8{o!7)}w*>c)@+biEp70+?K;-^#75)$<6#=Ekdtz9hh`ksa7ma@|(bzhro|K=x8 zHIs9`rR%or(LHQ^zQ_AX$M&mixim+`70Uxl#_yhXY`@2ziN4k) z7U#I7>*7?mM9opD?eQLWFUH+jxH|@Q?{>N-rX~hg3U+Jd`Fg{`KDt9xcdO^9*4U#usKfg?muC@Q;=THIW!@Qz@00a_gX%~ zY9ApTI@?fB_GV;MU<{t^tYh^SzubwpT%olgw8xtzbJA4mgga5Y&;+$Z7o#@Y47I~Y zAB*Ur|KmPu`>w|B&@uh(jul$n8H)$lkBxIaK?{7v+pw&k)&th^9k$ai?^k)vn-Dka z^s@#1ocKcu)K+Xg-y`0+Pi_CS=vTZ&wPt&1K9jYg$1t?-uwRjZ8<(8G8KjE|k$z&8qG?4+e%c1!o_no3; zQ!z(fIG!Ewq0p4`zNHq#N21#Ep|BgrBdaiAXY`2TmrxLY5Cuy-Yq)uB!M!4=r4qFx+KgK85nB4tiE&`Rj0Dn zgUs4MS~HcksH-zR$l8K(-aIO6KN8iR4`nR_%%-wdu?aH1zmMsx=&9hsW1?i?1V+kT zGJeZzJ@NX7s0J2@`jWBMju$GE8Eodn2R7tXOL#&Vj^)H6zK_h_g|+%r^v5#P z$?Szr>MVr1aP|@$C`5xP3zrbtD?Co~qp}xu;cV)F53*PPHE$f1y&s8c&xaP85|~Y9 zZwDsG_)zx#Jxpgss}Xyy`$Lv3ayjg|Gs=0h$UXP86JL$Y*cI`@{$$jz6u86b3hlX* z8E0i-l^vxp2g*t;5LNE8#GXs(z+Ij35qs`gQu)WC6z~yyZfJpfXC}z_{x+st;H*W( z7wx&z;)PTl4k&P^s`K*NBr0nsFf71FXz4>Im9?mg$XeNX2A6OY6I7Z}MLtOjqq0_3 ztvld@tWA2&LmLKub^1sY&c2WMP}b^z*;LjlHbKVs_c5InJ(|o~E{j2CZA3YbMrLh} z6Mrx#tXLpQ(IPTyNgcSWGd?0~i%8`ki&DTx zWNmDLduJxd`2HrQf5%8$GN(AjyRGT5Biwcq=orzNQZc7E*}FMg!(v`k;5VLI3q?Vd zr@eZ9m2TLtXs6%r9bO(uI=<4)zQD`IP}Y0v9(F9|0tT)tL6E3 zXIcNwu=U){HmR#U0&rF0tYd%l;4so=#Jnn0OMkw%n1;YJJS1T4T%qNLhnjhFuBar@ z%I;;n*vqgTwYpys8f!^L%mOqfE<((Bh$(0%H>B+r;_gH+40*JZ+qjsK7FZ(akudAn zevaxJ-W(N)#W`Bpx)zT;U|^>M&dKf!=4Nr#J(wQ=PC%ZZifjZJ3?@|A4;h)DifjTL z3HP8GHRI{m!juTrSX&&{T#KzB6nEU6eTKoeP4hrr{g2Q(T(BQdtLo?{lDMn>PuFw zTbp?s=2nC(x%<{I-LqegR^@4L^*&ss(L$|PK_0O8k1MIPMjzsh@P|Hg(1+Y{_`~G> z>Yt!j6r3pos1TBdaY=X){}dU6nvc=Y58#&^JKB)tQ8(C6@N3=&U`>u4ZT9l8n7mfJ z#bcBYy(J=cI7oa1xyflIf-lehA89m+h9%Kv$2$u-f+HFpl^6m-gdtB?2+%0y^H}PLW=i>7i+KMA@%<=J1K=ne=>qEb_Yphzya3=h z>hOlZI*fZOWJf*+lN4zss)Rf{S|~6lg<5fy_>VU_XK58g!sSt-Gl@_MJ@^1}Ns{k| zzkgK}52u@~*^OEV7lT+pGzlu?aT1~uCqHTTgb^?*3c!fmD36y>v2UiL;6cS6P%o5k z@_-hYK*U}Kx5=~1S@MxqDczH`a(mCEK|RA}mUg?!oO!+Pe9NA?)$7Kj)@x2HIkF~g z^Yc}gE~xtHyR^i#Eu!6vzTcNE99`2tOJ!;fj}bk~KKBC4F<*4d^}tqNWqUp?Pwk4< z+HjU&i|uLlx;w5Z7g<($8+%{^Ez@YB1FiTeZ@NRo-Wty(?S-u{y|DoigxmPKrZ{ve zjMB!of69yPRG3U#fL5M}tSRH=MPE@WsIz{R=SVCd+>JT-DK3Tf_E~LfWzkGCWHVn-jT+ z5{sPrE9t_)q;o+uw&!EP;7e>s2OP*9q+;+fHl+g&Q}z~Wb`U3QY6l!BZg_r_;W)C2 zIKad1IXpSTJLKT1)acvu6-@P04zv{1J9Q4l0YO_#1Z^uVlL(qozB_b9*W|nB@n(TL z9i*+iEZ4KGnO94V&%G2NvYhvUi)j=cN99V5K3cI5KAW#~2nJT%0S5{OHUm!^&$9y#6bxe8C?Ub{4mnUT z9QbmE<8`Ni0|n!(!l{1Bfz~$Z)ef9Paa3nFk-3)c%EYNtBhKL&fw}o9ERB58A@FN{ ztk9Z9$Kl{8H{nrKchG3&)x9`-H4QHI#Uevmj!eM|lvz6K+6G*EKm>9dh^SXvgUf+9 z)%NE*IBY{he(Hg1nUUvWW$Yo)gXYP!=XWYorkIGcUrnbnWr|_0s18N26xk`0DVq#Y zCFpFS0y||gKTM{kKUzuP$PaUGFH`0q@HT`Vd0RGj1u|t0B9{K=I{m2YfwsINq${(j z_>P+cf3{@p@D=$I+VHR%ahd?7CC8^ekLM_Uq$}$##5n^5R91~-5c>$Ttd`hv91F+| zjwtP=Ehvv-|s-jS|F{T^ji+n)=ieyNQ_&)gBK|1e!3g2h4Ul8~z~muE?Z7KukE0dFcMGAUpU@?n$$F-SW) zlYEduWIb5ZPE31ah{Pc$@v)e8#t;cl&Ry}GWX2FVLnmCOcuq27h+L;Uja(xW)6O%W z?O>~zSsDvt+C2FhP4tn{I0wE)MN|!Ax?59XH)))C$-%Ap%w9gWoT+tw`O3`G><))= zB5U%4jJi1Q_o4|ODL2(Tnq{0*%yO^j+v-{oG__j5)2D_QwrAt-rr@E(S(#>5#XQg3 zzfY~s53;=#?uf=DwTL+ujd?Q=Gall!mn*D7+?@!9p|-+yay69RkXCghSfRn9cZ*1? zuucVn6&rleG=ZG%KlX&2!3MPFq#HlO6LJPWy+OM1BNxjFR_tM;lwE%|bT9kD(X)DX z?J=lVnN2mGIXw7`c4eh}5jw2Gu53lqz`L@mfju9NeWG%_dz!PV-Y?lpoL*L--6=#m@ZjC!ET3u#KMe$hI|6xRn;t z8j_o`A+L$S&vG?rrbiuh@ak0thg6YHVc3p59uTg`XYPkF*fo$d$S#RpNi+)|E8)Bg zQpo+sliHBsl!&}c@Zot=2VZo+M%55AL-qPtF!Hh@Vc5%H4Dzy3zNj-{ls544ER7p) zqFO9%fdQ3gaadH1C)#Koq^qq$J9vE5%U0Z&=`H1YOIk!6>HB64?>6|iIn!I*?C71a zfph{@YO!EsG_`xoBDXT+3bcB`P1IhdMxIg(sDpv6ObW3Hfg{_Ap$-Ngq{v*`UJSVj zQBrJ~PHwH7e&LoQ>3JhEUwV(Lj|!}}zj<4!S6WnK@eks6Ci&n*D+qcagLYEHB zeA!q0%QAga>Csf9A5)`Zx@k(>*piWzhg}ccRKCE{$rl|C$tBJ|Q<FSd#@QL<_@FvHk`;#En$j}uE!je4be^*8*TDl?DO}eSl-#A#ak)HWvJhBOtBL{? zK#UwMDgsv|uCLNvOQJEjj5wwGYI+0n{OxAk9j8MS@NQep?jq-Rpd0G@ut^&k~G@Hr|1{MBe zWcWWwAvPjFh1!du!Y`9TR31kFsM?8XXAH3yAuqQR^Qkd@KpWgfTub(l8iOLQD|8p;HN_)saV7Q zjg|!`m10V)$NBcQEQ7`6Hh8R(4eTbYmVng#I(J1gR7LSfSNDMBALrJ$GZK!6Euol|X z5e^$4#*0P`7;g%*a*LIFc7AJ)&{DZ0EJK?0|bT4 zKLj5kuaE!}v7`aqpw=9wL)q0HMj{p;LXXJMV)4lS_AnBWfgD9*sF=v4kl-PpM^tD# zHilT$2t8^ihDu7A6!OqX&Ry}GWKxJEBweO>PSk1zKnyKX($grkofz{c9Bc`%j@eCc z0K*&L=U_%;YGL$LmdL;#e9Mp5uhT%Ysl1+ zK~IW|L8;{p$QYSgAD}04O?gvc1Su%BBmjt!sl`z=Cz&xQwEz$!kIV96+It42764*o z?UGQnOQA8Sc73jcTSJc0FDJK|okfTdpe+9wBT@t(A+SPnIKE?$M-JKmTuBZ*a;@-7 zP5c;0`iCe7hL|KhIe$srxPc_x^x4o4hOt7%lza{d_Ob0LEYU9mKMMr=*grLo_#ttB z#VH0BX@3&61A_tUtDN^|QM+7|5Z>TFloW)R#T!WPC$gB%Q&FggZ}@|vawvxOhyLGZmPz%L*K zpMooX=X*- ztdb%^%LL030>**;%aXuu*iw@?0-|t`#_S-VntT8QG2N%gOD8Z6-ogOq`4mf00OQ~o z0oZ~zC9sy7D78ytXbC|pAGD#>BM+pI0mlH-C!o=%xDUBS%LyX_4%$$HemqUeGQ1RJ zunlnxB>ja>N{WQx)${pqRz>V~>3cp$T2A*Ci;KP6TKzZ@aj~?OPnWdD(hC9LS2hW4sq%p*WokpFb_{I)~kWy6OB2WiU zC@x|ppUhG_@^a8;JfLj>ASiMjD1x-`ssjSF>JXMg9^U?4ZzG|5IUF{8J%V!fAOqin zVM}#hloS$|jHJtVxiRnsn^x(n(M6x!EkXzi^_EC|UqXG=LVgKD07`iI4)&hfpTJhc zH>cx7RLqp`R90E0nA9NYbA(0|emw)K{$KQ#=Xg(b;5S0m(y3@@6W~f(pMJs`Qb!+H0Y% z9dUF%10tf{X5}vu$)(-YQTLVg6jsVh9> zjit|2x8fq9u1@M%xboVB{9TJmZVhLAm+HOm_;aLXX8(K>x=dVY}gt?9)y z=SRw$QB&bzdo2F0J!%w+iekBETqOlG^F}%E&qa->2ubN!l)Y_H$=l9sQ79@u$oO?a zC$@AntpTZ>*`i=t?6o;}d7J28Z3l^hJr+~#t!!uJZ>Blsx%Z>_=j!IWXYovPf*!GR zd1qXUfRg>#wJ2Js;yTgP!HU0<=7`8Q_NYnP&&sg(RmLMxT5F#WOzY+&g2)#tB+sWK z?O4AE{T!bPz^9h^>aG)oIi7+fJHD5Mrz=%?^1i#Z63rieidNaRCg~u=5`lvfCBfiGW2!xMNfF}@ex}@%RlI9P*KdNDE2Xrm7+e4xnVoD@W)lJ*qonq_dLrl zd{*wZel(3dQE!xw^nO5((=d}541)jlL-gG5i)n7M!-bfw-AJy=R6?-njdP#K{bZya z>)%;uf0}<=9xr@WQ2J(CNS+8jLRl0&=h@-_HnWUsJb8k?i4W}0co#!AUwmtN-pkqi zObFcj^H%)Tv=EeK6}BZ5%lbJnLN%0?Oclc#&jTn?L-u1bR4EOJL6n791LPVO07Vwl zqGSYaR4GZ(pN!xHmSg=p3l*kaDvj%ZYsOoTr$ekwIX@wPCy8K2bbnV&f>&tq{EfJZSH7* zk;b>q6ZNI}-;B7+3v^8>HMiQtMmczxvHt{4wW&qQi#MZO3v)9bj*?iI*j?S%c0T-| z6D)|*^-thuoS+7{sYDBvQQbWY5ysmnkO<9BhzJ7vwkP4j%UDK`L;bWZd_t^#KT1>P zUPAeGt?Eai%+FT9dG!|*cy5KCrCPDsR6Keq&9eU1bi8|b-cP*y09SftLEmwB`57lo zJ%TnH9dbsnW_`gx*59{Bvpgii8ogIQ1{F#{^6m>fk? z0kL@G8Y0Svye}Tc0ixGC{!ApersU`pR9*i)g;PQOtZDv#5nJYuB#yD-ZE&}T3}B3K zBpJY@Jke2!NC2pJ6cY*}W-I();mvxUN%uqVipum%z(m)$$74I}F zG1{Ep(x+!Sb821s&i(WthceCK7#|Vq#{UJtgt@->^AH(16ofrXuwcjMAu@6(NX?_` z6WgOh3K5wPIMHUBaH7&@0!<%8SEi*h;ZIJ>6yZgYAzfnu z1!Jtgsmw-4t0>lN0uMSK7~;fBQ)@~J=3ffW;DGCqCs~dp`u4@cM2e? zAn_zQm`AjpM3zXfs2%VlM+;|Kd9dgUB=i9i`h1wp6CZpLK4cxmQmR28?ay$cyteSI zC0@3Ym1lOfdPAT1ys$3?5KSHRDIO$@qL3x=G-43%xd?0e0tx+V5HW-Th1CFNFkHy4iW8DnJ+dy74c z%H4o5_yi{Jh7YkP@P}+0^r2Y~e^4EWKFlsfP=t>$`=+&(ZPERT2*nr<^@2^oN3%F~ zbUI*o2nf;`(aeh_v7smuEJ8>h4Haet^bu&$ERIh}1VRf5FCuM^PqPw z1TqRopFsd00*~6B#4%E0grg~t5r5kQB*hdCi4ms#EK&6f>yKm*SQN4VV_XQbB(NgD z94mAd2nk~W=H4mrwEM{1TonXMVwj2~l0(tFSHD1Z5pWl>0U_AbS5ROjDt)Geb)Sr2 za8ZsGp)b_T05F#uX(zNbW*$yvDFeYZf?UAgB^=>JRtSKzfGS8?8t}i)1PD!%7K;E_ z^0Ykz-_J;Sey&VN>FZjxhyZQ77%`%-BytvXau$dH0hz#0jnuOour1ty%Q!r5?lptHdSbG6~PB`F3tue_+upc0O2q+TR z6Hp)^Nys<(;y!8DS;g2p1ZY$S{vlB#(yhcO!idlq_B`%lgBe~-Ayt`!!)`WXR> zjqeAWA1*M50g`g*!`l*9Cp}cj?b2#7_=-x`W9e*BdtZ;AT77I`&sNj7QU5kjXYT%j@ z9urTi&T|Lw3Ga-k2i0dxjBvn@Xg?i6Td+JU+HVQ@pN@PH`ms+rY`}O>dQsR=ajrqM zaE3HxmQKN!Ye&Sn4_&W9r?r10H0(339hGUAuP+X!L*7W9xVO7R)c%H%{6!=vpCQDV z`^%jpbRX+~@yZqa*HQGfwmpA2aoJ}x%@W@gLN~|AOD-aFE4VdO(QGeNa=cYMmjj32 zs)Glp8#8btjARAykK$M#N8(US6>WU62EA&^-I<|YrK!8P_*M~|dX0%AvixNna=I{r z_d-iK*1x$>@~Ti2%aOn&&eV|527HM{f)bmlD?R`gwZioo!o5JB?m@odk4E?cT2G85 z1S3GE71y67Z~)?#5WY#%eoTRY&V{#1)o4DW*B`6uD>-~l!?Q-A;dzeoQ<<2dnLXKs1ctyX-P zraATZIH9jx*F(MhjB`u-#R;eK?KOQSYQ5rx1xK+6zEWPs;fb~4Qn@afCqgTX5;t$UVe&v{;faX%-N$imE=;?&Up%)D9%>zkhW3bOt_|7nI@L|> zx{A}K_#-bghc7J9TOTu~R(}V7Y;7?1tI|&XrYDzr6uAFNBRmcyYTs<_%HZvEZH>fq zH`ISFaEHIe*Tl;>ml5*|O(_?VW_PRA-y{GbW)QFA$=Kce(_f{%9^Hqb4#6Twk@VLl zw^;|{oM&!vf`DT2@hUs`;^ABgF%Y@?$DRB=9f&2lKsQ7`IRDIWf4i=qB_Ae;Li!a! zj26`(hGEZ@lr69V^;22?^ZmgTPg;WalDo*pk4zE#fG0L{OT)2!q;+H$T3Sk^%Tg$Z zpvfT@AywcHyvUJ4oC&_IPJ-IgcNJN`4KcmPUmYEM*nlL?=W`z9MWT`sQ zgAe2V^CVSwHwpCbgZ=s5=BKM!p~P}GD!@D_aaNOIJc~ksOd3YcUI8g(^>38bHYl!; ztVr!5|72k*Qb0@y=|nz5W>6$}{g62!M=Fy-O>i}(2y9vV4b1AVnft#sv!RT$al-bK zR&4H0{vn!CyPTa7x)fXZF8xmVd_VPTkjJWU`iJyS1}oJ8leEmj-`4|iBchZoaqkEk@&2G20b5wK=0?&pDrnt5s$ z_a~D>XC`j35}=N@B0b<>@Q*yb%M>7vPJ|^o*DgIziU6aZ-Yr7XTa%IcPJ{_~@#P0Q zwMU__WE%h2luqsGXmTT8c507ePr>ARUHVItD?Is^Cbxa* zsS<5(MI@RXs+{6hGEnBZ=q-&scGg7 zU~F&oU<;iuH}+W!18F|Brd#3=Nl%C31@~BIkl$NXM${HSaFtgU#Fy|^!WI?X7V~5W zAI>b;ud~Sl98X0HNY+11WsSsKxO{&h{on9_d4XQ;!IyAKnE?rRjK)BIZ)&z@6vPX> zi}Y;!y=db2(lpEFH*2{R#KV&h+wpuE54cb?Xtf3SOl8?`G@}+LXxM&I1{{$wIm)z; zsnKqzO@-=qXKsSC z1kph%#_i;r649eLytNAAgjx`hJc$W0ijr|h84u(WB@M)(f_RixOr4GqIXccN>_7$a zV{Tmk>a)o*fcXjLf^_n&C47~UjXpQz*FStz>0(!eQLD}KfE zL;m+*Fn92m-~zecN~u;{oteuM4F4l!t~Zp=7e0q+^f=)-B6w~TVN4y#+-g@s3CzCh zL!%SB6(t&>3e;;X*7ZpT3Jxh91qX5CSRi$ucA(&Zb)AXB!9f&gEfL0aC{89H*3y59 zxg7A1L9{W1${K>UlaHRFlQE`(;#0)3ED$LZDGI>J2TX)=s{#;5hM*vr1-Sy?95N~Y z5%Pk9#{oEpjMWDmNikxB;zwA8Q}Y9k^pOcTUdT=oiTWFuZV(N~2p|lCt0MrXaAqS2 zVebq8dTjSk0JNdIHNY6?-4MOA0(jz-32g#>*HbKn(DKtoW>5YPl0 zYA+Haf^7RRM4G|%6wlQl+-*4hB@QQ-cNe5XE3K>?xEi}Pdx!QhDmM-V)S zKqHL#Vay0&ei(~Fm>&j>055drHRoFrnABRODYg1L`A7!Agrx$;N9ef)$Rub+YstCx zD{F<)2xtpYBESp*lffZXxqn)|W-SKP`~@e#Pzp*>IBOK4(hmrmLWf|qg|vKJ|05aM zlzEn_q#r!ZZxgUu!!DRDsyq}CDn@cRT8EGuyi2q`34r>U)+G4BHyHy+4$@=MIRxIL zsPhxZhOE6w=(QB1I%IW4@1z7NLb4ECpY-}{4GAI5BSHF;9#A|mS2IyS0oUqGAa)7Z zjHX9IU=%m5(aURdNsy_41pRg5ZD}aKL+#K-X|-Z08!- z)sg^$Y+C12rc6K_i2w(aBOK5 zW+XXVBg26_*fOlCP)|erJ&Sc&-B8dbQ7m+dlHA z{p&vqg+**D83HK9&f9h%$RZj;PMtza=;)oYgTI`}6P*GPuwzV@0*4iLApDrbtx&Q8 zH(vZ0$ojMc>LP__!5g4LaWaKaT?k`37Kdxgf3LX+3Tl1wJ1*ZI`~$RDSYGk7*#>vu z{^Rq)2=_)sxp^ElwzM?GW1r`4q9r;UXad8BzH~> zK%v9}NJ)+wPTS6^WWIhO{bxJ?U{UTtSBRjs{Re1?fsiE({YjG$EYuox*J-g~p`JI; zA*_%9lu$e9z)k4OHzW=f#59&8IuN6Ri0~}*C7QwxR1h(gMHEEp&p({$671?w9HkJ|Z*p#ERVflDlm8!NE)xow*A@iwq&3L^l@HKTGKKTxNp6JqVlbQd z_Wa=I@Ba`2@U(v3RT*4U6Sf~lQBj2V5fbi!nyOwP8jOGqZ!LWcMxns}&B36571RcJ zPW3_$SnUX}S7k795+-UJyd`zY4s35saghdyoxV+zfUxP3Irn zM>=6SBr_*vzgWc?-ClZ~ZJ&KQ&Y9`0YmHzI83IDB(B%}8OMyhe#ePjS0%l7^paAYH zW`}U3O;sF@s50H#vpN41+C|A*Q0=Y~VJL^Xx5UeBX@#`_7z$iHY(hMEFW_jybt?4z zIoyd0Cn1)kaV0$R714R~*VgE!o(?t-P(Z?9bUhKqQV)U&N^?FSR{y!m=EKQVXNt>k{ z{q&LW|IMWmzmU>_qB6QfsO0_r2c?kTkN7Ug?OOZdgo@^m^=D)1HyHKa`k z>0XbeT#VCsJX5kyo-p#C2_(z6FAxozlv%*fE#wG)b2RN55^6lXmyzRo_PpnJhMF-Q zf_*~c9+^ni?>bc-@_N-a53jRH2b3&QZJsr)>!nlXw580`;z4U@=_Ltp<3AEQAxJHRgK`kUS53Xdi*ek^x>rB7!L1_ z$KpdbcRbwYQ1NQsMbDRWIFhqJeQkHzUod^3#iQ~tu*}Fg==zRjrp>B`ldoGr=Y;EN zdTuiUuROFAy&f6w!>Bm9+Wo3e?2*V-qQJnDwHnu4o=@-P_-MifAkzxmTU$J18NKHG z+t%_L+pu!h-pQ5GK|ZsOJX={dN}oI7_lBo;?)aM>*y_#7T%M~d=G+?Pc6n>Yp1|jG z*GhQCTGqSXq^{gHIFaLWEAQ^xi=&eq%wqP$ETOqEQnrbpxi6 z=J{!^a(iL0W@(6yZ&Uoej9x#)`~boS-@6`gb=lmOp0BU6)rlZBt)xP1S2&`&`cRe|zzT>N59e|IkF0OHEreuehQl&cm+t*T~PbCq2hJhM-(K74&Zs6k#v z{!)k8M_o3aFy4CU+46Aext~{Q)NGltqro$z<@K(we>1L`?l5>~ zL-K~3I^{i#mu<~l<)FRmYKmU2<%*bS;L7s)I$*tyB;h=JXq3I?=G?avE!Us;ZQa9J zPaaMi;8IsxxNI6YdhJXY8u%!Zb=rnDgS(a?thFqv`F>jdp>=GNS$PnoGtqgoOf)A1 z=(l>6`9a8c?&TG3TLHx!Rr%2Wto9m62=9OFyoa@psdfClM zr(B$Lo*%Mg59Qd$T>VX_rzSJkQ1?{LZJm7R^tZ9OPP3^I8Ps#vGAC!Qs=PeU#9>aHRX3e`1(tzruMJ)@BNM7M59Av4pEY}n z^nI^MZ5tTyAu6PRm!|~(4Bt$j@rW6jT&KeE`n)z8(b%vE$bdBrkB?3ohMVneUzN;pRf=kY4yB6>c#Y4)gR!FXS~ zO-_^=ZKv)YD>qSW&mGH8Zum%yX~fkz_15Y2GiTt_a<^yPd>d{Z^DcM!LO(6Xbg@|9O>O+DZnS*?3%BU~ zf*Sk;%?0jQ_NWc0IcYvHL;K**smFQ+2HqKuKBxJcGefje1IDtC%uW#hX8(hW+D7gm z(*v6V$FlopXfL#fk8buNFYCVNZGLc58)9)FXJ%?Z*QoIex2P#;=_J2<(9mG0yns8% zByAzLs`8c1bam4r$<8{bAu!75dIB-QlkL#;2lfSyjqZQmCMjB+;<40K4e|7ZzR3Q+ z&z+10o>VXGqXP=R@mYnnI*3HOzCo7thwi)FL1t;bTrPcJQOd#{YD(HVv2!A9e$^_A zDR1ViB&>Az81#dUeQ)iuJLToR)1`pOiGfyxvAXB}sgHKkE8Hd!dWkIqo3y18-)2A2>GQh;d*sW6o2XU$yzy zxtUQbpOz0ZH=J~Yb%8rMA((7LZyH)_=k*9&y+dz89My@3MQHhl zMX+N2MS(-t@`HdoE*N~_J;&r6U+YL4v-Vlvd5+uNx4sFw=cQMX9pyUl=F@RD5vw=p zO<)Hv;7*PXUZq02A0UhcpKK8N6yJ4M?`=X_#0@CPIH?@EFwiP1A|B$^&!>kdktEFcbDTKt=JWD1;22$;tKYnW{Bzbr{zr5ccM`{On1ch2y8Wf!gtbL z|JZaDw@v$vv)-9$Z?xD28@XD4l&hH4LTVTPawz~PHO!!dRE74_j(z3SPkZ)?SVV&f zKWXBDZ~Gn8^wExe+Q$BB8cyDwUP>km~XEyXL`CnPn&_1G7<#Lay}a?ZG?h&V&rZ&TnBPxsWoUXk2! zN%|+v)gNg40jI0`CcThxDf)t7Zl=;#z%o8jzmy9dxbf5B%=6yBD<5pG4q`rS&MpZo zHi{n?r@u6{psZmy|w*bHFQA@JUzcp2zr8~UG<%} zmkaFSsu_dL)bEs^sBZXG+wV=o?cD}TcDQ#B?1h?xx-q|1HzehjH`^s45t&c{b2oHr zKJlg@=_xF;?tz$=V1T)?VQy!81r`gIPiC)(u-U7%+CFF_cbMswoSAn57{_9k%Yu zv%D4?lafMqA=eC_KJ0nG=V$9rnT#J(ewG?YfMH@80jk+WUcQ2RD4KmhBIEp<;h`-I5IT1bUI$>5v=OuUsv= z|ND!VnP;WEVQKZoIjN4e^Ttx%Hs7A}9z?Yb+WqpU zZ{Bnbc`@v$dx>q#gps?XgML|S8p(L4G-k`Ui+t1v6C{NT zg{}+Ux<9cqSKg&BidoTA<`f^^C#11!p5I3u`g9s88mR%+DbVi-nrc6 z>q;LdzWsUY;qLiAgdauC%E)Igi^AW%9Nh4W!;rw2eaanD23w81@ssIjBWv}yJFib3 z(a=3-@h=XzSruS9t}d6|+`2ZmclgS_&Q<$dV%@uYi1eSG`zDsx>+m)u%dk)n3%l*+ zi^|NeIae`^X1kZ#jZ4wRO;A@8X&Qf`cl_AFmS^f>23wA-k4g4SHlx+Y%>QG1VM%4l z`^DD+t)>KRV;xt&bt!w|ZU;XLN6x)oVX@8KBJIW{>PFi6D<6C-TAsP~uARSU%(u_% z#wF{LjYo4?(vi(~?ZzeP-jOwZOskF_IeRlTyQe$2%;NRZumM*NzwA?4-*@WZ7rv9{ znOpTcwe9eGR(0NZx0|z8r7vIO7_*4s{>)A@+4Y%SXiJR0MdEMG0SjJt%?}YbHXMH& zIp-(Vj|nNOC3#j}7lu5K>QmQT6Ft;|cH_sN`9l}%ibOp0`l_0+uV{>yG2G-UL(OTI z!$AIIubO??hHi4rFb=4|dQ_8L4_ngihp|etwWF4shKghSH_+@8S6Qxq?YmO*wre+g z?=BvLzt`lrKD4BDWpk%2jyc8hyiz?rN85R2)scqXS(EqFY|1h0W3QR&x&Sq~$1WQ* zW}LB6O>^C7ubJkWbMo>nbBk%T$!!0PpEQY+P~Xq}vTZl*4jX^pb^YR4gQZ!gfeCXi zv!dy-{jF)2!&zhUC-1NM(ZFnLmw7fzBil|?*Niq@kYjkP<~7mGKQ{Vx4sNy~gFV=q$;WLW1f$`+<@2?v-|Jaw-JJM%W&is?3$LEfnTzzhC>HNvnV;&B?P+wy!mZIiHqG_MYNrnCQR*!iwP`)|0pmeMrbRL`iYn#O2TPzxylR5K`kM5pZzg^hC z(i+%zW3TzHgEm2Pd+$=^qO7Cpt{#6}d0n`9kae$V8K#<-G;fTL@EJr?Pqj!{cO*SL z*5}vog?n@6uSxakP1{fwIHmmD_Jc3{uT9Rd>ea{f_y%ZhcS~M#b3qxa3$1s!&*5L8 z=f{DxU&Dd^L$iT)TK9)=pYF5|%_QH^-{;KVH+opwz`oYK#<~vL*y~1deor;sO%v@0 zS^4xH87|$@Z`sDOvDM{2sf^DVbEjt?-ARWAd`%2~pEKre&%wHrjtrP-f85Ha|Hw@_ z=jP~cC_AmPDQC>Ro|hx$|2klS{h*CLgGTPl8I#&`tZr}Ab=cZx*vMh&J!k0t8ZrOK z(b>n^UhX=+5%;ByOlO+T{vl%i;Q_1ce;hS36$!j_ZVnJ`wLfm{^DM`Wf6qd4cvxD` z{Sos|4(My`Gil`ax#zyoeGoZ+r@j8^2QLV?qjW5 zp}#a-IJmmzTJLaS*Xo!*LNpGA^;$Y;&Y>{>mbp|jGiNE2^*S3jqL#)6!&!L5W@5GH zyWNRX?pAr$?H(DrDSL9)>hTGN7pi{SA3QN**TV&d{teknomk^hGwe1D;L-63yo0x5 z@2qfQMV`zWA8#1cm!=U{#MFQNaw+h~8SbrW*YH$t1;%Ratr|v-_O;T?*tM!R?a(d% zH*;|_c^_-$NY^3eq0`F0v6&pYbO&pusw=!SPTs=`7w=ff3lwc#U2)g&p`~Vd7_v%K z_1lQjr7o=RvqfoPfg^`x?E0xs{nrWF4=q(s4bthmLG{I;FvgT>21Dy^)rBsuCoBTr z?8^8#XHk9C$v?tUE3-96XvS9yP&ZN z^Q}wh9aeR}>hicryUim9)?awND?>kL(VeQVleH&nSp1f#{jBOj!LGrUs`W&JMt7TE z%7$i@LDD3~|Iqava7~_F`+y)zHbNcjjRJjD&@w~>WLOXZCz1rKtr~{5f*3*=qC}`N zl@`Q-h!Yd7Kr16*sGxO#6J{X5|J+Z4_Wi!^|NHr#_j&Gl?hJBW=UnG0 zx*V-fpSW)s8>(GpE5kEp|Cgai#R-G&G&0gf_Zt}-kx5UZ>q^IHkp53|oWa%LMHB~) z-M5Sj_278E%9uHY4Yj@H<%yG6q;kZ1hBHjqb|$4O7HObjjNc&3GFvu$_t%pXSn z+mxusA%`4CTI8mHfWwT&-_7TAg|;vX2Ca=o!^YD z2=KX6pk3*6XKFJq;stB8zJi?hUE|b$c%xK75{;#-NgVVJbg5Eg78rB zfm9_lN>yH=#O4rJ3!`(06%)}c_`~y)8@2sz!87yf$QEvvpvyhhC2%dZm^z^znvtt! zkj*vvOFx^N<$3P3EHm{TrLi>iQ>t3+sQNB7zeE>P%za@)>PHIwHW>D~OKDgUAr0(XpQ(THL6S(|LnVZn@?%59**KNhdp3G3S zX{kpP9bJp%5f1!LZde4{G;I&Riqj8q<_@%F!rF~?+?hQV9q zG4)Wj=234szR`XCA}*Lq+)JX-fEkKqf=ez-|1nXmmytR_p?@*OCnlhG?p}bo(_DIx z3HGEGr%kAnGNi`TNovv#Ry04&@IX<%HtR#BI)A+2r@+blJsi_|^F=eli@@4>n3XwgUs3H z{q{Z#D~ewW`SAjdX;leNu0XpQZ}g$~r4e$9u;Rtt`1B@*56w?NhK;jp%&#zf68+MM zIkE+&oZ<=ly^FeGKc0MnEXS1nA!NO1`nquw1Dt+L$dQ7^V$E)H-OibE zOl!>*9XbmS+eQVVIp)$1icDBiCcNf}I?*w?8_S)rH((Lgc3SZ54Qe{(uS9-=OD*JV zLeAsV;Vy2ON%231a3E^w04XeM)=|kJtV-FeLqHb>TQ;fKv5H|+YX1q>^E4sApv{lc!*1H#Z}V0PiD+)$px&0Cup9Wp2=jE1z2^^v^_&CB zX%$?{MZ*tsCY&*eGRRu)vTQ6|K~)aN9u z_;F%GN`waoOg4LL!-)t@cp-lNV}A-~13e;zW4MrAB{K*gN>#_bg!%_uD$OqiOEnw{V#&{*$e$rhs*^>IMHa(?*;L z7r=i;jX&gCF#8^!p3F#?86RT3W(BNmd-dUI%h_UPb$R8L@@suzR#zP_z3U?nd47!5 z439W%;a9tC@4!a$cu!iX%cX0jeeS(`_xa3kTXO4tuzd5W6BDg;Mwy!V+(2 z&#zY#{AP-a(I*d1aCJu~)i-RD z+r*iSG4%6M2$4-mFxbl+o$tTRv)$Gx+~vFel#AEy>unBtHB^lG8-?rE#B`G_kh!{` zJZOHKBC}9x&geO`TxY3Kukr#sciA*&0><|xIhipFW!rq1dgirnNF@a-iseBvZ6}$9 z3dm@3RR17xw@ttMz^d-_5f8*igCW*-I3^Dcn{xb<2mY6_T@;RU3Ge~Y3z?8jp2C2) zVH#Htq;*&|F$zVkou>}lvJ8|+m9os~cJIEJwUnzVKFrY->(#c`ku9oXt{LC1Fj%iG z#|*te=l(j9c*eT>K>7xtp6SG?%A99=U#S!2`O#p^n8zj@EtB-@h%Bew0a8wljAJq! zw?sWVlAZ1*A=j{0Rg;%^ij@A%^CQRF%AP#^vC)*{cu659V8&6umi9c$Qol*J03q@( zaN1oH%~vDYog6Y`ovt`BF_klASfhHwNI%%!nIzZUy+Y;a_WJAjMH-uEdOesMO)rV`|E%%S*enYxeNsCo^Un+ETqLX0{|UiyoH52eA$eJ?i3@nP*pjEX58{1p7? zsy|3}&$qR34XagKxEDp}Xn4=9_peevMrRUmBi|2K@>dw>$TU4|mTDSN{s9AACoK+- zH!LYQB{jFvqj{XRQ|Tf{csWFl*HU8HTbZMK32TGqOFJkq`L^z&cuYk=&LkeQrXQ19 zBFiykL(jG3HQr3OWEIZ(tAXDLcj*MXEzPY3VnEWndOvpY2!q5rsckAI5BjwPlAbIF z4z13bFSKu9xY1M|6Je=rbbBpvjRMn6F+7uWOm>MWCssD@sO7^YY{HWWXjwI^@W3tZuIH6L50{T|U&p1`G^y{-HC!Hl;r` zt@dx>7K@@ai57gZ0XQ9|*KOT!`F5TnQ%nzJ5HkR1Z*6owgA~PzzhQWusd{M3y7l(G zrYwIx7mStRd3@alO!#?p?2%Eme>1mu;$O?+8w5%@H8FBTj-3&QYdW1_N2M>@DiN=K zhT&Hm7&#-3K8&1h%;$Cezu3uyqg4W8C%yG>EWrDw9G~REAzNmrLt!raSp{w4=hTZ* zF}~BEsod14zMOS?;L^0lzZ-e+SjHdL15VT33rEkc@&A3wQIV1J8B9riKI zjcqsA7@6dV!w2r4&Ao&0z6hXx-skAeGxzmb1pWExpHg*&=&nQVTurB^jxf4O#((3) zeL4d-fc@c0=ipAsPIG(a*4$2IRCFHy7@b7`_rPpXv)jqupGCyD*pugHa4vuhH#A`) zh99_sMQ6ZTB(1{yY~@Z%-L7a20&cL7wbcIDyWFA?)bfClK62kOA#}xb^k&ih6f|Xz zuxsut6d`4ieFJ7j4b`r(6>yDNU=VpAjnCsec^R2Q91n384K(;s+Z!-2xiyi##MRO< zTBJGi#N4r<1+(Fh zLw-bil?aeW!E390m<6(xKFpA_QLV@smt3~KChwB$n0lC+##rN|U#e`JH}k)YWwMJ0 z$9)m+=z=)m+Mfw^w1nRrp&XKWXxq<7?HDJXG4%buGND#K~{DRzC3E+NuMEdH`Ptn=L98o^t^6c7@ z?-LQopN}K?l3*YUOdk#L2Kb5|Oke?ga-eJh{2s3I^F=$$a&q+!XN&R!-C!%z8gst= zNyISHNW&0}+~lVizLr+)U>3L2ly7f^R>ybi!HQ*Z%>VR=+|?)VPamKMZ9V8KAj4Rd zC5W8lOyu94MQDE{zZffCcrJS)AFW=phl$e_;3lZUwA$Q^iEkDJfZR=f>mS!IlU%bL zm0}VB$yQg#>&gC6!@Wj~k_wTpJQuZN3T9D8ffD}KQGUBCd8 zNf7luDji0*~yT6mr|CK}HxcBG#WEn(AWZ?Bj9^Sb0T#lg7RUM?pCxI-+TTs9g` z5eXv$f2EAZ{TWBI0~&T4~8gWXpSgG=VX<$GIne zi&h`4Y+$_BQGr=yfapa#Bbq{C;Si0ro3JOpd_S_&Z<;4;`@ypXJCNo`=*A9ke|pr} zVPF~$ixEtyrR{qC1e5-`xtp))_iiPPF0|TfNa7Nn%)1eqO$z#@%;HKN#x7nN3Vo8U>m3rfv&qS2&yZhcUE`={@z|o zS_Fhi==jc%rsvm+v+jpvc>&nS%fA1WiFIzf{x0>kumOgYL@w1a>S%<=ZS(n z@Mcn%Mg}RQ$Yj^NantA7e-UuWDU?gr> zl`NX8lT#PWW6aI_`H%kW8gV$^mk9ZcjiaAG_F(?B0cJ{2p}Mt;qhxLlfqZPVlQ!Gt zIx~5plUwkhb4Jhy|JiC*f@tdb>~KcHY$pr;J2kA?t+O6Se;+EsT3vSdd-KV8{fx^w zM6%YF`?i~duS%8I%X03=emW`>9&y!t)`PR|r&lvUue4pla2RiuIH1jr(G1tEeRE)P zmV5ijl0&5*ZR4#GCs2J!^h(e*oS88W*f`yC#Wkt1)N1i(S&o0=K$M7b^ivMe=~l-o zM`2n0C%@O)qi_^0bROK)k9~JJhcI;$dqT{=i}}AL16jGIryp8`UNQV-3v}M4JDbbd z<#>Li)rV0y(h8A*_1pgZYfHbm-YB(LG)T8jyIf*8dfVFgz^CgY6E*+YrXg={Hk5Pb z)W(nug59R4Y3r|BO|03~rD1PoXFob!(3*`kP5S!4x3#{5ae3{jM#awSjJ(b6u{NX^ zir4#m7^4LDpNh|0RKM{Hc;-#fE5;_BW`=&P=u|t-a8FAGY+m&X5yI4;9TgbIK0C@H zgJ0pslB$=28O7>p)~Md)#`e_^HmK}n9OF4!#_8?B++x0%*Y(G`F+PM`S1-AtuMdvy z|9EjCIzZ$|XS}!3uUX(`t*;Nvf~uFxI(=l2+uMDe5}Qes?`6C%6antQ`N*8%a}C+5 zu!TlEA82%vReB4B%M79cpHhBr-xPY#$^tVW93wBRuT?@OE}ax0UlCBHsmUcnFR=U@D6 zZ%S2BBD&X!A^)C%l1UGbCbDTYw9td9R95#>RYiTO!WKMkk4UjplaMe__CdooN1~lXu~bamr~2p}%d z58}=4^j!FgkDpCqtQI!FnhzK`O7yGWCls!l7N6yDw_lD3;rE_Da9BNOWH@H&t8Mb9 z@9!BC1AjpKSwz71xY;bn$K&_e4+?bTm>YGXcJ^RqFTV!=yXygbdrJ^_1LjE$1+2ZW zVIyk9jksHYdU9E|)`kRGj^~rrHkv$&7H4QztOhAhYA*DjXUfEr0$?nYLYY(Kg`Xbt zFwewLSqZF@m~prBH5TMlCEM*lQsw1i!{4EQ$jsBqk|WQr<;DsBIW&^ z7;4J#Oa?Q0`=7(YX?47*8}p=v;sz20GCaySe5)1#D?pB{mJ_34fW%jlV_5}#)QlDY z;JK_w8D5DL;Oo_jF)V4`6%z#%RTqcWlf|L+AgRi|N<7*$r9T$XwI~{=5UiVOowkJR zp*f_F5O#Z@TU8SyM06iMORkC4)R1?pB!q*Nu14ITB8+wgMy!02Q800T&d6|VR+3gP zRFC3Jm;EU8F}({N0!&N|aDK3`0rzLBP#XS%1b{2kh&TWxz}boxvEo+eJ)Dt%fr)d3 z#qEC)mIOptgxnIDZtzr0SPBsNmgU$;*orL2M3HC2(id>S_>wYsGZY18s#Kf;v(Jyj z@_LGQAp!xxbFm4K5mSgga@{}>E@_JK|FAj)$P>JoUSrR{3tmUXNd`nRtY=_a;{uKe z3diHdU7BaaJ`YfJh;cPlM6txNJ+##VQ2}$^a4qnNyh>*wiuQvmG93407a$MwnH8rq zt;DW@f5piYnM5@hBo((uiFZ`|MnQ@I_tQDCy1mDW<}ybe&>kiW8(_NzMyeA1IYe+m z<^wyz`|l<^gG279=~pMJ@kb>lLtEXTn|oA9`3sY@K;|xY`jf&ny6VUok7rEI^h(jNIpVff5P+0GYBryvLqYLX;xtOYdxMm`hX4&F@7S2x|j>neadv$U8vBA^cKKF1v&$RiMo-d8O7D;z~VQXu*O@$QoRy zt-(_e0&>kTF{)55{lV)`^{(4WL^RD;ZqHTsU+BAejC9&tPp;tPtIYu&!Co#)blYu} z$20-vzdxuacO@4E+KU-wyp`b>gS<9lfV~L!x$pz#)$C}n{QDhVo1Y_G|LJHKxiniP z{mz@std50D)uPk7HCsbgeYir!QvyPO>Cx3v9U<{_tz<>+5o)M-H>3Qhc#g^Kv0tFJ{FjXAb#t2%<_ch|% zP=1?P?3%)e&aJ`}h&Qhjht}_u-~8wac&Zcayu35m&xf_Ti=5Nl)vC6EKwc~?%OVy) zGiC%v+XV)M7V?WMOV3ums=lwPR>csrr&x=}%seeB6 zc0VuGrocQU)n=MldTR1xjC*nfxLKGvzq$v#+b$aAwX&SnJDDAQVKU+Hif>AeFvU-_ zx0&nQz$iQPUTYpL!3A*_oWKC-ajFig=CHIihn9|)v(jQ3#j5yI;C!~yoy-hxlvy@Zzl#$`CF@FI>eSRH~t;Zq69 z9xW0mcwj~}AN^bd?3Ne+=43VEUr&z!*cWs;b`9^Hak@MZ=(5X6`3ZIx#^I+sfxow# zSzkeUkW^b3yph5k1WPCMzBeiFg-iqJgoI^)<&mj`=C=Jo80-vJ7R7Gx;e-!>|JzHn zKl6*W`QoVwcrVKTbG1MP=PA96!im%yyV~S&LNp zcLIDWU!X6Ec6+$&Tx!F~G)Zp`@+#tS_(VNf6vKyeED&%FS*pJO4#7jl0LA*}osCL! zQ{-LL>;~P82S<7(iQC=VCQ4icL|6fVVG!d8{QjeW2Hq$+?^rN2M1oj4fz^?pz3s7^ zG!L+~3^Kl?MT83}$EG z`Ts!3W^E2s?sxR<2%oPJqaK!O$}DR(3w5U6TZErt&M5K>Yu`Lu+j8B51Br#$1#!QV zR^g%`$bRhMxSc3{{nwSCCg!mPPL0SkFyGtrde15?Tk{}O2;W}nw;=0rJAn_?)2vlB z<{8$BjZ&EWqL_e%{8;t4-*X&`>9Oiz#(TFBSU&E5N{00hLp(&&9~K3BEcHMtrYlVTH)CUM zSJfRF(LgKX)2Yk~vIWvRc|&UBlou0AhtJ+|l;+SB=OBO>=>eayGExyO1tM-4k)xG<##Oj{C z#+h#_-THV7E9&gBP4Qg^A-5vQDeOhL3teW#Nki5{F2)T=vBas$3eLp^kP5-m;DHJd zRuiSs6B20IF|{ACl!TZp1wao&oSme1gziQDj9w_At={?ZI!B4tT;Gek|`PIzUKHBOFFRGJb)B57WvBf_gzHb_dD#<4i>tdfO_&%Ds4K zPP?vT)gfO=Sn=Qqf8_w0^~NtjL2=~J2;z^B{cm|_WtHNm6qch<;K50;ZJ2(NB>MjM z3-Fq)(?%J7AEsjJ#}S6UVCo<(^qg(Nr3t_apbLQ2X7V9!C_>P|vjL6_kwhdW0A0Y+ zA}ygDQGPVka{%s6s><)Jxgs{^{0Y;SZ+FY1;!?0IZ>Z z{BkXxeV8*!B$OLqsHg8#x7*)+4<{`U>jxfylL1=jJryy1h>xHrxZYb1<6#wn(1>L_ zH=NE;KAkwQE~|#<^WQvWG$OhBoq7>Ud*B97R{%-rMhOow@ws70Fy)vaK zuaHFGrxx;#djpDR+4@(o)bpQ4Jw{?3knI2`0R@jT$`L4`yaX_fxuCr@eY`?`Y}}gF zgv0v8c5QZ~CZq-i?GmfMm;I8*s0db%!qW>%q;Xv~;f>Ay^*})o5kQ!JT4t=g5l;=w zaT-VxSkuKx1K=F+O755EnX}7vw+)RR6|0tNR zVjaNkbkv9&yjv{W0mY771K|37vs_>S``xJuOfSSja4O=Z$(hshKtf}G_u)B;vXNwW z(^fbNOu+05Gk`uAjyQvfd@WEKwKM7l#yq1s{rw(5OZv2UQR|lCR6~<@R4&e_#fYu{ zRyq!d0nQF2jKn0AE+!XW83-&H=tivxf-V0SIgw-Loit?Y%K)_jlcm%xc2}C0WyAE! zS2qCJlZ2X7B~~vN07%s!rAvj#a*WwJ(&fd;e>O7AXg1b{@U6}75K~U}F%mQby*IAY(I_vLKa@q{YVn>w-*n_)vW`~# z!d2rRZ<3V5iKFE|O#k(1%=3lIO$H@Iy>q6nLS=AZl)ZVHk`O8A)U9>+d+?;^ux;YN zotby1%j}Y8>f;wat&}Q%lsuyeS5*q-kBY9RDs>NT7}Gx+^B1{+;iCPt3iWUJQ_?^A zOMeW}L(494KsD;#8wFC_@*R?4vQYX=92X5;h?zA09kLS@^_L%PkZSv(*?6|F=ojIH zx2V<58%?~k?~Vq0Z2RHo?sA8Y7#D}=i(1{AcMromH}CO$4$W;R8J0TxPSA}-woPC* z2~*0)!H;%+9j2dNLxgLcr_Q{@flC+X9U_kQISjWe<-A$kMb7YCX-9*_KRiGqK&3Rk zebuN8C-U3Lj*+}A+hjQUzUQr=?^T>{d#_dK1Z>)%Oa%YKJs9nOoEZcHli@jD^||a( zQ5<2S^@nNUs;nAsedu-3UhV+jKcnik#h8}>i+sLJYu0xS#LOC)9&F+(gnMu z>1vL%EXPY~N}XgN!*frJH%uDPej+KAzxZgBy@mmaq~pJL1#)*KVOn$08` ztdTFDDty_HLo(3h4J(ZuN%CRY?EDZWA3lB{)$4JpXp)X^D;>@{BJBMq$($K{L#BfCWk4e!aKYy5xi;-PT)sxB2L9OA8=2O2j6=b@o(n)xuDao z&1Q{F$<(ej<#?5|#||0aZC$X>?VWqmOA)S$`DzkfnDHBwMIO!<Uyba7LLiBrLT zJHpN1MrVgw;N}XFOUN;T%2{JZ#ezR-i$|hq0|m5%F^er~o4UEU(n1@_EvQ1ujt=ww z=xl<;UWV4Q=l$=0>^*YKhfI5~Y#D3G_bpspgn}DwT#hmk z9Vl{aVrZ$p=zp1G2GSFjzksXFdd7%*xwm=x{_5$HH(#f~l`rvXF7l%IGg=*7ZNWes zV#-l$BTg+pXt}!(LcCpEJa~*7Z4^fSdi!5j8ob>3{_*>&bC-UP>ImMa6B8I+ZYigt zrnnK7!o6!PPzf2mt_Sdq2jp+0&LQS4YVt^@1RWn;&q=x= z=pVdxsVN8aLpAdb(_ATHNH6`hgyDp#7}W>JELktEXrMD;dj<$xl(R|iwRpW7vydDK zsviy?d<^R#MgT0}!l#*8CmYIh$dL7R&WtbLFh&*xkR6T*|CE!il)hgWX=3>6&TGIqk83`Oa_! zrWL&XKOLcj+0Net5X>V2VG3|MPP@86F<6$3i@)!qVL!_%}mbqF9bUsmbZ&z9~{|NH^v{yg#?r zcFp>$tYOd1=?CbLiP${9((+iSEXT}=1b0oU901vO=f!N6sf0X1F5A}1hya~t4dU#9 z4C=-s``LOZpgg3q(j~gr_flPI*=`Ax>{dWKtFP3_E%-8(Mp?Th(4Qo;Y^^ zykhj={de%&K0P^_Z5fF(0*Qf@pC~$l7Zv9&{&5l|I$&||7*A#3%iyUMBD0Br=vthe%MlH)Hg*+U$&>PFLC5s*V%c-o6;tmt!@0>i8eTGDwtcVottI>#BF zu{OR$d`&Tfh_~7QPcUrolwsCe?@6(dkdB{I{9(y%H0J@s%Zh9@Ps4~0u{+5%WA%AzMSB?2$*cGmG5s`i!bs~6&3`KsE6+%^Lpnh} zJ@RN10fE~_LY!qj#Y%th&Yn9OteAxP`5-X@Sg%$|gpSzHWHnDM1o8KDA7``+lFboH zZ*FiODuG4y52T_oXo;O<0Q8d{80lsMe@tdE^rYc^b z{{zmW%NpChVze8)E18kw4P7XQwP5en4=(+l2LmRDtvcg1Y#jc90Xj>-C$pQ*{86Kt zwGCM6#3Y;lUHe;a^BLjD zVW}gNnFIqx;?$#hX6nP?iA#b{uTVT8Qpp_GKv|~7LRRQ=?G+lX+dK3 z>>5=8_u@#j_axwI0Q6v5Fr$7HCI`I;3pz7L#IPQhpu;e42B2WT+%VG@A$lC?L%U@> zz;GiRi&OM+YgD_rAd|-p3=>K=m|I&MhbN{MqdgnM8>3}$ojfwgg=$qFw87lkIL?Q5 z@b;?!9|4lm@$JPCq_L-};2XhU78*iZW)WD-sAkF;Ac0&T~rV!Fo&{W1Bga(SbJ4#!uWT|V62dg@_zdq?~BjSnfKl!BvmV9%nC&V5a#dh zn%0}5{H}n4+$i!5(f!x;6|3!@=i*WIDLLNWtWF~Tb8j_-+F>0WOG9B)x(El`V662! z@WyPU&z})dc2qPnLb{PyC)lY905a@c;Vd1)O014=Xk7Os-Jn8HEQZNh9Hv_7MMU+MqAiqYP@D_f? zgWMqEfy7(o3A_iu^%o=$LVZB)nWT(hbpwdLLtq|B{Jq9lAn*~&PKAWbl^>WUxd31v zt@lDp;3gHa0EsTyNR4!9vI{Qp@&#NPlr`A}L&1eP!I03Jo-nI)Xbx{nas>n+88@34 zUX;~(kBJ#PnhO*QTWgx>*4+{o_u9&;-{%7dDsCZ+jlLDI&)ouC6|6b!GVtecQWYOr2W; z7$5MrwE;x<6^UH33stx+cLY#3p!X~kyhoJa?7c{9gwWHw5soL+5M;89tKZzj+Wt_3 z*)$soK6|TB=pv$D1>)Qd4oplg6CmZ@1OXF9a~o9^3Lc$B#IQ1@(?T zb)P<{CRdglzmS(Okj--)avn_I(|zekP=?2_Ed|2d9ROx^{6Hh*^5(+o4bfRn?fmQ- zh^jw95U$zAE_vXNRABsTV$keV!7V$=rhBu(#!lU4J-gTS)hsE8w(%{ihK)J;=|Aer zwm~F39U}QV!=d<8?^q;7BRs=12(7U1lP5&=E1%6$BL~y>{gnl&fTBvm0{Bl=cld#uJ0goVv-n-ZwN7Vb#@GUr|1YWF}M-rl+;n6es@aBy>CT6z2?ck$gOy?=5#|_1fH@grMLd&b#_#H;6Go ziBUTa6|;5;)$fuT#H@iIZBX;Qj)aatmO#P^-rqE=5iLtY*$BEgB>_k~aK`Z@{#X;a z2B?ADJ1@Lq!PGf^h)FUUdz z6o&%JuiEEawm%AoKSQagXPbOU7H8BqrICLW@IZ_W_h!r-c&H0g z>sjJ}K2LLl-~Wik<68&LcM8)AA7`a%cEbZ~JUC#$O)I1G_~lo_R4iBf&&4w{_PhZ% z_c8XEa!n^Qj}c}p4yYfTAAX_N(2XQ1;e~iM$XHTTjKZmLq=eZZc|`|8Eg_P9QFbnh z4g(L+;YmZd3}-KsAAM+2rQNXZp)L$tB9Yp>Nc{6TA1toJO%6h?@Fw*IHNYy7^0s zURt=g9omsea`&C9Y(9~zK9^4TQdy9=@^Fl|;vwK2#vG7<;SNDEVo`X&{3WvDYUmml zW?mT-5JRg0+7vq^7^J_+;UrD(fh=r2;aIp~XEjXtcUXxrMzeDSb z9!T2ZN@~ztm7bJ?E1R%2R3Zn0nBNfPy# zI*KvzATSZ`kci;LN_eF)!H!+I?AzNw19jEbA0W16awq_196G0wbTwiW!@y`D11P!O z9-j?ic4JNxG^YfJUtum6~NTMQ&aZLd-Rcq2hQh=b}e$3;nXSzd;li} z%BP#(;ul~{lR~qzfnCH8EGW3zgx) zYikQvK_*^UHZ{|{?D5LIM|^YcC@|YKKQR(6KIuy}<_r$Zn|;%R4Tc%J1J{(`X#wfw zlBd1IRJ?K+;`-D9m!y%w{hx?69Xi3y+;CK*HJ{)yo<*FP)md+BO z7z!vYfSs7Q%TXs)NX-=~S9mZXIuCLlpcTpOcNL+13e)&&lOi+X$B8s!R=L5)2uMhO z38SNo0?HqN-YBB*szS_5eMx#D{+xqYlC-QDii>d>5xnYGb)bmYyaDPJ@S=q|*-*=a z{kW(HQvH|ka5bQ8Tyvi{+SLf6d%(mX;jyNRW7nXfQ6?q0n(D!5@ndzysM5TFr%%RF z5rGovxh{K#@O#FpLyqtW9-&zJlCgANoaO&e8vPpxpSx3Cz<{F0wgKD`>+_9j(360^1kRDt2T5?wBUKXjv<$~20;zbY zLT>M6Z+tq{#f})2u7Ycl`cZ*_b3h5DxaeBVt6iJoi&{;sP208eYcG*Ge z{p)u%0NmE;Wta&;A;X32yPZ8qdT_CgWG0A#dh5+>=z!|8-AUcf)q#V5-On0I(zuwjZKU^r_7O^ z_hu29!8f1W8Ms#LnM7j*4oynbKQ>JGu4`^sh%`wc)xtz#45LgkbVY+@`BQLKLV1 z1gA&cR`CN|0DM-tj~-M5Nf8p>K-Do4-bj_F-=3**y=s>n*%$x%!lurF^pCY0P^fHNW!yCm&ZL1zhos&pGwtF8$4>MKX~cmS*SxjWN706 zv4-E5HzR2Z6cp&E58|iCg*ubm^Q?CDi`ebQ#ZLMoNYImx5(%+BAnVDGJ&B8ZAaMmO zI8=REClh#j=b;cav-GF`g3K>i*SX1i?;I5eyhUZ5pvJslwmv@V-LP1R6R`GO6r?C{ zc?=fu@+)eVE$^&ez8Vr@!Wej%$P&ng{~f9`nW`|Q9%kT8nu=)lQ&S9wl*J}o3S-Kw zj!rb!2Sgq48J7g{@yLF{z_{)6T;LVePm{MEwK5pIv#&Hu7Wm81Hcg&;ay)64%qn%g zP}8Q{Yz_6Sc#tw2+h@Zk551XF>)=AAe-t<~TKhpb17R&JF zy@oyRy;+C9&;DNmEqr`u|k!08T z2GmAYMuTrO?zO6i$sfiQSTkC@z4~7tatWG!z`f`71oQa7ajXmn=Npa$`z+!a)~l}I zC7K+beClq-1yQ?^SlMn`=f7rNdD|b284gfO39ucYuLjSw-hajaG*p#1VOf-BSf3ZC z^T{C0drY!e6q6PPCL5VRS$Ixl4tiMRoFO)JM7pJst{TRySH2p#$SlJ_Yv-EL0GaEG zHs|hpo}se*jd`%nNgTn$Y$k{(Kvx3~5ITtv{H5bTS1^1xd^8g)q z177I~2)>D#v%tyh82F4<9A0YU@S^T|+skJ7%MSFz$_&vMSQR($^hsFS!x^ormU3SR zoCO9GGjx{tekm!%>q>D0PlYr~DKzC+A(@X4(!VsCi=XL(Yg81&<|=QG(4P$*I5QWr zhsXOMunszVTtK7f0OFP}68cVCpsPx<(hfD|4HcJqEV}Vo4JhuDLDX zQB_)Hmk^b&J_#}$NK%0}M{lM#X$9bR`vxdQlRU{{4%kNk&JBe}`+R_Hm9l!UTz!8D zz7O)HLu#NHJ*;8?VQ>8576%o=4a%jXhau0SBIu0&(8z)3W7JJiIF^7Lp(!M{IETi?AXtp0RYcE z&UtW5>poN{j|o2bFolX^4!Oa4rbwG3R2q|k>fw@H^{ZcX`lv=AMW-SD;n`QK&E$}{ z2MYM+r1~;#si)k$-hj{siu1%hC|d6O@26=lm1(nh=<`|xp?8qR;~)#`!#bZYLPfR- zp}0N;k3knrz%y~?&@x=X#J&ZOPq58E;qO`nu}|8P9q_OiP|kp2N0C42`eCs6uT$?A zyr0+>#`h0;`J|G$d`r_kp0DTWEm`l~Bh|mlR!@?em*}uJj}=Fd>bbZ2-put~*~i?I z>K|Tg{zLSkUrxBCQGL4`bz#G{Iitv zx(O{5^<^^1eVJPh>=8(x68`1>Z%!D^V>Xn9$``SUOeA|va_may!Nf`#a@9ggH zfA-eZIsL(Rr@Nir{NoXlWp!@%A@^V%#ml>2uL;)q=(p(Rp-V+2J~MIAzV{;^IlA?z zXb^v}*ACXXaa5MGy-BLtrmi+xEyST3S?{e0Ig5dyN`=&l=6l76F3Iwi|IAv(~= zXm(eR_c&Z`^n|@wCj9Veqsrq_WGzx$o@LKAcbdI6YVG;9*jSyUBK_vYQvVaOOVs{) z(UCLkoJLadWS&qU)0rE7G;%QAZt}~TMVhyaY8PwX%JQMZXmfVV`D2UtH;q_}aifHm zXw+_iZ7mbg%1R_X#Wz_bJx^xG)+84iu)u|d@5kSq7JafzjF#Q*C4K9%6!aI47{NT}lN!gz zL_Oi_EMzvT?Vj@{UM4)Xd@W+!nd2j$ycwrQkZTRwyr^KJOh`@^ z!A0A=DABknMpwBk$L^b#MX#F`!2jr1$2eJ}YIx3Ky1mRTEw-b~t(--4So$@mJR-ZgG zq3G-&(|ja+6h65>m}GiB*m{AWvC?7v!cCKEUOTRJLrvx~<=0LpiSIWrxDnfpSt`GF z=96=e-#9;FaQbe*Yc2MM9oGgGp{z~!M%=ga4rw31q5t=~rJk4a<)y>5k6WLYa(KLc zVdn<6es$}EmF~eqvdqmoH)4%BmSkTKic^OFuq=~*;^Qi{9}Q1?-TFAGB)}|{LWzo` z%gYZZnI)dO8}Jn0;sb2)m;DWj3{1RV7n5%YBP@SDF1PHXhtIWcpP9vbFQv)PBbg|! z8|@HLwD)Y*J|JjdY}OIm8%M>SpCpg^owdUhvc#1TL{3~1p>J!EZ|H54@bxG#2KSF;8|KD*{&vgvmV`z^;CHtc-acdqM)AS&5(8Q=tf7O6J`$YhUo^wTf3Gs56(ZgtFsg@n> z!K80p)Qa*xzhr?a?NnsKwWnGv)rgsrXFj?M5>6Ga$F|`wn|K9nmie~{L5C|$e-gf$ zpj35hb(7cg@qdYaPz>Bxnj*>%n9NrvX{8ahG{e^?`*|}J6&)@~IT+QI=&Y0!F zVT04zjlK3pEb|^Lr5l4)0z~=j5x?fr^Y1vO|FvxKyh980q}1qIza^~kH5M-}?O?<< z$44ok&5herfB1X;(OqXVNyu60@bxKvbSCU?RA&xw%#@QNTL91s{;?PMpH~ml+U{nN zW~|mHKA8tPS(eBi{u!}KK48zD8VktlX?~52lN0urMCczVo$*ER^^JvOb0K*{;?rxh z2R9@?^=2+obTFy?(U|kAY(W-jrDixZmd@kz+dlj%RiHsyDH9&4!Q&5m&tJxVnCboV z>I<7?#LZBqesnM^i?~ui-avb5nfO$Jxk%cfLZSSn3^e{mTl26?ll3Dr*0YmNpfV7W-CG zuB>hLCE2s@`%Fm)SyJ{TR4O|mdl3>tvW#s^)+vU;V2m*{?{QAoeqX)M|NeiT=Xu|! z-ah&r=N!NF*uUp-Zb1Gbi#m;w2&_`7^^cFb6#g7YNMw+a1s zUSHY%M=$_P;$@x*HSkO#gBb=G4hcouH@x9Y58g1+r9gk2*EMF(jM$$B7s>xn3Z^qY z^k&saXvsksCjNYjn?36n&tqxNH@Sg;n2W6$9E(b0%{4%C;#szvgSR4`2^0@6Vp=Q* z5op5ZP}}0arrt18`PlwUsGjE?GI$9I+{Mz$1S_y($OTWwZNDy>{PqRd7knUG%uOt> z*jQQ1GT3e|I_{trSYXBMsODdwUc~*iJbR;jU%lQtWCVB>9mhC?T#Vw(M7tgS%756P z*L(Z*zBhWOHdpL>t9P8`|KMam)w+as2E_h!A9PMk+JHc21?*0AMXW5osS>1QzJS+R^SCsNUq?(X(g@m#b%mMP_%K#CwRmV zm;|pX%b5XX{jDaRkct7k{{&(D2y>=I2>XNgAfU4!uU(5Z2j?1qG#Ak@{WoAg?Yd)9 zUw9LQ>A8F127tZo7B{288Hflk0t`c!A0#*TcUw_ATF7xyp(Y#h=7{i87AeNnI+Co4m~(3^|1DkH=Y@O$GZAmIFh z1yb7n7tKG}*oj@-ViU|Ldan2r1>8Rnk z3vt)E)rupS^9~1J+wtpJ2JKV>A~#QB7gH6~La$jF{3|(eKYm}+jMcy>{qTu_34#>u zL;(;xuKesv#Sv_I2k!n|?_uN7ixwcZU$*8kmqc*p9lm?*iGf-KAP0}+Ki~oZKH~dJ zlptthiSbUR7)@2^RK$O~=)U}H=XVz`|2>|Ave4<#?}7hz^uVonhnh(+4KHUYNta{{Wpi-aJ1}8usv2_ooPnxj{`RKbyBHk~ zgaD2G!ueUk#i5K2>c124Vvw-=(YR7Tbt@vF3ohKlLsY?8Ov?o;BDH zJ6*apKg%#JA2Hrr)tGQYO?f#S}{443sD_44#F0p&8 zkJD`1Sf9G!4OQ>cr#AP~e!bsa9E!d9zVLj@o88%YaZ2w(Kk2Img>M_|)7`lFgrg*W zR~mnJ-*(fz-KX{9;080L9-E_>y59OHmBk0Nze?_bgC;KATR;rI_X;X5 zJJ!VV#!2Wb@PPgW_xn}8DwgM6y&l%JT;20zpYG~RcwzLH-4j*au&gqL4`%6BMbX&Z zch=ris;_g%$K^rRAQG3CGuijc(#&DM`|OEN5JENQTV*fvH0JHEmHWjkeV{MSbnoCd za?f<{!J_De8D@wa_Vaq8FVY5yH9{8R%=UimyR-zI?mW=H0Q1^W2hKp^zx1V=!CNcv zd682nL^}~|9V||?;%p;rGtEsMo%QnONb!O;k-51#+Fd>p_X)#^sRK8uJ#8p|%JMR% zoqwm7xmiNl`qNsO$SQA%u6p0No2r0|npxTO>k6p*4@|ri+ z^N9PR8`oObQK{|C>sfVJV-iJ!g0cZGzfKStj;Wj&9=!I@a~FC#b!DTtbpku!QYZzd zq~Zsg$9mq;pA4#(IckRJFGJaybR^(1GNRkd;I*)U)aT)A1H;)O9UksB`nOJGcoHvU^*P#+!*IKV?*LI`k z#%{WjhNWR6xyVYl4FwVh9UUE&x`|F#V-q76-DWyw@LQOU->>wpuPYs$DaU3yE|BBv zC}C-5;qK}2Es;Ft>*QFALOtM@P7(O*abZossxu?nfKF*c@_>`3U9Hlhwv4w;(5Obm zftIB%D~sw6;E1Lz14gRjv)9uFqSL@#GjC z^V$Z|>{d8=#=hQUs3%5PM`_ClS(&l6K7csAPQpzQ(3FLyb_@X?NZP<42`&Okijf3D z(Y$~jlhVfW5-QAL2;V!3q3&N?X~*EuFkezr6S50k4_iNiUC-7tc&S6kTX*LE+Kg%n zN=aOsNvzS&tJld;g5mp6se;Nu6BGoFO6fNWHKsOX>D$Pe${+_l)6eD)_0-WcoquOfcIdLB+LV0&4OFz@U|}K zhSzYa^b~br9-g1z(`8mioGEfRHVGpRcq-=UDEm>cNU9%UMsgO>RYd(t32OyUcF!YF zsg*c0N@4?vg8Nj~N;T=H)*Ck97hChj2tKpd@g-kdb2U@fNIj8CBjLQrPJ^5whe*$%1ZAf9G)mqIwuH);-AXZ{5J;Sz5C3K zCv$kFhO+s~!yO`JZeA)9pScw2?bID@wCoTG>%C!O9F@a^AG#q>u8z#En8-HE8)DB( zDYSM9v(`dZS2R@@st)I}JBQuXLVl=d`tZ!be%Qjkr@UgWxZWSj& zDI=7d0m{8#UPkGFNuE4=o^fH{-mpG#%R)-I|D(EygkU7&Ze1`@@jl> zwOhfwg3`FzKV|<#y5GSI={LV1<}U71&EH>XHk*1ZjHwXGklSu?cecFot9zhcO@fRm zyMsy5Y3;scY2RS z`f#C#T)xM!mv$>o@UIzRUd}b0UyD0~kg|gPRX90JlN`Ym6KH^`pH1VK9q~!WTcnc; zJ(Ti2&|aObxL)tSWQ2JM)O1c2gRg*9@%Q@)PxS;89E@)wB>pKAE0@?L7h{TXH^7w4 znna^_;{M2}n&l7k%BbmdGr;`w;oYt-vcR82TGt1>qIbfvXETfEOGQm%ww3BhC^fwD z&yQ^{^iuSGZ_QgHpfOpRXBs2!J~&m_y1NSNkF<<2@qRm7qJFGqeC73cYT(z7z?yN9 znPIGk$o%kvhRD+JvWCd&@S29m`tXK^2xXW~Q-ooJQB!2|2(xDER?XDgUk7g6s~+F0 zaePX#B}P0+YI9G?W~5xNR|S8-aVO4amfN3cHF`QWmS?;YocE1#;dy4s`)pg2r&!Y~ z`=n^6Bq{cu5_aU*#r1bFK}jE!Uh=a_I_-OAx&PVycb@t0UL_|*rzc5q^^|b+Ji8%R zabw6pv(-p5HPYb>*|o&}j^y4*Nv9LfEKfeW-{P6y!W9rDSR?5qQ+Vz3gh+kNM60*v zo|vx&G4^=Ly(CE|m1mY`o@u==*T+}t1QrCr3)x2lM{ldpOgfQkv>mb#hv>-GxK6jLdnx_NoLH+LJ`aa zkF-OzPJ3(5qKy`Tg(x#IEkkxcTF;-UwEE)p-l7xOlZ%V-Rk8*I*)^F78w@LviaaX@?=_PIBG4|Hffy48_b( zv14Gi5ELM~r*7JxW~y#Q#?l2oWqDw3s(&IWRn<$PT)=jO|7Ae(%5h7HQsCCFaJO`O zb)tTZ;MBA(N+S=lD(B4JR|lS~IUMlI%IjuCR(0YPT17}a1Nx!$xYtxymakZ|EU(>m4w!9U!q5cjydJm*VCSv7;vc47KuKt1h#aYmsi{OfTD^f; z+=S9YCf@Cge>iOEBjFCb3e*JL#vhnk9Y95jAl2_R?Hi`N1|)+Sx*J68>Or zSB8o4s)%N1nbk;Q-F<(W7^1gF%-u;CS*Wbfkf(GP2&m;_x-weG^+_uVL**cNmC%wETGCc- z?b4s2v=5SGt*W^CQn9K6+i=sBvfF+H*Wl=yqE;wAIRu3(!JnoqAvgUI24dqGDuQxJ z}`3ZGm`!t3R~9dHb_Pliy?bJ@=au!~l`~o=Xe)FIjWz z#^dgzhyJ%Rz`Y=KVIx;L)~CXs_nUgf0|(Kn|9c2>FZ?q~_aIWw-RU35T=mKLWzO$~ zi_|K66866Qk%@8Jzd?rIm)|$}E~%Lx+;XAne4*3i(7zBa6I{(P}C-MI?d0wne zeu@7Q`X8~FN~?sy0&7pM%>_+r7tT!%{WCH3DNlqQKzh47iTr?s-F;37`BM^Y_qhYe zpOQRded~QXr)G|QrRigKuvx9`c0`dE+ck@$^g`oO6rWxFPo(`G_Efk(gWj#0g$j0OL$C^)$ z$2bFe?vB)?01gr2SfL@#GQ^36_uQqcg*XgFfD`f=;_%f%IwATg2&Qb;>e##bCsSFU zj6oa)h!YzQaZb2Zb4Ea%cjFM}I!)(3#A#f-SXQN?pv}9qcoT3!XgYBa=kgN7(bnb- zUV=E!X*vlIXPm~lZe}mV8{YBttc@80_(_2{?s!PY9pZF!YWOUSb-j9c1M!@rwzu@yR!n9hUgqzO)ndi9j^C~lD8f9`Np7ee^_$E z`)N*&<1nU`==z%HW(Z4pOVbmV4S^wN+Mu` zvGD#WNrnx^-uovczj&Kf`qV2B=Tk9VFyg!q+j-Q-kWAqo~E1*q-ZPv$beY{&1V%P zB}LPpW*C$;f8Uvx{O@u6Ae<_XVIA~44dC6Mt^G%wqEjiXZP>Jq&U>rr9@#;dzNqQ5 zAbE7&L%6#he=(;j)($NzQs!|&{zoQ7d#wlgOpSf|qx$3er^BAcr6ZS0Aj*&i(H)zg zCZ{Ksh$H;pVj-;f0}_*t&StEMBf2UnJ#tQ-x6Gp?2m*%{xNi)=T}_W1gt$K-`Dwr) z4e;g-R;8r>lq7YqDmne9BsGIosp&r@2^;iFO8+TI?x0^v`cFt6q$9;&PEr7f8Zq=e z9WT#XWaAFU^l8rHYE#G~(D8t^v{5q!)L--OV9DEf|n!f@Y^opZ5G9R#WRS*5lX z{l7r?+ioEV+AtjU0T61S9@;is{b6?w^~*d?%m1JRNkt5xo|w4vU!p@r#PJC2+kX-k zBDS!(mL*_3dGlF2V&Ul9WCekk&)Ub9kzp^RPRT2m;ZJ^tcqFH{V@+%@C*%_ct2#QZ zy^odsz*&`pRftX}Z|5?P)bwHOhz&+c{>RP2C#APy6>Kn)@-c&c9i5im0%bpNR?(mz zqSL|KtPG!$j>Oj5U{1^buvw+}N*iP65Ms+@^h+1b`RD8Z(LrQYxr#UCQ$E zO>a2ma2vbv)DYl7mtShX&)d@QT^=rC)9*GU5Jp1saQl9SL83+(&-+gFwjIA8o2UHE z1gqRXh4IYCH*}p@~O7=%hMY^)oq`?Ac(lY@Tc9Wc=Vpthc@2zHW-Kh6oNAkTn}r< z1|m9<|5uTXj?OOZ2DS=raF1Xz2AP zL3R*&O~h^#Y>f|kiB7@}Qd+FKR;3RGR5VBqmXYtbWz4x~t~$akOKnMe;uVK!B2py~ zj{6Pq{D#540VN*P_j#+#M&H%zKlOcH#r5y=5~9A(^M3t(p5Em5c~YFl{~YJ_pW^N( z8m^<=;brNqWP|xB$iS%wAQ~1( zS;WMcQ`hiaL3|}W#Qa9F-IAtm+5l&uhk8x2}0)V!)2);oCpAshE z;FPQA^Ok#Z?mMBi4K$!cPm7kAouwr<(%>!y+9ub3^Cem$3C%&?F8yEVdxUlwR?)|~ z%wyOCx+43h!yoc`?GJt>_OJM^_J_U_`&WF|)`=D!c2B_UiN|-MlhS-BEt9o)=|hfVv-thXq?@*UpNHrFK5yd0_jx_)-{&=%eV+ilrjfgN5T_P)8u&%oJY_7Lg=ANi_X_Bdi z;~@W)C!tUHWnXL%st#D+p9}0Q-|^|KNc1vL4(< zHwxWi=a&mz(oKhM&|C{?ic~gG; zUA0PM=mPIQ2PvKR&uZ6y+ShyB_&Hy9Q3$>0lnB2lM-I;r0fu(UBD;&a6ZUSCz0N}68nCJxrvij-tNacKJTiv`K> zNy2%Zt;0GVuTJ@29)JmCJnfEeT;17x81X;irB9(gDZ|Z)KE}cH5@JZkhGM#X|YQ8qC%?qQbStyUQa7X!Z#LspHB$@b(HceLJX(Gui z;Gv7!9_XT}HuR*0JoMxR4tfTnR_A|%=gj^P`@3#W!are38mPxP6YPnB#2HF zcI0Oy3LTwI*q@UiI(x7RKO?FAPuM8?&)IJK@3zAKZ=s_9>F@gd`y+XN${Li(_!x5~ zG9})eJl}?o$sEx_k%`l*&hx3m7cjQCjPyy^K-D&l-8TQDpXN&ye7E&qacd{s5~KCD zy|PG$L!v=(w8oXX5H^uVY7?XczJ9Gbj+o8M8+H*4g1`3lUg~a(uQ6=(sWcxQVRhG0 z^bZK4U?*L2No|J((=%3EC(4M#33AcJOeM-PUQZBSKVwTuHYU08=H|kc{g&rfnx_yw ziPlQ;#MRYRM30D$^C}J&^qRObi%&%AOY0Xo!^ulCEAe^yMV;mXnQ5ki6n7XA5l_DQ zl`=V188$myBmT4_*F~a>ikVwf?i5IvbrGzi;udYof+)VQ?ukXbME%USu2$SaOe<`>r2IPeWhX4D>{`Q9RP0SOnX#YQgpgxYHvSP%u7d4BHTMzLL(k237b zQg=PUOL@ah9#{V;vv!FRKU%9WGAdA{gX+}Ox-A2s5zsL#00Q# zRATfKIU*6x)t($3@$AX@7`eT}106 z;R4}A6>;-+zP|n*UT(0}W@7Uw z3ju^yD^vFx)=)L#f+dI&d7F-T8z;s%!+kvhy?m?UwSAH$3cCao)_m9Wi)w3$m?8yP zg`l-l0dV31aaDV4$`L zRF{0c1Z81$b*3R2i9>FXH8KTUsO}1|f$`4O=#}_Vs;3_XmPssrG`Fdz={(tDoL9ba zw9Y=KUY>me{RZC9Y_?&Q4D$$rdFziL$j%E?%l#B$3bpz6co0(;9JWmKaiGrEjy2t^ zm-q2?^CE4m`@UAb^E#Ir2*Z=wBMD(`1o6ytbS=@-MF5RbfSa#Khe>nHV&|FH2T`|I z2?2>it?`-s3_fdQNs1EGIaX&U=0+bkR4E^V2PmZNEovBm@7i00LoTN_Nw?Nbz&&7o z9+feV;xG8XRmuKv(I8Lq#Jf>z!bVu-C}Oy%u3E=;ZA`V3qUM5D;4dHD*x;qU)--Pz z4Coc1vi{ST3Zn$pL=)-3Hw!n>(Q(o-(_6V%>bkqQdPrEfxuNc`OY z(jI8J3?F9;#cf&_WJB$gHNC`kJ3m|9*z-*Ulg3cGY;yG7p$9^x=S$6%2hU%&McGTk zYJFE?v#SRywfZd%%$f@G;7zQ)L`f73bC3Ixj+6GCxZ!&6)To6pyZZQf^T5lqUpAeu zP&X`fy&9e(EB5rj6-(ArI!=jlk7C4KFHUH$zbxI1tMzl}E~)LnJKPI6uYW_9RYX-% z?wCBqyysJDMvPfSSnRFx>TOvin`N|KWai(?2y7nQ$u~Q2B^`y^CUsHU`ly@p$6B@a zE$O1NT74}lck-4)3Lgt!U8;L5uzh`{;O+TOFDI>76PquD3k?^6Ce&h@qUYD-8p}Uln=h9#I$zxz${<^}kmD=Z0 zr_YJ?D5oXBjy`XF)itnuC~x-&dwb5bWsY)a;^O$qxPJz`vj?Yr^I|=^f&#khzkYU8 zQ?8|56LeJv20FU!f9}kdF7DR z4i`r|w6z2r7QHon|9n=_t>@6-yd=seA4DO#cHw#P4Qb-Y@N z+Xv<#^?GbP-G#0-q{EddT4P>j{+7kb9o_Utn!_EHGzT|5d82!lX~e?&tayQVd@ z_M_-d+ovP-i|OocxsFFRyLsaBci(p!KJWCYb%A&U01Nm`Ug$-ivK_aUu5LZV=Bl3> z*j65V;`PMnKLsiz(;V|>|6STo2l>o)F)y)wz@alH6AMzdADCkXR(d&z5!I{zjndW zkhJa-I0m|?J}xkye*5yPg`=gaorS$K)B`lX4SEi0(;N-DkIH`zAR31UslcrphDH~nNl*KM(>T**hmDnSJrhFBo zk{d_}9Bg9(N9n=AH=4T8E3C@YrKU^Fg`Mt(&)N1^X8wsSWrc2P#dtUTD} z&0ZJP&$q~+eI;-XLu>baR=_b~c}rzNhHbsEbl~cJA8Kfkh7=ZOIGv=_&fj3=>%HD) zo2*pf9OV~qyn$n*r3^vX7@V$E6lXBUlx@4U;-ma6blY@?Jh%Z=l zDU#oM=uin(200CcWql5;H8F5{JYM$+K6(Cif``&h?J(ZMT9NIaZFqMEzfdx8y~*-v z{f%Zqmz0wm5$kb$XK=5QEBNGZ((Esd#C>9dz7IlX4)xbgZMs0&+L|xYo9T)0d6Llc zRYH){sL|ex<#e;bsRSKo>yHZ#(wsL`QYKgkTDjmubX8(K(h}__cyER9RWl{kiJcf? ziY`b1$Mc2C9_xgV^@%eqUh1m6>Ro3N{3K4`nAV1b?7uAU6WcQST211tWmLn?PESKC zeEZX^rj(J=gL&}?3D+`3_O9ZQ^@%Ba-pA9W3a-4YJlH69smz0&S;i&N5~4hFz?)Zc zJGQj&Q~mgTZB^U$~%X=NidtN4-IPNGkIrAClrRI$yxCIZ94+W~9jjA=9 z<90<&v(=9KJ4BQ(6wu`vBX&Tm;?As8pn~`uqxR7?{Nby#@<1N^TE$e(abDa>VoX@QqlW;YKLlE9TKkcH!@tCc_&}ug(+haF0*L$7{drtK#hs@S@JKB(Wd#YSy_E#`%Dd9 zxAz=+mwDjU2vckgoqM9r=v2H<&>kCeKEJH#W4$AHQ)-?=xhvaKye4#ZJe(ib*_$d3 zVi$D(8fLOCe7Voiq?32T?>$lEU1mrfcIud^uj`qFbwk#>??ZOa%DMy z+0%=wik|_sTAnM(ZzRtyyeND?J3J0~)WhzP?DA9i7Y!<>f?zNvWG(*HV}2uD_PHH` zLx*KT2E%wB@-Rl#hOfW5{m%XKxqZU?pR<^zI0Fc;C1{i6T|!ii)5Gew zvy0n?C6uXxs%A?Eso?&gg{%wfe6p{03m9$VCb)xneaeZeN{= zk*1FLv+DY8id@uKZ@*jPV9phX#TTYI3m%h}N^GjU)ns(4)`uezhd7M`SqjsFi*=6+ut}`8{7B0jr+xu-jpdI9r!N7vzH1bsY z!u|3>_3>QGQl4GQ>iq5zs@iVhg@?s+>%Db?<_?{U36ab_{*3#wVz8~uUCCUfJe?rD z%=P^Fqx~B&BsqVIizz+(ae~jXy6xfI`VTrmk1~UwU*YuHn!V#jG~=aQr5Vee%j$wF zxqMizJLxx$qk@gK=itEXD-qY5I*&PmmerYkwvK5FkF<#v4qcWhe;TW+_`sHvel`9} z9P_Y1!|=+yuVT-3G&9Sda?*f%(X1%9(!CyWcnT*UZU-w`v(< zS-SVrgQE^o_JyH))r_&#UZ`@RU3Va9P;SQ9M5$6ExsNm%Ae~6FJG4b39K;Rm&I^={v|2dGIpprq(iE-VS$z6=G5n=|%Ajw~&cyfd9 z)3Gig=x1UDC(XuH=H>^Sicm?^?_OU{r2|D~w0Zq%(~H;9Ty1>6THpM#SngLdzj+Jc zqvc#(Yj-#+yB*J$5I- zmBFWS@Z(YnK^b4)d>MZ4dVNjp>AR#0jZ8tjJfo!0dfbc+uk&M5)QC>fI4ldd?@a*w zBjK2!=3M%+>R}BfsSZ*}4lcNkB=eD=t(aws!m6-~3o^?$CW|+Fi5GtfAWi$4pd590 z#C5iI`v{MqY&c<8P>wkk71%QV#%qn+f{@2HM8nc1Pk=EYh z+=V%5izm`?2+S2I3cmh;xsy1%ok=m%AsU0Hr&nUgknv$Rz0|N{->ol(6<>ohZghn9 zDK;kA-rf|*Q+s0TakGrla80%5b7z>1{q@$WZJUP|?e>cxUjVVEm^dNxb)qMBVt zYq{czqiBBN@l6WHjE6qI&Dgd_B1S4bqcBuQ4K)y|ThU9ld3BE2%0+6kmGXgigzg;E zoZR7rkL>H>=lCl;^LH?;E~)UvI(ur(nZ61J;s*s@F(MV^_61hg92dmt3Z5Oje4)aQ zB}DYBKu+&3+ybp9vfdCG4wq;u%$andd!04WANZ=JunRKBN%pFY;w$^?`e5q{sWAju z`Y|OWA@>!x-HS8P93OY6k0iV~kRVbdCx|R1Jq)53r?2kv&|ri7t!9;aB}P& zGGv%X?xlVgEZJ7#cLx#KWA|DBPEc!M3C1UvCr z23Xl^^b0%FFv;b$kob^`Cgn3Yv0FPMGA!6!-r*@OdwwhQX4k<$+_8)6X!Aq~&KC!!hDl#Adg{@GXw3s1wFYrPT&I#W@c9Pus4n+spFD zB-&d=UxxV~J^JGP)!xL9*h?>rpV$=^gU>bN2qz@pI2s*%{QP6dV2(BH79q7bwp8Qs zh5J1lh#jX?m@N(T_*8GNUuLvC9LgV2e5IPl?Y`{Lb+#bq>tE)p7B9Eo8=U=gtgY8f?j*B_0zu~4 zn)Udiuay+{UEVSruJK+geKoOMHsfIYuFTsG&)C#hr=K4~aIXfzD8Gn~BKQaRtFJxZ z^-0_KCUT3a$SpD6ZT?rEkT>M--km#;b>Z&53AZ<9yKJ8I6*P->w%&C;7=K%mf6di^ z$;LYA?MJUIK{t7wA4Tz~`p_@6@7bh=;z^099-|ljXgBBTQ-OWR-nc1(QNbag6~DN8 zP&j0ZLnVhQVZUtD8Tirx;DJW{_Ay@Op5x%~J7)0+u5v7Oe2 zXJR5Aq{mDgFR?N*I5afXocUy>Zt<3P!I1U2+kIZ$H!0~x-tA@#YL!tHcan*zbE&G# z7fjdVUOX3{v40gHSTZ4WF}!h1!cke1JNT-PQ94^|nwhhrvPcKZo+{mz zm%OzvXux}gPVp1w=B^z!G1X6wbMF=8QypY`mhH~fA@C@NE@IiqKU-r^dSK|7bnuj`a_*3H5Gm8Md#K_%#`;oimwAd5lJxTk6+PU&q@Q&vj-wSh}n}?-4otNx&=d%47A^j$EMz z2Ql3P84~?FB0}cxs$^ftUcR!YfQjvFocG1Zi97q8yfPZG*`tru&zT4b)FL9~*C?nG7;J)L2oMAVrr_2nUwU-&BTU*=O~+8jCx&U{S_w;X4ATXdb6mzn9R9_`$!$e_}{BO^-&ewaa} zV$ZfNFo{hw(+z6v-?fR(eRkm+zh%KJb2lJ4w>eurb`N7OU9j!plZy)3M`v}f&w}ld z<1KKshj={nqSWIHbnhROH=VrdK@UtP^zY5c+Sw?3L6ojk2rjns(b+d2>4hq_iykx6 z8EOC*r4#HBJ$SK&?pFT6sH{HE&P%MHu$SfocB^(ecV5b{W;c}(;i4DPc+O#IhlSK; zg7}&?-@@uLXJn~f2T`xeBxTJc@yXFm>SYH&zbl*gE}C(EqGviG^c?>#3J7^OIVA-)-*mV&A!a&B;^A{l8 zeE8NrdMm&80NYv(He*<8ScM{cA;{g1yAS%Y#zz``Mx${wYO5IFd3{SMn}oq3cC3o` zD^^Px##rl+3`IG{*eO3+ac@4Tj?vs$Y&#b`QBUcEVAFP7FtQyPpFA$V2 z)zktGu!r`7kTf(ypy&m{00pNJrL!tD44qJJv-+Ivq(}6{?I*b(t%0UaHnxe`T1=~L zZ7|#n*SAAH=okTL|84BIZ=nPJ!I+<>0|42ua|@85@eHLHI)GUom4qC+7NJ{M?Jrla zp1n1gbAy^I$*>`=0IB zpkDhFjQK&%c0RgTr{OnzT;ci}e0LgWS05xs5e|bT>1_Li;!G%*5-zzoNxbFbYS#n& zeZ3c3wp!|r7>Zl4MI6er19A@z;1yrmYzk$k8$7l<>dc}^6^u{yh#54d_Nw`YGSL~j zeM>a>RJUL2;p0;1vk_LfGybG{9?T2J8Nn!Quh?v9KpzWc98;(C~S$5xk3dqurO^YF;C1mMH) z%G71PJHd9|Ox*|GoyZbOIV)MLc{u!8!UEeKy3!}ZCpObriCeSLz1J27r)TO+-CQON zmb#o;#Y~oVk5cp!37Hc4!FF=uw{1b@U8}KOrF%dl9}Ty`HQ0~V(3LKgf=+UkQ)^K5 z^RA-{P}3g`f2O>%{oS!!`6*D>X}@v;tkb!{w$C$;K%L>yCt1&}+4fPOGO`D`&&6}L zJQhl+)4bk;JOZLJICQl9o`A)c()FeVAaJBjDJtvcBj7?zb{Ev)HoNTxg*jmb73l^m zL~kCkFv0Yr}dhUrvojG#~G(j3vw5z48kh6`gQDaBV!xB_$q7u|vhu(n`AV>~O*2)1-gi<~< zOgNl9bBZJmWDr0+Llgbw)mx*0eo!WxtKpEQzeIyJ+kD{j7BZe9wt*>o!0EAD>pS z#DZDiK$`i^pcXB#xbIeN{JP8iVGrL9Z5uGmv)Y4x#RaEARY9~ODu>cCvWl(&^e^Oa z1Pl}Jlb4_o;&=GhrUq51J*_2P)iKhV+JX(N<$3R*X1Tg$`?sd%)1$Krusj~h{p+G0@DXyf$Lz#rEI=2K zjMOR=t1Q>AW5e0I350tEOf-hQEv@c`fwYoPXhr!J)YZ`Aq1%8tzNXOqSZ^JuykAd$ zix0BxGXsrp%S|eW9!i3RmVEt>%JHE>!Y}%n{-`^IBcH0Ri^td%P6X(3--@H~YXngB z+zSKsFm31IQy1VFjYHJ~ z@D!-;Lx)2ouWt2rPY<>;Vk_yQ4RDVUD3abCkm7@w4}4&6PAEms{WvHhJDBW4ey_xy zryNi%a#gU>%mzbM!7Bzuj#9l1b?StHXgyBErQ3~F4@JWd6*rz(wA*s|%&CLvcYn9x z@lYOKe*rYzQveD9vIkLGXZ}9AwO;)?x)bkx@dD$QhVNaEh9CMi%sq4MX@eRJ=Yqpnxnf!M=-$D!4lHnhj-XnG^i`2mmpEA8W0bMW=$v4 z>&eiv|L#P|jV+}PFAWa8EI3&oqy5(=v0;O{Vzu_SCZTl#YYu20o#S{*TUDUdPZnAp zp-j_*p-@YZ44_=l1oZN;eLEjXerB#ofCf0>u{E1aqw`MoKZb-IG^Bd^9Dg6`h~J9( zik`MS>A$yNYgUgEhZYqu8G^PFhKlj(QUp{85Pi2+&!TYuQ(vfzZCRGdx(8Ff4UC#v zsPMmQcp?PbL%=e857L`E4>bUd2bJ$83siv?sn5M-;&p_)-XTwwlrfIv+eyy~clqBb zyG+R6d~f$s+15QTKX_%$&Ss)o-*6(%_Qq}4ozBw?9n0yHg~Jl^jBSW@+3#CjUO2C; z`6U$b!-IU_=eg;7->RA__Z~Ty?9dx`j>Wr|n06(SA;45G*)P9!z^BLRRmzpf;8fuj zUsrAMqXe%rmI^Yt6~o*)eQ8ElmmCfEx}fr3MLf7=dXbN#^Tpixw|1v_5GOS02Yl-XE(JQK_a-~`X z3#NN3Ud8AwG<)2PJiP~)71wnHVHiI|BK6WawY!sy9$JXk--H7B{Ji^SeYu*{eLatx ztQxz4rWw9qPGM&D4in?H?zEw7zw>#r<#)%U06#Kk7vS?So`fP1{;I89uVk>+#&tha z!W$~3@#j_$OU3j1-8Z$Jgn2;$ha#dOy_!fRt6c(7V}TxuDuo3C`hquzH7?S5v@- z+3=k!p|UPME)`8_IRmZ%y&rGO;=J*_w`DIdEuG!|c#{YFfRT!E+qA*$$|03Z5BBj7 zr=HDu7kMx9e(Y=3{X%!?PEA4to_()SQRA^^(en>GZ6z^}i}p!P2i|Is6Z>CueR)7l zUDWrjG`giEO7loXxD7OE@c9p67Yr_xtB`?m2r{dkw!e?0s(`LN&U=mubR1rKiIl?&a>@7gDB|ep1hPP=F}fr$=tO+Pu@SQJMj3iFI*o! z@~!AgsE@7VJ{%+Td8twK=b3t|=DRX_O7r-|xAx_gHti3W+;lm?gty2>FGu!1Z^W7h zen8cHSI=|L7Q7qOIqzXq>L-1+?q{WZ&HftQ_3##-EUB}Wb}Ke7kaa6Q*zaMaCoBDj zR(3^tTV24(9rIn8kL-EH^R_OBCN?Ra*qq3y=ec&gz4c0b#(dX?1>I8g zCdWA4Rc^&%l3rCPB%D6w$>}NcT@QcVars*Os`;H#>hoI#B0l>b_yjY!6))d6%q8h_ z$j_9wONu@+JyA9wWbF+F(~Cl+)s547rG9UmLxi?OmE8<$how5no#PtN71wZLjB-S% zKi>tT?5f(>A|}3-yG(4+WND=L?6n@=xA3>Se9({=Ct=}Vu@}_atx|gPyI<}7tWgbg z0V(SDcGvM@_Zu}eKTD^(E_5T5UrL|1vqtxT)yV$uyxc~yKXU?5UaOyS`ao#AOC8YdI^z&BJoN33%cXvf8`3s$N2o8|7b7;@ZYqq* z6rmpfxRE2`l12|))m?&P#KimOzR>NOK_6Mwa=LGRw_EZ1_KQMkdk?nXKBEn*ycD3c zv#m#z?lf&NsLKOC$4#dPp=UO7aEn{<~F2S4Ccd*^` zQ!}u>N&rRt=J+X?`*o>b=VDZUaSc&Zqc3N|+N1N&0)_Cr3T&g@vW7;+xhwE2bVO>@ zZ|y9c3*KIcJW1VbNqPDccpfDJTy!fIq$m5r0`e5DfwlPEO2+we=HYyjF*XZ9Gs%jf z|E+R()yfm``Su8E08fOK4lM1pU)=4`cK;7Ohc#|4e>e8B|L5&>0lK?NWVd}xYZhAQ zD)1|%&#!`e)Niigv(U{NZpAlyYo1MxxHP>6c=tJ?ua{T6|4K9Cd)-Kh^3Iw)Q4Z%e z-RpkSekew_J5eVEbZ6~2@_%y_uJLo%7igbXGY{4LQ{Xw-;@6WRE{#2cp(Zwi8B6%kmoLqB{+zqpfJv ztpH<6^pO5j8YC1EB$^t#hpWup2TZQtdKQ4?0*g-V80&hQ*4K6Ve$EchJG$N5x?VSLg;&J^MP=^p^Ih|TVdg}J zFV263Q6Vtu*Xc_X{FysyK_}lIWQTxY8nAxbz4`@pZp91N_5gD6mfZ+P6Zg#N3_6WW z%3)NzK1k#JI^0&U3ywwkAv=X?=~{H=ojkawsp7aK?6@s z-&z#5jkhc@SCA-h1UDhMdWTMh0Nu&7AP3}Z<+QMKdrkohJ$m>Mcv;bqCEF@t7mA_krKG zhw;r@^SUqaq#(yXF76rt598O_c@p?J*A^EtNgPmlic@YhF2Ucf=K90MuFZ*o*JiNs}&?D4$Jw*0Li6Z;oPUE$ohZ?QHNwoj%Z<^UW@qWR9vwdBA$Ch?K4cK8g z#T(J2x<(7^BJf~)g0-}OrsHW<@w_bsx~pCtz7*4rufWYEa3#?atmpYFQ-ZF9bZepO2o4t=3fs?4JgkPsLOOa~4nddiTO z^LgP9FuwfD=_#Fp9A$}L_tzb^I~>y9VtEP}cInyz@GXhPljwmPWb^c@P|G;WE(9P< zsT?4}0mAbUWuh0YfN`}Q2#Oj#1v=FX=c7zQ+tp?X5(nIHWPi;_$w6K-W{yI|YR7AP zhd%I>DN7F8{+ZNsa>xD;i(OT8*-RgPfqp>{+ySs#t)B+04?2eS`r^<@fT>G)Bj}}% z1s7K@M~jlAH(fG9pP0G`=)FEAFswbH_Gjs0SMB+zaQ;q6RkbJDi`oI;9vvFwKIV`f zG`#=7@7C%ej2-gK%TZGnqN@ZsTrfSiDX)9(WbB!H6imR`$MHRiZ0mg2C06Jc1S2-< zZ$wUP*-JP9FYI2WJU&hT1DEn%{cG!4HJqR-;?7xb@0Txc3tzvQ*30d`CvQ^T6*#cM1sV^NN%J zU`ydsDfQDA-XcSieUCaO9*l_LrH_QP&%9S3%R=NB8rpO@cZpWl2aYo3Fm#6tQo$Uo zf8zWC1c{~$x68mnko{Z{L8X2vs=pv^1+)qRZS03`5Pp_9_VE+-S+|g^Tn5_`QIWeR z(#QZq;DmM!03F=0kc-h9(Z{*I!nyXk48kymuMWcuRRmaI=*|E%t10l-6!|g*B!O*P zHauIJVXot(l0R($8Zf1``ZkiT-JAfcigyserrbKJ-1?JRqzA9*yp1M+hvr0 zaF-q0jP}_1W68s&DFwe7wetplGwSCBe0aY2;^KDKrgyI88D>}gYW6?W{lnj_zy7C= z((gaBKWsCdZCCd$HeqbPgU$H`OJh%rjAWGGe{n`~o3&x8hEaRrA*VExnTXYWjRx+Ujtj?VAJM@{yG7}4%7H+g){p)|!H!lo)jeea?3_Ihox z-#BKSNWV38sN#uu={~4~&Q|w(q_TinJ^8oo#bI&r5Ju&Y` zM)(6+cY0k$2D4h?H^(#$S$Dy_%AOw`SD_#i6=oz?2FEF82l_n`*_+w>AaT*7pv>P7 zWPQIScC34RZrZ~{>qLb;JnkY}=Q_r+=$1;ZhwM+@wBtW;!fKKHWt--3BgxDw;!a#yo-T5E zrhLfdrQy>;C8n>65jNJiEdAiU2xq0w)J5tU8^2 zbm3b?4y7YDb2uw=LpH$<-5$%;FuKC~`LLM|Gk@n#I-5OT7dAI$aIm(@z|MmPjQ$i` zUN(yth5{c;HF^oHdFCP5@tnb-^w}0hT0%>K1B*~3hX+sWl;BL8lDfTvfy@99b5P7q z369?Zq4gYH7POqHV%sOt?3SqcK&d7r+J#fjsn0mq?$HsQ0%oqGEmVRZ1#|}$3dlKL z-DvwDI{XV=%^9ACMX!S5|G9jz8{wX-x#MzO>py&hjFh zDyx#@VTbOODLIhmNXs#uK2HT$T(Il$N6)Zm0npKDk0m&klTp4Xeb5J=^#2^kH9{vv>x+9EFP4E9ji`b-H%ij!b{j!fh#(0v#9`u<;{So2^`w;i&WB z%@Q*t@^t-vNrNySPb|uQl7J%G`Ck$PTV*fX&~AO?3lcTXja;f9`GpSJnCGd!$!*D+ zq(XP=HPdgnJFel#{N&we4W~c-8-y}_d`dUUiB>Olz=vBl7>PaNN(ZRtwC_u!{SBDY8@D(W$9e<{-C5`9SD8g_F~B5#xrH2=YJQm(SgaO_sWUEI&L=nM z2;0B@u!?ESmK*SSAxDQwh=XCwhy(9E8(L0+6eSroCdKiZ`VSj{!XnEW-IiUvb}w}G z>h1Vgs8VIg7kX}kZCcjE`+m=aSat2ZOguG}JRn_JmoujbMZQ)?~TB@`oiCNAS#Rp0ve_A3Y0Uhp^r(8kytRv#FUo zPVKv`70R$lD6=|v=+rm5-ov+KOl_mLL85px7CZi73+%Zp5eN(%w5d@M`q_yYC#|LB z%#x4T0gDGhmrFxN`F4ypsW493@z~ zpbIT>H_8`><%Xdq{(}397u3QVr#=byfvY~8pRjW`eG9)C72_~FGl^!AD3GI^#4k2E zM;cgo2-^unlsMglv&We}5p$rmqZxAVw)~CqtcLT7zKKE~w0X<~$a3};QM%%vEZD1Prk5dUG`kDT=Nh0fnYpn$E2f`K$~F4-_VFR`C_su&9N{wS z!ZH953o(U{5h+Rh9IOF6@iYYtNNO3;cO*Jt=+s8orDcj1Fx9N`vo)5P`s(E{mH{Hz zaAZawA6j(Oq;naI~NkIUmRsI5UE8ZZQvP6nZk>oj_6Eu-WVS_?&*6 zTHv>(UrI~hU_D6w8@>en`<_{`U1z%wuic>)dtIM|L$}dPV`VslpILo&Xpv5u1MNbR zi^`<9;Dv7B?{Qcj_na>Nb*lkz&JPtQ@dKISma(wE-MNzN?dK|3#+HdYh+ep+xz9RV zty=P&&S9Hfw#a1n6R>;XAbA1y&#X+e)MD*wq)wV}+r5pu}$BirFQ-K2jot2fZXfwG6-Hu3c280 z297=#+B}elxmSjY4Z?tFew~6>B3^j&QeQSuyNm~ka_{83wuCx#Cb~qUKX|Wh7!#Ij z1puIKsNn%(on&SE5w*80O82=Coc?!^Pa;0q@yG=V|0}*N?RYAaBljdddJaE0x#Jh$ zK!!si@R#R>dycX}m|6h=k%AMuX^+o+ngjaV3KNDV$y79lTNakw5}uD|3_+E%F1!N= zdOj&Z!>!@tOYmqnN^~W&CR^f{7q&@nc*kks=(|kcpbQQ$)F)Mr7R0vN-@2V*b$;et zb(gJE`^DoFw7wK~-90kqwWs#7T%wO|{kPC-n=1<3lXuEDj=o*HqR?UC9cE_Qx#EL15zX3l_>9?sh10x)Rb>?4Axde=!diL$XHi4VD$I_EN#aDjX zA24*+{Kw#m=L`D(R32Eou*;&v;p_47M=$TPmI;Ne6n>MS*>JyQ{IT9ioxt2M>kam^ z?WXU2&A4#QIfu~%W}JUQl+wY%)T)_e$JRUs{^Jn_h+_^blwQq zB%J-z>D|0JiB`W(q`2_OtUb1`cou|)yrCD2O~1*dF%KQ+d)f5WxbQ^d{X5vI_eayJ zE@_WbI~PQ1hlU%na$KKpE!=7FrKcrHe&c)`^(j< z1=k!jyx*t@3K`s9e6u&`ljQmY$$WUE-E~#jVv(K3jigCW0-r|Yc($#0emQLw&&Gk| zvVfs8LHk$Ct)-Gbrv+V+KP*e`wUzAUd$)(@_pEXV8dAFjr=1z)w;Ij431 zfZ*1BTfW>}=NdLT;OloF;^biWOS7$hX5OMtufxM%`qx$BIyD-1JWK1}b9F}Yg)y7u z@oC3zc8~BZG_H%PX0tE3%HOGlXJLcRZh47M z(c?y+^ILbcN=Zes7ENg_7<(H0v_*PB@r*M4qkc_KbhpBUMu2v6e{&M=k^3ND#-DSsJYIv?{B_la`(NG>Gr3FUw2*WeB8wI zUFXBY;1$1FpT7xS5PbjWSj4m2p1bzy&rF=Q`n~iqp-FQ_YF^}=mXz!MZL{c8WNPr! z)SCIl*RKUBn7JH_Q2agZ)46AYL4pbrdY^=1^UPX@-!U{wpkwF73y~O#6K> z2;R=*iWM?is`tyGD&(ECvzmlY-B1o~DaleZt!`pReO&lxPxdt+dJSE9-hAs~;II`^ak3U`A-&zNjhv z>h<>f77=TvE7g{sJQrMwo zo2W#LW`6P`N>^{Vy z>7+mQrRQ4Nl_v|VcP^Kek=8l0>yu7alu&h9#-%&ky6vu5iaWHl{>XWI%a3o+B&V09 zv&iSeqv5encklnW@%kexGCT2e@YCtjo7_D2^j&P+;HsY<^Qt9gZ{KU%!>$i(-}t@` zddEBL=2^Q*SULN6YFp1?pN8ueenV!Aoh~8@dhzsQ^65feuMYe^#PZrB6Z46yHMyxV z+(gN&qOPs}Mqt4Dm`AT|);KZTzH3`4hZW~FSP91q=M9<-XMCo`N!y;97GN&@;JWm8 z9e7YOd6DHP%kaYDjit8rWmBu3ofq^|ip&jp5WhRe!PML|W7S3B_}M+V^MaX5Z8^a* zB2imfZiGgLFZd%XryydL_9oK8&;PC^&vuJ9wUHK;wgG?J5t;maGccgDz zyQ%o;v#8XK-om%Gr|jEiuWn6J2-P!ew>Z9Ej4wv(ep6p$q*mg)8ER&CL;ZH1XEf&X zGS}YUR1uNF;$11>v!*O#vr+%OSw+d=gO(9aRnL}&20t}YHnSUkl0SSQjs9ZnPtPZ@ zmY7ep7Lo7G!ZDw0U%wq)d(6ZkqGfg4?CN*P6<5X08I3@)jgr}VMtk;-J4G3jt5zCu zLZtPXFC=4T;7vIAeCks>oX0N;SOf=h3wDD`EDHD_%`f-b^{%3TL{UZnV<6Hc>Rn8W zTZy92;rY<@bvl(<~9Iajmd~`$TfU1VeB-YBO^`A|L&$_ z_D(@WgvQ{PQ!i@y)}(*wp~Y1Rs7gRb4|TXYD@arylC~X<9@hU91eV4HC{&6gO@d>iEtKgj;(}8%yo<1i$XjYotBeUXW(-~Tm}MrrSs0eoX6$Yu z&Ib!VuxzjtK3f6rzBS$43KaD=q$F_AQj`$7r%DnB+;*r9>#Kciv!JEC=K@Ku;9%`o41bT$4FNrP$bssj`Ullm=xK%iRAZhw z_=MvdUPb!#)5qT2%&4<^C$dZ6S3qOlF=^ZGxH2eencYVtaBf9CT_q37Yn_KZqMqUP z>l3_YZ8C?K&rsE8aiM;D4&ps;J6^jR@LEtFlilEYGvoIDKy&H*+tRx%KgDEw(vg^% zhd^oPhWJK@0ht%wA5sU}d?Fsu9z z19&ay3NTNTyD5F6YBRG@V(V+$@l^eEq2)Ma_enHI2ABpbxE;uaV{ez#adcxf99?M| zjy{PQIFw_OX=H~(%t#8YY!Ke zLc>jV!1Cr4B^c88j)KBeV;yN^Q`#Y%OF(W{^b#YHl@dFP&1WT?WAxMkV`m91C!;@7mAQZb2a&P(&h1g@9kFwMgA# zKV*57qzJ#jIGC6jOYpH!`8I%(R4p= z@tYK~{EAZ*Eu_W{F3Xz&$5Xw8t5(|oiOKHzq;0J<`6w%Ug^#u9E=dImpNJ4Jy0x7a z5iM@eyIJC%MZ`Rs|0=x^{oG)FpmuEx>j$Tt{xEmd7j9#fokv+c<L zB!bv5x(=o}9sCP1p`hp-_bdptJdT(Dns+9c2RukkQ~wtJkjqAbiRbyJ!-$={YG!9s z0ebETLGJ)B&a5a|_|mzTQrQ%muJqJMKCopqGp4e<0sIPgmKi2B`&`EJ4u=FaG9WM&gX&rJ1t z{`Ij|e6KcT_sS9=^%v$19BV8h8jp_{T~76iwyT0Kh`gFx0%kDC54w^Ym9=SUJl!Wf z<>qzioG2A5B;?mO9uF@D`i;F=`Vx)i_Ak%D^eR>kJlge*4t)+Tb9g2?|_+ad;uQwI#M6JiKT0p;@Ji=rllQiL^t9Jd6_l&Bz zmYLWpu;^WUs+XEoHc(LoReo!&i>Y2Salu{7i+z&Moq#BVW@oMC`QCarRCKiKYeojs zcJYh%MGe5$$>j@Sj@rhtJ_~EDs%>&W?Q!LV^RsxNVya#5kQ+zOx!xPtSk4V>s$;bb zKr7D#1u#-zZIDzPOzC}aiM!X!C9oPMEk`BQruMPcd6iTE^+xlCoYa#ljpmw_*Ki$4 zc;7HAtYkLshrp5fD-F8q>Z|Xc1w1<__q)(Rv=&VL1yTU3NHd<~u~O8!wicJqiUO`# z&or=zaKc%}-p#k3;3(Z&0XPODfvDuLBU!%tj|Kq{XjaocCis0A8G03&%Tw!vM&9%A zUh`-yn7U8;M}L%?o{UJdayZr*o@9Z-9$CFi5c zL2?$sGS$%}&uTBvZmZwG&9G7`n;kQL|MrW1TU585y>dit&?r20Cy8*#>A$c*%b!|x zP9^n>3K=~ejpL<1gszS^v!bl5wJ;UZ_T}jC?K%X;pM(M^>B|9o>M<_(+ zt6S^zwCi0#0U+*SL=z$9uu5n3=9VOIs3VA7Fwv;Qr&!JT)O1(&M1 ztItSAJuXkD|{Dg zW36THG@M~I9{iN)lfFz{x(2BEc?|=N%&NebIZ;`^4ttvdZ#SlbHXb~OoJhI)9y}-z zmnx06uel}uHNevIS;mY^yZqyz#DmL_PYIvzg1qIjfB-G#c@zzS#hU$-z!k$HE~upP zV1N5$H6%*U(*Y6pA{~*g@z!`ObUq!sUUUNLCR8hHVK^EFQC0e*Ugkw$T5b8C9-?h9 zxwP;ReD8J$uC;RFFq(?MVGzp!gt@{6Oqhh4yuCuqmhIT#Pm6lt#i(ZEN#Il0fLUPt zo<`@o4=P&YKVIm&q5tXQxH$kpw68`(IVB|p@QA-M$;0o{*0pp{SHUR@bu{6u-)YzHk?!b-S z8?7jCVkcS39Ech$GCHo92>1?jp{72BVHtmBtN zKSrrn$-%#>Ry(J+FA~i4QdE|SQrHPE56^|*s-dfkA_7@~8f0}KPbC&vwy)J;*t4N# z%mzCEUp+2}%PS0)`8#|qGG_relde^4FlcytU^(d5GMacp_(bF|y&w<`mufQ8HQ|W! z{$z$r*qV9%Jjwf8cdxhH@#pISzebHW+7)8;&lP&V@y66$NjlT1%v`gT@#M-IgE0Rg zM{`+SJ>mLoPbx;<-n_gfY>nd%#-x~Y-~$dZNA3vQx@;e<3JjUelSqGNeD-v*qH>v2 z)fY!bW@hnt=GBDuORSLD@XM$lq=OUb-t>oe66DitSF1@Zwv1?8J<=(wT*j>Wa!aJ1 zSrykhPf8V^$0o?9c(&SC#g%_AGB`m$oFM;byK5e65!|YoB@7o|OlV)pkg|+0tMZeR zNc|CDF4!N~7%}jtr={asL7qea)8TufqLSGi)egR@XTLR=77;~TW-BO}$%RI)Q!=yX zRoEL(7n!VZaIe2_7%TE1v|8yIBPB2Ko@sC!h?y-RqgJu z95e52&rfJy#b~vRIO#4H`bu&j`<>l2D4AJsL3M2N?brE^2L#`bXU{u~4@YTGM=KRd zvV@}jn#K+bFxktFG7zGT%JTp)2~9HwD77&&X6*d4Uk>UABUSMU=QZQ}Rw#$j7~L3g zxK6=TrI9b+hSqE{3v;;ri683u<%0a9aWr3R8UWOm?}(yDra-JzDWvldGMS?4P}u4B z9aIC<1!@)xPHMVW~Ib_SdcR$ zcC3qHkbUL<8N?iA*<<~^3#^3pq;ump2&FskL zYYy(h#u4)VnbmS3zk%D?;V_F4M+a0&n$&Sg^h59@`FwM@#Rad7;v<{PE(O|9VYO)$fzAkU8h)ayErR{ zomCZ-!&b??zJtN^Ra*YyV3bM32^`|vC9%q)Y;3H*hc*BLT(<~c?!`fL-jL^39H?$@ z&}&JzoFh!)m<%)BhoRN6I^dE=WaJxmN-BrJC-*uu3aIII69lC%dV#vC|9}gImJn0; z3`2-fx)CEA3PN{+Z+1K5gw_r*s4+mD{VG!O8hr#wb-?M#AjRQD$e$gX$aB_GpiC&6 zl;@VK1NZzlFdN$f8sGLx*E4C&@%sAd=Ar-zUqp=egHg>%R&`Knp)b!y%6U1lZqjXlmEI{=jAcMN zCs1S5^pI=*+IUUkge$x;qcxuwjOMF(wi7v>CWHnk{R>GT)CAl{EYnF=LzC~2M~wzW zp?>E=)BvQ)5Ju#W5qN-_%4zU-P+Nq{W(Ed(0a=E4t&S$rngaa2h4k@7;DnMGpH~4; z0oje`_D+^-kX~u7FOjMg0KaF{nT=ssYt?*a|78G@s`+95g~#QekY`x2l{k@6OP5|) zcpSsEF1PeVx+Wh+KY{MzVhpTzCSjE*@jTXgv99BkKNAZW7a-R8zb?&HPJhdzNswS- z)P-rJM7chvab3>(OVp!)l9Lky=rWVq$N$%e&GNqgj6?2nvD8ZHt%>y2p}i~htwrI1 zwlz(z`b7m~>C`DVXmIphi&wKzhg{wyzn z>};1wA}&Ua3!+X(tW}e#U`vZ%pM36iBpq2+*qFT3wUQh_lG$A@8?OVvd0;4e7wkpg z&7ke9PkoW^^Z)eBJfWymrXI4~8=c`gj*cT@l|s%-7(3@ng2ij1y*XiVu;BxG4uJTW zV~AGMh2gFK*?>QbKPjz2c-Gw3iT-{0J2cB6N&oQbxHv2^1{BT%kDam+f=4K9Jw&Tk zL%=yKrVdDr#YLS+P>m>Ji{rfTJ|$NL`_*ZJ+hqK-As`g6TL$JEeHsBc3be*i2nt&e z-&E1L3WNg+FW(49vOvw>;TTEkSSxLKglPILhu{LV)|(3>!y4e0t^v2JM&Ui zgHnu-pT1?A8*_+HuHnjC5kpP_2yw>4G1-HA0UCrSRf%LpF=;6}lVDlLf5Wm^3e#X5 ziOcAQ?C)TeRb^ug+Kdm{jL%1$L|);!04u*2Z&yYFL0;TY_06)tXlY3lT$Y{1w$Vs2 zl#XRNIx;|(@D+VHStJOu0k4qrxH29D0dJ3AL{m;$kFd1U58X{HRLP{lk1fV3Q%Vt+ zOxh~B(O7H+Pn5#ZCzD@Za#=zEvjCwiN&)Ewur;;v&-6CM7W&>Y7#>`CNOc^_?67DE z$MUp_>ml@&OkI!+1^MNVHyGW{dM|Ao25JXiRfj{fS5~|dtOgz{^}#-bAPsaf zY%;9vE&e!7ii|9f0KY{8pM(<8`&aTogKZqF{4nAy;Q5ds*6>B7kXHFee-7*F>s)WIxN(k~dz>v*G;q~3_;OO$`G7QD*x@)J8{fsgfEh@*qw4E<;TpXtf?ijE8Dc#dYuAAn{$6}_ayXMhmu*F@pBj7)Ux zAbPfp^4J>1yeMX&TJLI??!6Ke{=`)4`%C&q(14j)}HA|bz5nzbLyeb9dK!U?a4@51q`Ura_#d_OXWR~CEoOZ(Nm*X*(#ZDd&ml4hgVP4$S z+TYLKRbf{mqDL<1wPqpDdXxsn6;gA6VoFa;DG*=%=j&@`W)IrVRjDOR3;grVA*d#$yHV$ zQoxJ{TtZIswV5y3{jEpJ zwd8@^?s&4w&u~pq9tTVwm0lK=_2hbw60p!#B9rVqSZW2QmSXdtkr;`tzk+gt<3ITJ zB=ScMLSC@qy^pW*qv*U9sAZ~${3hD7J{qzaXxHR~JfI|FH6N-~`Gg4egWst?uywq_N=!V(W=0U4o ztV~0f4)hGL4viUbHvT?7aTNp<{ny;=@sNF*K~e$c6Mz5=h4}3b$r-a3L^of7Blo$1x@FkB}@PuPFxKT8y)?O#?T0;YSlKwcglQfv{s2Z#aN_N||f0 zn@RFTV5Q*#>wTcra$~WC4^RXvI<0vg9kV5hBl47r zLt+RNKS7B#2(3rVcqRkQcVeZC$e%?%*PL;OtPb))Xgv2Rg&w!1YW$D{P02j)d*7Z3 zKtcw}cd8f!ghS|}g%qrj67lAyItJwuMBV{*W`eA9mzj8_GT=s_ZyPSf4&x6gtP&kY z=7<)fZ={&ylO9ierPmY?f)8^ggqBET4Al?fH-;XDWio_&i9K|c#l&KtJfhc}8H{K98zGe7l(*I6ZY;x7 zHq_?W6{mk^f@I5#7Pl)*RpJ`2|F6eb@qYpvek23T!8DM4DHZ70`B45Y2X#(>92WTJ z((o7~qi5#!WoQ4%$1Hg+8{6EG&lh5E%aO#>d3^>ug@l!;MH^spj5C5beD6p28xDT7-m$27xRRMmaE7ZCLQ#mRE5!-H7o?{! zqM^1mADe1a!u-@+62ID|>x!nCur=Kcwzd&y5l|?~a(SnxArr{;0`_aBPYg*s0I02A zy*Yb2VJyk8IfHb79|uRFjJG>dpAeoNBs?W-qrl7|Vz(z8$eI9y^V&bO<9q19VS-uy z;ohduIY#I$gi+*)UIZ@*5z;{-xN)aiUn6e}PX8ydNx){}ikQOZ83x20PrG4Bhu~s^ zA?0An><$#j>g`_!XpXpXi|u;AswoupWK!81EYSvLkpr42I3O~+MS*o)Efrm7J<+x% z6zuSsf$3BIKL$;1^(>YHP7u_<*;qL&04_x$(DJKMkg(aMtKND9q9nH;&!B86@KvS4 zGyoGa@2b-$DKAmM?gm@3UkIA27^p$l9=*9CbW z>e;_x7!&}ti!eso_ixV`qL=`HbMklOxdMTfA`|I_@0{fVVD^%eV=rg2~D3NC=FsFBAU6HPD&27bS>2jz4YEX`;TfLs_B z&a6V`&VGjxkEj3ysKoPGzfGhNyP{`f8hDW%Z5kL1-6YNu7UmMV{0u2%Lb^-HXgK(F z^Lq@csi>lADv5+2U^I~tGoqisPES5&vM6ua5RNez25mLEaG;j9#~U5V8_^mFpoPL$ z!Sdz>KTMihE5*RtV=^@_4p%j`#t+qR2TWyxO3#W~PyFw{Y~eRV?6pz@#~`&RA<6)8 z8Kv5~_pCF6^KHuN5R~W+fwqZLtuLOWB78Q^xFW+0r<5q-{MMubuRHI@0p+Xqmaqkz zwxMqKqfThb+9nR>-~2U(R00Al&q;YhvgI?`#4UQ4uJ=&p&N8$c9o3^p{IzIAA*6E0&{B1OO=M;7q{q7nM|# zAv8LUD7}#+D*xm#CzR(ynCGE28`JtXzIPD0gDBWZ*ick*c|-#cju&Zm&<=RH3_xTe z8p@^z2bn?IjVKF7$s;C$b})6y11id1FM4G}UV+HRB3TZCA*2&!p>&v&WTGUP;D_7V z$m?xDuvyaD&!E<9i%{aupu}-Bfew`_Slw-4IxWTE7}+Z!IowhnUP!J;`u4^i>q40S zWd->FkB2)*T?5qRBJ4T~L$iO_wlCd^dkd1%9Z$l4&M0NiEsmI4!u?3O#)n_soQ<6L6bsd7&<|$;;X3lM3KY z@=pLx_$Jy6E+~ru=OL2@r$ct6(>SIIaXR-3dNZxR4_Ii|nTYRna%77?;TFeN#9X)jX^)q5LV^cM-Cs5(xOl z!_YAy430^p5rdncRSmuAYRajrg7Jg(KqTPydR#Ol&qSrjNXHeeMM*Z^>Xz1iiSnis zL?Ob1ttEZ_(o@I_Y@OSigK79TEvn3fNP~;eMV3S4hZ?hN-5Sa#AJtok_)8|72%Xmo zv6I}%x6$j15d*<~RSlF)R*4`+6qw(I#9D>Qdd*3!fYl>7x-tkpER-$~_`R|I81Css%_AzGZ_&;&??AKPu{RuS@%LWggaW< zAYV$U`Q%15ze0ooTcViuqLU%0n$ceCsYlSV76wkInTC)mY@slRa2ml^#n^4|4h-RV$VjPJUGO4 z3~+d!WEUj&gh-OR0s+wbf(IHBw|rNj3kd`k=R zpMP)Do#uiw-O5~W%yHg)g@-bK_v^^c-Re+sT>JE~8j?2t-8=i6SkZLvToa4OEVHla z?@4HK9NP2dBGO!$3l22lQP9^(c~nMODpT3~DdvACf6e_txIfr@F_x@~rxK1Ou?YYw zLSSvUmH5%1bR5#uiR2H{L>PSH;>Ml7PT=2pA-tcaNt3(S%{9OWsc1Bu5OsdSM@*3l z5%9L*TD~HNZft)JC1h05ESZ@Y#HDPNgbe|7a#T1?Fq_yx-Z^ylBwA&sToYbM&1{<) zsosNERJ5dgFi!Ih5On>oIb{t5kXQoU)r5;9@hX)Tk~9pHz^pTHc>XUe{O|_b z|G4`x?sHMG*d$Hh{!1S!gvJ3H@-RH6igBWUBj79{__1Z+Ns|;fC0T+3RHQ)yZnk4w zx(8}eKsZUq|1nBZ`^3lWq7TWx+4F?ki-#;<)5)pAQMW3 zUQT))6?vkEO5w5{CK(4|AiI`~Jl4zLM&G4di`hB4{eNO*b|n}CV8x8J4)Ai{ITmb# zq-)|ieF)P@85z!HT10ipt{F*qBPYydyVL6A*}LP3o!&Fws51Lv&ZTQi8d8VfsIbu5 zQWkcHKi(_4{0)3qVo7JjHLp0WCt(rqmCDCsr^<9m!ah5EvVgmO79)v4BH^`62}Sr+0jLUcJpeyVl+)G$40P!nNS zy!4ZCw0VPHl!-LFovE=P8#>hb?mINDh!eIbSUm|R!}>Y$?2=oO?p@3t^2Ty(X{{fc z!yq?hH`|##=jua+#X^#_UD@6UDfb&{7R`-N~uDm0sJhpQmTTj zgn7CuVcC+6DX_vTqbtdin@KPRY0|t%xXFUOvdVug)FZ6y&lGjS2qZy}>5dGVBMSYX zvd-1q;NeQGztwi*GeuwE3hN=f75nwZxX@{!t11gB zjTd8wp;Im@6c5=_U{7+uIf@L#?pV`blueBwwGq}Oz2o|Fx|jV6@{Ct zUuE*pT(*3sH2kl4iYfVRF`7p--@1%a(v;c(h}DQ3|E0BH5FW?(XWI}NZB8M=X=h7h zkwMwM?RUpSx~x2;%t4z}j5!P@^miKU3QnzU6FC8yu!UB#g_d-Am>TdD+htiqB3G_2 zuUXSJI+JJtSTG}Q(C*_I3!F%N+Eg&?o0VP)D2G&l62doJET@+R*m|AlQ1B;YaaPnd zl=Fm2CQ}ltUFA*@`UNdZm2g(mK-7T;M^HFhidw9cgm`1F@A7x(nP`-V6DW@+hf7!X zU~|9+%8HPwpuaAZ{zfj$1v>r(Bk+Sv#OPwySjBsF)wGY3l|+<58z4`PYY(+fA2ti; z$0g%5CdVAu2w@OLXQe*UP6#a_N*92N_NzODXd|-g=i%29Q4?f`iz5mkTYPA^jw}~B zV!Jbi2#S>BI##Pd8#_>q%VS$+C{49qV#`*O`LGNMDsmc%monlmA|Z);2omt4{Mjrh z_|`@V2apn_;u84;_A0xq0S9_lx3UGk2CR<+qO$?#lN&v zWrpH^`N_tE_OW&{+3|VDDH$$8s)#2*(0CG#A9bw>o>O)yVKsTrlL-W2^c+=5ARVjr zB9h!yp}qL14j`5~VH{J#?xERjRT<6^{YL};Dgwn(gbo6UI~BPpPJXG^N2w#Ic=Y!b zeIl5oCH2JonM5SvO8=YEh?~XX92};|ph|C8u*qtt8fZ$-`z`xXWSEKK+;7j;2Wqes-@pEl&;^4N1B0%} z`iYNY7uYad@A-qE{~PR{Wji^vuw$M(kz>=f z83|~??bvonIlx@`@4aIL~|q5k`gu zG8sfGSb=VIZ^^%nYEVk-|MGi7B~Jg52C$nYH$|e-3^l5YfB5#&9e!7s(ybeN+H~Ti zThGAPVd*yN*f=N+&2$lUEe41Yb!mFzN|$H@ToamQN

$iQPj;rpY}Qn@DfybK#+Ii52EtwapZk|$Er6gh=U|(-_ftRQU5-GnY zAqB=d4f;?1S}IZIMa02TSebJ3+V*2CxdRk>6yKohWkmUH{&_s~H?BkTYTRb1{}OBA zTKgY8930bUTWJqC%?ADN6LUbI3jxmC9_IHXV#E_c8b#e;CkGYQ2p-0_78E1cp<3o{ z%4+}mFa<%wfG2=wafZgvi;@0CJDceT+avf=WIL z?}Sl|6l`M1b2)RAP55NbmFSxzKD>l$K+#I~mAv_{16i45x_AheS-WRiD?KITYY9iyV2_h&RpO(pIVIdf<0$3bX;*qFiqE2|2ss5Lc|B+lA znX`vjj5qxLA9SGt4JvvQgkRu9hu9*s{682|per#JOW6h5`lbLS{7qWgQ$KJ12fH0 z>-X$Xnw>>J)Qg%=ajC9#-G*(5zAc;o8T~`dV{aapbN2p^m&lexjEYP`wzsW?Q6fr~DcKv0EiGiHGRjgDQBxGd2&Ki6vSta% zSVAZy%VfzqrjqR0^?hE~Ij{S^GxPa9et)>VdM#(U&ULQ!dCm#P^$DlOe}9=j>gMbh z%fmlD@B26{yt(U}DM@1u2kOn3xT>&q*r5c+E!kK4KekJMetz~4k7E1IPJ{IPeH*mv zI$|1r4xH?6-a2f!$CT|)?2qNGoHNAZ{Q$l1!xN(>yxiE(@%Ae7VIETqUGT|_Gb;v! zC)U%R?-^A3AR+t8rI{;!H@Y=JFQ%bm=Fctg)}GdQ>)HGL=1;ZD!)*^+rDE4O{KNk# z;bvhbp&M#>r0`{6@CCYD5&5xO(B`eZW}WS`BC(gYWvSgrz2!!}dcNi>63-@B{EEx= zEyEL^|AFn?+Bp2sw(G*yVaNYIF*`i5a~*?rUEhqiL&J-9J8#K;vDPTiHK6`;*Wt~6 zHwwJh08N^87fmX@OMT4>Svny60bW__S^xPAJ$j{$7G81NhVJ(S&w8%#{W-b0-z4+! z2Qe@?r|Ef^8|Rn=QKZU7cTQ<(i}K#byKU0Z|vMQJ}p6Dy+8{tpR*U&oinI0(&`u!8rqT zEuF{**a>P-&E(v)NR5f1S70(OB$;DyJtt*R)VpPCLiC144R50}dh!qq?sDjT<0O;q zgLTuJ-@lX+`pINu-vDPD-FHqly7QgiYS}c%9)cJ9=-KFsOJlmElIeCCI_?c)k!e{vC0)2!og$K3_csg8mQE%w3aM2xtp?|f%_*X%ywiCd@jzW_3yb+U{e`T%u2esQU5X10NU)0i<9*FyBV?c_2a z+%GTmG7H)n6@D!Qz*lIPun>|`mQ&0jJUktGftEQA`ZH&2HZaZ^GJZYCKE#lwqgHg6 zOc1iLZVm2evsUNh$LY>JVYFfdOrS{T1eES?7SyjAH7qX=gzR!VU{9p?Khv7wOu0ij zK}i*Li(ZwFo9MdqLYJU?kAM}E0-XA_%D&@xi$ONQ&tt!V4iD!Yr_-z^$? ztp9S$AlxhI%NfXQ&#{BrwImz3`!s9^;%RqnBG~Rw=aW0ugiNn#KnxP_>xmu1Yo@=u zur`Jox%_W5Jbl)FqS*K453ikfxO8*-*cO)29s3inE}F0$JoHb{Ui(Zv&wC~XJ#!|bo}!m$K+-IW-@s6XPgm3TS^mrEkBvST02$VuTh!s! z&2hSxO+vvCL5bSLX!D!QF7-5X9PtQMS6qm<90nqRC-Fk^P%6~mI+fERbq?P86j1}8 zy!u_f;5dR_AYM3VL7$b)I)|=_$J1bBY$ql_G$FmaeOJUw<9-2;3iieX!5BVnhd%?| zuFW58m#kkNJ}mE2Tc@|Z{9B}AObn97fY0f2U3k&Hk_F6 zAu8RymU@}NTIGn>8#m>O$G~K$!kmSlZmIj0Jd`L9mNLqjq{s8M z)U}V*F*vVU>KI3jG28)#2%g12mZc4H#ky;q4>6!aJ(d_@m_VXNcn+ws1`REpJKz~zQUJS>bOU~6U{qBrVXwep!Ii%>Ou&WHJwS4p)Uo*TBOc*&QE#gWO~PV zSxS*1{^9={P6m$OH=c^c!Uoq7+-YHQ(DGNKzDzv`DUh~v67e+?+c=6kL^Mjl(2#Wa zq)i>-7cEUl=z(>Z`W<){Eb$OBK=cr_6Vk4*`#d82NHd{1>Nh(mtZ>XQ;~8BW9qHhh_5=|R>`!?A zyVK2_oZ+-%_d$G6*u>EIq{DZ3fr1}x5lJ|ty**otq8VB`JvIiKYs3?Jp6WErBRFLG z=Aj4;%nfMOPZrZhGhDE0F9#ibR*lSQstzJ(T+QvaVx%+05oWYbyFeAmaE9LF>7I43 za~wrhU%2v!jD6@mE<5#GZtdj*l4S6y}e{=$~*H)pn#YN>{~T<_5%vl`7ROHA))#9M*~3xD};d;kWgg zdej=4^}mQRNi2@3y)$J~C`5UvN2~@z{#$6@o>`AuFW45+QN`RR8c}^6 z=g_YZ@Qx!oU`ZM^m9$b+xgY^`NK*|U+%h94qfP1kOKs=vYg1=vmKFZFjibqUf#i0g zHldYZSSQ3L6ONKr9mXiA0@^mXv*Lq;N}xj5xIVjE1x#>+Mwsl1MPS*fIP@=(#23lQ(DBBwu6zv!IoOs198t8A3S-aHKg?ji9i z6esuOnf`7}r;YvbN2xrBx>V?4F&K7v z6sbazyG1IE=V43|SSqi;3_F$*3G$4|+SBM629r!wyCtO8CJn(fY(A+!s}QtUyq7yj zR$&uE-a5(nUuwRp&10t1jx^RFOHnEkfMW6^aN{`QdH9p-XDdHh>1_&dv+n#C*>*RN z8Px9jMt8MEU$6D<<6mqvaD3jWZOavtnpZx*_j^d0aW@r}h5movlsIPX&&D(fNb%1} zBjyq9TBMJW@pcp(!MacAeIW!KywwwpxR+RwYy{(+R4t3uA-P)Q!f4Jz_}K@@V>nN~ z0}+sFx+BeQQh&}-)3)e)`sl;b6}{B7jb_JCOF!w-)FbtJ!%4VJG~`bkVjgW9Egm^1 z-*9@Nw~9I;+f3#T8yiDlq1^H19IsNqb+W5b8(OT?Mgtr+U>QEjbZ7GlA-`3WIc5BU zf#a3fI0Tnutb-#@0 zOQ*MAd)I+uGP`>N7Dm~-NEkuDAyTYZc{DN^dY&$mU12uPN(!f{g#Aa_`xr3;hmLb1 z8;g+W!dOrm_y=KF=-Gy1`o?w;B1{Sz>ZLFr(Z9)4F&Oxt6CSf@+=LV);6U79G!|jt z)#P_kMHD=t(X)-7+J~oCgwtz31IT;`2GnEhM;gPzQ*^PiKc?&Up`?CL{@qP9^c+3p z0axrtQ`GqBTDVg|Tx)f-uCJcyotp^xhb439nKIb(bg~Gm;U+A}7uM8DA|P-Dg)PG1 zAFpTu>t1Avb|eRrjZGu#ob~tJKHMG>_fFuD6umzv4%1UiV_6UjecRATV&!@Zo>HSw z0isz`O`yyW8RBfqt%mni@hKb#|Y8aNCQz7v^(7R9;a z5fP0&XPHUELP>Swc<&}7MLNY4_!!pSvBd3eBHpdeE7s=A!y664pVYPu9ll*3 zeigXuPr?U;Z4UvDiA1%`fSd~}W{OexH?CF6U{iQ-=!iFE=G@4g!ynCKDL~qj#1>QOy#+GPzNU5SxD^iLT~F~E}18KeU^3;$)C#wBQ{j6C>!6AcGr z8RA8Zm@rTAVvMM#Z)|lKJS6JpL@GfrTx0l>!~Q0r97R>rTY_Cg=AWq3d3yqLJTVr> z`bFMFxrAxmqe1w#Ci5sV5PE5PX6uG|$IAAnWpJ>QrW*yg7sK`9CVuMA-WDfNx)Vph zBU6I$52lKc^AnU8O8lhcq_4Cr<4FN`vR%VGLqFYD>q0(rjCEEjxi_c+9vtJc0wjIc z3u$PdHPG*nDR8{F4ArABIxQe=!#MtlE3Jpl!=H z2q^E^d4HyPu^u=JPAj2H$gDhFK$=h#f~?6&dy4R%BHn1lB7^Z10#-zS?>SDnX?~V> zY;a}=iUeyQyoj_}xxev9i0CRO{TR%pz}52m3FQ=Ge7B*lvxRB&FK`L#K@ zbyQOJE}FG!`UF%)RkrkpCkNKqAUOF+4@Mlw6#FmT2n<(@j1>rrF5Yw6+@e_TaYvoP zQ_G+QsmxEEF(Z^3*o6oCe!PN|2_!6;ZJakKBsiRLye<@IPjVemVZ1)6UT!y|3v!=3 zAP9|;Aa^r~vmy7m*>G`CgWzMn6pWE+`Q`|^J8yRQq~nK1-%JU;?GOOpPk(0D+&-=c z&J1~60l}=BPLO8&{oLZ?h$-%2`sJD7`dIW@vugvSmxE%9fqh1ze0}JKDZMwgo!c}A z(aA2@;;pqvE-Pu`{$qxiaynZ6Ob8t)^5FMPb3UBXBVUqo;_N>1PvN^6Ba@U16d+?3uc+;SpkSi)xD5ZhCTRm=c_lt|BDM?ou`pQ_(JCSo-GAfk@E=}=~%j)x<(7m%&Rskkt_=!xq**OooZwDa@KuR z9Wub){RX27+^X;=z=yDSvUnc53n&til#|0>EXpl@MaBl9>%n0#nLl$m>jsndoPv1z&aXINx*JIt3jj5Z9G3TxDf1bB^m zSo>4N8E>7I2Ew1%L4q^nq!+l|)GrnuJKqHhc*MJCjR$M{nC85&ri8EPf%ANoegk?I zCi1vnVIpL`tFR%&C+DQHcWoVD{Vt7E!nY_}`8Rd#*2N(dxW5;MN+dClS>kyBxIzw0hBpq;i82|CDzNxSXwr;$k3!o()t6fI_#+bwj-PnwNEh=O?K zq7{j2XAaOFN6^(z7Y+#gN3egEKMjY_bIdp!Oc}=N#5e<>7B~GKyW{|VNN5OOgr_g@hE18 zAvG~w;X*F-G@CqU*CMl7Kt-9sz{cMsWvKbz3oce?{~dpLUw`+7(n&N&Znl&*bT3v$ zKVhh+zw==?Ey8JD# z;-IM6O@$3(aKQd~y(KuB61LOVRAW=UVn(;GlL+uo+b#jxy2pggefoPhtHV!x>0Pe&#IYHIpIdkLgaZgospR)42Y2AR(II360 zTn?{K$j+6gZrp-_!A6R19L191B*Fogw%U`jHb4l$>>)2lIls{RL(lVyF*~Pu9RVK{ zbJ}F329kj7xz_qT$;rXEG5;jY&tshI4gi)&ctxY;N?4Kjbg57AeR6T8Vlx{Rbvl!+ zd;Zn{;l2up7+IfIGwY@fCleMfw*&!5Jc$Czk&G+h+DAe!C8S(%sPK_c1PWu&2#~@O zo^yoLnt>8Qt;R3Wta_ra16hHpWc2Y)1}-L({*1tjha&yJF#%$}Zr zc?(!U>B5Py11tP#=t*NFSW&uXTDz~S#H>BF%d6(v1|(;EYdj#(kGT+Rs?i8%_fDca ztY&l(OCwa6T<#}<&ON`=L&yOd8C&VV4klJF=`PV_Lny@uCLD#`FPPHIv$o`BL*Q{J zO01H?gh z?Po_rtYW?iboE2-x|r$ekCt~7obh_6w>!y~Y|93I>}D(7Ut_NJ7zt?O`OAi95D;YS zky}Vc#v$hi0wT7^{+BR)^OlT8hENdE0ST&`lpuxWP0K`mOehME-jTq;F9Ss*>}&Pg z{2*C{k5)Tvly3wX|0Ej^^jlyVDXax)2Qs=BYz@U*W+XyW&4bhAx}Cp;-h>GMaR3Z` z3|~QzhD1=4LM&7e@dyyU#9vnf<-)X8Jri*JqFcc<EUeV8hDH@C2*d1of1QpGv;`KpK_ZyN|Av^LSxBB(C|S z?^%y#0#1i4BF3S!o>NP2iuVSz^7GmUTmYv2r&dla zIE@E!t$IbiJ@@!l2YgxaXCh?>#iywNG;>QIFRYbBVQ{e3$CcH;@v%Ncc=-@8U##>@Ksn|AFm?~oFAmS_nE~9@gHJuK`_HUz8@&1u)1i8z7tE# zW*yt>;%9)c0cNRObKu>}?sTQ%F)8a1Ru##mJP5w9Q>Mm&vcTN@QX_(kMRwO&?n+xY z_hy7}2jlc9wkAQ=0%yzL_r`7kbbrJmBBg5~{r%TAhK@f_SA|s4xU#?Yk)OW?C90-9zD6I4C!! zrqvfgJJuz-aigDGsc@*odNaoV%3g!o@EyB-`gL0Oq>9cz%de)=dHbK&6|z0dk%DAm zr3pp-9!zB*?lVtiwGp#I_I_x5xg3;gI8Zj}TaSd)nR8=k4fweY!@cE-8!`9*gOguH z^NaBN!gq>WC#IZtvIXfccMj>|IQe6NOJN$q&wW$Nu4g^Wmk*`1CgfTFt#Y9l_K;-M zHrZcr@!yh3L-BcG5-q|SB276wwM`caP)dxePy?}f=U*)0kez~&9(Uz2)mN-XS-W>{ zL=NF=D;X_dcyqU)P%?98JP2@B`NM2ki1-65H8Nm!qzKvwy{KA-Rv0azv$u}A$$2lF zJqli+L*4usgb0^66@srrhPnZu2p{yZ95xWRrLuZ1{dYU@@jIbqMp_Dew zI?~l5+=#!rC8}Ix5K=@tX_!aPqOTC*6>DoTq9cJZv<0Bq8W~LyB$i}*MFCw5>9$bP zgHyi)09e42z0cjvW>W&rd;@Zdx#f>W%65=%v`X)BGL03yIab#1dcI;F+l$zTa3~So z1i>#r28lPHt^bYI0kTUWEQ7*5^VI^F!|`WN2-AQhb>Va)NjbGu!2{wNBi4&5ZivQk zh~Ne-19|o(@`8bejTY8=d}J!*mYAM*#(>H*Z-~lRA`u@a*8aNBzjNWPM_sg>GFo-` z`1Wh}8_P;g$Gr;np3-t+c*BvEfn%T4xc$C&Lx(35PrG9yjPPwCv=2t?l)!&7XbUq# z*Sm9UVp`~0;f>)Z#T)sw?S*B2Zd%^UrnSwyl6GX$G4L0hhSTl=TU@OD!R;u?B55Qx zj?uVH`^K%S`#$P`PCLWA%`VmjD|Qy>)BD)bQvNUA?}$xD(1N$eX)iOhKpVAT{c^(C zzbx~w(Jr`jbEvUr(m=al&y=Oukv4o=`2gKmp7w^M|L{I`8DSgEGT+nP!Hce2g}PYx zGskB%SQZ=hIo$7lmFoRqenQWt{DK+xwFSQa$-*AdTcNa#7QaIDb{Tgvk~?im4aKIxcn3Ql;vlZ= zo?>+S^B{DgL3rrf*MgS0(@>yfSFh&$kr+2GdPdtA#7-&29?s$0meu8_hYw&h2DA)T0=u<5m(r>%ral^ z%tYr~AvCUIEQk?Z@2=Gof746xRM1sj-`J{*D`|(Z@eDNie7X+E6F#2CqGYOdG?;Wj z>34@*u>5_H?%h-C!Y$s6^19M-dhC?2J1>`PF{OUM%&^noh$eRR2}QUxFP4!I;Ug z=Sa9kXWR8^vZ)xER!xJLbEcwKpPnAxK$2qwadUO69E{d($Oa)lnBD`Ytm4-NFEi~$ zwLBvGTymTW?lzQSkvE09#H@QHWWW1QJcWymnLlV_A#AfUNSUota?*}ZkSDb52xerb zSa6``WLC>vmcN_SfAecX4lDEHtM8q|t-&!gpj)g`@cRq)%A~=1(UzNjzIG+NRudy>mUBFOoCP*!Rvw zrzkt)Z9{dQc_lS{YljCwXZwQxuX8@4IJ^3T>f0RTf< z-nWmoAD4tJTsJKr-Ua7)pr2Zlpwl9(r53>@soc?_#@c4Lmk;yOB6l#D^LFx$fA*Q> z(aDo#+UBxI`iei5^=MIL{1adnlr#wM{*TV5#ZU0qzxvVUwBpA%7QMN=VruM(j%9H1 zPz*A1cFUrVyu=IZjsfTa=H1Dv|;g zcM1wts-LE^Vm zqP!+1alt;E1W-jt3Tg^*OkZ_sBIYyGUJK(ORGF|Kn0Ag`{_-Ibma$M^5w4cGg6`Py zEPUJWKCG%WMGxH;q=!jE!tIIEwcSNz;h@Xgwij+`&(;Ox-PKtC$`q;HY#(if9)$?Z zWlKP32c(^)eUvVp5H*2jyQxDQ?l>&+dWtdL8w+YJtOJ2i_fJ89|K8t%be z7s?-DEH>GDZxME;nm?fwLG{sr9?nOXbu@H+ZZyPFC^8tXq~}S!lM?(~lgIXF*Pb+Y zBTipm3JS0~;LRw*w`JJTj!rZS-3#Sy7+IpmpfXNf%js z5HH96vH00jjPBsrDZY(xOu#IAvivr;^S)vQ6OPWl8+(~VUuNDAwi*6dr*a_v%aRBz zY|1t;+qVOlYl$O=x1ze*H6)IE^U-!h*r=Q@OW-QN!nAd2sq!vV2FSLj3x9T11_XT4 zNmIAmQ4MJCwmE;8sf>?K9obb7CK2&6$k(K+l8) za6<}nVxTtsYAG~@$xiG>;R?DrzFn%QP#Vs8$F4N`Q%VXUI-nqS49yi*BN^8VSX^6a zn(|Gui9ezU*iz!%`wPG)5$N$D81 z0XZLN&dRRs9k0e_{eBT!AGj4A9IWY7yk{NJH14F{qg9pey)2(EJ`1__;m9AW_CVa; z3d#Ml6T*Srf_!ohnw=|+&!oDFg6ajkbPPA1$}DJzDUf%}e=LM?@pl1Njd2Lh-044k z8rzU~>9-TI<5e};aElElQfZoM_2`^%Z$dh8O^GB^;O(Q(tj1ef8o$xQ{Hup!XM}64 znqF-6-j@4Gle~_!A^^EGJG>+Zw`Wwi>37T`+5=H=P@_Y%M7u zHg@Mh10+lS>!8^7WQ4;kq=_+bFzqorE@wu?It{rfTt8_o7_Qp^IkWxF|Eg)~HDRgD zk#d5}Ur1g4LibNt!T7^uz{RDsnKDML`*yZFtS0o7-oN-vA@Gr44ZDg13@jhiB6iRM zwUQIE`QcUYjr7gPo>JUvLa;L;Ly1DU=89krTcg@GECWQ81R~9Q_Toxs6|)j2 z``s0ECqwtinCh@yzz}i6zI^)hZtlUeubm$~@Av5CW|JkE``WnXzn_#4Ki}zbXh>kG zeoTh$QR^$4b!}~~>e`Ud?rpta+D&8fX{>YsL&vEP}j)oT}rZwCBt>44U!6FqYbLd)q$z9wti@5ucCWb zmwOgFY3Y89)*H8cs#z6Z%vE_~xBXGE3LzBfS> z7#xsTd!n;_W-usJo4IP(?JsaF6slzY{B1)ix8j; zaM6MjBOegO`WAd?Q`;>7g2Bdp0^-O6CuL@tlE#?M(&jW(0vSyQA*zacK5M$d0!Nxe$ z(Sm*}1M9xHaG45&hD!gt7PZaXL5C)aso@ES`t2RtRO=G0l|I(+eQ9%g#Za3VFf*;9 zd*|S?^;(N@R9nW7X#cD_J|I{bcw(64n=u9p5l9IztHgnzwNAL-9IM+U8shR5PB{+O z(xcb3j^mg+;t2oXd6h4#<&;mEYKG7QZc$~Es~KTy{;t}&#cr@{%K|p(V%KMV&oC${Ps__a@*{6mSRZ26)39t z9*W~*NYV#q>;=(wQa2r}`g#>RF^wx6Y|4$-4hl+GS-Z^GA6(hO*w!K;BwEkZ@QTBL zu=q*Wz|0?epMX7t0`ZF$s($T*$@EEI;(CY2rF! z(0q6N?p*j#baDcY7@b^AauI5<&-e{fC+!P)pJK4Z@GT+o&`g>+DdTkr&9Mf-=xy(3 z)Gu~})7xx&*%Zwh>CRKEHw47{C~CL^j#mr1(-i8$Ge^!&_zyG(ur)kW8oUs+EKD+s zU=!kc)w7Sy>Em7cX0)y=>MD4hjgA5d4YmjyLPMJu?LpbO35f116Y5|>jT$cB zJ)kq1tOAsagOdv;lANufO#uT@m#;I$xqIQfqPp7n?9hfu|52j8n-xt#oan4H@K%T@ z&~YgWv|M=tloB_bNrcm@o_nqkuRTlR0_~`F^|N!`(K^rS%fSI$=+2?2K+CKkeMWGz zklP#bt#^lTun_^tnZY~fw4oSd99EX&TIca!|5zu->17p7)A5Y@NBBPBW?l{*e?tSlS z6d->{NFYU(=O8);NR(h@jra?JwTFhnQ!_Dz%3r+>3+aGW=Ik6^JSYh6b zbgae0?*IBIJ>xxTNOLpqg3!=npk)#BmEt}pUMyjFr?^dK| zEGNp#!l+{;C~$N;&H%ndlc%F82^MbGjTK+7@^kkD@}+unDvs`_2Za7FD@x6^>1!K2OjnkR><@ zAH9K|{MqHds`}>!(~PS@)!ePdRO08qs9TjCNtArkhzf5%8m~z-kwveFP~4temzB6o z^CjwVF$glj^uTq+;6VClAa(7Vk6cQ2usq}2sG8*&A2eO4MMCno7Lc{rihUtQzuXvy zMfcajIm+LowIlU5YyU<4|6`$63b62&-?dF-Dz_h+98G4{R2N9A&n)3TwV`D%Fg zM_}lR{q)P_j24`M>z$p6xSOagtEhJ7G@M7>GB|fZ3e$pb<4vXocl|>E(c*eF3gUBn z)sG4-Xn?osqm`l}678TCPOL6yKyzg9WNt9JHciZt1raarCGUCHvsTJk`zt+Hh7IU> z=jyzEWDUQz#c!ATD<=Bk)|a3>+^Q3fF~#ox9f>AT5gmh%)rhX0PR+TP>AjTVggE(& znG{C^^Rdw;Hn4=~E)I>3f>A22d@YHaf@@P3?|E#6{2%QyeXcxmQzug;K#?Y568@MqAFG;@yB&%LkKblvYMz5hUh*d-t$Wam3 z#6)~W9lGW~f}&$^?n8=6j;?(Y>WtebR2Fxx&LHCIF9oouJd<_|(?}4gqTjLQ>*7VN#IRf@Z$BlMRJIPa=ZOSW?f3%Zl zB#*lux!2{u6B^SW>0o81JeT|=l2}UnH$f07EcqRBsZ6k)Q)@WiPma?QGl~W5YrgWP z*V8lTm|kN-dUU4xSnXoEP>jp)suFsn_(?;Y#w_Zj^2o5W%wPJNsMI?6m^{MSVu3Sk zvL6lT*iMd;{h1~M7G!$Au_kZ`8jWPL9|8|_ZnReAor9Y>TWAk_` zB{gPJjFjUA;q+%j_SUVcpm!M>DdOGZMm};{EAtWU8fxTqIBrW}7`u|(OSTkg72ljD z@lVa<9C>oG<+T+c`w|Kl-SQX;%jR}u;o1lMP$$vyT8i-`3Ulo;fY97?90;ws+V%oMPVh>?AAqbvvKj4Co{ zv^h8vC4<6QV+qi)4NJCgxH1PTotq%;joJ~Kj-?DRzy56OZ!i@H`s_VbM?AAWDoQW( zqoawvl8#W$FYcRcgNSu=%;qE>`Aw^)%27TEIQKP*0=#@jM7k+RZP$gOy0JkvN^VJx z`aVbT}o*&alykBX4CDrZxW+)P7as3g?7>NIeC?^C@fGfLB1 z2K$IbIa=<6lcXfR!e3$>w>W!y6MB0_HLtUyczk1qJBA;k1oE@CrQ z2q^8O#!sTK4d&zO2z8LQ8sr8+#k`vjziUPPR;6~1)F-ylOq2;BurAz@(?W*FIk+tn zklYnwADlv^Bx(aUESg%lwMF`1MpHC90D>%FOcrOUT-=h46D^xj==I6EaBq{Y(NqS5 zItmI%k}(dfnCb`|MVWMPwoKys*JNqL@n4arE$OkSqoDvSslvZ%^c-e9&)bsw)g;N6 zYt}`^EqXd`j_?rCie6Y6Z^sd0oKr>9#)Q+o{MA@>s)BEF=Fcp+=U$yc;|+O$%z3Uq z`?hIbgG~od-N0_+z~YitdH8(mVc8uAS_K%7wfv>Vs}dPf_IoOWImTE38sZyE?f0q% zN3!b8fWGb*s{_MQ1tdaExkz{s5(2g>A~o_3@^aGM-AL(NGZn%&j8##a{UU>)nY2~% zYb8JRP$kbL>Wn41g7Mhra_w+oW|}sX9vDOa9%s`9I!#D?{+fb#fG{Qslqe_EUEB!F z^+Bj@GU!=eq%|TTLAeKVlEBg|_TW36*7tlKG6XrFZQBVl$fCfRkAxTLa8mqltYHJA z72_ilIUl2fmMSntAp(jjH69Z*4|-7OYeG!1?8*A%gc*e<8k4&Q=4VN`SiU!Fo;D_! z)$>K1J(1wh^EiSTsZ2W+wF)*)pUpy*#ehcER}J;L(U&@Yo$?Y=ZFyIIe;(*gkIgFj zH+Is3mJEuI4mT9fSzgKB`LYb*=kJFz_-6^NL@KINp1+C5P15# z^$!}8>>x`*QpTO66Ki<5T*!6ZK0{VClUm#;CSxrP3!F)^J^yjI1fglb*JKXg(!L&4 zB(>IIuxzbL7ztbmbuZO#0DcvNiu8)P@tE`7cTlTX_L>_vC($<#pwgBst~mWDa1C0I zlSv!}{?Vd>GsX;M5R|G4FiJW*&iGazryFeL6uqZ25PPwFWMB&fEM_^5N;b@Ejl8i3 zqT7-vXgxr&YUC`=3qyYQp2))qRh5P;8?7WzEzo39jThU^kA>581A$kwGh{j3y1Le+uW>*A;8!fsO{ye`fxWB}T?v!NRWR?{) z(BOWVUOrrd?8!^Bh)G`u%>FEqwW)eXmn|X>2)&iYRY6*w3M!_CFO)61@qRhn|MW*& z-<8%s#g;pn8G^!7YR)b4_^>BzC+Fm)Qha>Oedem&KGa0}cM60T3os~K&f}T>$1#f2 zqFqlGV@^_0|A{y|QcFRQDrN}%U-+N{9m-}mYyTR|TMWb0J354UX7qk&ad5+_2^(gj?GTm|7U z7KOqEv&`Re@+66zmboY0x6|}ekV~-LgefKg1ZN&ywJgaE{4xM`q?j>ebb!N=P8d(j z+zDP+14Pd?Ks^GaN;oni*4L;5(yAk4NZ=)g3pWwXopgf7T7W@F+Gt|-IfKp|J5&u= z5;!Ub?rU)U!SBC?I8}Ez)a)6d!{w;A8mnVPI0q)VhUgYEf?7HXCvQ?8t;~Y&4PfY) zV(pkR=z&aS;|PgvS3ovo0B*5rIv9_P6W~!ZPn-XsWXl;Te7ynFhp**K#TORbquiuGLK!v9iLo zMlEhO%U+ER3tE%0&_v1#^=lgNMCRRTUP3*w=#voWFq3ySKo}?s3G8-T+-mbzWqg*D^ zZ&C+9F_NPOqLO=vmu3_w(0@5!$v-9|YvW*UV?eSHlx%Z-D-XrACt3I`Tg-EnWDv_7 zBxo0bohPf|2VgG-_O-;!69w~JAdV|JUWe@uVPa@Z5%%#&{P=yMOe7TBokh1)jLHj1 z)ONtpAGcv_*d&I?_T{sV;CgoBVrbktJKaI%g$-B3~|JK_q_%M#4j;&Vw`hfHR9_Kz#af&1|Z*r(r6h2t8KeZ9qS93DE!fq4=sNl1BO!UXsPD} z&|1p>%i}}Hia|!1Tv-KcyTfjMixR!BIK#T*nfJXJ)M6j0A>b`b^bnwpY{?mVaDV)k z;cR^?GIqhr`c_v309D{y11AnqYS1uD#2nD_T;))n7H)#|)=|?QY;4o^=ByEqc9R#E zGRI0umSHi5@X=c8R&%I${|^E79pK#2^DF@P<@@eoQ?EJL8Akxz->E9BHVw4*?yb=Jh%CRvym^bkCi5Pp9+Nw_qgYt zC{A+y7j}QrJb~Tc=ck#=;)MZ9HjJSBK_AC!cxhEp`|XY4b~@^gv7luJnjRW0O{n6* z*+rY~y`qWeSE2U#HC8R-#F{gfqe2RQb7|WNn?$G--+x{DwXdZz=QNg_;1W4GwOSeM zl*mC$jj5x)l#$56p$bY%h>T7BZqp(*sR&4ing$YYt+})_D?w%4LL$V*drts!7x++A zWuOm*_1#YhtHN&un2iL}T@o3H$;#+L+%yGls`vy|%-}&a6n}!{vDNbaF^oQy7`}pb zBk>&JAGo3E>UTHfx#v=qCK>@of^SSZ*LP zYqa--#-SN1frg_&Q)JH&bjMAkIan~gb4cOAnGUh%UDT0K5E_P;SmID%*M%Hzp;CER z6fXqz9*QR~1LOFqx5{x>%y9lc(5*Hzjj$3}olwtnKaHrEMN}569Z1d<{5DpAq@e@z zj_K(l=|i$sy}BE9MzlzYFq0^8t_Dq_3{u~>L z?WGmeLG^zXQ}tu(>9%B{lWbOLKMrq7{h#5YXngjiJvJjNNV7*qd$UFhyNWzzTD?c1 zw<`a451A@-Ac7qNwFsLfV{Zq4!7A3#LeyrNxaL+NY3WMWHZbsI*v@N~hC#*_uG%1z z#xL>bc)#WBJg~43QOIvNxQ^zkH4W>RJ4d2Nu2dB!q+sxi*_G4pjt$t-MNccgW1kH- zzq)tZdN2RW+n9&ZqaOQCZmaUrN#z$^O1VTV={>&uaOOLP===Gzb+k3jh#2hm-TZvp z{GT|ZHS7#i1$X8D9%Nq?)cxT)*fE1jT)fSeRcGw{Uz19C@JdPrWB;)#)rzOV)sfc##X&HF{$M#F&7ik*BXyqWe26u9sr(f8*ym5%R{l43S z<-yiub}f!Gh<|-z=E}q7#O_(PV`NiRAnA4u;~=t%yz9}d9#EwRPj=mY&!(_K)|)|T zqQj;avvd5vx)(Lt!4w^S)RudWmDBa4m1-+uBlj$x*c5--!y;qz4mo%?R$gY=2~q>p zcDdxZ3mdvlMERW#v~-@Wn!b1pIu3I8VJ~9O`E!j)xU?G=$F?QW=H+$J+nh!dUGId2 zKNSOdlhIN=@t*A-hc^V2T3B|MNIwDqSh26Z*?Ffm9ULWD>1pKeI-5B}2u9#lIm7^-b~oP_ zQ1b^`B~_uBqegB&9g-e7)j$8rXf~ByhKl_QV(VIR(cu1-# zBSW>oPb+4Mezd+OC?;nM%^?`O|66EF8K}2gJ+9Eo&q3~8iz#%WOs$nf!X^4lERio} z@@lXrk+)Qv1sriN_!Gs*C{C;YcTce_;#)t?vn3t~6UEkM#aSBKX55di3%eLYe zn;7x~**lChCoSOPd3wTvN1uqP)(js^({+m#;rYFL`ip6>RkAV7TP*DDK>EkxFq7ZQMq3@*G8;qE+hlbaw6T6-x}>6Kn8j{%~g^-7QzjqvG}M6oS!TPvz|}{ zk{YW2ad#xMZhN6f{1$Gcd7ag1-=}i!ii9}%c!QciEW`Z>c;6PGrtDH=)z3;Ti~SmwF=yrcB~2=E5>4!5#ZH;s#1a3k$M(oL4Y*!( zz4A*}?sp0^&UVtuDKC2NF=cjVL)`0veYYqR#}9S8J6uYzxP|SNy~8fGOfe!KCqlbE z00bW7-n54YcIim%5vK7tHRnvQ6>?-ovvt#TOxo-A#ERqyZ2*^xb=(2xF(1jft}~Q? zqsy{p5w`H#2JgHdLF=fk$lLOvMAs$CfyHTS^*A?Uc0bBy;d=BITOIPrlovMb?|am| zv5uDI(qUc6%flu8T*BubREF{s@XMexRGjz;#$xMKBdSgLiEB_`8G;5?S!?}mM(qck z!Vd`0@#QfHs$QgFBv<5>kU9>G zbdv?Z)DyWi)c^^~+Mg0e_BNGiEd_`e_xfH+1ErzDJK^N@92(Jh6sfCwE43i28VN@G zFR5G7U@RM-57P(@^^MsjWN&<{vz9S_-f_+ynDx!&GPIZjd{m9>Wt)62&+7RC&gAjp&AC32Ft1JFz=$_=^D(;EGp(OG4nCce(u%bt3QGH zY_ZQ-u}ERse}4X@`-W@Z4VqBcKRi zwG$@B0CobAR9D)0=h*1buoWZ=lOKI|Ig5e6e5TCapP{y|#p-YxfdezitOc47Y~v%; zckCY)<&7)IPE{;=_$4M%vI@6b@f4`j&o^eXkbYa=WlFBO8KnJ3h9uGQTTk`$tpDH0eM-%)Mp}VSh!>% z&dTk_1m}4xcuTls{4z1{(T2>%FJ};nOfWNhY7cKOB^iSE3er~YbNMVxNio}Pc__0p z!gX;#IoXz{}Eo zB#`W@+{r_F!B+)`m2`aazFU6gr+4wGi0U`=8^H!EyA{IDr3yMv6Q)+XagsZQ+JbOs z5nMK{W-kF{NEt6>wyaOMFFTH56KKQ?h&g4rlvLA#mz7^5>AuRBT{B5bT!U$ir)lq& zRy}j!`))`~kl!xc2-P>z&l0994a}q8PWUJ$KPzhl4**skE z@5W$NAg_m-V} zee(XxsW1Ktz5Dgt{pI0DYe(hOH1zM#C?Q(-vE!cT{*Ob#KUy4W8FaBOq>BCaWdj;JPF#+kUqbK` zRWGJ}*p>-)=`)x0Y3x{G;go7Lw^oZ`XJ)4w4Q}k%tMO--#;13942TTzYwQ>pW*YlI zE3|!B(f(EVbXHLREfEifbbWJc=9V-g{l<>ZCyXyKExvW;O5ra1p`n>ZwpR}BNzoa% zp%(6RbY1FEoEB-(x2s>mkM6j3XtFz{``^$09M*Z`X|ssL{bLU&6`6$jHFB(Z)Vcxv zO`nBy8W$6hm~p=B-s_QF-wZZH>jL-dLf2;9(?+|CEQ8UG%ST%dJM#ihrYzY0?oMaw z7%j<+D=^4BsxLVlpBUlPd<0uCcqa>~hNF zbMIr@hm8dadnqqjADh~B{kXc_AG z>PMwNh~V}ieukzX+;Ql9VuxW}-yBc;@~)9XKmt(XfPwqOu>wT}7vwf4Q~9K-;tXvKQM89lm1S;oVbC^x0H%SeohJive+o*Zn4B zQq$YQPp^4&2t3=*)TFI&a^rg5{_~htde=t$GR4XOPuIuE;51rY(59ep()*Ii?K%^c zsnhsAle!eJT3_9ZkWT2u+$}ko(+}wM@Ez|IfmqI?pYE1a%jvqvd>AE%MWx&=x9z4m zU+Y&mwH!M3&(FW)SRZav>Tt7D7`42SqfZ97deURt_iKmfCI8Z=Rm3ExmUhFmdK|6m z^sBM+(cl4%9J^P}>4!L`w*6v@b>R!@*}~uV6C`B<7M}lRyr|NW2r=yF-s58nW>?14 zh<^Rm4xA;a3Hoe5=GTwn88wf-KvIQR2+JD3R2QA3VO{Wd_Scqm&4Mll?nEx9wXMB>KNw_kDH5B`rTH5LfdIWjreLgIGo+q(Z2C! zM2p;1uhk%od>_o6>3vRsx2ik{5CxC20&@ZA&m|+Vz~yyI5rG=j_kiPkIF{ z;4fq|n_hFmPy>UHhxI(b@?(Q3^}~&ffuLF7OKSzV^Xe-ETRjPIIP3!~+Ama?~m` z!|+#pPyRPQ;Rf&`*iaINf7(GREU0BB+stcdQ5LzAT!3y@P)8|Bvt{2@uKvL0n;IG} z2Oxu*JA{1zUN6jj-*p)>@7o7NcxpB^iN>9;>Z|C^D}`x5(PdGR<_AP~EzeO=SvrOH zi$XS?w85X(VCfbQT|oDZooiyB%(W^|+IAzV_y2xoG23k6+{h zU2axaQI|m8G$u+!+I{hiDcS>k@$$DxZjX!0++IQGY=c<<}$~j`K=g77P25 zOGQacAoYV$`)O)+Q0A;?@c*wG{;wtpk;v<5StKqp0g#SX3=5eufomg~GS+i86w)^j z1l@Q!D$z|YSnVYwUE<%1mN<)Nq!9Q@K5Eg8I1Y<+iEb}wxh__>^04W2AhF*-k=wjh zmg$ya0KKwq$aL{p1un->i9)><_H@>7j+4I#dR{}sYR0VXcZRh z66HtbkVfEElDJeCUAUwL4ZBJp^Qv3PTcRx_kogKl3F4`H#aI8?_#QRCt6cKq345Qf zWDynr)vI5@h5ePQY^QGt$B7Eo{h@H5{IAwxw>zie4QsD(>grdw8R&3~7Q&|Y`ME*- zspGR?4MvkSSX3?NK-y9BGOUdgrT6ll=QNL|8+j#LRTHzO_td*rs7}qMhG@F*hO3UXMEpR1aamnBe*=+O&D9E?5 z(p8!vTmtnE)tA%aR##{Pdnd!*4}o|^y}JHnjG{_(WebIbKHVikqd6GO`uRW0^|i7D z^Z7lU*7$kPnu3f4MMcC4T+K4-XOLMVLR=mkh^4scA6m%lA?U&NZ2P)Z1`^b-rW(C5 z$fHJV+q02F2y*2cAmJSJFl8@YEH9vd)04D{a@t+4N;ujg?j-EQ*wjVykbQf{t8$>9 zG*g^8Jzo=np`;-34{uBb{B{%N=Lh59fikWj}QIw2=P@k-4_X9Q_8E!1_--jb`48q#%AH!h zbHK?Ls<=Lddb*G0Fcq*kra8CTQ1EG>Prw57u8arJ$!CCVa`+Wvv08HeW-{iGzZ8IS zqz$)N(MW6_|ES>9vdjE2Tnb+LocD!EGl1NPwB4|CUPWZATX z$n|p=_L~=xirPd4V9>p1zdJgdrawo4DclT(5r1OgF(oYg%#;+Aj7EwT!Qdp22=l_& z3G+g5H3#JYBcWx!3?pHrI^NMG?sUUGNlm|d3ik{7{s2UgY1uRA-YAjwt!Dtek1Fyi zawhIwvCx-STh|^`B^Jt{AbgYghEPyxd!&T<`O}n&!aEX zd+>umQ81_(NB`6@=Haa>jP=R?z|`5y5~XG=Pvjjc&{Z>r(3G$=sqI~Sv6Fz8VX^wu zA!j7Q0XPOYDWj9GH{QXSHMz!D)m8P_vA+T)>9Gi%mG$npB(P>0S<&V+c7e`)#H3b0 z9~1;|)H440zCdw+CV&*EQ7R}dGSZKHb$tBs5LPMI&xf=YSxE|RDT59NPb=EqasTr% z-45HG*6S2JeRh-6J^$F>D_M6w1Voe5dcH|_0k}RxnSR__PY%+iJ zzxo#5*Uixtf9G~_b9xYg#k!M+QFC@Jr|a05y>R~`AQHA~4fSVdhXB!49kNwj9!3CP{f~)shcw^lad|>% z#5H(YNRnuorPY@(0742VUYq(V$ZwXFf)@lCxf9gj@z-wo2@%@ls8uQC zpV&vdD{p=CWKJ)!E|a2l;a?$}YHsuIN1XNh%1bX;LY<#3dAc_+5(PyNlqAHGje0Rn zIo7RH{Jz^usbvJ?EZq2>(@FX;yH!bk4p-%}4t*Z#PpK!Y(jlau$U@yop*;hH0A`>cuaceBL_q_nhP>plo92nI-0O5rn6Yv>iSfh zvwhm|X^69g;p6=a+ew`q83`bHf*BHa#Y^&22?o}=4cxaNk5en$j0}#8#)uZ3`9v34H3pzJMo-zVif?XD|Rnvk;5ex+O zrX(P@gQ==b{bfQi{7l007{N;Pdj0Y7zk!0We%|&c#+p~#-W$s+>o+}B`Puc z8fT=SeiYZs=^>2n0_d<=uT&`$Ny0U3#5z&7HzG1l!U+R zPaJtOestYzjA497jwGOMd1Mz=>G3GE=A=9Y~Cq79DkDJkN(wFiH7pL$iBWnb3|;)=^4Q(Avb>O9o5Ul?hb= z8W2ubdg{qarYub&1@7Jz#xI$1aede@kjd?@87l0sv?U<$J5%Fqbk*pQsogS5RjFwW z79=7Tw42jUz@jyPCyg9Ko4&%1KHXNqg@(lbH9?rLLhzB3XEp72Ht}J5wboassTElZ z28O>$653Yl6{BXx6rI$omsBdqtxQT`?hK;c;|=$wz$zCz$Xu40XkhyVCI__(hot&; z(GU`T@S8@m%fUGloT}AdNno?U^5wmZNG8zgZV)^jOSy(GWNXGkW|L3zwS5$8Ch_aABhEjPZp*E zQ1vZxPe{*?qoTYXvL6UlV^16ZmuNJ)>^p25G`)EONH)-?+f7VXkVUjD-`M0@V_GLT z^&cIk{eP%&WYOS13dGykK9ZMp#O6)P0s@-UV%w_Q6XhGq!VPIcLz2|}#7#sB#22e) z0f7=bLUF(mE-)A#3^Hn~^rX*#Y~TsM>9#g21n(#(Q_L8nsa*&T^kF-V?i(w?;y7hV z1w=8v`EmRtjFA9SXiR%b@$a`^C557xnqu!RMx+ovq9ChA+{QijuI&B@*CudXYMkgSMVf6r~5iSOJrb5n2V8%fa@mK6ic? z;im7G>eZVWylL{{3 z$^pc-azv7goHMN+HOI_>uQvFI3bYLPvUIk3Y@b7czcPn)yUC$iH>@$-7`QD05Zw)aq=mel6nqaM_IF zP|v==w&c)|+^vHC^Nw$OMxw-owee-v6tSnlQDFnil}jAodeX))Pp_N}FA=a6)MN9D zg)6DM+|V3hO0Y&#fm{Wg@JTygArlC|CgAbw!nasu(mp;=*c|-gm}R_~aP({)X>|xm zkp+uQg;Y?Gtu_A^07@wn|LxBHj`gk0f`M3t*b{xH#4}4hrclYjnhG7|Y6*d-%saMU zdo$7@$f+{Lz=n)+Wn$;nZ6l(Sa%B*4iCMQeljk1*2$W$_4Lqx7w zh9VS7h9WYD2%$2RA>%cbA=8aqW54HGd!N_qRd1i~NIA@=I_Fj9)DQ*$Ao!WJD|Q zy*`Z@=P#sJP@qjIJ1X5t;_=0hL$GgL+6@{GRE{fyjPwRWuW9}sKX zG~BYu`f!VR1C89`?M6k?ok$e!Y4-NjK2#9*pvqD`v=aDdHK%6ban4Q00Ik*_3lx@U z<(Bz)ZmTtZuER;>L9q0yQzH)tG!j3rMqsDLH8wJ|>tpCHc+L>7%Ie$8zAZVy(U!|7 z@cXwWAl(f5yO==9*{H)da1-~kpSpp&NH~$nw;zmwt(=&61|j54t_K_KBmXY~py@4R z%`tWi*6`vY(+HQf$g?52?0I^I+c*hnsRqArLJC8%d-_ zIsB|rcQ@xH>Sb>hNGVd$C%~av4}zJ5z&HhHl(z&h!~ud0{*Ja&-X$~(_g%5|Q4RZo zkAe3H%sDSV?FMUVf*dvs;H=HjNv52qrkDM&OLSmgt}P9O2nYZ^eubZiXsuuJr&s34uHBz0|Lj!8jD`90OFS`YV%{OOA1aY$Lx9zIywqr)u(lUec!2!t|sBaj0pfXt)bP2+#Z& zPTG|>5>=Llmc&}F#e_xwgHra@>U%H`qnQ&2-PtF`t~ERi*hq7Y4YwaumLFitkKj2c z4!i&}|F=Hv7!f3y$tjEmGk`gX`z|>bUp(Xda{RByJ2|I~NV&(x08B67y4S89;{v_hUX-_H7qS)h>Yrl67_%E>}^X z=D1VM8fdi-Esm%3UrnxO)-tEe&NOdwywT$Vt|3jd@sIh}-|=0rL})VKM`1rNn$$rj z7L`@tW9GNk2(!&9tT*wtHKtokgYRU(z#d5iFVK|;m$@moM!8}l_q8ZM2*J^57P4Uq zWRw)o%Rnvc+SjAR94a_d#&O~sJOZtM;hKej7}2dXT+KGD=Q+Sv(aZjUH5Ct{9#+gj zVlX0+V|~j*{Z(^PqAxy;1()j@RJj!VRWiU_Ny$NrtDT0XC}mXxHQyj`zH!UMR!>wygm{&Y4}SZz$4oyT)GXMJJGGJS;>g0}XM_^RPhPdQarEMq|B3 z3|oHBAjos}u|(vI47l%0Ws7Z`FH^-3QI&X{FXueEG$dhD#b{SfE zbhE|j*`1lN#?U|g!Z_l$+FMY{TjY;}fw>l!`dDLM&EqnFAzR7z$@&+4V0K~-c&)}; zFp`1DvQ*r3b2A$Bee9#kSMU@><7XW|94T1|yc|7`XxRjraEv^YX&428VJVW$G@j#Bp9ZBzWLWuC_z*S;l zDkhLiIsehVes9ti&LfF4ZLE9JrJs$(ySF4LiiAr0BK*u>q(z<{HJLo@xT+MZ;bcm5 zo4_-3LpkbG@J^v_si785^!(6JTLp0zT)kK^ux2Jf1Rb}*yB~2$BZj#a=xT=xtqQb= zz`1X!3xJtbjMv%(LgF56-xAv``dS@Tz=(sGT}fv}^PR&b(Uj9g61?Q2rG#S9liHLV zmbnWv3)Fkx2|jh1RiBTyqDldTbvQ79qRVD~S#;Ei93U8SXS|l&YePC#p|op|1x~j7 zO;VnRJJDvTI5bKUl8zn_za@8(imlmA3^>cmu1Zsp3n*6Ri++X=;kjj}d(olgle#n^aFs_qq% zPh@da-w*;Nc%HsmU0? zsody`W6&PtE`j8ith7W8& z=MtlE@UAs#6!!UG-wbOkq8W(~qJB}_7$b&ge64Zf>^?*tjg979qS zdI|K_fSBlnT1VeltYIjK)@3eyAu~-Aw2lX@q1sZuM3rQRs?`w1vQ;*j?O*q4h_I72 zb+=&KosxjnHk#0<1nt}DPf{z0g0;Xr8+u0|-h`1h;c*t-IB6<_Tk3&V7V@39v{ej^ z)ha%K(s_}FNJU7YDFqFE?8vvEE)dlQJ2hu)BF131IQy+BaRW9IG?183Ez&rMN|4hc zX#iQ>^5PG{^K#9Yiwgjg_zD`_hBU=mjt3vR^s*o1qelImltYYJF4jl78E75Mics7^ zt^Ow}bSJGj`9Jt=it@bF)&!=(!2r(YcxdSVqEvFbfx=9OLi)zZ-7x+1{0`Bh$gmb# zncy$%S_fm5@A-c7=(KPUuA+L&)faYHPOl=V{&vusl0Ep|a8~Il@v8t8Wrv231RTE4 z(=DqpOI93&*kS@!Tf$$hG$5|Qr&X99XI`GIVdk)9E0rEB2j_OYX`kaxrsgwd^dFzA1wZ&j4r0~jw?T&+lKu~x7+7_k-Lkh&@$ zt}^=-MMUTZvEC}>AK|0Up5w23kmNpZ7fpw)a))|`@IVIXGZG?fwI2;%|${S>SbssiDy2D_F9*FPpLTdZ@jyY6%17N}{bm$&tdhKz4yJ?!i9%Brj%{ z+>UTJE5(DN3{nWsu;|YvK-O{rD%_J|ic~6t|HgGE(>T|RfHD{GsLs$4=uA>U*va(& z<-ZjeM#N)%TONCl%9VoBq`}EJ6+CtcuZiNq08ZQe;t85znxQy5{4gEtc+tP(8CDnH97m zr)(Nor|q>w1M4GHf27~jc9g8P%Bq9W%aASh-strjwvDi*o)s<{*B#bU@>}|NC2gbW zdSpipy#qVw{#kcxJM3bS@s<~;`~S4lmak6jli8w%w9`%!Pb_5=e(Sukx>oY0u8MW0 zHpPz3*a>%`mig<%%h=Kj+bHa`f11F~kd_?U%D>6q{?fQu%9d+}y}}b~6VOMWV@Z|) zWlgy=cB_KUg_JY^Q#x^!akq?}cI@6>RHq>#CtmP!t`1>t^w`heetx?%bot!Q_J38a z)A{Oz!a*}oPQrj6kzwXonWwT$z&;MzE%~NMi+iUtdpSs`r`E+h8y;rH` zO&b{G-m~skze@1fZCmx$n9jUo2IZ;Kl+<;dQucPw+~wyN6Ja`Yfw603OhEp}==4I3*W=5z zcV=GmbwrDy$NOD2=;q~YZ8zH|EM&~nQjk#n)9CkhQacPsY19n+{z z1>YCnt5wmp3!Wc4-#aY3YTB|tuiQS88`EfG|2*G*XAPno&~?L_*PU8BkE?O&c)3~c ztJ19n{90Amk&j3L&KjL|tY?Q?cU_wAXJ zt{9kwEPHEvu7zE2Knqw(M>4N{*#4rWU2ui`!67Re*BKM$ZntoN?~6X2(35*eC<)WU z+qdB@hD+}vwSI?zy0|jjEGiUx0glJZ<0U#ScwfuNn6>8DhWQ=^z4;U@rUC%NJ43MK z#Wecw)yzvFB_C4bcXy{!C^QF9da`pjDgZq~2c0H8jLic%hwMUP_IZWhtIftfI+`t` zz7{X_HkY5zZk~(!R=K*<@J_ZBNGHQRf7&C!JE%CJ=&;C{(gA^{|=n(fnU25`I z1uUIau_x+|hJ~Uv-Nq8~JpbAAy7{{w7b{a+_@8Wjt~uGB>ks`La5;5+MX&P>lAz4v z+{lTWVl7Ja~hkk_0l6k-M8;Kqw#W8g_RA|#NvQr+;MsKyt-RlExp6Fl$+yeH%+ z)h@d{%ctT!QpoJZdQ>Z)IF#J2o;hDo%4D z2ece-d2QgA)q(LPy~<_SCjN6gHvXE~x{>8p0cCYpt@Sy0qO!SFUtlo~(WjZbAPs-> zLY-i;in9BEI&ng4ieaC{Wc@o>jo40p*Fw{JaG#>{Iy|>s74&#j=@YAjQs>oZ{}u}Y zV>V>h5-P$l^p4r@i?Cop-*bM3qxN=%>g2OYUOU2`N~I?|+mmAqmAT*TFPV-nTP>3D zg%8HF?N%5#{3wzj78P6nbVn$fOtsI=f zFSlNKx7C=cv)|31`C`UZu9q3I?CL_(nSTvLRltwlJN3Gb*{HAG#xe7n#So&L9$Xny z6ZQ%|x!5f*oq3B&ngMkQ7y4CK;{uTy>auU!<=dFHyzmzUtx(~6M2`cJsi1b(zmqTp zAi62^u?(C=6*MYvZ*av-WVZysn1U)$fe9SIGM&t~QI=j9T73@2lqyAeZIR`HL% zT)h&#Ch9nCF|0X6=jPF@eouYF#(Ifg?VOj-irh7sRk3!?mjkJ|+ixY>=JC~aw9P%( zz3vR>J8HcZ+peCnDdqyVU{@ldNYo&TD`yPb1M z?cHXFHx84NH@qWc(C*LnXUp7W73$7>*2elaF?6zN@-v8 z2268Y4RWwArD@QXL&PZZ*tdaZ#@FJVyLoH4@Jl=Vsp4=Vl#b*?OLw4h?4OXA5TITD zdN7i?Hc3L@a6_$JmB19#$7i$mR;OAD`t!AA$>;t6H{XC+)|U9!qk6ze95q1scp^tW ze$Hix{|W(n!AS#9_byR&`V=Y(w7v7GeQ&v=3l=Ww{n1fIg161*^|WJ0@M1cD$w&C>rHz) zcsv5jaBaI8CRHty4w=89gWXhp(RTk?P&AOdJJi6AvLZ9!0IF50C$CZ+=0@iv!TI?5 zEvf;l9AuZUk{ywxQ~G zZvFonkysc}|C-kOd|f)gkDkg7dtXNaI?73FJ`n)sI40=o3sG?Svy*ZzoGKp!rhgW- zwczvQ1T}F;T;3^H3)ll6wj85)o z;a3pMc{B`jWn2R0@(D&g^&5iP19fprfR<00b9w2!)0TjF*&7V=hy1cKb)5+dRP)i8 zw0cClpis?d_uhnvRdzKi^3WI=xwcN_woLPhp#qUSzR-O z2{{#$+k7J9n_YPX1!kVK3L*n`j`kPPF< zKvQbK&z8DQY=BxxtQF0PEPk9uChM~O6KDrh6$sI(#={lJWxdWwy}fnTU<2(bcuXUA zr$_$hi8~rcC3lt{6r7`nQ>8=wC4&@K$_JoZYpes>LCmgiwhXGR$Oq6pvuCU8Fs(b+|7Nf#o0N%0RFxc~h402w$2N3$>@ndb zq0N^oK~xh9Hh4MOddGPa^3>c3#(o5pX6^@mIPy#{T0+`)Z-N~~n)S9%t+*KPY#yvv zT#Gz4OP7%kS;h#gi>Y+T53oEwdMf~{5!IErn;e6YuP4%m)}rjfN944(Bf`kO0xb|#d|W~)TlJcNO8j*^po?A!_) z)&oEk%R_Syc@*9VI z!)5Hcm_T~*E*4i!(Ga^m2j^}xKBB-f zo~)J+e5xNvAfd+Kl_~yI;&xavDi`<+MYu4Q&t#f?XV7vG;`tmx z+|Ccq{^V;N&QXd})3i6_pj14GWkL~MtcySwUL9*f|8Ece zail$w?PR+Ef9t`WxkP|AEb-6cWe8*waY@2~Mf_vslx^fit^f55wq1w3$o#n+F#vuP zWVBYzS@Oec3Jj-EI@l+e;tK&l-sL{J95xkuK?$7;_Au!X_Kb+8om?WY7KKm7+FRV; z1xnNn8xwoY6n5#CnnY;?WPqF`s|`>IQ096#a;GGts~_1@Frnz3f_5dOULLa}`Olq5 zC=;$um>3I>Y~|=QcJF3E3DVeQ@eWH;Z6yAcLWA>oVIcM-P+L@Nq{)}io?`PYda#U( zS7ZAz`I;%)a`bqoTnZO$&SljB!mA5~vtEQ}X1>2}$DEcn2WD)WN|A}+Ys?$0MG%Bw zNFoN2S4RY4&}=w{b=G{0A$hI^IiSEPU_@Z@Tghz2%i}Nnmu`_Z;_LjIBapyG&;~v0%%=c5X19^GYrn7ivQ|ip9drWT8KfGyICarC6kZ?G$%Hmw ztuUIg;O!lh-CIo9wB=Z~^rqJVbb+y(ar%}wV(8tHEImGF8Pp_u=(BBqa!n^DCBmhh zdByQ{``uJ)O~e_!bBZI!_NExmMImE0b~nJ;{`SjTTWI-Q9%dTXUnkJF=dlgpb;!XD zTLi;IY)(`}si+^dUm5OW9D=Xg$5$ihXg>lg@6A7q~(-7Yx&0NTZ9pX=py!@%V48|oqe);qOZKyn|2!< zT@)?7;$j>c22k-t^Rl5y?1JZjrw*%9m+c|PcEV)}SeliS&|UiCIh=~Zofu78H40US zxQGx%-XLdLM%#ut-)?De>i_YAzaOQaeEYK4Uu4c)>gRB>dw?<%uZjQ;X5)fKbIoS; zQcv@8dzP1a7HINRmsA~oOf$+GXyI773rO{p<~EG7vG-OpcIlKMQ5174gndwRWmD^E z%m3{gZKbTB6kRRLi~TOMN{vdh1sVAA-su18n-mNfX3fI$!RwYY%*56zgEGy45gc_D zF-7NbTB}y7H8yM2O$I$#8r>K1=Aq6k^6>nw%vd}!Fzja|c5$Gmpl~hl9E3+QL8Fq` zi`VHw5yJK#S#<#Zy+9fnGZ+~eFJm*ab~Z+h-VR^H$jZcAiS0_Qkegf{k0*5#u*}z>ypeYr3Am%1WaOtO9p7tU-a_Uttg64nHd!WQ-s`H0JYA z`I8z4A5slQ?5OWD=)a8Wfi}7BMO(Y7?OW9e5CxkI=QUqhX+$({CC7(~Sbrv4gd6QS zBBEfg60Ej!HEeXIoXwCs;Ua*av=5-r9~97@k==Nh{*hZ|-zda7d=ACw4&*>0P-vFD zD!xq#tx@4_URoQfPls-X3sn(&F_>#P2^gP%}@BKtl>0@K~ZtTl_MZOY#fY7yB#AIAq4*a)^rM z^`v0#tj1HJTJow&Oe2nC-BI_7%h2Pf?bO>o@XZ@i5_mjs;>oXD#_F9i0JU$;isaX3&!P}Hfg?lD_KSD3!f=M)-2QR|`ypMfMdUMFFS31Cc~Ev8XLm%7v$ z8QC=0_fcmE4hg{Uf6frn%F{_Qu+?q{1v5g!^`y5E_pU=R9<}=FKnVwDBPSe`D9J@C z-jLB3A3i{lRPBZY-ds!LGP77IdPpBsKX=!VHW@W|rHBdiEuK<5 z6VL{t5cUjl^93kv68Iie=Y&9V8mzxxyB@QByHA_^U^@-FRRV0#>J2LL@ zNR>1L^3l;_s*?+J_FR}4@`nY6H2dzc-m( z5(PK8lMK-a-xMaBTG!LOr@<@+>2)GqrGBOo_$E{YmC=vC$7T7ZlrZxt~z1A3uqAI z0C`4+90#XkTTLB>hixzr!>O=ASYFZS zO5Z(*7Vt%p-YmN|xA(V*vmwu8E5D{-0hm}a+pVZwh zf{kvE5vLM_BaE~fjqpQ~c>DAvEudyFg7QC+KS6`Kq_RoJ1e&toz#$I~rB9S+7zoq% zgqP$U4{h!_(xg)C&{w(!c_o+s8vAu>{O<$qyAQvzNV}86^^Z?#w`}noX+P3&Vj8JD z2qhhmm8|!b#5>y%TDaMN=4m&uQ){cJ8wcEc91j}WFO9&V@pBS#0)q-GG-(iH*G7hXmkrl+{fT4R;dn!NB>*KL(fLMt^hWcG%d( z9mRTVGs5F~E}@^JHm#x@UV0A5xz+|(Z~xuj^cnJrC0f#Fy15lfC%RGVfvP4wTZdxa zDRtJ-^9#83;fi=Z{4%vpGnm3>(O+gJKE$+Bri3ftQT2k8ywp7K338tyb5%hTy=W)j zz6YoM0qE5Ia$@Ecye_NccDxR zNQWQ*9nlhJ{GY?vsYhNWz~YL&(&;^%6UB21j1J>i$Y%fJCe?r{1T)z!C0U^%h}Lc2 zUu%b~lg3#eOXeZYhi*Wtqoufu(|mb3+h)GjMW=0Bbs0kttp*q^O>fr_5D@@nP!ezw zdQ@&kHy4@^gf$@7PzB+^_PZF0p2h^rdkfJTMdH!x(J1=7Lu+%E_QlGm7T?+TrJJ3ixDc7rsCW2M` zL>oRdX8~fw+cNsy79eS26=k{*m^kcS7qK$cH&PXCu@o7FV-Gb#dsyli>hko)njI@0 zhWQZ`SGp6D;uPi!0wvZ*`Q~*w*j~)ow=~8wItozFyxWE0Mv!R4;1oDHIlJ_QuV3af z+BQ2UMk(u z+@ho7eBcV&>EXmdIpPn>$_$b#L{t=~T@YsuT1W^)svxwP+?EhVe2N8V37Yul!ajx_ zFimu&bV-&77C3shnmuLw91+8eDXOOidZN+kz0E=iyoBDr{J!W#Ba&#z*eVcLg{;7m zxGu~z1pi>DEHs%Q(1vadE7)!eM}is>j*{Id7kNF~E?m!C%UZx&a3C!_Rl}Mo*5mJS z3XD)uo_PTShh{ruMvEicY;q#Az+0>bNP3qTE1&_4;>E~4?}gj$&Lt&ovzbk{ZGRDN zbD*GcFTpQ15HjDIGHu2{x1pcix}*$059Wg9?IrL(%{i#;~*i4o79v+R_K25 zJ#wlOd=gl8tSzd@%nA80z+t3V5v(?X6k!bX=qcLzB*Z28^6fcY1D;=8cO5l;&^xxGAkX#Av!;Kh;qOm^qcZ0;UX zVXKf?lA#KD{;~quXarZKm6TXd1D+shsj*vyusz{=g3iD8`4z)9{hnTelhZ2UsAf%! zpt`vV!ota*te=Luz_?;#AaDzS%JNDXe-p?ku}uX!pO?&F+mxg)6^kQe7-NhEvc~-_ zm^5+-q7M}p&+;mKf*s$>;g+F;{x3g%lf*)AM>q%J#nm{BCI~U=)Bsahy$m%A?*QCAGxfEjsj7U9IC;-VQsMWh84$SbOE9k z796hSC? zM%G4zB#~mvl=8$dGUklU+a@&}LE9RiSKmCjLBu5cQ!`v} zNh!2C9c(W23ew9E-XT;>q3VlnE9?~d*Npph%kW(xoi0LoqkwusZDW=m6p60pn>nGy z(lVrtb}*0NdX8<69&>lMFIulP5NSwJ!_|0+)Sx9RFKu0UkCLRv%8;24{|+Y8hA~>Q#%y6^rG@3`C1gjw~3}kK>(p=E92E>E~B(yAgW@>aAsaDbk6AjhInlRZOv5mAEgqX3NVGKPU ziI-Rf!f{S_`%l%7m4?JvWG$Cji`S|6gUZg7I^K`917Wg7cFH=n&!UVhJ5hLM;tta2 zb1hvy1~vmxlbtU$zcqMX%4s5Kj-sMNPouHGB(<)u~uz_68n@)Tj~7~x*Z|>s~ZRp#9$-=k^U=v z42_wHVr}oU?rT=5jP)bU(6LEJBe6!Gyd>=lyGgW-Yu|XVP=o}zc3CDFxm3@jJt0Xu z$&JjSI2$WEC=q8@*IhU)1gjQanz)@!WrxxOrf?SVH(<@~%hCjsbN*YJ-%u%-y|F@g z`wx{V=IeNU0;{&FD{(z(6sM-dj;+SztD&3;Y-doz93kXtt9K!0Eih9P%L!^ZXQZZ2 z{q&R6tcJP7Wa7z(>W*X|oY2Va_HF+FMm(i?WXX{k&0xz`^m%(Y3Q5w4>Hq0f8eWR0 zN?gr7G*p8h6kQ*3*hRX=`dpm61Sh9_>kdUsYR9_k*Nq&O$@bC!q1Q!*y!>Oez&sx(kh*Y|fH@j8Ir;x9kHzofx2>2KS}KXof=wB>BjnWg4WXw#{lCW+x~cAAK52 zVIweDqc?i^lD6|Y=~E=2e%{oO{ZLV*?b7C5O1Y;@osEQ>R@zTRZ<+-MMXTkj^bPLR zv@#M~sewSmU0Q7A$(vIAYtqV;d~FoE+IkJ-_fiX|vxt5C3VYW&kx47ut<@hSvP!_b zn1RNiEYYXm`JMHo&@RIf6k9q#OVfB|XCRFLgIy zT}06Og(L$yEtwNJXHZMQH?1hn4#w`$Qb4uF1~dyZgeH@!uny77kk4*IC6&M;ha7;je)zn8H#@Y)8t8WV(_GOI>AwtCmk_U7)93pGu6T9>>LFuC%{Oj}htX z<_d&iRe^bd@Er;zmXPvx6$Y?ix4bPNOfGSO81u0DF)G+dHBHDc=A*0^c+MA?EPN0e z`i20puyTb}HmsJUc13td5JW>V1=yQcr!&$IjIAC&YU{-|aHY9H9K^80EsT5h^2P>&TSp{$i@Ur}mo&PJs;)M2PI_lCVAKoK5iYI<4@`RONWb>!?TYd5&TdP8 zzuIJGapjjr&V9`r4jA=cPlHab3xdNRTeSJu=ZyQi!;a`?!rMl8ww6UB{0v5;7a^7L zvvYV%P|>=FKTmoN{Bqy;rd2@FuCyOFZ+3Jw?qbk({lna!hHH*Mq7d|}V<$Lman zhc{eXb9P+%dsl;FW6Xz*$~ZW(hwrR;UBYAXzb%O{3D92IGd!mIGy1uBIex}v($6X< zEnX-7jYjp8@b{JdQr!7#1Abzkr;0!MW{32!#y01WqNaTsqmE9E!2_N5q-G8swQHXd zCWr6NhGaMUWNkMOo4Kg)Y7M7b9V`8Ns&Uv?%YW>eg!Kly$Au9Onn0BpSAS7b;^(oS zA6d^kIctwG!2PZkfvieO=G*Ds`oXg_W%4J0LcoQB_KgDz4)?J!}P79Dy)n7y?<1NQM+bDSS~OLsK2OYMH(1BPXsQ(=WAp2m2vfV*5p-M+RxN6 z`7Cx0K84dKtxxIC=p$phfj=kb_uts`b;73x)09rpMR?<|Oz+kw(%-}0!mvi7nkRia z)GO@Viva7k<8r?v(`F;A%$DbE~7P%^IvD28%5bEFFCGSPGjP6@AQhzQ6fWH#uj{ zE_W+T>BiDS@azK!DA9`vx;V~9YdT{5&q_qU0|DsGIOQa8U^{gbGNL@4H5c#18$7M% zoeVBFWNTA58rKQyL!P;FGk?B%Wt?IaFlp{o0N-Xe1N@co&T#Xvs2*b*A^i8j0j#Z9 zVP&0ZwZ-ogR~uTNoi#^p+6BDB6#DX~_#9+$tCZTCn359Uu{oejuQ-0Oz>ZgwXSCfJVctGO&F+AVJFKi^_ z8U6&eE&XVzQU={vN;|G|8q@t%<>iOx#~hf&aWSo)FG{olOj4t}z+|8oBjEU)3s@VmD#ThO8uD!jW2pax!{st?WHP@$qA-#{?mZ!2 zlBcaFU6UiE84XG!_D^LRcU>-0;@GuO%jEBLu;c8d2G~#@ks1UMX2~DAg^*-c+ z@+jJs607&Q-SvNJoij)buX7*ORy@P7EdZsH3b6QwHKO06e)|;u=jrR%2Y{Y96dI;6 zZyoeA4s25c`vI!Y9EDUb)$=Yr`Ex#nISt4SHyVlTH!0qAY7W zLb-gJ=_;z@R0mR-1Q`y!Zq-V*oC`F>=-UzQ;Ty4DcylOA z*^ppur5#R^V&egiAj(GD=S@v=n$SN~ELY!Z%j3Ivi^7$-cO11jMF|Y@{uzE9DH;wu z|GB)}`qWrl*k)PI>6GLA*_?@iDv9s4u>uRhf0QC$@>o1)MSli{&Ac%hYzq%j1$*uf z=Z5O$lB*`UvoR*ET;nti<7v(E_2z-@RL#UVxV*aiA!2tUlqrfaR2hXy1+wI@;bQWL z9}u1OW1UP?Yv;kLresbWZ$9!|M$`Kl5Xx+~fxAG*9P||HPGhq|k_b5jg5E<55)DaI zPMzef1`OV{Rl$I8ijzfzlC+6?Fss{}okORBcc*o_&e;$+O+&j~z|!X94xzZT#k}!U zx}I}1;D`=^vEgYmAR4^o0$3vV14Ci>I|vW_$MfJw2yCJ!2nfqxk@!SkV&Z%jYdf&CH? z&yX~40E8iB9wsvypzj!4pM|7R%lRm|3&cDP0zr?QML_vzx1{DvU0Z#ez@Ur>a%|ii zEr)GMA50o9qn{(o!?Q8AK5a!Rfjf)yb6LKhA2O|2l(OdnDp1HF^=3BD&*YJ3%}l(+$Xr@n** zx%KUy2kpTQp$r4i*i0dBf5HzM{H&-Sa82iP^i+*-tLQqpF64sx+Gikk%Zd$cII4`w zfSv^56U#Kv`&`ohL`yoYjf}7lh;|1WA%3p1IcMm=l8T_Cobr_nqw4_h@SJ{(6p@u|Yvy&<7hbUf zO1{B!8{Spr4+wb!j2k4fl?YYhjCxc2J_1_rku9!GisW z#Kb!xQIJ&vUiC*}Lo_FC3u%_vCk6KqqajUyxPTSdIUL6EU5G|{)2KKILv+A(Ee^(C zXJf7v@B3~aLFBNL04CtPfn9f3bK6mntJ|Pn;8u|@sLn+mpVJp_nMV0q`PKQEe%vM_m}2sl6BBI8x1C)hod z(0l|feGayFHY(nqyQGj=+WN z^9SYC$lRg_Au5`3YPe^fNA~m3f<3*6=W~?vRq>`8*quJje$*o$;c=~1%y8p3kRuvv zg0ab{?w6DGGf4Aw7s6j9<11VW9h_z}kC-*`Rcl%BeIPD0O z7LkF%aZS=@r9dGWsJ9B$oKanL*Q z-)dELeM*r8+$&)clOsYmgl2O4+l-v(4lojFlU@Zn5r`&sRzG?{RhIqFxMhTO^6jew z>e1M$a;6Or{cfL^s*v@7+jkKOAvQV)Pu%0|PTVRJ|HeQTn8V8?9h-jh#dbg8dH$DC zZMw8DOt zo}lnj%$c}{`pit!t$C)yX*6*KS%Yc6IKAD6SL*PC#v5UxA&jz4u{h-uu_B0fbXjkS zwLQs3&y?6>2ossqNb-4A5UbcC1ZlD~*b~k|E5XW`gSAP3CfgVY_JGqzyanj!L@XKh z5LUu%w*a=3G1ekNOzh_*oLevWPnoFIu~ox_qEjbaXlWiIt{;R>V~`u%b-J`^)E=1tR5M-9NqetakG z2&yJd`;o4}db1V`9g+(|_OlVgLLqUnKxPs|FL$6Sk2q5VaSnWW0E0{wttGUlo!f0Y z@{T3U8d^|!ilzQ~C0bh07qSaEP4G#Rs-l`xTphS1u2mGaA(j&J z3jOB&o@F5RoyFEHzA3ylcl4lj2xo1;eNMCyAr{I4kp}ZSOnsVe!b=?DU`DPST@rtD z+SG>00`mAQVxZ(~N(GAqVQso-K?(S_q&p-*s3~fq;9G~*M`Itm%f*T?k_b0jOysZ_ zE&i(N14K&7xdCDlzF&i!`FK!-;k?Y10V#fa z3y!F|(MoP3B+U5VR+Dgfyq>4B519~Hh`e030y;S1l6*vx0fz_%K9H0w@RH6CO^Isw z^PSsZ#0L|d+=pQ7C&NFK=mW9!FF3*157_oLl>~LXH{~I7?-2T99OH3TOA$)c$t#uw zWorD=nlEb=pB#UT>OmX3&0V80iO+$AyKA496Cn6iFu}6$^qTvw=g#HBBs(h+MdV|$(%LyIuYaQOZp8OfP~bi-L~ zd)b#fv_unhOet@W44S%NT?UhN%R3j>YSxegPtH##)hbLvWUO`gqB(*Eowu(S3Yr z2CI_&mx&!bURlhslvy?(oDX45t=M!c9E%M*%z=H365R{G8$mV4@q~VZAp8I}8K%j4 za3rN4v=V6v!4?sjVbE30mtpkDn5j|D(Fy{u-XI)@V( zUzCV2imD(&onQt6wlE;8XvAHV+&R8s{G~1?6=H|Z{4{k&N!{1pcW1=cyHullld~o^ z+N%b{UNX9}Fv36CrFGA6%icbE*4HEa(hTTwnt79`=GFP9XyLoc$ZdTFF1%c%vp#&v z8DBJhmgo)95v(`B)qa>q8W^RK+gop3|5&MfWXy%Espx2!yga>qLv*;>bcf5@Cbpq? zrLL1}c-%DCN`QZa{}g@v%RhOtYi>pJwee~7P?E&ee(H|QZJu}V!Z~#|c5$^Y$g0~N z>=3WG4D6FHM;{yJQ?-%*xo*jI+Hm<@$91M3D}960!N~3Qz}6Mace<=Su>j>aRin!q z>T2J%8SG}dV;h={v8bL#CC!i3mq+-2tvxpKnkinp+4DKocu~FIa$0!^OjrBV8$B3A z(+}Z2>ni{XKH-@J!~=Z@wz`{#XO(4_r4Q7PF*)x%DgpzNSGl{URFm=Min zT?fP_Sd8H{JU*H7GFmr@x?dCP@!go#cU&`Yo=Z9ARIf;3yVSE=zJlJ#vu`UrYl$QYt#glNPO1~Xy-s_R zfcs;f)H}1e`pu(hlj_{O-qLso-9?3pEp-jztD9+?AH47VTYQf;jS8K7kEQi{YU{kb zGRkeDjn<4hZDY%47#?b7g5(7|7ieq!>Lc&iu<}T~ePx(sz`)i>I&dWm-3IB-%N&rV zrSVZ{evq=>9USP3bav}6W5cWYI?9f)(-sf+9)q2(S(7L;gYwusyH!J)p-QK?#}Bw~ zvq2_0^q}SBn~*s#X}|K5-b008y3C?%2e?NUuIS2sm6vHzhyNJ(jHpl9$dza3dEUWg z^?$8-g*ufrx{1{0_h<~77RaH&hUVpaNvxHKNeIk8^JkleR_CQ^Z%_O{VqPQ0WMUx_ z?}^rP;=9T^aWY!sFeKD*mFz4GH(8}*mJtXa~$6@>k|Lh(MO&|wd?T^_o<>%a9Du*Fx zA<`}WK4k@k+k_|vi9_)Hv45O=mogAAKq4{01Ln-yUF!ca8^(8s2H8(=@U_ntJ%Q4{ zUntMOVvrIawCvrSNtl@~(e%qNrh=&Xir|{W1BWy+A#Sh$Kj(B?&JYpontzIR#mr-= z^_=D__`1R+!m|r$6_`GW{Qh9pLJTJ7c2Oy&YB^2NH24Binz`E7tk{nd97XuMFQ1?F zFg)9w=k+p5FgpRaX0x`*RrwPRd7^SLTZZCJ7mum>vQJ7wL$9aB^GWdLey7|>HYzk=v)SqMgP~fuL8&A>AaZ+1sWj zA1gtC92?E3EZ)Fx|6ot-nvgOs!1@0IF9{uwAB_e6NPHp4bs#5lg#Yn4Tb3?2R}7HY zEAY?bSb*mp7r*s12V&M3$zMCwsF~s7*BTD92>(}{TTF%IK>=YSR}e>T&fJ*_Y!mjj zVYmiW+A`9GCF#!V=~ARt(i3nM0z;9T3FYb$3Tj~E5KZz2e6xB(qzYsu8XF?$Tu8++ zB%;b;-a$*hzbR>YJ(3j#v%bbKPgxZ4;vRcSqO27Ju23YTqQc9g1#IxCIImBzUJz>p zH%*xe21s24ux0?z(BoFr5K~!PBz|OBj}NE1=0Xe5U`7MSDJqP_UqsGJaeHY%+BQ3& zbVBy71zq@fFtLPRp!3NcE*{$je*s1dG%vOCaRZV;E#!`F5|xNFRAg-V~(kSmK3{x#_qp5$v(Hl zv+*UPzQ#Q+)m`r$28>#Oj(b$nOFg?@C7_#4uEJnf_@ky;!8*y(5W(ow+8!%G%wHr{ zR$8w#p=3*-T`xz4b|r?7A--EmH)EJzGF!Pm-v6nk4IxLf&Pl(5nS3uHT|BZQG9V~h z7U8yF+^nhM?;>qxx@t|z;j7*zW(4ailH?+AH!)|>6ZvOV_dBzMnVFdeCuWsw_(G{e znz7=wfICquYb%=T2~oEp!aqQ~P8)hhr8NrU6Urg;h~Td8{R!1-8q8eOqDhoR&jk)B zSt+$LK;++WfGFAOK!1}=MV(gYQpKhjbTyU%_k2b!9vV-2n+LQxCg+Ewm_@$Ge6k)4 zp@*7CKt<0IRXm%y*aLS;hDUJIr1)0a&#>XwBxR(-1E{15V~=)V7yW$(9-3vdy#25NTp7s8H8u=vgqhWVu87dsQ^4_m=HFo z`-uM1bJ9H|Nh1$xCG)L3|JPe2XIuwyLV~H(EDo(vFtgO3TdcN7+afAk+uFsRu7}BkpuSb7bXLe+~F}uVC63@)Y^v@%#WIg z=5DAIOUS;WWfP!KWXG%t{+RUQiW<5V8D~Rbau>-G{KxCn3(Nb7W{e_mSB>FE3V{Z#$93wckb~q^deM0YB+OfY-v-;Q_ie>DDn6FCQYJpj;?G0oYs(iOxBW33JA=c z8VAIqEkUEK8D>Xp_F`#rONpnCVf`fE6xuLpRAhzq-VJ3ms*+wb;Y6#hH4Plu!b|D% z!ay*n7i2zW5A|}19zN2lZ>SjU#4t)e{A_IQY9R|>5ygE!XH)pl`yH~7!v=$KHo5!2 zr{#R`tKi3%%>K)-7{vECdt8I$N*@=?iL_sFAAv)MVW4F>nB-1(e%UzvVeV+6z~Zn7)*5Z1H^c>Ym2T?b(WWQawZqVgL@0zIsDR2jT58m!o1` z7|xw10wUt-oPvd{9X1o*6_r`1xWfc67U-0jnY7A?OTF}HCvS$LObt!5w9@)<@)oJg z>f3oK5{m#{G^XJcq*s7lAyy==uZhC3W%s53p2{6qnk6e3Aox?ZenMSx778DhKufhG zo9*_u@Hb35BJ47<9wlQ|F#H7$ODoyuhqf|pU3E3?K4+*%7{r0ne zQhjB;z-?jh!Y>>*rMbox;jk3$3YFsPG2gVzm9zF58wyutuIZD)h<7kRMSz zMA{XK@lN0Q$c_ZE@2#M%^venr&b5i+LM%=3gtyHjs$uib`g+ICETo`LJLx%b!A;UJ;!Bv1>uiHDJ5xWuT_k&HiCPVUWOXWT%_CmB?u2_i>bjn^@8kBo<|4ivzlZ{Gg7aq?CN~%%# zjp8~^=_CA2OU|>eTY!j6Huo8Kmphiyc0J6z7-?~w-zY0#-`_&bJZ7O@6ejMr^J*G= zUD6%n4P_IJs7rb)1kUz_0^2+R!2Wts!sTMfAt*?4t3WEgIST=qqGgid5)C?h+VP?D z4XKrqc@TGXh}7#1eJdle!N5_(OY(c}HAl6&r(LJ+;D__`o*Y=Yo|I;+MP5lYiyJnDT}>_6=Kk6X5YkXx zk0V0~5Jv4O)8NjQ$LjMO6xk+7xyRrN{YleydrQ))@gP>FqZM$1dTRSf|SxsAD`Fm$UWPzlWofv8C=6u~NWl6lFOFFxm4;BDJ!^YlTg6i z%Zi;mLP9H+r<7v?Du;?HrI zcTA%z zbEj7Qbnno#XDJ)zzI)zz)|Yp~f1cQIy7=GIsoy(oX!R)bL`LVr>Q4t%%s%|)`84-g zy*hS!ySMoG+`S>gI~;8@xWhrSv@ef#2X)Um7`WfhjGikKH?QW7eD8!9LUKO$)Hu&=GH}dFtn*-LD?r zvu|H;#N*q&gndtbdX0;3_huoUb}K)6@BV86J0Dzmmuq>tsN{K$NmN|)-Q3s<0rBk~ zBvFgBKn%fR8-Auv3%K{;LCVR3H6=;6>f8R|6aV?ck)nIWZNJ_zo$#*ioWgoX&Y$Xe zW5V;F`9JiJtUf*Gqs~RoflcL3I6L9WrNF&A)9JWO#SxNv9kC?0eX5LW5SB z4y*PY+1kO->Gt-dZNBx+BtBgFX13PJnFS|`K3v!wnmY5r$vN{*Rhs;9zJva}l+mHT zw=VGB-{X^2{_y!{9V_ggGwKb48Wr99&YkjqPyIf!pq~A$yl^x9>3c2enCSm3 za7s2@FuuXf_M5-yH+$`UdBygnn_vI!pdUGPy6;8pb~Zm^s%Fkei7q%Y?`nOmL)o4^+=uZ=6z@VbI~)O0_GR+KdK23eHLdW2Ck5#jha4BWnHyX>=*r0D(=hj&ssoL7> zV&&rD^B=ERU+~=*J&XZ9;r&f3Cbi1%IOxRzopWZ3#5`75{`mR?gBkZSZ}PmyUvJf! zV}4|GgT#ra<5%AG&HffO`|FE?MUh3dO%k6Q%^5%8oy~MW@ZrT`y9TXVdj*>451%*x z@$Py+t;c^B(|i5Se#U!uZ`l92(zi*2yzk6fH0Nk-la|f%F!Vty?)<*Ls^|Qrsh)Qh z?>T<{p-t=il?^;os(d_9QuMyk9PjK;w~P%um#Nwp1!TU5?|;{?EL8~ zZuH+kH=3O-Of7eA&~)F?wGD1hqV;+84_}#}|MU!?u>0ddjApp^(K!E$+F^UTR{whK z^@Nk}^v4Z(8(JpvneV|0ms4t}A7h4314s9oZjNrAn#SN(o9 zZBq2x`!s0Nd-z<}^d2y2kI~%=Elm|Yj zx5Cxcy+QP@Et5~CO&WC2rNM7c%Z2S(W%>0?o7%0tde^vs1^66B2o+p55Wru?W_gxrcJtewp#<>lvm0OUZ&y`02Q9> zH-_7o%qc86IVyukJ>cP;^5+KapE25V@trf18s09B2^#Nx^zy)WAcBdlz0U9dJp847 zU6aHsAnC`u3scciGxJkV@v1qqX>N@QIy9KR;ckmNK&#!yR!ru%&wE4=T}Pic6CMGg zAt|3_9ELt4aMOU9#{k39|pH*Kxx&dwOZqJf@7A4bz6 zC-3!0p*KUhX6lnL%+WF@U&RiOvlXv zkSFUBGU=2DCb&+q`%T}%gDO9(`q+oh%msoM%vXO$1+AWIHMQVulW6}zt}LosGfl2Xfv@?@ePSlGj#i6xDnMfpE->jeyzr_5HJ z0wV((b$OD9Y*t_D_!jhYVL;Bj{ym zd(1|}jGf1yN6iO8Ka-q{HWOsVP;Q2z8&R;bI)f-i%y>*dOFcjYq)SoUgi9%bV|+b} z>wT8fIT14t)`u*w=SIwE-EOt{HO{_uHso|dNYh^rlxdI@z<+89yaq~nSRwa;i*cmJ z2d`p*c(c_X{$itK;i|pKTp?RI=exEoK1Q3YTmPRVtv|9=wO9`YNrzUA?W1R{7;&g7I2kSRB;HztFwq`hq}Et5&%mpt45C?+>V_F z86a~5GH#4!mdk#ozJssJ#PjRH(jA}*$N;x928GYq?IK^=7!wjvU?tPSN;PDX3DhOL zCo`$`hL(gf(z5nXmqFohSyg`T|E73MP}&vw2IR@Q_J=fToSI5u1k_HZ7Ax&gh0OP9q-!CGoczz zJ@`{)2c-7@sd7ilaQVe<^NH_YsXDDLoa=_aO;AWt%84dHt|i)-Jx2SJ3%&{dn5nva z7vx82sID5alRF_=d7?H9pOIRR^;IE zLwSXa5E$0M&{rm&D{Qt0firF=g z)Mdwv38;gtWHHn4lO@O^PJzCG%{YouSQ;l`0jrJusuQvo!9Tu38?#Z#m_OGBT&t*W zkbJ9X&=Vd$uB992eVvK%*C^E!GH_!sb7c^<#e`et+`j^=aVd#;3%! zw5@Z>xyk2qVhPwNqfP&N?#DY~TH2AO9iE+*orLb25g7q5qs`&ZsN&nm%7j9^8@|y? z$S@*jhUSrv`XGLwB#gl3lq^{6j~OW%)K5Wn%wl;_ZUYu_uIhn<-Qim>RKjE+Cwcx! zirXMl_L%sIl?MJ&ugN?(=8#I@0cMqvGd>HQ4HuERl(_0vHvW{y%&8qc65EN5REBmT zqyE1{-1h=9+ed%>$Y|I>Paa;NYHp!G=+l;;LB9{xe3YH%$FG5?{BCajBng@v@t#C6Lyq+mWln|mOR8&% zOS7XD9uN1fZNK(3B)rb0o0medSm(`kkKZrjj?z}m=kjh-EH-gg5;$A>1{60o zqgX1re7C3)iSNT+Oti;YGAmE*NhFGezZe>dV`r>lnB3yvuax%Ha{ffj3b)|vthMld zqtWKHWprX&7Ojc4F~202rLgj?1Bpb%h%HOJ@}}~nN*29Is0m7tY%;1$&ZeopUgvDq z@FsJ^civJ)c}64ZuGF?0vT>Y`Ab!VQfD*c8EVJDv?_)h_{+(bHp;?wlPXrbOup{AYtj&{%?mf2CQ&w` zLomx;YM_&(Dl(_j#iuGFrE4ZtObCc_{&cz~nVE4XI-Y{A{mV^P>ImVA$%9oa`~c^! z?T(Y+69%x>QGQ`A(weni591Cxm{Sy2eqes3Nkj!se}E%UT;L>xSe#t#kIl{lygX1d zTuuxg@ZLrTDG`x-k89a9N#@07B)}$7;H|_2D2a0h!*MW8PO^IoQZ?x$Ve?c!VPlkd z_|e^AFs~#j_mx?baif>;c zf>)+~JzXL8{&uqbnZ~qKcT>1CnaIP@ zPIL9J6o;+L^}{M0up-MEHqBv8;(&SUxBN+<)?ud7?@}FNxKj2#Xxh|G7nT+)t@)00 z!dfV6T@Nfud``fbwQEwy?MbB&x=z_cWCJy;OKOXUT_nXB;eM8~=U@nv^hYJ;NZ&Vb zB#&JVY!ib+w|iJ~W&o;Este$Hz<*TfzWED%d=zp#+2vq?=C)Yx_Fzj@A(sJXs|M(o z_{)0dcfnG_EFf-jE|bA*pGAVy><~2O*5zxj&;pk!mi*}Qw^MP@CYhgfmtLJb#~@U8 zA&m^#Trbu;g1%Y2*JhC<{S&Cb^jFR}4H-ED0G_f4KY=HMpe%%=A&j!aJg;0h<0PEk zVS)Pz3ZdS=u8$_M)M-*#ADvT!!_!;jt#cWsk)Y2{WZ|_T@ zNr3*u7)hR1^U%=)#Q<*m!60CKpmI181D^w1O7>@OA+TgPa=}&k{C>)?Oy!*hqW<~sO4xpiIaC&G`G@jfPhjzeY4#{i(l15NKmZ)S z=Wd{o*cYt1--@Eu$CZ6y7lGfmuN5q)*1&Kclne}D-R--2b2-?StDF!I3yxGQSdiDo zRO+fRK)>A|4oTWBB(_P`9Aur(WDm{!q_NIZ!I>_GBP9rb{Im;V>o1rgw$yIM zAnh}$7%0s>HvjBNEc~KXSj|~snzR>9myWo{0o*n-fr!?IMbpJz+ZpKN!C8h_Kl=+@ zJ?tTZ_MMy;`Pd~0fVH24Or;9CsLp{x89eQL^zb2^o|FO2?(;|<*mK$3^A3I=5COu1 z4!a}qh<>aQL*l?nfcy|1TB~VZ{Lv)glv(&v*mTSxk4x+y!R3>vtc3ra~&9)}M2L zX?7%1{}1GX?Cf*{n8J5O{GElgNCqmb0z)}Vyg(00_B6}HOLDOKD z7(~`6^ZG71KZt1K5(q}GVgPm~4H^?F`)fXx8=rROLFdH5bfN(ulnp^O`n~+^zR;3c z=_nG6Q7NE(VU7mZd69Fb8}$P8u2>R4TJUA!m6vg__-+zx50HSxOlS~T3SNPOkYN*#0pcWefNW-xXS(^Z-7+CvbeG(?)5ErV@w$AXD5 z?-fL##v~W49Z4>G?;U@ke`YUQ-A;XfvHYQEI^Hn*Rd}X^A%x@JdK4p$Wn(stl-^}4 zr4|;%2Fpg@ZO`b*{(|l&K6{ddk=6Ym4XdmkCGqneGHSZ2%z&|nk<}CJ6`Zv*37|!5 zjgPXicoE+?n|wlKEc=bi0#Xb|-j+M)|f_fOUIlJrjbxj}bT;S_-ynS2f)J2zt0{O7_ zyvI2g8uTKL{g7fGrJgA5h`6;@vcV*SrvhJNeagL?07Z-~} zyV70tO|0;fvka39imT_p*R9jMmJir(? zTic*KvYk=B|F6YEgHj5V+fVOn30hb79bGn>qR!ra;l|!c``g_GYdmW~FaPF=tMX&1 z>z;C|^1HnzX%OpaUHkVIi&dphdrh~4lINt3LrLh#=Y&fEN}!Sp;q@2lEo%AfG8s;cHEd4}%yJ5t*Gq3$M4ap=h# zON}MVY)afRoXsDk%YkfQJ|+LuRpq^htS(Lle9H{)QoLZ=$nPL%#Miji@cwvv*n>r19pW(+)EQ>yJ$36_ILo0gXjD<1y(v1(3)U^&y# z>Xx?Mta@anq)t-s)QIpf2aHiYF*Ihx9OV^ZH z@}2kXIS}+~x|%)VXl%)L8oJ-(&lHx|WFkc?pCxz~m*7)I`LFZ5PhObX_2#t-$F04o zX%!n9Ta>*u?Ly+RmKT zImgHvmB+Ebz<-g2sYkOdruO)$lP5 z&UEQ5mb}VJXRlVxq0|`P{BdSbcQ()LSC>JA`LVOYmtJx*z4-O^Xv=_??=b)6)!#3g zw^DKQCNbP%9<7(Yb$bNToViZoZw@4k)Q*~ShwzWgdYl~IVW4aff9&_Ob)9zeL-qSv zFZgZH^Nl3J)v4`&R&g!A z*p}Sfc1L4Nk}H&9+f1`vZd;m={ib#xfnRwcaqi76Ps{De0qj5BPg=4uDxVkT^3bNx zJC+=5;1CjB@*|#Kl9}T`xadroiQyaK^NLW)bN*U~_piej(XT15UQN4ce2G<_HL>zQ z3^)C)u7&PIYLmCt#|a(6xAOLj9!|dYct9fJi^`ml`$=})ApS?UrnnpU+s)tS$Ctg? z%{NjNs>eWo=c;e1@xyu%KKDy0i*elUds0rr?`ZPZSne6Ofyny(qV`vVU1?=SCy%@1 z<+L?%$;}oGrVsKYJnwTb@{hUTBZSw7RH{T;l0}#oODN`ZEk=)s61i9yZwbGt(0QowS1>~&T?{Liz*Mwz#nl~pl&Mn* zj}xhdTCOB>(`yFG^U1S@?cH!8P^LOWz2**R4dxHf2tGNy^&q)f_`dv{Cr2{1kg9f! zC`C`*y^b`T>s?dOO^<+@8y+{Nc&U$wtG{sa>R^1|7q+lOF&vQBpy(;y21IM{=#Ky4 zaUc!Plo@=X1pn;-%bw-L=ADi0&!g)C{I|oITB*WJ%B*3D!W5AGF3xp%4&J4zei{g3+K5pkc&ap9WYPT4x zt;qRO<8nUqZPV`VXXIAmy2c>F2VajlvtK)15g_$FdXw9daYEHjQd~aN+Be$RUZ)%w zP?_@z>S)Q8h$#9psW|7m3o?}O$+-2zIn(jCvEXJc${!`-gx*yPah<>Wh7L{%{eiI+ z;kx#KxTV#P4@>1PR%mCzxkjI)){duu;)1rq%9LS7p2T(>Zj4CXdDhSS!*6@%2$ps; z>k00FiihT$g4>ZCU7}p|P;&N$of;C8wcX4h2CBqF%go3hIx|S28Jf!s3F@>=@O^sM z8!>b-KiGisMd|_&q&^MRXe9#nfY+yOxR0?gL=<_uowO`}U9l&6G4Tmy3!(K4m5F*Z zE1C8eim+e)O3c8QH_jU-7ZJ&m26Qp6srrD}i`~@P&06RDajDN{IH15bmsD=n$Ec>J zGW+2^R7It;geuGnjG3_^nN@$RqI&zdib1*S$;^SCZQ9&)U}d7J$i7^-!A^2wXu!U5 zoT=g0cD)PCRrNahZAnXj_7~?1gWs3Ug2;5&kbT|KKt{>agRUEVr@2SeUHM0JLQYz8 zeh(P#Zjev7zyQV-Kp6|UviX76d}u5pk-~!vRa617F?B=6eDx8q@hpfysoY#BRY?Y= z2HB%jPA2rk@999ruD|9h1Zq`Fz6_{T8O{wj{)E@YO(hna2YaO!D&*XI>9f2*}J=i0@M^xk-=29-;>IjJV^E=~GAYgsFLCfH*(d z!Yo@7(`6dz18$wdKM)V4Of3^rQ=#ZNmvl7^2OAYg{H$}a#m>xOHT(eV!`0_E%U2n; z5gZh@3e0CW1K7nbmDFvaHg54^f`(vu1vOpS6_&_~nq{!{&z&!dPH827?yfPyoq0U@ zZh@cy!a*ePenf{H@tr^4342_QALj1wbNd-nbfmz{%JZ7rQ~l(%yQjnjqOHKzy=J#* zb3{*xgU_F%wws~D$&I|+fx<%b$>yAy!JufcP%dLEO1Ms%KGhRI{>uxXtuRI^NiMj& zH=&b$n=WQ$Ix0w%g;CLMg1Z$wZ>KQVx+3sXA8$kvTM1eH^vl+!lz8?6xK17Y`mxM_S5C&ZRakcGb#9-(6dTxybzY@CjTuwc8{ z?$eN`Mu|G&Fg`a|1k)E%UE&wm-V(+hU!FbP!zePS00*nE_Lr2lrqmg=&g^3~&Ygg; z@hV9r?UagF`+-5KsWl=#*Z)2X){~?XyaS2;kO|3XIeS*%ninva& zT*@vmNJ&;>Q`otT{?ELp+m?1pV8^$DG@=4ovW6xq^xh95?6nSRHUK6Z2w2Rh@_;DioQzLXPCzA>{kL=IGa5 zV=)xZYJB7E-?>C}dT<0b*$80ZSQ33yWH58%mN9U?!iL0#DwO8jTn3V#FAB+LQprNL z++X1Hvo<(6x^3VS0ivk;Yo_-Zj@Nmy?Xoj7fPHgZB2f)tGC;`UWE(_oPR0riJd+g)|mGdcHnAY3PY7FKLHyRW~NV$$H{i95_BigdR zsD*TkD|hqDcA9cPYI8>kG%tJ=f~S%a8bIa%YX0?35ukohr?@xHTMM7tCes*y6i346 zzT1TiA&o8uyOTDh03DyDz7m+EQ%wKvcwQ3?kpBGfPckkx;xI?gO#!6Vt|xAw#5vlV zIYk#v@-lJ<<@GcL#58Lz9Z2(|aD`2A>ZQ9h-6s1|{UVD(PqrAlPCEBAP3Vly|I@(> zzuTtm6uzOD=65$fk(aSocW+o<6GR6J*B~k-Y!FZZwz|M(4NejKn?lpgQWmEf7>l(r zri*-$L027F{L-OibEmmKZGMhIvoTAA%Mq7)gQ&pG!YG65kz$~W;RIJk>hr(Aj%+>0 zdA6`H5f!PrD1o8~@`{?v+;Y&qin>~0O)rSZMC=&RFAvO7uo@fBKzQNjB~G4jq}DFD zh7?qJKg#><4j2O<)5DJ1WbS7FQNMvb%m>lm^XBtsfEWV{oDNQk0q_m7%xU=i%` z;-aWs48q8gLwY~=1&>kiGz)xgVh`iuY-EI#6>2nhJj#fkqO8p$$_E{6j*bFC2k^vDjjDA zMMsUGUo5g18^|KLi=QIay)obpv4b3_ z&SXY@|0&`2v;KadJ6y?xJRNIN_U(xJz;=$F#5Tq<6%;Ste?;-3l2(OG14WG;@dFg{bL26zYF{;_3#oOibUReuf*{_6PN+r zVH5qgv1g~58CgxdWprhU&+foL&&{?KJTFX+<|vj} z^H1o^C0uUREk1Z5KM$E8=iUh6eOeH>y_6zFQ4kr(+;~Ie=y9QdXa_#-!i1`9HxGu0O)k06upFso-~Jy)Hi~~N zi=>~U(kaGjOmK}+2>Za>xcw@*S&<y7^QNQh3rdQbSQpdazSfNEfBC+g;d8O^j|gEr@ko;?(qLt zqZ!gXsByC_)3}?Znvt?X;gmEK_}6wI`;K~z%3ALHkJ{9x9_mw}y|H*3;Q22tc?oBR zh>f46gnYwUf$auKTgkSQ_g=h8xwCm{@@6MDf1Qws@|VTSNgOwKT6w#w!2roI$t?42 z$AcPDb$i58f&szxp`B#Af_~zhXolACxl1MCYPEK724 zY63kksqy7)Z7K@vhc%=4YN9at8iPA?WEvpEt4l7D)E$ayD4r@vqEt?3NHk;)xYOqwJ2K z@Z#B;k3Kof3zvF(^h zGNioedmEh)r@WirdqK_D=|i+j!Y8Tt=+pKyrKK-23TOv%oP=CHr;2Iy4N!4(b27Y9 zxgK1!E*feKvMe9`l2dW80Jo@y8+2?t<+6G|Y{+KPGVG?3)9Ubgf~N{!7{3A1S{4pgeCe-SWvwbtkTg zlR4jH!;w`i)2$ruPzF<<+P&TeJFHzErE6u9ZbZ43o!!f!8-LLt(weoG)j3nWV%D>) zZto&N|FXeP>yEzk5X&T^;(Jx;`uj-{EANP_sZrcznUgdW|`Ic zXNr9@=2+jC5g4ZtY(u+on&H**;qIez{j8i<{3|m9{2Z(2sm(Ql1X$l^xhaVCuRS+B z<2B|cI4l;UClX>=D@L=o%!8p)CWh_Os&SfU%{_KUF-@b8g-z?r!Y%W{i!O$q%eT|( z_MS-Lyn97uEm14|j-^qzWZd@;Wp0MI-q%(>5VMjIw*RbPNU)b$8-DJ!T$(uJ0>rS6)8PWi3|H;HHHhPS__O4sWRWLGFF)vTO(v>5-?WMOXI zbo}Nw2g4mYl6%b$2cA`Z&n7mY^L1>~x@1Kp`moa7pjh`6Xw{9?AB-Zn2!jq z4pq=gGcjh-O_3*_ zU$Z+uu<8ry=NNYQrI)2Glf9%1jVlZ}Ix76EZbPFPzeFFE`QN3fUD*3ee&e29jGBkq*%yhqhfncVhCZGvC*BjbKb!V4rqp?O zx23n2*o(s)-2TPcQ4u@}7GZ8@FWe0XI)rD^TI8v@x4uNO(Fw}M-@V0UvS}}{nG(<0 zU}1IFsVax)L~|vtLgCor<)2%_T_YkK89{>Y<2Nsy`l%nXz2@HevsD2#(zo>Q>3Sb3 zyHHl%GdH%+SVT(Tja;73?aG{rrQ4Mpw^gDI>Gi$Oj6AZHQd|g6QM92twYvMt@ATYn zRY7;|_zf#tJ#ne%tlT|VbgkNhz9xCZry_Y^zGsnScueL8G;2D|hU@ZOyQHiGPL;8@ z6zqm692smpE-frgF4P_RsXN5$u~7Tq+nmSK@~0kDNt1OkO$(znp4B~zb7j@m&*pUM z2tU0#FDu%xon3u(g*uAeV0g=Z@n@Mp(SWRneQ9^i0&mTShEGm~$qZfx6A4rvS4snK zE?6g8A87OSqAn*q_9&?kH};??ViNNxj8x&9NU2o4ma9~MSE4z!LMCDSMX?1Kiw;IJM0ycz&qz5mZW0OKUTifDeXN+(J64n<4(oP6c0k>kE=~JbuR_H z9O4|6J$^ATuK641SATEwy_N4K=&Gl3z^E&?da9;bxY|}p*1mN!P+%eQ@xVnxW3v>w z08R7DzN;yu3-W=}7Tc8%lufLfO>-!U+l)#buuPTy}oqQqY{Whhw{`nK* zB$wgGao&y3U+W!m8;)|==QyHivgkg1NWZ@|Y-X;m;aNh`m7CYAy$hP9sy^SaOQ7hy zB`i8|=ve>AUei`SIDtN?Z}_CCx6p{IfwBKcu_-@(?7D#tet+64)l)C+-ySp7zJBa% z{bK6*>9ABhK}K~~cm_4&n!@d|t)1Uphi6Iytw*npJsUZ7`-kk)8d3(cv-0YvK8XA= z7sf04E{+uFw+g<>rS{GYo4F={e+T$rcj5YXuNJ66Ooo|hbQBsgTy8UbCz)3ZDza+w z*DZRF+T%|v-g3FjSaWdB*Q0RVKlJLynh!F?+0_BNWb^NQn@hd9Oq(ZOkwjGyD{`m$ z7^iGL`^L3wif{JA^M(aFX0ewaJ@l-T-sz!LEO4;R*Teim<)!%X`HGE<^M<%i{emy7 zBbFik!-~4bA;V`4`1gg)l*XT<=&a;lreO@K%t}>ps7#3&zhAMPMK(Vd=hWuQ>UV$G z$#6<_*q+duVis#LKjSL0cF1M|AFxV#aj@Zz`C~CfYKs<@fKKz<;;XC{H&~sU3`4FB z#~3-R3`gqiD;{oV3}_lwIC-e_=1*OIlm3E-K=fnZfsK3XT9?9SO6P4iPW2t%Kgk)O ztRE3-9&4dA=cT$6fakLLJhr=4nn9Nvl%18dKRCHec*@5D1u8m2!e{W8?5->p&;p1( zKw0ues9$zf`P7)~&O2$Xlka`HaGTQo`P`=#8&9dxa>MH7?Z>kIv`XWau~55D37VGsV|*TNnG#Y@5-f^UBdfAjug zMazQfX5ScM-R3*@Yzt_vKN)*-{NV_Y00G!>2kJ0#q=4Tbg_+RA02RRZ8F%lC@Gl7> zi{8t15vrwK;Qc|ECQ5M5mvqxa;@Ah_ujrcf;qRHfR?XYTWK%+(U8?BRuNMx+6t$Df z#ABxhnC!~}=-L_AwE0c6ra$X1fbgMhzC(0dMNGSc6EM{aE_LdUiEx}jBNLT;o&BLe zW>^gqBvvK=`}2&cSHXb(HjB;3TnDmJ0?;Y|d>)>`c7vkx!~~fET#CJo2zKr_ zM^87wTIn+|>8WBe^80pjN%LM@xSN}KD%6AOhPtl@^$inW51Jc}z8>3d`1pFz-U#*e zqKj3uF;oV|pr@&yMNC&(X z&^Zygvj)ZjNh*+hWrzCB4;7tLu$9AT@jM``v0_P}(yIDJXa^tAU_d|#h!_ICDmG8x zU)mM}Y>%8Bp7C*R@^1<}1eqpdTf(ud^I1q0h^OvN-T*M&TlY4%#k82C^!i%RH9X`6 zoHv;S+;W-BorDT6AC%3HdI8MHnYfnzA3nTX(#Z4?7iZ=8E^-a>zrRN%+G$_fCxwiR z+0=%NOxW~?j7-@qhKx+x>Gke1|fUh${y?w;qbHERe<1x<+;4oitPA9l+> z;XYdz(%mYX;dfg9gk_71X^ku`<$1 zkT!xBZnJN1G%Wv~BLZypcRT6O;>U6EVJ+nlOJGj7HPh_?Aknt?)fZ4Y!}sX^mvl#N zq0$@=2@LWT*S}onVc05~8=Z#3f88#!AKfon*gZ_0$sNYa3kN+6bX@Y-_ltG`(?^T1 z5K*2aOT(2 z!hhfM{9f!s9W7eHcla}%hn|_57A}2-WjH0($j^e-tuTsO5np;{a=PolVQ%_4q8Ty5 zfVGzQB@vhI!fKh((=@F&oKaXv%^@ZsdDxgP?W_1`DtR-H2s^f+mrJKz@(L%ZSHEpGm?A4tU7BBtf2P%75v19Qe8`jQl`O6z2CI05>dIu7pogo=($X zs(2^+Ft^+jK>10f0);Za!7Hg~diXA`)L(i%uR`7xEvijdX&NjP%N+1#tHPwBM0v%6 z)6fwSrIs@52eHEPZwFzn`txP=V_Dpo9JZ84`@UcTNYW(!7K6;Fg0&2@M`51toIged zNP|>;5^$s>c9khaII)ceNdpQYlSRwsrzwb%$D_0W`7JcD#vGvBzI6I+;hZQePM!Qd z$nrxEK$f_lEMY*0Zrf+q`|6abf)qVS-C8c(Bl!UJyD|u?L~+MQKZ)WbdlP?)M+l3; z1i0i_;%|gfB|YIbZQUVHq5(3JtK?^7iofVI-MV0b zEMZW3GAPJ@%+RBx{w|30hy5oyRZ)Qgpr`i=BMeqEbfAa<=tG7a7MS+?kLVK?+0K78 zK?jQ%|F0;JS*2q@0_}A8BO|hkQ0(z*+#D8xQ6_ScT!P?vL35*?J-~Vt!mBeTvv5=u)2}Q_(U>gLYjA+56sM?== zNb@kgipqeYp_Q!4lq+}C<=z%b{g;BZ4>=cJJ+&3qa&29~=CrZO$8lFu{wL=DKk5G= zfT{_K#3Ugr3mGc#x4_B0Q&F)BSECU!#qLV@gt<)6)e1Y=SOHT#NY8;XA_~{gEV}Cx zp}Yt@=g?NXv+_UXFfB4@8XPE{cYY-f4vQ>=Jq+l||8t!gLG%Q;f0)`o>=Li0NddW8 zNn9|4rdt#&XIbD#=S8OehV#lb4M?Te-vxdrrwu0}ZIgC=ZWfW%#x(g4Uviuvi-jcs zag08&1!OSL&bdREUWIc_IqNrt5re$kXju=d;{VELP?rEDhxP`GnMFYF z;`Ol|q8*l74njOA6ET6n3YdvmtO(@hevhnHl0PGEJG2BjMRI=zW^ytxL5z5j*kt+;FK#VVn zqVhEhfa+(W4=fL|EV<4N0;{pk*T`3S#e#?@9o7FC2onDwR59_W5HI^B#^Y8-h*& zt~APW{h(}QsU;76-*d+VsAy)s0SwNBa6d=*;j<_Jo_^bdR#T`b0VYuzWpxJWP|`aq z6iy(r!p0u*=LXpUwPLwaDP9u|2T{$9#$bZ2Nsr{D1a(j z2QJ~GkS7L|osR-TFO9Ns1VQ!xQh@VNp^NxKog$meWk+_!TnE%8{n+P^7`I#B&!Qm( z{T;Mkmd0lY(Ua9RJ}sqBNI#oEscDc|me$6YegdrucI<^EzElN6Q3|0AxA8uqfb1)? zwsJ18^x}z+&JIm>;~zSO6jyl%*5?kZ>`Q|4!!*UG5qQR+rtI2|9>#P}NRNMDeG593 zbg$2+MdV$PNBiCVoi$WD(`86#rMvzt{JNm%(aCAGX|BqEt&3Z-D|({kKkr@I_$JNP zS>aw)cU5_N`Pe?fFXP$fJ4a;KmNI5O=9V)%TQL~jzPxusspSX7J6^-dEXu@T1*?5V zJ~S^D_Oe~FI6QHXoACO`+vKBxrM?bTd#<{@_xfeuTSby2IMOXY@#U&?cg%I;NZJgZ z-jaPFyY^t;e$oqeJHw+iFBpg4p7zjSkUch=^u=d-Dy?cEI!LyEg(oywCe!IJKEgG+ z<*oo((u-d+$MJMA4<(zjoEct9(8sPyyJo2aj*4mR?}M7d%hnRFkBG)!zfV#byJ|Y8 zLs*ER&s(sV6YhwNar;|5p64ZM(F^@B`Jx@#oY#ML^|P>4i!6nE+GuTn?fNCvD1w$4ZGKe1Cy ztewjJ!f@dBs|Un(s+q2u=s%@0t=tgXcvjt!VMI$=b3EXe{a-)Ij?5{rXpB}**|HE^ z@|vuQ^<$|_^*1(ZJ&fvk&l%9OE zM(oZ!{4W21g|Xt9(wU%~#EnN+%u}R~^=@k1Dzem^lzEYO-XK0{=Je9*!Dq__A4Dk? zH2xa-C9T(cfj=O~`Q&%HgKtj1Rji>>;~S~;zvM{8%JsE-WDmD|Ro3F~``!$M`}V78 zU5Orgao0t;JWR#)=wfb^4gc;x&($91e6IP9Gd`k7eb(3VUF7CH)__BuGZNDK(c7a* z-Djnj66&vh_tOz&rMTWYIG08g8P2MbavI&n&-qV1?Rp0A>Z&R4_Qd9+w=dm($_Ker z>bi+E+Hm{_z^D(NX@ezKCW(2UYEI#U6PtNW=d1)8u66R`8_6xlu1R^H`n$(YwWY zEMqML*&CmRyXs?}6Nh!z)Kylq7e4m%j_|AvR=z)8a3d|$^I20$UHRp!=H?nZ@72Zg z26&|Yeg7}s06|LwRj=;5fzy{;MEz5CrZCxjo=e@qY*oOK!lX30ey}lKWo2e?=B=$e z{e;fcw=bXGb}VWqFH(t;%=l-&q_$`@Yb?j`B@*{uuajILh6D}QGbVpmG~d0yk8ZWh zF6Q{>EN<9sl$n;B(>3mDooNQ79 zESX;E+1yUv5o0md63E>`XlM*8VS4gGvF05$9}SNz081}zQzn(ydQygZ z+*Wl*^$y*0D2cl}FQKxi-fY-#Ik^;20`ad(d`nfdOHKMJ%8PFk_Nls+=4y5k`iM^J z1?lZ+52oLJJw{lUdg$_YQRA=Ei!Qt5hd95NrMy>m@g1fqU;S+%>o4_CR8=9GB}ce? zNM$a1f?IdHonBhV%fY*>&(1CHWl5F_TS&kUTD$y?CiSYGYeV|0M~t5 z*jt2m-Nv6`wW25cNv8&2AN-*qtP)*-sZ>3x>GnL$8gNwp=d%LYv|jfxs$_V; zz%u!|$|5A|Tbwt0CGKA_3<$0Q!2rt0zQU4XfEKbJ+vsS_&ztwh4X?tnq6MpHNc32R z?kJUkBP%@5(mza-Pd>CxiG_H)W-=b$ei+K^}yXPecp9u~-o{gIGKUJE0dkrD5 zH!(ae_6E0|8HU646JiMEYkPh3Fz4bkpk%v+Y#d&JF8jcL4ZSSze;LDxV9hMjFyB;f zeFyf)_c-_)!jX&evZ z#+S6L=v54ROE63TzOHMf7zC0U%}X?V?u48r)@WS(^pk1{@zs2Vo1bb)b8BtMr*YMi zYqWetlsW3c5i@&mw$Jt}YtgJ&jLP%@OMqBiG!HlW#@uc;kF=NQnXI=PH|CfCzqV9j z2oqhZgdol9GzhN=BklDsNLj|Gk#jmKY<%(%zny$O>Br#6y%YQ+DJKLSW-kC8#z$B# zUC1T(KnUJDz}bJ%!?%>-BU-74Ws&+kv&bOndTNB;)S&3Oj&t3|@Z}ShMNuAkZi!u8 zN&WJG#I@f9hlPy*_QB8+>2)(d=1M=pc52y(-Cr)cZFR=n@F!$oRPY@{wHb#W( z1Y>{z0GF>>(Ol2hKo%JF!^9l`2wfJyZ}%fWRdXtAO&}w$roSW5Bzi+aTP7rHd}LiG zArfrU9@Y34TtyR)L8lS0l2iu~K?wo1KIP82k#|8WO+GJ`59IwHC5~T>gFr(2urg zzrYh`x)=dgz&MUwg01v+T3Z`sPB(T^YhPdoK(lp@wi`e&F@`y>{z6e^W4woP=f~jk zpUf_!bhu!h_;JOAgN-TD251|CxMHGnToDCCka$*6E-hNLX<>{FA*O4r_#%pe&^C$| z_7rC_kec}p5}+$1jr%ne*u4k9SMxrReUKaWEfgJP;$@tvFEHQzDQ{jS=e6@Eu5%@I z+7^I-W^AL7_g|+0E-W+5jAN)iDvTmr>KIfyGabRbr`)Nv6=l>^fP4jPSjVLnPzlKc zq3@q#fyIBzeQ?@j^Ri=ih zu&Iw>j$cRaI1R9Bbu9!FOY325X9gQJ@;oQsDU9HT#v}xrJ88!}?M^`UWaqhO`hw2Jw=# zINQcooYwfr#L?EmWb>|_-H+{wSt;+?e&AViTDYT;N6W(>&Ueg-5=@UC{>YJ|G( z_d|{3UWz8$5IR#l9DU7Ub{}fxX(f0!LOpZ)^M(fKmXSNRo3ZtRFT+j)cpCJIvIij1 z2#LAn4Q>xXV88ZTM|i@CIrs%K-coL9R0m=PLI$Hy@mGA^E(A!#(98?lk09LiKbTb; z3>`?u5R$>ta~J=>7GpT2Qm3ZTo&mBkf7}ieipY?v*pYJlpRwo6urzP1v6q0orce(i zQ-`UIu>I8$k0BKippl+R7{MBEu>LVWxSosr7ZYjnrzJi|$YNA2$S_Mt$H1!yi9BbJ zh+3uU6oMk735&E-q`Q@ixQ6#k`D<&Sv+hTa}u zLB_3rpDm}T$KMVA4E5* zwaQsYiH-~f;O*5DrqdMNV3e0K+*I=1+7UJ69u4*!3I$p(dG z@-Lu3g#T&8I~@PXKj)Cpm-_nyB~WH-v6bJr6NFxj~WC9XVUt!+^+CL$$ zeG)!P!*@&x_6LbB_^WU*Dt9a$h1Ucuko^ysxk2%dc+hI27-SytLao#680&m)hOPxe zO|RdF&x6H_oBx0agJJi13Q^aL?J%r9T9;udkK)G0E3}UW#W!9UlEN1o{(~%kF5zoW z4SVeM9y&D0QWuZ>;2wtJPwG057Wd5Sy%jsTKSZW&e;R<`$hbbQNH)f^b`lBze5}n5 zd#Ut^J_W*9bXmeSq(HAyborpFDD1TmhEC+zLdXV>AR8nI=YHa_-J!quA1&^+!FG?|L zANDu6@+<78=>o@8P~hm(coDqOqa!LuxGmw!*narPgj3^H)S6XsD{{}{(_tG8zR))z)E zt<4t+?AYfck*B>oRP-pz%GSebs=e}eiWa~3_KiOe^mldhKBc<0|Mr19{Nq<`dB;uc z`)YQ0KNkCaeWWBXwo&A`_Qc`npKoFsEw;&fYEQ6)=QI>8ZvKX{KhFH#vfZ};w7jjZ zLCNf4lyqnfB@K82*@-RmxUm&TCHFARIMIgrn_txaKU95pAlKjb|I5hgMImKmWknG( z$`*MUNf`-|GLlW%*}RN0GoqyIy;sVXQB-7aY1t{G2;XyG-tYJ4_xqz~PtWJQ=bn4+ zIp^Nz^Yyro=V-c9y^qr4(2r2=ii`v_tmm^WpI?nfO2tp2+V%EO+iMuztK)wRGEDAt zgHp>mJE?jxA85LZi<@s*E*cwoyhAdKPD43{Hl((mAn0hM_GY)-Gety+Wn|(!x_XMv zasXddjY0Y!Mw$<_&g~j3+Ao#ATKtt#9W|OhzMN9MvetbiUD_di zY~aLSj83JK^dw)N^`y%;|NIe&aSx7sS6MfUsdjH2+YjF1xRPjE z%)pV~OEjd=CB5>hVV}ryPU+wx9 zWLjT&C!~;P6b*KCk$6##?tM~D;DoiIoSecTRNf<7tcNgkMLfwX}rb^nd> zP>=Xm(g#F}54ypv{+=c1pXg9Z_I9lIQ$Wc@M6f?^9CFuF+H4rlYxruo7VGra3M*0K zM2w%`rnWU*{_J2jLDsVg{JJjRMj9usezBe>cWw97sU4)+G6NW!SxKn~VC)29jpQpd z+U!JIud!H|*61%^;FD~0yz!|G7`%;c{Purj*0KOJ<-tGU!Ul1Rc-0D~rLM%`is1C7 ze@eNDSqs@s;QqDS7=g>cyX!my4SqQb_5t#0*B;O1`jtkxk^R`gA(K5q?anVqB|CZB zg%Oj=uW;_=Kg}FS-Fg%|$P~B+ytxtIL6nQkjqUHjGh-hK6xgHpeoo+U&!7-N-IXXPhTr9}&n5CJ0iSuO!GdyeP>AWZmvJNH)$^jhg_YtuMN8 zq-uhhP|<%{sq0`ER|w~4mD zv>(SkSbpL5yL}UEk=3q}b}-vH-m~YnYW6WGV0(RJKU%hpk?P1gh<7IT#f37MEkrdkr}N%X$b2SF?j)FpXU^&@;1vNZzrEa#@>w?LjB7z7|>x zkTD7+g`=SmzJ>Zn(t|{aSNOAso(0a_QwA(jZDjcU-2(@nnk#j=Bmg2%iU^D?^&anC zQ$d8RWIfa%Lf+Cpa|`;IAF>0D%^%!CK||Ey^2ZcB5bV8(lzRFDtUl=RdyQnv(Zzhy z9mXT29-=Cfk4F9=*#Bety#W$nVQw8H13GtRf+7|pF!cFskQNz>E{=edrP)Z?oq*}5 zUk9WQyayNnwo(7bHQ^Fg5j*M*k;W)D=>@-4KbAJ&R|rGEuN@LE3u3ltv@nI>Pl zv(O^T>c89IBR;?^{}f-3+3Jd_lwYVUqnDIlkukWWejyFPL$kfV zLWszYpK^P8F?Z&X6uA3y52ZSIfu2EMJMBXR_Z<8%X z4zBkDGAXdH=XHZssne&(ArIz{e}v@KA9x$IuQ#n}GbN0PaRe{?k(&+f30@8gM@^txK)-Cp0yNhLwj4W87lHdokr3vTe69|#<#wZ^@mFw-BA?b0 z|4LTWM*kc48DNlyxHUtu0sjjmAlD>&Q{w*(`dP0>D5)>yAOkGdc5Ezaw(mwJhJHH* zOwaw6S;=8IYHQo2C48-V>bFx`7H6r}(9qT^xsM=1DCGla7HTM zr(+|HL5hpub#QFmTZ7PTO1uqL0>b`UUGFq1kTiOFZ#2IqGBWNZy)>5~Ln@w__}j74m}!5YTnN}&5z2*=ks4)|Qd zuN^3v==>9f#O+;F3wY>72veX&F_RBU=qaW(@KFo1_j_#_Z`OeZl!qG0Jlp)HFA859 zA)}A-{1O>~Cid3!yG-&z!q>_Mkk^J&!MZ|=mc_@m>(rAF8(WA3xF>9f#CO_*yy_+W31X05a3I0L#9#9hMjmWmN z6)nQn0^AHTi2ECGIAhd);?f&b4?dGoisl3YE4#L9k~h8$CJIoZU&j>!2hqE8fa_jk zK3xLqBt-YlqgB3giT#Xt07*-*CQ?}Y^cncfz!?@u7{&l-uQV2%ZgkW{^OxF+E%+ya zcRuq|IplxPcZ9G?0&@E%$63Gn32xR0u zu3{@WW`96&pbXcx`Z-772LBv~vK7m+wgVXM0@4E}`E@h|H~5BzzWo8l@f9I)%^c*L zDw;}WX!p~|Mn#BmYP^jtTnDkxDe7|6JVD>&rDaG*&;zzaWKU~r zNG(8o4)xC2qUO;`gwX6iSIzeB$KwA{@Z*>H_tW;N(=% zulF3-+?nN6!=0VnZw~4K<$kQxZ$4xxp6=ljp3Qi1J2~v4KV0~Fj(zfcLsqvs*_83= zc&s(%iNvP@OYdu)e%`f~0!#`X-MXTFzmjv!F|#~hLe}5=&h2|*x&LN{eWR~6`50^9 z7DeNrmbNJ74=S=MuG9Ifs?m3D{}@LZ&1d~;2cAGrlI-hYTdL#!yCuPioIE6$k|cF9 z4pYGnXpHVj25+pQ9e~>TerrVp=zMPV&bR`2c7`zyXram1`pDmGpC&cmV=DhZ+~=5{ zT;vr>sU-u@nj_A^kv-SR(K`3bB6emf=i(QQe1t_BEG|)}#POZU5l-p&pXkX3Dvt zw=VDOUihh48d_ps9_dW`+Wq6>0NVE!hVuyzhGd(#G&LCM6xiY-qK^$KPE!zl2CO?A zRw#(f14@6W!tZ_@xg1V#;Ed@KiB&{@0~@zM=TC~LFeQwEa177@$0gnXy6`sAGN220 zJiP?`-oP?@311?5lo(*AYB$2j;67C37mA4`1sTJ3L5!3f^o1%9NZ~ifpFkOIaV)|D z)Zmr#*WiO69;5q`Rj(2!UL>?G86zPn1El57Y5TAubP8D;f=cSZ=n4GjLPs}%A2)hk zIWRN^p!xJbC{BEc`prQkGV95MJyEh!2f2vMwP%Ha89kMljS|#{y3hvoo9HV9Iq1AO z8iC%`sy_9i0_F$oTA@d8USV%r90c?$^x{u!*CR23fc@Nox&q0-?0fP2=~7YE+_WTB zJdj@VT`4PpCCX41B=-GV8CUT7*AXJsMd1~uXbnp4e+<2gbh7UOQ32m}un*-6R22hmVucyZ()$bDm0`0sb-q|o# zKwT{n$^-PJi}!a11<<$V|J?uPAOeG&aY&fZ2vkJ;)@13vb4ax~xccaydW=9&>&a-) zeqDqArkGAAFy9_md3gwxx+}6-1Je0#KaeXzJ!MUgnmHf8Dsq#9JMfTba#(wi7#!mj z1(>>(MOFFIlddvl#PwXjWK@Xu3cSvG*avsbqfJy!!$+CBtav3-GLn#)bx(tt5rcL! zlU*S{@NkRt6}iy8|1KR5yuxDQt`^aLDwDa;An-_2Hy`Y`<-cVkYXl#B6dQ?eeZwIb zVHv=bk=1iSIB-=g87w3n-Fa&v{aP~f?NtGg<^T-FMMwac3plCmBI z$yT@$93fW(cIA(O|DjOEU5UMM$dHJ z6vAyvhgCL(C}7F>DzMvRdVmA zj%YS|0v$JtGWd%2=kIz^$hwy!ziHAwg|GR}ICKA;Sh{5^UWkgxo(nR(bn^SipJ|w$&hK-&bSgEC>sgEJDYQkx*I|p=m z``8$;lmiL&Pqw-oeQ0%+h>6Ld)9~GnTYjzyT=U~l^uALchetoxL@Yk7Y$}!rP|^`tk^sxv7Cj7>z_`Q zebDS2hF>I_=9QJj2PULV0LNaq00;P?jAdQW%V^h;9YPb^dxKquH-owtoVQOAr4BjO z(=k|WirZjHX3p+bvvUHRDYwsomuDoIlJN(N(RXqbMq3hdWFGDXmtH-GJpHCBuDV22 z^>hXb1m<3F(7Q?~O5)J571*!o4$PwP&RA8Fs={mX@rR1hgYks+c>}35?W}a^EH`V6 z+w)7(ihQ9AG#=TwdW0_&ki+q))kw)oX zS8MYkc#0MT+=mmkYNuX?GULK4 z2=N1a@W2}$63YqcLp%Jq_t7p6&A9cdXauSU2d+KdO?o;bpv-{pb{tZc4tJY3mXrSw z(>c*6@YU7~U1xH?I2Co6D=UU<2h?~oVM2>JP6h7r6bySseJ$X(4S!`Eq+LV)X)s^r zqh3M`X2X68*c8HpruvLHoxFGmlM#M2I%{!+%m?4upc3%r!<5}Rbdwv1_TR*qQ^ESf z!Joj~1; zh$oDdx@BgRS?Y8jd^4bM)k&5YvH@sjmnmw6yjlmgpm1nGRNUd2N6`Xm)t-=bk3+YB zcim)GnlLXn{EUk?EBr{4ap>xvPRdtla!bUHBewa_%&2)0PVjCG_9KY5zrD8|zUg3| zdx5zZ&D-&j5&R>Ol4GDz`FvswBC)C4lM7l4xuKC7iV+-7??-s^{$-ZQj{FuAOE4Smn z%>Lwq>ivE7Zg;Vh{F3MWWX+>1QVfQd7lO#iu2VQ=lMCzE&$-;8I~nR#EVzCsn>&jvDg7|pWA7Iqonjxg(K z-ygCgEnWNTadgt!s(!K1lLxIMLPelhopwD0QlW56IV56OfB+x2HQ+qptU9dZwmwd9J`UOX1um zN8RofAw4($<<`P+cK&NTB7uGKWi*?1luel*$u3*7*QhrGsQ&1N{)@h(yftI;_q~ga zdUTYkFJ@+!gEa$nyriGD75@6PX_Y+;H`yI-c$ zpO-E+wpW&9Tnb2fTTvOj_4xkSl+Y~o5_9j=&O5S1U6#My=j|Q!m&x2-xJ&ggwR`=&<;0zsEsX}>CFZg7&lI=cF&h>>XBNKUxLdZC;?*FT zGii_=yZtWN%G7Z;wEvHT!y?(5^a;gwHxpI7K#-f|>wHGwFt0jzdLz|`mC9|~*6~FV zNC{UNxU`049Lp>#3c2q{4eaC0jFT^R-)#MEzEekxR~XnbfhWwB;4N~`Ng;8xtM^alI& zz}mZEs!ML4{I#p!Zr>VtR;1k#usn7P$KEj5jT^Zow`0|5dN3;N%IaE<$%<&u=#Se9 z4S4H_FvXzs!%M;$uN&GHg!_Ir;OE|kDHibxW<0@XO|p>)d-2LZ(@c zdLN_iyA5*6(@mWR;@@?J-tv1jQTuH2TTgJ*GJ7fWQowDSldsq+m&;!DSpW^&6_Ht! z+BVai`X^g6^O-e)X>Sq}p6M4B|8Oe#q>-;#X!T9rwtQR86FAj=V34yllV z7t7&P&yu~}EX_B+=5G9r;>UWwZo&Y%SvW|SGqYiDQsxyN6>`R%-q3 zOt1PVr-6IMdGT<6oS}R}<-Xzj1({`^yxn!zW_@7C5cU|8RNDS1$Fyhpx#o@ccWN$l zJ{x~zoj)D3epSF6j~h9g8|N;Yci5deINWPCugzE~{-gZ^sSskNk*u5x4ETya2XmS) z3A*tmr`Y-9MvmtQ(XsVsSvTnHuI5Vyac=t-*BrpF7QdR4a?jWuSvez=vZJ`Wdh11b zzwljtCLtcBQ&SrPu;*xX;+AEI_j<3MZv~s)i3+^H`Y@wQ84F%Yt!`k{pp_%`c{l@O zc*n*}DKA;6sBR@ul=b5p_F|Ev@Yj>dh2f+%_9hNCdRC2)=K_WsGsGS5-nT?!%5)at zY2G&QC@cY`Uq`@m{(|G0XP^9A@jkV$YdPs1HaX?3^Oqg)@Y-RR^Ax;TaOF6RCyh?g z35G`p4a{(u4_t$fLutU4M2`I9!JI_qzLV3i{DhJT)KD@JQx1a*C_9!C@U!N8JEriaV?T#9aS+m~h6XN68={pn zYhY6*y@IQ`g+6eZLJ24wq5>=4vWVmE+yJVNj$(YvXzj>O4=)iaW-6n?Zn4-3ji-Mh zR>E{#99(?!VTxDD$Y$%2dxohg1tv+Zi&rV|rKng<=a1u^jqt`}c=0h~f0leGB?!2+yjX8#2^daYSW zHgRD-zYLsy?BdCXuIUwmfHDeBCeJ1N2dmn-MdYevb@HCoL4~;SHeph~dx@^|m#4>g za!w#)e%pR8q$s|P+Q7|~ihifQ=vpG$_mc>ezI}s}DfVDzLNqPl`44}3(`e%(UVwnahy0M9;j}U!?{Wj5>@87Tl7}dpysa$2#w+dp}WJSE+9;Mnhv^hV zGBBtR=w#|B2|M!7z0iV)G$bG`j1c)E+?Y6hiqUNj^6&|#|I(1VH=_A)I<_Y zQjGQZypNOSIo!U~dR7f=dU6Lqsu5;o9o`qjYB0l7ye;W?DLnI-xs{_ne&^$| zSz41O9tUX{6U|?+1brtH!YCa(wvQEbpbL zjCu+9t?i653OiT>V1@&6aJq0tFm@WFASYEZ-vdPaM=>2_F<8CQF6yn0AqcrLScZ^b zhKX))D+vbOpuiZoh{R4`rvJOkqx#rL6_5K%d3r;nC&_}lg^RC*om@eV`4wt~_X<9{ zbBdW*L5{8-{{GuXWBIg%T7U`o!-;<|=eb*7S%$|J6HG@%Knyls8D$rpeLbG5#0Xe# zp0kdD{w>}ml(4*Mk+X3cOT=MxF9v%GV;=Hp zxEeZ`lq?oIO$|MWeV#QAsu$27i+!FDQF9jq+oen`F41Zl4ycpCM-@2G5mFJrMW0LZ$pJC9XESvoI$mQWE$^Wc67u_oHHSQn+MtV2n2g^Z!+ zUhks`mMiDQpc6=hFq*gWwb5Kufp??K)8hlz`S`Qww#%p{RLHFje!cqGK#XKqorfFR{yb?prbKdf!H@D}-#?Swje10t1o(7Wv z^)ua2#NVbyujijkW>tq<$^DB5w09$j3k~_7IP7IZKE7Ll~XzZv^?tW(8RIaN~I~ zcF;Q%ME!F;3Ds@&RK;sxa*riP{x}X#$pUGVWu+jD_b=&b)EE*;=*RzeqC+ILV~9|f zzikY3-W$)uFt=ReRi)==t51x*6IE?zfD@mBa zKTOH-N>x?CWL<=QLb$h!iKbqXQwn^H-99i%$O#brQYO`1Xblj!KYDtGS4nBF=I(1_ zrhoDVl&Obdg$zQrF{zB(ACJX!z_SDw| z1LE{(%-=cuQ$UGzC1f7SBtS=9`3WO%C+jK`+n?Iq>rLPVEnFunPM4A-J)%PWtauy{ z56*l2A46*{+YrJ7eoZ?swz$dhU#tI#q@f_7QI`(==krlvoIe1~B52=S9YVMR^o%0<5aHK4Ny zslb&Zkc7L1MLHT@xtWre*%|VXxNG~2kysLh$K8|i zpB*Ojk#T-S99Tz@NAS#wmH;#|#h0Q9c0l@1`W%;Oruiouk&>g%C+BbytcqUkpFnX# zGc5vfZ}|xwO-u-X2#K)KBU7@`%Rliy$?SgNuOk^+!f+3kBN5A5$p1~okRY9be+H@L zfOIrr7}0pTNVOryEo0f!Jbs!Fwe%882)<*7kdQslupUG_Aqp1>UUka$pW)|J+w^A3 z4gLCfXDc=@+{!Q^8mpGma?s?)Mimp1xv4@JZ1i$9DQQ-xp+^?#EYA?#UiVPIUo<{wLjDGw6t=?1wIo z#Gzlal6Jnnx^UqO%|CsE?m7`t++8}-C`#mGQDGIVD50~qX*xi{kiN>KeJ+S|Q6a0J zObI2SKJ~){3w$ch47Ump|66(C0~@4wo`)M?j%=5`to2f~HR>^zdWo=#mt2P^-f}>5 z{6&VvhA;?RLI|_d%R_@TCzJx;VoQIaGLO)-&UN{pB*CjBa1)(Ig~3~v&=piG{<$Jr zkp8-crm4o~;JRy*gIK|J zfbKsB`KWXRol6|}$ET-*^@j-Zkf(pU@L$5R3poy6_mr_w?%=pKM;|M!l;}e!K;np|5pyR2JfZ+f!wQ$+2wu` z;pEv%@tO zi1xVDnAw@rqPsu!D?Ie5^)sBr`8e-37&>$g?d;x<)Z@O$>}pwfL@vN6q>)I8p=Z-x~t7+~mM^P!8Lw=5$)^O}ne$XawpR#0y%eo5R zcP7A{Gq?hmylVXZoI8vSQH)!1UwySw~(wE3tfj z2Ulc&0Q`Nu`uVnW#o>Mm%Y_{>ctoT??oFWFFUJZDAd7Wg%|1OR$eU*E=tDxn} zGCt$bGTQdNw_}p5W>^0$moLkwb=_MlXLlqzQo=&mS-w`8-6E3OY~DQ*8~L%Ay;;Di zpQwb+fU>al3i*`!U7lCO*IfpDiy0{L_1}6GnuMPH2VQ?Y^v`|~U(T zvd@m;O@znh{w;%2v70oXtsk>WG=6+mG;zJ@0Ec*EKGprT^m^kNqs7OrSP^pXH5!b> z!Cwb%(h$!l02YTV|1XIT$JhAn2M$vu0=R(#(N`aT29Vy(@vrmbRs|cZ^W^Rem}tG0 zG6_F(JKBPX35hP3+aEpJORB0zD}EjP#eS1UY(A43Fqt$`HhlKmnAFNAMbrlki-Q4T z+e4#Zm?>BCe7755^;<_X2DnV^{Q3oW4doSV$Q=vaj1Y2ZNXoHd1yjB@6aZ+sp#hf4 zN+QSnW7c+ZS4)&&w*efE#WX8XfCo$7JaN z+<5&ZKM8*R^~~=Tz@DCwSoyxq4VZdTtbX?}pym*y9@C;%R0T*jK-8n7W;km>gvTiZ z0*G(kcwuBpg6U>agsAW}mUaT7>Rda5k_r4aHCz4#kh3Fi0K+u+@=+!Hq`3ROY~s9) z7Olj(+;Y4)K+}e#^RZ5Vob#-E0jM}VVFWcadAhvqFIy4LjIm-N5XGrk$R(2=9QbBo(9 zcu&k60k|c@jg|wiFeEK5yjEZb0p+Uzn2e-fL`YzodcfTds$~$&*@=|Jokqv=-;v6{ zw9s*L4PbtQJ^a5BmQCQf5sT+MASA7Qwx{lEz53IauT{6z_g1TJyKi2rZkM#hwRrNk|_}`t%xfgf#PVg?MwjLErcQ1Xu`B+lMW%AX_C;enhaiT25O48xJbJ zLhUx~q9ap19Q6<2(fLXPI^QDujc|fRo5=vHoF72wWimJ99PNZ~ zM)peyy$0rW5WZ$CM8FZdg!%$@&W4h(Swi0-0?D|F{Lm%H35`5}bFCW!SkkQH2RQd#Q3Ma> zdxV7OCBkS3tr|c_#Ea2UO$PQRT+1G6bYu`kSWibgFuaQ)0RpNFyL6_dzSqHyk!#(V zNQk@x+yzKIIx3;94*hIasQeHsWEn6zHG*T4k0Z}kIgfn0Kb(MTp0NUh6wR#tAi(b5 zeSuKZKavRs%jdR1clyR{g1u|r?JQR|%U#o~Mp$@|(~IQD4WPmd2={!=ID^nd(;*ud zPH2uQ1Qp=9i5xO!2)g|rq#iXLuiXT@F18#QY#u}~+eEMfy1RBYlD*%ft1^%82spNh z*M5XF&SV7l){8}(6pRr9_}cm7$YT=%(XqXq08=OI?T{4s3&jU4&~>^T3bQM>{5XGzsRaN4U#i zC3Nmm9>`wvzR8h69~rff3y`iwK3;@7ZD@@1N5@T0FdT=b6{?{zh9M+Ip0LXx%a%~= zI-!^rGa(a*i=j;;n=u5yJYgG&HEk7grMDp{a6O%x4vc++7$P9*BT7(f33^BjLmR^T z$G=18YhD2aoy09stVkK5ChKBR|K{`v`vJ1k>aHBWo#XxC_hqeTrI+*ZE9s@Bmw!E7 zNw**YGq1h#kBIQlbT&0JGl^pPT`E${^#%-VlZybjmEOo9*WA$2U}caQL=cY4&GrznY=0p>@J%*-QM<>v?Y@sO;Rq`u7Nymm2W#%{Ag6v zGXN+qUwS~_Yyk!4{vF6<{W>TSWQNtE-5rr$u#-mPA_F1RTX~U6JYEocbhhK*j?ztz zYX|la@f*s&0eBvjgv2QQf$@cVx$pMWP3=R|bq@t>OIV-otu+P}MhXy~d~t{{3?J$@ zAVCF>BYZm`>37f2wS05hwkU0@Pca4JuzNvA*N=KN3K-U3 zVUW!&9KkH=TcBX#*LAdE15owE#Nhuf9w8BR?{%VvVE)$LMYFJmJ91BNrQ< zj(4ni-%m$_cMoYF_WXr>?}A^1 z@u_xl1hBgL1*B-$K3kZB z$El!C2#-$2^0F$Mav#9~=^Rl~w4Ve|1q^&d6N)H}5^I>&^SREVwNEU{?e?&6g0zx& z_b_1}L;q)Xw4NJ_aLWZ?J=%T(b!R>80BFDay*B-%z6)b$nvS)qYV%*db()6i^?9vR zw3VeL2imkV9}}@NqN?7|Pkokqrl1%g?}w98G(gXXi}wf+|J#q6$YJ{q0PbVuN6|*K zrHTz$2hr7*?ng~k{(HB#YRC&bsKu`RUv$3RC;|Ad!DA1X5`(b!rp}VL@JNxfUwyAP zs2}XDH>{uOtv9Ow+FNg2|BJWYr2al1z3D_AA2<8rwq>F3Q3b=w10T;QY0t>bYmHBN zs9KN36g#nRWM7VS{ZT#^U)RRE!|e7qRppHK>&Yc@&y3^-e#%b+xpT{@Zvd6QsBsTyt(IfRTXG#4U`u>OWH7kPaepXFaMN zo!lwXG^csplV=pQ9>l!ax0`F?*qiE@5#Ho0!1R}#w;=0f0_COY^qerG?AoS964M6? z`0cC&%6^(1ot3H93)8A!0^y^|g*rsj6_-R*1UUbatJsR@2>a2M19yJpk5np3zO4sr zxpANuWwq7JfdAqAuf<7Gi0GivJ97oYIMy_~3;~P)QGaN3Woi6Nc z_RSM~Vj}oeO7F^~>4$K;H9uhJ4S^N4WGPb_4ma->0rZ(z z0^%3;yCA?CNg6$?(+C<_AA(wogj&yC_iFJfaDpqq4uDKmTDEHV#p2pNXr?Uw=z9>& zPXz)!Oi6yKX85qC0Dw^CyraKqwEF8nPUj%~x61rgIPJXelC;>~ybijzt^Dw@<#tt1 zh675^;kTC0{2#zJ{C;uP=O;u?t5zS==)!6jxgTo%z%>_j*{_Sr9MkcT+58YEblk>Y zB#nkCxFbhdgYRo`#7F8T{g}9&Vt5iL!>*aHs+J{z+7#Z1|k4wlD>{o^i@ExF2CQH_s;mwRE(m%Xcu$ zi~Y!YeSjqu_T(Rg+ZT?Klmkw|gIN}KRowGOZzMx{c_djcCl|d zfR?M5&o`nq z5S|tWM}qgddCYe8)&QR5tty?5i4%WHZM=qj>mKYkKwx}i8113&&fUrXl2Zx2B7qtL#MFsT`E`rO(e){e#0&n7Z{4RKsT+Y@SLj61Y2?N(e zpVN#<5oMU4bq4Nj1@)x#w=34LX`;T8B#EwlLaOu5YSMlTzklROT5Rlh~05%H@#PCe;W(>yg1Sp2HBC}fJ5=`;c80|7v@6^^V zj_Jsgr599dxin7F(=B((6`l%rljQrluz^U);=iph0aYII}25|pUPonEd`q&LnH;7aY z97O#Smj)(7Sq|Fjk!`!i=Xarx1P#i5j?6WuSAav`>Hv;uzmp1mT>r}0>H6lj-r#UizAG1N{LRBqG_aVSVmt`O?bq_%@E6j(Z0!vEPRb{fiX4{7_*Y(I^;^| zsLu+e_{Z6*CYX{@hM0$0oa=>xNzv|b0nbc30Z^r~>9f5w=FXfoutf?yk0It_FUp}| z_j7Qj_~T^Ymg*NWxV(^o6XkAbT*{d2gLni$0v*GwB(lOs<|fF(>INCb6jymO1Y;p} zy@1rr#|h}Fl*gkLo%(4+v4DjAE$OO-!TCPZrm(mOq4 z(_S0Bter0{Vcea$k$UTeJ+PtYGcJ;Odas^hufsnwJEM_I_yzdkGaSIpV~#@jS#ukp zyX&uR0#-cfFGU&vuOWQYd#9~zaT4&m%=*9%M{q zwOfrV5}Yxy$W60Q=^*toWntAkblR$peDy`_4D8%6RRf|S!rl)$!C6U2+Ev^duQXL_ zxFP*?#x308UW{!t2A4vcH?H?O09ksp_oo){oC_tSU|!f_@(1=~bbMB=gwN8$E|QGa z3!9q4fuApwAxp!y6YW^uZS0JYkBde>B$by613_NkDm%l3)_5FD$Xt8d5~7rYI+Q)TX@ zAAIi@GzfIcvyfr{CLgAaX990XGY``m>OJ2{cUno{I14sbW!AY1ONS%)cic%Z80<`I z5nX}p7+jfeX|dXBP_hN>7EzydhS*i_gj56jKPuxy_e0@RUpf`XAcylC2rz=_pqBVv z^E^+q4Y@7J)UwUPswu;=_hv8o%(o(^GZF&6!Nwmbs{G|QVDCi*pe}S@dlr%}Owf_ov`y{E5?WMFzW*G1Da=yn|(QSZ%WKQcx0 zn}=c#V7{Q&RfPEh?LN81vy2SUS!@c1ZDNMR{nwhjOyz8INFHGq2y8F0iQ^Jh!h=z@ zn@`{(9AS6B`kofNoyQ#BFq<`XsZN#FVVF9BxM| zXe3aOsa3$~ZwQKBOGP5-o|_!>K0_38UPe(qqy;BxDiIm?izgJmBZt#l=& zb*bJCCcITm+2_5?%`T)bDa}Ks;ZlC*yv?vbix}H?uaL8*x%RHSn1ngY)Px&<6eqXN zQEHTEp5U$>zV*EBRn&1Snc>j-YPE>B{vy!v$BWoc&Mv3@jjv8HZmjbUlvR6*gI5X>+Fa^lVpEa!NdbXlG`MA(DH}hMzeb#p1+y3rDW~P)oe=}vv z5-6>oU5>gTiY>X9zRd6?5K1txXRx)Ygxu)t?b8ht;~%-o=)7vy0t6%66KP1X7Uf;V+p-HO~!eQ-6lTA5}G~6 zGOZn_oLjX4gYOd0*7zknv#fit?17D#K!S-oQGX^tx;glE#U zFF1sgYA-b!&t1R>4W^GDxqg*++Fo#T)_F>3Z68HLF7D;_cBSnMON3{|=s*xpLYSC@ zd9FvUZ18rs$@3ofg*4v{Q4$SJ#o65^x+i0aX*>yW!asbo$}1a&|K3;musm*t)!0s@ zmO07Lxglz2F};H?upZm}#m^y0qCZ1s7om|S?sIDjE|s^X2nncHuNchyycJPQiDzE( zb#-2xG)nw((MDWIPtN5hFJs=r?A`KDR`WTv##Yy^EJ(`JW3?3Jw!g|PduJKaJHtOKXJ>i?R=!qul&hZwAe4(OAZOy;cY1a??`D@A8%!)X70SFi=MJlgf9~N zQj};PS^s%)F5QW?X!4q6&Pw{^SoP2B*kb|DxdP|wKH6H{<7|}MDl&Fa*-lN_*W@5X zdG}9*>Gu;qO(t+UVnTtz885#N{_b&D@^VVplpn1#UbZ`#wxTRtp+x#Nr7r)*i=*1< zJDDb4>yo9<#E1lq`*L2!9c1*;x%0EG>(V~WvFJlL*9Y|Ud{{F{N@YDW4t>3Dy)-F( zeV_Z8yn%5O6B;RI+RhN(-E^vQFOT;}nQ1Guyj89qV-#@VLv;2(26imtpMD56wF(YO z56_-*CRN&+chsHruX}aPO$RhrPRWUa^_TAoa;ntQdb-1%0 z!lozf;!DqR$~c1jdF+e*bPUbG=~RY=T%|W3tJJvkvk$*L?-w5toZkC-!`aE0$7DJu zPW~E=;k*~~(f9|YiEepp5nG$Su21*N(iw=`JNEs_cHuV3(>{K5&BF84GCdcwTY6*iiPiSqG`i5jFZv4tju#wwx!nuU2(uNuv{&wY#4#xZVHU{)moG+JuiuRiKJX3|! za~m_-n7g;ST6f?%i;LdPF{8m1sWZ(g^9F*gbuM~mg18pq*3Fms2ERGA7v{$ety84p z@}naXzo_p%$Ho6>bhw$6bBx_nw{6YDB;h1;=>^?cnwg^P8pAuk<<}ao5Yz0&KJAV? zadT>w@yZHzx{$9Z+3b4^TTz~mU6iNybsWRY2%Fv+8`gNca@oAQ3`bqq?Amg|wHfYB4$c8X6&-&s;Z*VZH`sd6$4hbRf_BRMjOI>)xU^vnWVOp(vuHV zx+)y*Ia6~T!v3a92Db4l!edl;iMVgO1-c#UIbXcJ`b7F!)2VE1g>{)oBGt36F5BHm zqiwq6LUAS!h-gjx4aJTzN^#$3(<8S#b?OngRgOBwQ+M9P2fED zmj~bTo*dKf4@L}k4q@f@DX~A;_-WJ>O|yBmO5HZRzgpBt<&+b*oqqdAv~ zLwX)~?O_5fqjpB~rWSC2mvMa@O`kY9c$qKB?Ll(S;N^C_+XJbM{ZKA)2Hh_&hS?bQ z6Z#T&Byd43*h@*+3TYll31wgtWcER??Dnn?hEzCZwC}EkK&Ir$Cu535jb6Ut`%gFc}^uz#ljihK>V~X8k;<%AmKkfK)~;_Ty`Y&TX^=Dtc9yhR5s5k zF^pM~ab(5N?_O0?7A`7b|4||idiP<|9H+qNg_S8x@KWRqU~=Ev3-?#w%ER4f*X zq>k4!rGK_?wS;ohv}yia7;}$u7Oc3Cf}B?bBm4!+T8z2c5jcM43M`kM3taBP+W8)1 zjQ#tRT%zeHsS?v?P~={fuG<5)eKo$RpWs;~O5(jCF~{h(vas$VYb1bd@du!(6E%UR zIb$qvHhQ+L>qi{(ust!yR?q`eibRRIr>n2FH8G#d9U?@C6|%%LOfd?UFSgOxjxf4hZ`yVdoQ&miq=^3Kv;=j*um=0*&`=~+`&|073 zWZZlg%tpi^eFJa$ot3eg2J;61`Lr0(vCG034tR$KC?erBXef(3*wiWr{NQ^vPV*Uy zOShu5itG=_B6L#}m_ODsa2(EN>%s=}L7N{7n?-w8JXYbFBu^K%AKOw$qOk68j1kbo z(74_MKQP)Y9$0S%20~Zr1ICrP>O|nU|OW9)JC~5b!;l zZ?b~Bog|@y(e9r=4+}_d4P`i1qE`uVhtP5p{3Q+xe|^SG0s1uF2OiSRGvyp%%Q-`4 zJ3M<;J%xv!4ytm8s7=$Ck$H*rvese)m*eNEaI8JRt8RY20UXmHg$}$e;e9wPRQL0M zTf?)^i9RIuiZk2*WVy2yh#$U#flC?~16E_WisuB~3Tzk1ly1w;=U4+hx@_xw4&5mh zY`+|m%%g@RZ)-u(EB^H0xe_EuZ5n(!9HTIz82I9qdFCNhC|C)p{e{#CslD0)YJWY7 zo_+vCpJ{~aPab6x-zZKGpSO*Y(rKtJ>a~WJ7v42NJpR0il$bjL5nWJm03ACR;AlGp zPlM*cPYDZh%y1qGU^S>y9Gu)NlR9}-xglFPq)dG4jhFD zJmCY}{2kV@5M*U}PtX$%pI-qfIo!$bB!xTSq*D-bf#RS#e70gQ5oo%AI*=aT#-m|k zf{X#^c~{|ktmDKTUuRu(6+g13|GRmn4)x#T3(Ew&ickh;tTR&r5p=*xk3oi%Sx;`aTLX;mFRLIQtgFh zZstJ<+NPQ&JqP~Vi=IneKdefd!O`Es76wDNBox{)&cWc9kB>^9hVYO6J`eFvcM{y$ zOOyf7x3CJpbV!&1v1~`51ugdSvsxE>ggQ zh)(R5#AS|Sj2HK$jfa3)K8mRbKf!baMT(q`vnEAxc7zKRV5vn}i;%huvQX+uuY;WN zs9D80bysq3v!K4|V3VEjDl5`OFq#5i-wS!+=Vc$%P67q~2u3u*id0Fj8W`<|FUkZ= z@AEsENZfR(#~!-ode)MRrzhi5M3SPK*mAh^F-A-@JPSdVn-d3*)TPr5^f$dk*Ugn& z7a6Dg5Z-*L5qRxAr%(h8E#Aoh&ifa%SoJh`!VQeI>RoB;dd8iMTVa7n5D3fKrD*y< zUw&Gte*ntoawi|Agh#Kkn~UIZ7mD24Rn^4!A969qDeI_tVlrZ_%34R2D=Mptv{y#C zczVPZ9x(|Kncso0qrf-s%yS#z;a!!dN5*g-{92S!13XV4>}!m52)JbIeH2}jt>9`9 z_~8TK|JrI|-njF^|3}q(z;pS%kN<@1$|_rCQ6Wj04a!RP%pPSVvNEEKNM$56DJv_A zkjP#oA=yMKvPWfPV5MPq_y~T$J_BSjQ$#~ePO@M<-^3~D z@}CVIx#|zPpj&2kUPd_l>Gg)DZ9yOxa2e1U{_6eD2WGREGqpGda-GjS8g`AVcWDjdSH)6eka|KuSG;=B&3t3h@PuQR`?LLKS0_?-(!b?!LSazDsX zNgQ_MM8fbNtMqB$zn&Ok;8|PTQ=j%vWMlWTf=FetkQZe4CuvX&1@)F^AxH26u}bbB z0f>GcW1oArksj|I3BkUE*)~XVE)b;;+Na3!eWc^34oKNZC~NIa3#dWwW<~J=jhkmE zuRd$$!d%;Vu#+8_wxBA3?m)NU16ar>A7|p;%WVe~*^Gm0A@|+J_UGUs)BjXXT~+cR zw&Q>Gd2kLpd~8(~?Y#+(`ndY$_(OWoF+CP)qJ&!P|NkD-dpA=J{ALz8_^f%*vJ)+yQ7P6WQDmwa6;B3ggWBt z4J0lh$NDkKoQ!%w*3-#~K565@S7PLFUM* zfB}NWX+~IvfQ(rz@bzNzQ7>699F@_ot6S(p*>~)8>bG11H}ucYwc0k>f{`DbZrUc~ zLJajA-=YtHDA#B&ey;>y6EaNTeE{tGE*m3nAH3%iZsNhy|BdI7!NOqc4t_J)b`XOe ze6C0^N*-qX1V4J5r>~0kXrDYl^t48G8j*lIbR$7%v*d@SS#7W-{JA#v9$QHQ{vR9(;M0J&}QL>8L6iVi0EjpW0~T>k}oA6Ny22)sj_3cc9KZh}-a`C{CFQLdBH- z86h|mLMPE@^hoPcz$O>s1^tKy?+Pb4j0mRx^}$HWKOg;6{%{i=*H8~P+&AOF`wIWr zcH|mb#m3k>b()to_1|ZQE_B|yLsuxsNF>zZ@)I*7%>EtvkEbs?NMN{xg$q5#4_G${ zZKU*R3m+H8z-O3oB&m zwg-Q%y?!O<_${;d@12ZFxjsie6WdpiUe+~Daw(rn!RvaISM1`VSF|j1Q~*h4t)7{j zf|5ShbqiTn{U1GDTWmWn{w^dtLug-tep8Qj`FjquxGa%L9 zYt__u;*9JqpNE!CVGzN+shhNDORIq~-2~YiPmj<`{+3O$L8V@-zfQO2a@BKodlvZR zcUduUth%TmJgl!0-R!14S#eL6DAy!2zy+Gvi?)a;|hHq2qb zxND2efa>$YntPX6ZKuRX{Morn6*gbssOQx3Do}g_+4d=!$lm%xX)|!~W!ZL{0f#(D zOV+Yw);O+x!91`vGSVc%Lfm99s)*-FK@rU>o-YL{?rIY|Y|L{8^2oBet`ZEj? z+Wi4$_nY3wm_xl(o1tD}%05uumm-CiIa{O8>`LyW?4BC+c)Ke0#9}RVX#<^rU4?MTKGC(&(M9zxi$N`FREnE&rtA={_th=Dxn;d_t;*lotWb z@%1i~)FgCs?6GiO3H+SLMA!A>QyE~4OtQ9xQ{MJbrykl`7Av$~0BkQ^s+W5$_k-4R z4VlU|O+hMmdG~#+xwRkX19J+S_fD3Le`;B7O*}lZuyq8&^BR9hn*$CpwRQn8-dF8Y zP$Tl1j?Dy|MIE~5uGcr3Qs-UB=VJkYsynX$rrLXL>n#Xe&t3R~?a=u*o?j`UeuQ*H z=M;j84~=t?L{{_k9`Jx{9<5>Dz@EvP!Z#67%BhQkEB$N_#~M=dO1<8@Mk!7APTe~~ z^UCR!&0nha+|QAJQp99I+WCdApz&L1oI#eVxhTq?Q37S*a)S^E;Phq8a?*(uQ-wz1Ya`eM^<;n*J*Q*LOQLC_YBg zbJIFJ2D=3e6W1XLoF?Eod47gvVF>mf^h)KzsRR27fXuVo*&je~$`S=)6M^$=;157# z#l%gAw|N2dCN^2)DRCB>3nvFS_CZBy%$6$qA%=G|c{ODs(1*&Di+_mI2;zdfe-P#9 zAG8KQZ4qGaFxExD3$Z{@(4hx>ozSZ`F(`DX)@d$+kb{!+4-h3?R>*-6_#0XLu>G${ zP_%}YY+j2G<;5YJ9}D?pUu+uW>h5sCy@N(raFoQm{&UdYGpLr$ z>ewg3-sj=UC3EtKm;4o_gHQ3s9vAp&_yu-cxaRpI5W_q30jQSf80Bv=WM_-5{70EN zARKoH{F?i+XEqSHTF(#;h1o~JL)^T9Y!;W*bH1;G3CP>6{#Yb78(h2cg{%cwS(&hM zupii%Q0P1vG*t3o0{T>S5fzs{bV5?$^5`lbFoT8=iVGze5&d_IK9=cD>U$M zo53A+XhrcAe!(Z}U zMk$-KAbz@UBoifsd*}StI|MYOJ|6>NwIa;ZWuSkB6DVE)`Y)lNJS(7y*)jvzIEqCy zfrHMb0Ph=y1t3YOKVuDsAhP`xsE#ISarh2U%$@~v*lF?LJW5q_zF__)2+r{SOUP%U z^EuRBzZw-gi=hY*&bzG5|J9hR1As+VvlzuwXxUd3-mKyzwG=w^cd@F$d z)~|Jd5)<9jKcOy0do_W$j`l(_`NA8WVrX1(q4f>A!lQ$O*=;RL-ZX2^z>nyrpPTY( zdMqL9^vZojR}jBsp9>C{ym#cF;|QpgX83(DiRY|MXiCi9J%eB$<1dLP&F!WZq_1S9 z+~Q)*l@UTa)O~1sWhnX*hg9gcg%UTq`qNieJ`KG^zj$*3^#n3)+RB8ucv;D2Un;M$zD*#@AusW?6H6 zx1iQ-Wz8*$0HJjkfY3YMd|addgSN>7$1_07Olt@j*Oc!Lq3s)46{1r;^BQln#9ji^ zhr}I0U&toF1R+oIgXhXcCL0<6SDqgEol^AL&;m5282rWR&0j#~HbnYFiCms^H%}S^ zflSkeW)YoDYex7x-9uC;W_-lh0Fi+Z?1BMO4z+W1nLSOhPjBO3*d`^ z4t9DSg2EIf?MKc2(($h{1VX$>K~#+RY-qLQ4+4hgtt-%|#aKl(zJT2OchDIc*K=*X ztiG0Y{`z?6)uH2=kkd+*7ZvMt_BgL)@%WD!0J+PvAdvk;+rLITe}lagbCxg+Yzc+P z-;AW)#hb7!$exh=eDVL9Q|S&#ta(sW^a=~o&ySD&=D#=|o((!vG^3%LH1L%LrN_-1TE&>(0yJVd+!X;Bb$;lZY4AD&*;;yoqn!8QyDfBHnCAE2+ns6k+ec<_p#pZbYLO z_L>5n0`6YI09_DP3w=$CDA8;1Ak4PCX!w^0j>+-631KtJ1{2z@QQ)%<`v(XWc|Q&n z1(x11cq_gbLKA@6ms+ay-GVSZd@cfgR*wc}=Ee>s!rKjOC+g41FVC6)++M$D2i>LY zA~A?r?+K&x)TbZVff7El7J)+-x|Tju$~PYqe0#*wG+uW4V6wR7i^FB_+;|q*7v&lq!nz{^3{Z7*qPKUEv^Z>at zoK|Oa#*-CX*^yBxPI#O%zLhTq%R~iQm+T@_?3H~v@`&6ue{ap_y$ea z_5C`=L*nG}I#xrr_Q2ckTTSn+ruJ>TeUEg>=nw|)Wp(7L*YQE~XaG2h-iEf|S zuZ6!E!;K8_;fc=D$Hkck-9ju!BXK3}???L3;0FxM5x}s=;)OX9KjDQrs&d-0?K<*; zyl|2Gk$+QUXJ$@PndC$W z@!=+{K3_0Q+Gn27=7(hmrr>yfWQ(Dpu&k&;lq9SUl@dOM7Y%KGSO&-+=8}(*tApli zM~WX1Fsq0>4V=ZQpI7}6)OTxyIth{|E*#QBEJnda;H&k>%il=fnK~3d^m4x6Z z@94I?!;VT(K*I^&6b(ClyLN9r0ZpI#I1HSs{cW6w7uLSX$KABk_$JOcstBL)c#YsB z;P@pcD#Go)#-22`-hLe>KjD}9x{EYB)7*&1pq3C`Hxb}UhJoI|Nnya7ub%1y`N(3d z-IyI^N;nZngbS9shG4CpD3Y2OU3lq)SShlCZ55+#lSichKmmT$lE9r)ZN+_cyPBSG zsR&znNJI4aYa4Zxz9ri5^bYy{jp~Pg6uov2V!+4Ljk>+jXunQrfC1|Rbl-=N=!~

7Zj0Y{r{*3dYWzXPUqiIY8}WXHVX>d3>ym1Bi5>^I#*v>d6Y~v(Y5V$n2&{9$xNGLdf$2vH76(HZtET z4i~Z80ppBJaXCn{*}poTPZ?+`P#o<@QA4nvwD%u}@$ppY63(XCP9n^{Ph=%k)lPup zA&7Z+BvP%ZAk7*e!xJJE8ekr>{WfsgfW}+jSGjMKzVn@@hjctOwHLCOw#o={_s(6u z(Lb+}&xIY+k6SQQFX3X>SK^03#OVdTd~DDMyG027x^e~1@IRf(yOR|nml##aN}vM9 z=n09V0~mjgmKGpAZSevp&h_Lsu>S6p_oUG=3x^#EM^OPQ^(te2-*ICC1gHlN7Gr%Y zl$cgM!6^JXYCH)NTF_*{g^vW=3q(8lk;LGwto*>0k2Gk*Iiv*U?r~&UV;@HMC(-HU zL0b9oi#z1FQDHe`4H*4Rss2p3mMOLwYMJVB)GZa@ePQ8fQQQU+%l>w*6XHD|&2N`T z;(BX)9QRMW0@$2IVCL|cfEj}CI-AE{Y=!*<^f7`#L$FCg5F^xA0A+q$1&CLN5EP@D z%DD%i#k&MRi-7;u;f3{vVo(uU3vR}n$J8e#FBK)jxf4pjkdnL>7b?D~dfrYa@EikqMMDFGNJNpyVq%p&c+ zf_mx@1-vajCEo^i`?mI^*Ft>$+l!DBfbsW^jq@3Q?a*1~BfxYa*<^0)D#-TTEy+v= z*gQ~_b_10B>7F1kVjozvaN}Qlj3ujG{05eI@NtW6QV2eH z5N!nVQ;qhxVE8@+5bWb^!`7I=_3tX4+S9Sx;JJqMH>-ZlO^bAj=ov||YP z(|XxajLv>O2KK8VN3Q{D4C+;`de;er3#dukVd26P@Drl=?i-s2)W*NRE2;v=p(|y4 zHoE`a98_Rd0H*o{GzsTc1DkKa1y^TkWFdP*M2m;z8RzU5Yt>xzMWLR8_-m3;{GSn%ky^?Am zy>d8wBgI3SL}z)oU>i7%XxL5>{v5U^#I(U62OzkNFlgFwHDTPLV4zk38y^`XzU!25 z5`=tREa9F6AGEzi?Igl&D&T#>_ zeGHE`C|Ap@MAs-_ka)@(C8uLN2K&#T1qE&BGi{gm+=J0h=Zx?n6Lc|3MjNhYL~Q^L zNijnO$MY0agrCPw<-n#J;kh``E`;p=0v!*Xs1`IFz4`s8>o^vKrV-XGoagZxhwlCH zMC&V-L-rkuFAx6ed^~0^taJ)A{!INl(=-cvRPN$tfK@mQ;ViKO;hc18vkree^%w!f zA6Ew_oca+34ve3~KD21q9#tl04Xk~eW2Rg%7Vu9)fHI@YoPF{7-92`=XExBN|J5QvtdT^^`XGyQvVP_}>) z5O^}H7qz(`pYtm@_4Kd<3BQtd!K;z;MYyw=}%mHJ3f??Z9*k{!+EcUzX^BKr{imsY5+iOK})bHV5Kc6#<_U(N0`iK0s)($Uii!Pv9=05lB z=ho1r>5kKF=!j zn&kbVWpmO1Ao?@H)0V#%bK11;n53U+*KGIBVsKZ1sPuQIMP4;mco+sSN9?RD?TvLZ z?l>X&Ra)(pQvCBW^~~6eIUOJ%O7BXosvkMH0mLsy<@mje=L`wlS(0XW#c!Qs!m`&V zozqk#@Kz10aJKBr3gZ(jl3%Bbv#SCVuctAe6j#${LtLKm{i}2DI_&lK#%bP6d~%an zNqlD-!&kTd-tb_{qm7BZ?dl zGQ)kK?|}Ah$?+=#GsDrP8Fj-ZMmjXdTGk%NL7e)*XBS`RLM-dk`me)V*cY#KEZ2Qi`PGSe;>Q58Ae-IXr!X)msn>(1MohD;m+?4*5ta!EMgSADIgjH{p51Nw;N z$Ah1BGGxB(2=33@x;heb^zOu!g(`2c8M0mMcdN4KUvFL071ybF{d|4?jrc|9_T2e} zZ67n%eWuj?N1th(%4M$bv65oC(4Uw|nXFA~DdRZ$`gw{L`81j6!0rFDXYw-rSW0XMV_bn%d3@I7Jpo&w`bGDRcoCPU;Mc%D5>{~xSpA` zX{2R_7Ykk4HoB-CK|{Ai<_fF|@+P*TCGLi0ox z0AYA2YLu&5jsL8D*m5pKyJ}Wn++%-^+(xS0VmG7v*^B3#zDxb%in|%v!L-&s{SUqhjEsnJ87c9fec7U>P#~a>p z8N&iHJ_P1Nb6YC?d@Ptg7IWnIzpTygJVTqDYxZ#s4y$Ng3RHHMe6nkMw!(>AW#{eF zt@>x&=sm}sgOkMW%X)MKh9oswHmy&#_7A*}AF$eO-uFIRC*q`>o$pYvG7HP+_a}CU zU3SZ1l`_xH-cO~tBxiE%{F}Xo%Ucx<3nSMa>l<~S96I*=1#1bTHEd5|@(CYnH8UlZ zS=IdfBH>i6MO)dQan7c{nx8}Cj@7h|MP`q%%9UJn*PnNica-ST`oY(gLUS%BNyH*Y zIW9LS>9k423|DqY()hiUUDoAX6s$VlcRR@xZ+yR`f4{RNsHhE21DWgD1tH{3M%YCf z=-^GIIi#BZa$iobOi+@WsCYX}IY){mu{aqbC$DgN(nY9ME+Rq2EJ|b|PtnjUlBkO<0a+R|9M{Qc>oj80sC&uW=N3w`AE0) z8Ex9do+lAIzD04EdUBY{_attsuUebV z=U*&6t=ej|ad-E7S?;okCEt!Q8H$=T%VK6a-@dhl{cbrEbw#PE^Si~mQnp-tt~@;d zEQ!(GE3)xfV3L%`$d&lnO^Vc8&uf;s#B*;_^evpElBOHm_tTKAurPN=ePZ;i%1me) zH3pEToF4-I_1CXifKaVGA-3)0+!lDZ;_42CzxbQApDTanbjr{*nb1y;?9yro?Mhjg zw1T7;O&UGy|pnM>}BqJP_<^muglNwag)ohg4AAOqQR6pCd=EpK6CEH@QA^d`Hh zyh8Zuq!9x|)s8Q^nZ&d~()N6!y)lRc$L|K@$Y2;w2=w^(R2z zfrw*Y+^_v@bIon%K!~g^5AmXXg5bwXc89aX#DQ`N?vwz3D^YOZRh6rf4Mb+{ktmA_ z|M$?xN5n&y>{PCwh0M&@B5mm*)^p!gBw{8q0f-R_ehL1XD)jX0)84Pv!Yy|jUzS(< z;5(h7=dq2B+7^S;k4|BT_R9d%Y204l5x>mKn&n9j@v$TC^RZ?@Jadw_DGOw9^@;?b zoCFH|o-MbFb<@#KU4YU~8K}VZ{7qxHKHC*E#5wRFTsF+R6~c38!Q|7YzAa|QDBQK?~P;6q-fE{!o}gTKtue601An zoNVn(70P|lDWlDPLVKJS6-C)9EEl9eYTHAHUkw?dZ#z1!f?fhqT|f;AXwZeh+B2yw z0XeOr!0dz#>0p-W!2+nHvGz8MDxJIHtM_x1{l=}%lpAe1NsbTU)R z>*b*$Kk~WteX;p=-?8)u0wDQkB2@6K)GVZjKZ^k`mcEXU&I@f={9Tg#j6i4_aa0A| z-Rg|4f%s0lllBkDB$KP8`Tm7=VC35lU5ez}0{6jI2~NJ$0=x+vHu1h|U=~h19AX4n zyFibBfO600VdsbW?1#)HEbyA;#S2quf&~E-*-i;CI+mzs&>DBW`Y=Vc*yP;Kn>@q{v zHshjUsCy&EwI`Icv=6a5e(6%}uDsu`qsGCk2f?J>l`hF=nQ)*3kUTCfM-qL`j~X7y z`~tg@v>tL4rPNY|rda)1KRNO7{WZYT-3GSNDKFYxVIuMQ?gi1^*<3B{cI$JYLFDZC zudGk=|KRwzq^8+~6p4_o6obNql=1I5%4tf@-glQNpyDt0pqt2tQw?K3q3e*~giqz< zu<@mCf6x&1Rk<@+V0QOg_Zx)jM0|n00IIg+iU&6hF@V`NARI4`4RZW}7M`%y(CDhL z-ePvS{D})ciNx4h@|r))B>?kBy~RlPe&u|u%l&vF#rG#L_+5Cp_>mTlPnG0m`b^0x zLt^`y*$89j`&!#kDT0;%2_S_D=*HPiM-yA9pdT*p0sIXoNH&0Nq&79&!!7M8Orn6% zdm|Mz)IZDgPAyqlRUA6IDJ=q+)89Fp5wyG%_i<4HC{1|=x_7EG{;?N9(@x#S^Yj3* zya6XKQm^3HRZ@wDI9diIppcy#l7P!<@T#FIIbUm&d^}0kL%1MU84CD>BU)xGoS-T( z*GeCnh^JHl=qHIkF z`&H)|c3M?(tcjnsEvipCE3()P|EH zB&0>q4*B86eE}xC>M(*?3E7cA3Tm<(sHhK04B>u)k0?u*_D{U*=3XIisKbQ-&W@dZV=Lh$l?uO6;@!bWPdV${~dUtmi&j)IdOfl)3LTuOXCgd zyIukuHyUH#T>jn{_C5F#Ot(8N3PUq(yc0G|Y;ue%0=p zWQRD=j30XD@UR#b@jMAYP7~qCz0credWP(wHTgqYFxVbJLUvD$YSN=KCsidM-+3FB zNEYxe`+2Ex)XRdNgoLubM(FEVP6F-+sG>Q>5}*?2)9BEf1fi0u)Jd40)r+f z&@Ne9dZ?2xg!#wXqh^n}Hh>si11%^&^>t){g^y;!-?ZcJWx@P~&q0uPkeaI1%rDsPGfxgE@yKQJ0cr4r6m!_o8-+RO z*PsPmBtb*V+=YJNvdF~7i2YDLV&VUQf}gFfp-4MO#islLsy;jr+=>8hQq7toI=5XKEdE!9rh-0LtKJg^k9 zhE~l%_v1wijP3BQP4RZt9saWmCCdUsJv9yE{XsZ^oa}rl)oz1@C-(#`;yJM0M+*?Z5TB@ns)XZuy>#4>*#m?K>LWTDa|YRQZJiC z@bDWQt3Uz)Rp3d~hDUb~;1NS1n%G9{x2SA%9h^Mavfnq2*i2Y0sbr%EDd8j|bR?Yn zLclERc>g7b&d6+^`InamIU{!V`0MBK7U)0Xcr%-z-%nR4f_-c_0<|#I;zep$D~^KA z83l`18$$4jCM`2BwCqH*ynx3fZ;35FQm6l`RdU2Hz6F#4Rp`J8DKPO*RcBBk_{7N- zHQhj9Pv?k@J`Dl?^baaFbvh9D=q%*HJHyXxVA=`4VhAWaZX6Q+VPzK$ZYJam4Bg-` zAhVJ@Lht{RT<>1OofAgmA$ZM4ZyEI7SWC&Hwx>WOV;VLY{xo zlhvlBEX_{`rdHY?l!Zjx^beZid+=s@y`H;NbFMp0^kUCz*YwpqT1KTd9`%JNiW?1~ z(>6Og8=B8;dbGaY@%unJHPa2Y&%zp7ZUIia=3lF;GDf%$i5A6J4&L{lZZ|MkTYvn# zctLWi-N62m?^OHoytQljcCv-f6MDN&PdTM8r0IzG9pUXzyg%v3$kii#c)3(}#o%}c zQ1j{wgEQ@3O@0cD6X%7ujD2XiwCWU~zKh0Vr)7oSOv?oAr@wxeqwAE9U67b+JbYxZ zboh5Q$8K&H?}1Guv$>m;s%_X^m}Ltq5_$&*3MzBSTP`WUXS@yqg|L;dgRmtC*E zjalAK7$DC%H{|e&S;{Mv=Zb7y;fJ=KlY7oj?rl(e`L}?lG+P$==lxn4qxGjr&RaHD89Uq6Y{p+Ho#aW*6y`)Q@7w+` zyp6+fXD;JTOR~fCqvI4?rH;0L0bZ>usxc+PC9b(ws>$b?M-k8TFA@9mN1A+87y7ok zn>S7^)I1`qZlpHmNc+|_6Bn1~eD7DYy~~j|NBzZr@HF}Sc(t%7{)4N(JHR_){J`|@ z38#S~t7cNWs0IH;lO`Vy1<2)Z-J>h}e^@mA*#RGWx5)WjZCR!&u%S5a)bm-IGG%_v zzJVsz;BQML%i$?ft!#QJ@gJ6j+$<2-KId6VA*uO9aMv=awI4~3V=#TwpKH>TMe>!- zg*o)mXB>1U0F5X0hG!sX`=GDD%;l?J)S83nr|w$Tkkc&!3N9tJoO)fJZSujYRUbKB zSC>k6x3t*9^M?X}o&-q9iA>hUf2Mt;tx5ThW9d3ss2_mymuWa;f8gC&GWT2!h&0b* z4^eCTbvf)Ti_52`jU1lS(HWKx)C0*>fgzjImZyv$9%|#8U$-B8TyM$Q1zZwDq?S7& z+Fkj`X5yJk--|$?PUp29*1TRV(3kwA;j zL)_Wr{t6(-5-p2$4qK4{T<7Pt+5PKQx-Q<}!jDytUT>!}{5sk@>NI73Q+lTF!@?(E z;vxELIR_C&7>IZX9=qq0Cu9U!^jZ=DyX~Bz6vKdhMEFxrTdR$mYT47kotfO&D8>3) zPRN%8Xf8z9?Tdsa^6zm1;Gs-|SOT_yQsa3wJRYCQJs>UtWi813B{UiQ6W7A;|cuAJpP5-JbJbWLa57 z3$D^%rXi~lG{k8CGIa$YPvPqrKzYm2sml<3*K!a;pH@&G5&y9~k{Ok_JWd^|?&k(@ zo~O0bT5EdCjuBIyBlGjRkB`i+F+rH{Gv6nRshwWTC}f0K1l% zEP@!U*+x|$B&6Lzu>e$Uy-Ebd785s3{{>;5kzDV?5WMf0K_$DxCQj`{>vH8f+Ls5R z<$>`FMjXmn~U%bU@yE?jayj#WZ+{l}vxs!uF*fb zNLr(Rmt4xLS(cF&6!u*`hS5I#2^-EGEDO{#^(IIgjta+UI@e0!~hZ1@k+tGy{5`Wlu(=+G2#M zN~kea&m^YOz(kRrm`LP384=k(h7{v(H_l?xYgfFUfzaL$f{fy#ifkZKJWzZ5lbAs( zCP*K=1PS!Tdh@Ck5Pjz$^pr&ugBU+h#bg)Pp!$md9y${i#qxC{5dCtmEL7W#8bVnE zMW3y}4E+R5E!!AIpVkiyrN@ZqH^i|FY6i?_;tOiF>5T+{mkVDYAFj_H%3}oVu^mL2 zkFS_ZaXe#_0>bVsJzyYsrLsPEDz5w*gnWL_5g3v1D}EBHVc7T%;NX4^{^P6#GV!hbQuIUou;x8^u2KawWqNd!zqhQ ze9LF;xvO)^6h_f9aQiQb8e|LxNnZ!WfCmvyRaW{4BL3S1Fq#ImVMc>as zJonsTSHThc^Lotos~K%A-5Hl#mbCkB>DT#L+WdGkOd%D0JH)?OZ4iau@d(u@>mzFT zc>N?cY&IWDb$pLhvs#IctR4m4D}aq;xs3unaTEp0ve2DZ?NiJxkCn-1 z$Ll6mye`8~0}95B*9JkzLLRKR2t8&Z9g3O29vRF;v>W@bh$H}x+<4VaLyl4C zhe;u^=w9sAxUdSW7T**K15s!k%!;)f*R+y_@dtpYvq~w^ftoU2M;{=HIs#NGq;;KX z-ayTradQnt&9Erp%Hfe1Ka4Jq&^6Q%k~-bMDD-@H2qVy+wuN3O2kqi_fjtg1d%7!o z30fO|5}~TvjHAMnktOZVBlmw@xR!T&dgNJn;fKqs(6ND`pv*i#mP_v4?i z2mr3-JRsKq7&@@1;T*Up=cBWf=d`kQ#Z~{kIn)}-Zj4jDTZC|n9iyRy7qvFwC?)u6 zpH4KteN!(2A8aC0Cx1mX!}8F90wgUTiJ7N0L5GP7_o8Vd?+ntJteL06Gf=3%;K>Aq zT{!##sLgSH@2g#Tv>bSxg8t<&`e(oa)6}59fr{1!EdC{_xhC==4p8=~K=8{P* zRfEpmbeR-kdT24@O^#B66_1G=SOHH`P_;P`dKhr>s$jP4toXBG1WBq6fYPz-WW9%0oC&XLzTf(GW|$?b=o70eF&QwYzW)#uW7#&}5wy z)cW??uC0?bX2c*4uK`YMCLkDxd+5x5vSDYz?ia{^(MM#A&bu!@!~ z-~hC5kr)UsS@DR*p;bUE`)qt2fYN)<8ex_XD+yh3BZKJcP|cXaLD=mzZ-fd;i^&*m zdf*2$*sz06V;au4*aXFkQr`ndQVQA>w$ULF>Hcj~BhvdkF2$3vf%C z>hvu^#1+81)u=(FE5NJI?K}7``F_+>H&E9Lh?uLBqLV}d9JLLGk)^6Av%XJeL4KIoxkN{Vze^av=2d3Bpw1R@=Q^>{;h>uw?Z_N8D}zxk{1~Y5~|eY;OUL!ve7R z^830g{b5uGlAXB=3^;e#17B}$z&k5)>B3Bv^$IO65Gvj!b1Z~-a1wN!7#tZ_Q0@>n zzAhhL1WcnKC$L-sW*1$1gib+qbl4f4k{H3#+`obG>I|61FzU%$NGzknxAiZ%IqkjUSs?1x{e@0jto z;HOc1Dt4IMw54p`$u$1?MVG(qi_;Kf{#QDKV*1yLD_MX03T#I8))zG?ARs*H;W{O9 zGS=t4Z4khn^t3C3d#X%j-Cj8z!7snr_j_bftWtJoe<=()HVlckE^V#s0(@PMacS#{ z7Z9vk`d?~=_A6)6u2RlszgUd1h%jN(<0$Uf)6I1&n|Eq2!0+6v>El(ZkD!nvOPUlRPPMI>Ay5d_Vn{4RqmN_w zOSVhlFR<`AlB_zyLq|Fo|LX1^iZ$KuA+l>V-M9Ln_2|)CJ_2X8G=QFG$z=%DGg#8} zyk^5hmmosBo>?%<)4l)t$Hph))mKEsOjG2l8;{0a4?d>5{7{DBU@ou72`!PY&$7fr z;sPBRVsGwdmm1&8%6s+H$xSd-&%+$?#F5;NKZE1g5S56smP}AD19KEaU02|nI^6^- zZIH0d`*kEcBYip@h8+e19^%1^i^5;|nSyfw=9b;cfH`=sJQpVBSZ}JGciiK7<%GBi z(0bF`Fp~VE^{v32-@y}&;X%ItCzl>GoVX9!1v7>cg6B61d!`*a>-Yya%aFGaeO0Dk zBDEoeL}H%<%rWS=f91V;nQG^mbz34xH!%4O4al@VsHER>HFdRCkwlgBM!OJkHB_agAA;0czm_{ zmp#uWl}6pv6M-;ir;sWU@3A(ZthoWg%LxhSYHPmHfD_gg?~2s<3S{00V5-`gcLU~x z1PmEOhxX5<#%7a9^upBq+mO9p^YM-+u245cXOz$ZGHCkIdg(#+3{oF zRs3#sQ?#oQsK=rcKs^ot{Ql;|T_-!B@rIHGNd|>dFJ3f{!llquF;^bIR*&ys(-DWb z#U?uly4%YM);Ckh#Tc1tvxjv_{xBa^C?qq+RS@CNH&a~j;Q5&HQ5FLLGcQAQ-k&=* zNKgnAFCf0GAuj|`e&G?|_p3(d&Gx`*k`Aj`ZX6($%tv9u7izJMe}bU7Ay~W?l$+nc zkPPH~xE(B*q^9m)RyRT7uwm5g8C_e$;gZCO+sqQ<)MvecKvj|`;Up2he+wlW3o; z++aVq$PCKD)LY33g3D(I!HqH%#U3o-d>$_b+^%U#js*mhHcv@3fsomdtD1GnV6Dwp zK_ZO21jpJ_1H^kBQk-3KfNTzT-e4iiB3_O~g5{{WVYqzQW-xy8#z%rA_6E|PYu{J| z_!yunml2O2f|+1ySC7}+On^qaK5F5@R-2K_JHYV)pTAwcqulO5De-YDIu9W3>ymc#B-xaoD$6d8m!7OBU5?MfTmz^ketatjWwc8vgsz-hdZGjwP$}9c* z=y1)Fx@}8p>@k_i;D(TbW8-k{Z#!HqmjKw`2E_1Y)sS|krk%H=m2d3i7>J?9l>+K( z?MzYBs&L&CTzh;x+)(`;e#SL59lEj6?FO42Lh+uS;yA?79t(XGY_k#)=cWRy#=U`n zI3EFAJxtCK`5O4B3P8LOn*g5<_$!r@sj%=QAfTg(s*)z?7CC7Z38B|vB^=BVfNbUy z`LG@3sfs+HzAVx|=mB`pspgA<5Myn8^X=eZPF*C2`C=$UP&~#n=YQp8-trJZ0b~5} zwztw_;ovicjw0KGOgG0^oOu*A5%;`}Q@TNK2pI4?e261J#*O^OxMM?5q3xY9O3xwU z3-ul%s5+wn+yN&gB0xA3Vcr*}12uuHHykr-BS``#pM z>;Msjr6HA^)Wq&{KxhjZwIz8!ql?*#w~__tYa4g=#Q5T7At10*)nz^scsxaPjMx|` z(5AO~8ruMycn*6bY6S?N=W(j>EFAN!CPXZtQ~*AH|B)$8KQvzHw73V6^a@2ZfA5klzjslv?@X7+kCO%r_#bP0GLj6Ibv zLX2p_cEGYX!gj9kY!7MkeOI8+>{yy-=rI`gm__<;4u96pv_cnSoSAL_enXQ)I5RHh z;ru-!TPv<<*x>;AAAviv#FfODKYk}{!)-Ss-{%l0R1o zZ!v<^I)6(b(^L_B$LyEo4r$^ zrG*~S_l~*kBeXNE8)YpD{_Bhg|J>rE8#;zPy7rgckDy?FR#+Q7IG7rM*oD& zgexbd_n&$|C0}tqWTs0q!ncv?Rc?qxr>`S$_cgx*Y8G!yeRGpP>QWEm%uVlg$h- zS9@RTWRmxEny|5!;bu*14j4KFSp4KM&Ck8PL#nUIQrhqSUDNQVe^cRdONZz1#n;xE zErz3+XU+^R#q?M1Uh{BrIwW+Bp3bb)d*yDg=kXNlOpU;)%yciY;iV4)`(0nhKT(I{ z7uUkgM-NrqxU_8SRHn}oQF7?c_%Y3GUlLkrd_`jN__d9TD@fn6-<^QC@x~ZM-mjr! ziNieW|G0SLZv&?3Pd}3@M!dH?IDVxleP!Ld(|smI?dzI`_@l2r2QI>|1`$s5Lpg8W zS1f*N%B2w zABt!{7Q5=$HTq{B85XgUchFfKxz;mTX6H9>qr`|w{)l+2>kePO%E+LPzvW`2?fVzM zIy&>kN77J;4(^&1?x0p=@fv)eJ#wwy|DM5^yG5nuA5FGuYyC8BR$qmokHDq`(}n`7 z!5Nfv!#3xkzTI)aKo62|&^uwZ?zYpX@iHrm(R^Oa2JNI3I{>;9GK)3k1 zKaX3oq>>q$v|fLq4>b+qo$S-A-LZJ~Nr~cOZT%rb_bc%h9dl)VPAR#`H^tlcy}C;)-8%-X zdf4=E^35)%SN{1CUE}2+tVcz%3qrG+gW)|P>vLFA_PuIzQMrs}Zo0UY8}H}t*^}0s zAOADpv|s47=G1AS=|-*BQmkz@uZEdIMJcAPb(G$9V=c+kGW_C1KcC~5UR?WNKBL+g zbm{AgQid7}9R>XXWn|>H`~I$7{xdz&pQ!%`$#KS$;tN#pF*0skq%9^$9rt`!7;<4Rxtm8`KzU{2flhj-% zTPZd|zr|zgP3bIsr9>`NRr~i&L)I`5aqb%R^!X|G0gXhJ%WDOe}tW;cd?0(lo z4@9XIgeePpOj)$io^}`$|E(w`D44@)o;*D*lUZ)W)+aD*ZRgx#P+ULVaC~qSSVpC~|!@k7D1- z+BRUKDhZt1%jT;!(F;{Fj^t4VrTQY2a&3wF0Ol4jb<`h_%R1S#*D2v>7`($o{zeu! zY#g{$g3X0dvge&EOcHF~1b@n}0x~@CCUkkARI$ssAXJ7Iv^8<9S^Jy^q-U$E)T(AZ zP{(BsAd_v_BD~@PeR}H-2*?WI#W*jaLk^Ie3*J|I_8*0JtGyFA-vZdI zpEP8%*MTe)sk!_+;qa|}E+#}5LyT@b`eZ+M!oKYLDFh$4$u|4}2c2>e1t6$X5&I52 zqJPO&0(UOzSs=B|c8x${cNfDi8$i5prT-}+jJ$$S@m}5+7-|5EIr$RwVx)3{jxyX;)y)(t2k>17s(LQPNs_1+3&pee~kO~i< z-O2jfrvO}+LbS10&i23tjk7Y$QBntVymo*bE%`^z9~Umv?)q7#-DUlX zyYTvX?@JBUfaB>)LS6IK%)L*wBVw#T1A*vukj#ah$fF6|ij=_5FC#XuyptA?`IV~? zmMUkk`Ti?J-nfaNT*n(*u`YAI;uh4+4{em|PMWa7DJ?f#h)QblJiucuH zm_OKF)i=L86x{I9rX3_XO z=|b^*2Kxo443FIT3=v0o;MOG+j^KW1ar_~ag8nC*B^x(J>wAGe2tGmMJ{W@deaT5I z-HsPa=ZC`MRVeWhag!*M^e!!yvz;kwwa=0q-#k;+zkndRoet)n#0a@BME?(X*WHFi zK+OFAudeTaieg*3Zt}nohKwLNgJci{lpzNdktj%1l7N!KfaD|?7!{N(A_@#q5G0NS zkqic+l0->@NDw6RpC0df?_U4=u@*g??o)NDc2)IadhJt9%Lm)JAp|aiitjUr>GRX) zfK{NZ3A3ISEEcurRH5{|&1JvwRz(!RR49K00bl#sGWT~fl6k8s}l=mt8$EO_`npk)X1 zNVz)6!9QNqH1Pz+Tr1r8ys#Ulh3WbPoHXXM1>ekOF7|g}l_UW9(RWVzNAOPwJ;d0& z0-?E@F9re5-U>@IHb4|mSh*Ul!KwkON1CyQlyGs4NrGc{)SE6NoH9JNk^)D2m8}xlsnE2_Zy!()2;v8W30y3JNvO$}QZkMT; zI%wHGI|R7Cb32Ea4Efvi)U~vr3=6pdU(@{EJN-C-)9d@IsX^df6?AVd^QEW)o6L>q zn%|y?=2RBkJ(@DBkk^pCMp-T^5}R*EnUsKUYzC#>bqaKhk7@#Y58mB~1NWVi&t+c} z!jSRH(17FdH3FRueVjl69Xp%PgoC;EfR$aKtOR^Fe|{c(B?Nr9ckQ;CfO#s<0n^}q zleV|5D#SGdmw3F>KOy3#oge1NaaT$LR(t0)Qq6>H4u3$*oCcc#;WrhU+<{9cb`aD? zTCgn0xwHa!BMsbC`3?M(Kr0BQ-uAJ10uHKBErAt(r+k|hkim^r;HK2iuC#XvvW}}q{fG^=$YAb=74muxzPV$|E2KEfR1cbn2IM7J{ z#iLEY^zYpky91uwB;li>E^nJ%JmJ;ss%PtK6RH%7)l_{%Wh4;sqDyTq8K0gixz z${wf++Buuh%fpmI@Tj5S`aaCXeoNSh@JkR5*oij;B0GVVd7p|Fw*JRy0&SSUY8*8E z&AWz~>_1iEhtR;+6pN-VFL*g$TGV&Y%J_fIG)aMK1^XC`g}`=%IzppyL2d#UlwiMp zc)af6NL_T6%L6N9>&vK38mu3FS%5+M#GKCC?1&gPuS1fFY-nd#PQuK1d{8oEbjAsZ zPSj!)h)qK!%o>ijXe5H6NtK-|`CZp*FG-M;V7Sf?-cPW2b`0ZEX#_syYtnhoxyC+j zW{&&h(xL%j^Y!FuN~Ps%oTm-bTfw;3x);mwvgPfRTimD5tr|Db*?jNhYg&waCc&<= zFLX$v-zU-^t5cFdj*`VOL{No*7Wn&XR%wl=07I`RSPumoV8H<aao}>^aQR@Rwj5^p{vHbYJT>wY86f4O?&G&9ho%R@*FvRJCb&F;o zhdNZcng6RVpA*))Z^ME1w$y%Gv;wvS5ut^~P;s`1znsg7A)@b)3yF$_c>3$yijA2Q zo~1Pb@0bMQK+K-Who@2kq%@lF??R(b;fw{+E4#~n5qpSS+=NHQXWr=Fttp`k#?@;L7+sbjh;Zdi9k9zFIa6r zk*vk*@)JzZU0153tr;C_uyZDz+OXQ*80i~YzW43R{fV)^x_`J+p@+=aJOv;O6-b^B zb{cY~TihU#vWc-kkHEPW9`G{e_MyK{I9`TBHBdqUheM8++TV1dgfZdS?u*-mEJ5`0 zF!b(^1}zYpKP~#OF+I{S|C-#!?gkDnM<7@*dk9O{Y z2R!$R5S$*cBae@0w7xLvcDUW+yV>*zOY!aj<#wujnf|&J|Z6ZW53VLZ%dOQb-OaC^AGaB|O_Km1YDnVqqXum~R+tZmo$xITp&(lb5lBEv-FK zQIFM=hpVgQ3;=j8(4Lp5BRHpIAVCZKTj`9*fX8)ca0FN^e`NyU76o@hW}tu8S@<%z zC{Kxt4yXuf=1btJ)zuzFs@KKNu3oX94Uy@wl6PI%tsPvw6g21k zdtcLBc@A=25R{_35W97c*POfquNF^6tutS8BdG241dgQ3Acao@TrJqxt>wIh9pRLA zHUJf%A`MrARZfZGJ3{(0w8KG`_mydd^$|+@oa;+NfpljWWzj{N7Sx?4aHFsVlMpaY z0bf9&If8UJ2X&M(@KQ(ez?GZ;N}UikxTK zu{4qq9w?Aiy;J8IFR9v~yzup(2tmBOUbS13+Td0#$^CIOXBn;X@EGLh@9`0R&+uK(UTR!BGH< z06ZZ0mH~CF<-m!=_wEHJ3!e~KY3RA>bjtK#`F7bHjJXecv zf351Q0W3C31f@HeAatABGxtRwrR!MQ8puN9ELbPiJZ#EuPvKC(#w7330gRtD$u)pG z$1-XIzCrvpdLUtTR-{K`W@9g3dxQI6b#5~I)&8nf_|87v;m*3}A-7t{Cr8DavvrSL zhMiv7lBDRopy}cm+nnz&En2asuxfpn6cw92jBrdlo3whz-SOaKY*%fjk|VTNi%i*R zK&B+%k^cILu{-9Kr)4nZMwVhKa>sjU@zo*zVR2me>ifIvbH_!>AShc7S&?Mgd6pW# zs#m7SwZNR2rrQMS6 z6`ti*L?$DOX}Sxw3_12(PffczTY7eKTJfLjEuya2t#7mmy*h7>^@US@#;3i{ zy7x=vBf=!^{%%i6Jnz}wWemptVWREQP)cE9vtqyk%CPte_n9N68Zwqk#+@BoC*;q0 z+v?e@w(M`4+_SDzK9lyfvUqR2|NY@F#&)@p5^*oQT3HYCnbD_@PJi-qs3;p{wdIIy zb6;yXPBnjOrSdRvsnlt5mh4M+FFW^*ZVI+JlItwYe%XS%)yL_;#=L;;)tJyvAB^gn zJ~mwFdX-()Fwfcjeaqjrwr4$j<|lHiFSXC8P)1sa73H=;Z-1r>!)12fSh(l%;6%Xe z>Dg86FA>44&{hq)wD$PxY*&^G9+Z=7+<%wjP?gtrv#m*$nD?Z3H_5#vIg__J zs?MtU*Hf1`m|hK>dx~-F`f9E(%&Zz4d2jjHHkXhERaKZ!kN_9WmC=^PUA^<7(jw)) z4KwDH!U4~p_v_yXMlj5>e4e9nJgOl+8j_lI80T}q@fss$yPhnA`NpK?Z~th;@mdCj z33=lY1-g!0aZIW%QKJvjkVWgX4e7G#^(v`5_6f%qKM*OKH3Wt#06=81p%?4PLbl(u z2WvVxo6nIjg~f$_+83wyo_Oi{<)f^gNoJDellmge1I>Aw0Hai)jpr?9smL9+?7(CC zWTQN~ZTP$}JQX*k{G2p;BP>tI|3dxcsPqBKFwtqNloRupn-@#x%CUwQIV)Fmj7`Zn zAJ;x@q}8^j)3z?Uis+S~C_e3=MEzbKBebhC?s}P5+q(W-yGCNoEW2Ji3A>h1Y<(_` zsE%;E&Y@_Ih4{%JmEb2n3^FF(0~LV*vzm`;Zprl|TbLi}_LwpW#htR|ap-rWZ4!?* zKAc8{)2|d5zeX5~in{x?$TRYg=8E3-vwaGEzN2m#&a>b|nY3qyapo+LIx2EK<-z#m zrF^ODyT~_6{UJ0g1A*H)mHmn1PUX&Je0NLeqh%!J9PsDQr)7x*On$EFqIKt+Wzx#M4EsOmn z+Mzy8HooPtrAe~-ive$!)Y-zaw__;i?R>6sdR&TpQ{^A=O=@J-K+|L8yfn7~2cOow zxWaWk8jBZNR5}i9g`dSr(MRTQ4as9zan?Ots}+$@C^P+a1DZ)u1xCKc_45HnZZ*nk zLHxCKW=C2yeEf^NV-)Wd?P7)3u;9odMRz*U=q_(<9UX5}JaOXSR8&CnfEf$5+)UF0 zfjjZ>Yq*?`Vw!r!%o71zOgaP48WWm(U$f%-SnsWpnHFzNvQz4z2N4#vEuP}1!;csF zEpSF_6kYgQ8YyBe&^`L9BXj+e-jmAk6xJ-4!dnX>y^6QSIUe@C|q(+(hdmXDs^;2blvmYnMi{;*mGjuDWDj+ILFr zSDip1Eyd7KZM@jSdrGLxB|K}6bX>dJ9qLbF*;|50eL9;iHGc<__#+}dHhj9hM4N*W zhC0;GD5sC;4V6Tf24vR_iJc`vs^g!8b&`K8T`XLxzLgqLkFJ(%ntsolmq(o&zjyx@ zoB6~2@OkHX-olWMf%fj#z8X!J5+zsKX^eHNK%5Ik;={t!7ZYf^_9ygk$$#hIugvo7{tVew6L8b(m2 z-?r_(l?&A-K0N_B#QfP}5BY=lX-Npp>+DJg0~>P>wR`*xa&6kvN-eSrhFgVsbz6^D zocuVrRhW^YA0(}a&*W6-ooV0GIAW(?0;O&y;*6icA9x=-{A{^xW zd2c;D{I+xxpPQ-r1fF_-l3dWA`RW^f(J3p=g(`}-3;w(|uPCDiW@w1*5OM1EVlw#S z^mWhD=Tzv*%P(=eGx9p4Z@A7w+B_k+JP?{(5$qN=r6X$^QZ8HBfv z+?U7}bkAJ((yST6v>vyBXL#$<5ibB3fO5~IqlVzFES7ZqzkzdSc z7xWw@Ff8iLs=9Jx7-`kJF9NynMs3moT=<}kSZCYV3Ui;w3OLE<>-Os6D)p|k%lcV@ zvxhj&x*OCYB9wN?$vZJ{?+bn7lO>%XtO9}7$_w= z6!+OLB`Vp_7P8x@44}~qEhXmlD>^h%2*etSQQpY7~Jpde5V(j8e^) zLnVBN8pAsp`;D8|nNrV+_AUSVjKyqVLmoYC(Riy$d070RWIDKT<$I;+BIlRWPkRDs zGVe*fFn{1S9FhNscwE7&_pnVO91NS7J;+^$I#jY7cc$c>3WrqQoHeCz8E%>h(>DHf z7!iG{d}`czSx$5PI_hpo-K3S^h0ls#r)c_LwY=I5NAqpG9K&oqIKr}JdecKPCjm*H zfo1{DhNjpBaJ_KS3!LM{o#$+;GC-$j;{v(*o*EQnqDQ>HZyv7n48E{*k3Lx~s#8_<&S0+j;mvs3#`9MjZAf;|DbhIonmVo!D+QgAn9wBU zgx+i}C0&Ygb(`@aL-ZT%=O>vA7|isCT`sBI=Z$0H*0%SmB`UOvrfLvPsYWvsA4WC> z_6^N9?H}^oT2&7opjdX8^dB~g6v)$Y%A6f{Qz44Dg{69*JArtN=XF$A98rMK?o6`r zKX2E#zPU0<^11luXp}p1J6ccv%Zo1dJ}vqbvmr#IH6qd)%BcEa`6L?a$}Fa6O{$xB zuXL9SQOP6%y^VKhjV#9Pv6IGVspz<)rfy{+5}Y#wXkr*{UR`2GC=5hrQUm@}L z2Hi9T_mRAEqGDOYb^NgbVO+B8oMn(krjWG+RL1Yk)^j+h*kx}!L-%6zGwnkejoidhr|uqJ(PP-48|9=ygG?wcZ`Fv_OUoLmx|d z_Sui~tfVUxJCKN#-R=_e3RH`KU8+ZM5*!x1edQnT#ZK_54^ zt?9@OYUYQ7^;d2!w$_m&6KnAm?&VXRL&AYHEXn@kPR=pV@t4Ip{L*BP0o$b|k;{ z)sF7CrT%beeq0u|L#0R?T5vT+x2o^GcL;(fM@{J`&eyzg@8q$OAhRFa^dFeJ9!rua zVbOsI(S{r?)9U;QYH>A0Z=rMlX{UQR5vJwB&xsAjJrAOCjh|=lL@b5O%d%6QjSV)< z*L4b3rn(tJpRR(^F;3tzo7X@0o&ARCjZQ(nhe6i4-U)5m3=fs8bG;Ip1&JSSUF@1R zW_ajRbKwD9;M&(9{_yUGl6MxDu8IaCQMQ)tH>x2iV&{?;Z85&`*KU3_V>b-T>(*8G ztrTAi^33=@yl|QXao*)-sP~}oTPKleZ_B(YdF)zULh;kcma6#3wD$&kdSe%#gol=@VHOMS1&J#aCcdd? zL!EnhRN$MxU$L>*43J>H@&ul2_D1fpxpP$_2ey#X16{mpt4aC zMGt7}Av-=aKyRB;^he8;aHOaj?~HKXUQDv^ z1@|jFGium1ZoO@~Jk|MHcXU@cI3ZR-CF;pe%v9hL&y$I3+DCVpk(8p}SP_waHiZl~ zCWEW0h!HJ~Jl}Eqfan(a$cE%#3wcn}g>Upzpbc-xh#Y*o(r&hTmTZ#PWAQ^1w?&mA zbBIaFOD4fRp$l?%Gd?GAQyCOCU~$O88mt?#@C7z;9#@Xdcu>NOYE9Yjy&K$PfSG2F zwr`Eo<0&YWF(Kjos26e7 z+y_hNL1i8<<-zyM5g#y33&oVEqoUSWe#);A9|}t;WsU{X#9IzEG%uKTz7LXiXBkjG z&B-=ktT9tEc=B|tx>;;wNu?2y#_h@r)Q)HQ0`gmJ(XY*WQYWj^<;x zrtgrd3koV+6Cn?xj^Wu(D#a> zQAm}6D=q9w$KeV;9qm1xuxa)1Te;f7!EpHAL3sG?;^g7>!*CJ^Iy@wSj7}2~OF&EzIfQ^9h!^tc zk35Sdf}jX;2x0_h{`qrJ)AO32(=|UkQ;e6BuZ?8TRgXUvRGCTh{{&KJh#?6159v;@ zq@9nGhp&_*eEd`J9!2sJDOgzzOk@9t;4-i!$V2M4Y@nx)`z23LcX;i8)zcfJmHrhh z9tWi8{-H;flA!1B8vZmwEj5|>B@kK%zfAuS)}$r~`?@;#I60d5`CPf?;`?v@N3Q0m zy#|scz!m;~XgEeg(BSCf5C{wZ<2A1x2jEO_{uyE^fENJT&(-Ow)9)ie%by@wUpsnp9U$yV0YSj0zx|wL`3;gE z#>44f(Xpu-8BW|HhXSZBL2Q2$gdq1Le>(F&H~ut0`iPXw17H9j2Y9{d;M zzoYx7mO$L&n`I}6p!FBXKVtohiJ;{&h&2F}@FDweu|A5ahz;_BAR9XJKQxROB49iI zuHj#yyv4O8{tyI~7bHFEA9zH)LO_n5myLWpy?mt{yuAKx{WHpMy3YVGvs!8msS literal 0 HcmV?d00001 diff --git a/src/06_optimization/ex01/Makefile b/src/06_optimization/ex01/Makefile new file mode 100644 index 0000000..a619b9a --- /dev/null +++ b/src/06_optimization/ex01/Makefile @@ -0,0 +1,54 @@ +EXE=ex1 +SRCS=$(wildcard *.c) + +ifeq ($(target),) +target=nano +endif + +CFLAGS=-Wall -Wextra -g -c -O1 -MD -std=gnu11 -D_GNU_SOURCE + +ifeq ($(target),nano) +TOOLCHAIN_PATH=/buildroot/output/host/usr/bin/ +TOOLCHAIN=$(TOOLCHAIN_PATH)aarch64-linux- +CFLAGS+=-mcpu=cortex-a53 -funwind-tables +CFLAGS+=-fno-omit-frame-pointer +OBJDIR=.obj/nano +EXEC=$(EXE) +endif + +ifeq ($(target),host) +EXEC=$(EXE)_h +endif + +CC=$(TOOLCHAIN)gcc +LD=$(TOOLCHAIN)gcc +AR=$(TOOLCHAIN)ar +STRIP=$(TOOLCHAIN)strip +OBJDUMP=$(TOOLCHAIN)objdump + +OBJDIR=.obj/$(target) +OBJS= $(addprefix $(OBJDIR)/, $(SRCS:.c=.o)) + +$(OBJDIR)/%o: %c + $(CC) $(CFLAGS) $< -o $@ + +all: $(OBJDIR)/ $(EXEC) + +$(EXEC): $(OBJS) $(LINKER_SCRIPT) + $(LD) $(OBJS) $(LDFLAGS) -o $@ + +$(OBJDIR)/: + mkdir -p $(OBJDIR) + +clean: + rm -Rf $(OBJDIR) $(EXEC) $(EXEC)_s *~ t.txt + +clean_all: clean + rm -Rf .obj $(EXE) $(EXE)_s $(EXE)_a $(EXE)_a_s $(EXE)_h $(EXE)_h_s + +dump: all + $(OBJDUMP) -dS $(EXEC) > t.txt + +-include $(OBJS:.o=.d) + +.PHONY: all clean clean_all dump diff --git a/src/06_optimization/ex01/main.c b/src/06_optimization/ex01/main.c new file mode 100644 index 0000000..646c561 --- /dev/null +++ b/src/06_optimization/ex01/main.c @@ -0,0 +1,23 @@ +#include + +#define SIZE 5000 + +static int32_t array[SIZE][SIZE]; + +int main (void) +{ + int i, j, k; + + for (k = 0; k < 10; k++) + { + for (i = 0; i < SIZE; i++) + { + for (j = 0; j < SIZE; j++) + { + array[j][i]++; + } + } + } + return 0; +} + diff --git a/src/06_optimization/ex02/Makefile b/src/06_optimization/ex02/Makefile new file mode 100644 index 0000000..d043773 --- /dev/null +++ b/src/06_optimization/ex02/Makefile @@ -0,0 +1,54 @@ +EXE=ex2 +SRCS=$(wildcard *.c) + +ifeq ($(target),) +target=nano +endif + +CFLAGS=-Wall -Wextra -g -c -O0 -MD -std=gnu11 -D_GNU_SOURCE + +ifeq ($(target),nano) +TOOLCHAIN_PATH=/buildroot/output/host/usr/bin/ +TOOLCHAIN=$(TOOLCHAIN_PATH)aarch64-linux- +CFLAGS+=-mcpu=cortex-a53 -funwind-tables -fno-omit-frame-pointer +##CFLAGS+=-O2 +OBJDIR=.obj/nano +EXEC=$(EXE) +endif + +ifeq ($(target),host) +EXEC=$(EXE)_h +endif + +CC=$(TOOLCHAIN)gcc +LD=$(TOOLCHAIN)gcc +AR=$(TOOLCHAIN)ar +STRIP=$(TOOLCHAIN)strip +OBJDUMP=$(TOOLCHAIN)objdump + +OBJDIR=.obj/$(target) +OBJS= $(addprefix $(OBJDIR)/, $(SRCS:.c=.o)) + +$(OBJDIR)/%o: %c + $(CC) $(CFLAGS) $< -o $@ + +all: $(OBJDIR)/ $(EXEC) + +$(EXEC): $(OBJS) $(LINKER_SCRIPT) + $(LD) $(OBJS) $(LDFLAGS) -o $@ + +$(OBJDIR)/: + mkdir -p $(OBJDIR) + +clean: + rm -Rf $(OBJDIR) $(EXEC) $(EXEC)_s *~ t.txt + +clean_all: clean + rm -Rf .obj $(EXE) $(EXE)_s $(EXE)_a $(EXE)_a_s $(EXE)_h $(EXE)_h_s + +dump: all + $(OBJDUMP) -dS $(EXEC) > t.txt + +-include $(OBJS:.o=.d) + +.PHONY: all clean clean_all dump diff --git a/src/06_optimization/ex02/main.c b/src/06_optimization/ex02/main.c new file mode 100644 index 0000000..08db720 --- /dev/null +++ b/src/06_optimization/ex02/main.c @@ -0,0 +1,24 @@ +#include +#include + +#define SIZE 65536 + +int main() +{ + // generate data + short data[SIZE]; + for (int i = 0; i < SIZE; i++) { + data[i] = rand() % 512; + } + + + long long sum = 0; + for (int j = 0; j < 10000; j++) { + for (int i = 0; i < SIZE; i++) { + if (data[i] >= 256) { + sum += data[i]; + } + } + } + printf ("sum=%lld\n", sum); +} diff --git a/src/06_optimization/ex03/ApacheAccessLogAnalyzer.cpp b/src/06_optimization/ex03/ApacheAccessLogAnalyzer.cpp new file mode 100644 index 0000000..50047e8 --- /dev/null +++ b/src/06_optimization/ex03/ApacheAccessLogAnalyzer.cpp @@ -0,0 +1,37 @@ +#include "ApacheAccessLogAnalyzer.h" + +#include +#include +#include + + +ApacheAccessLogAnalyzer::ApacheAccessLogAnalyzer(std::string filename) + : myFilename(filename) +{ + +} + +void ApacheAccessLogAnalyzer::openFile() +{ + myInFile.open(myFilename.c_str()); +} + +void ApacheAccessLogAnalyzer::closeFile() +{ + myInFile.close(); +} + +void ApacheAccessLogAnalyzer::processFile() +{ + std::cout << "Processing log file " << myFilename << std::endl; + for( std::string line; getline( myInFile, line ); ) + { + // parse the log line to extract the hostname / ip address + int space_pos = line.find_first_of(" "); + std::string hostname = line.substr(0, space_pos); + + myHostCounter.notifyHost(hostname); + } + + std::cout << "Found " << myHostCounter.getNbOfHosts() << " unique Hosts/IPs" << std::endl; +} diff --git a/src/06_optimization/ex03/ApacheAccessLogAnalyzer.h b/src/06_optimization/ex03/ApacheAccessLogAnalyzer.h new file mode 100644 index 0000000..28a25cd --- /dev/null +++ b/src/06_optimization/ex03/ApacheAccessLogAnalyzer.h @@ -0,0 +1,20 @@ +#include "HostCounter.h" + +#include +#include +#include + +class ApacheAccessLogAnalyzer +{ + public: + ApacheAccessLogAnalyzer(std::string filename); + + void openFile(); + void closeFile(); + void processFile(); + + private: + std::string myFilename; + std::ifstream myInFile; + HostCounter myHostCounter; +}; diff --git a/src/06_optimization/ex03/HostCounter.cpp b/src/06_optimization/ex03/HostCounter.cpp new file mode 100644 index 0000000..99a5d5b --- /dev/null +++ b/src/06_optimization/ex03/HostCounter.cpp @@ -0,0 +1,26 @@ +#include "HostCounter.h" + +#include // for std::find + +HostCounter::HostCounter() +{ +} + +bool HostCounter::isNewHost(std::string hostname) +{ + return std::find(myHosts.begin(), myHosts.end(), hostname) == myHosts.end(); +} + +void HostCounter::notifyHost(std::string hostname) +{ + // add the host in the list if not already in + if(isNewHost(hostname)) + { + myHosts.push_back(hostname); + } +} + +int HostCounter::getNbOfHosts() +{ + return myHosts.size(); +} diff --git a/src/06_optimization/ex03/HostCounter.h b/src/06_optimization/ex03/HostCounter.h new file mode 100644 index 0000000..d627d02 --- /dev/null +++ b/src/06_optimization/ex03/HostCounter.h @@ -0,0 +1,22 @@ +#include + +#include + +class HostCounter +{ + public: + HostCounter(); + + // Announce a host to the HostCounter. + // if the host is new, it will be added to the list, otherwise we ignore it. + void notifyHost(std::string hostname); + + // return the number of unique hosts found so far + int getNbOfHosts(); + + private: + // check if host is already in the list + bool isNewHost(std::string hostname); + + std::vector< std::string > myHosts; +}; diff --git a/src/06_optimization/ex03/Makefile b/src/06_optimization/ex03/Makefile new file mode 100644 index 0000000..a511b48 --- /dev/null +++ b/src/06_optimization/ex03/Makefile @@ -0,0 +1,30 @@ +##CXX?=g++ +##CXXFLAGS=-Wall -Wextra -g -O0 -MD + +TOOLCHAIN_PATH=/buildroot/output/host/usr/bin/ +TOOLCHAIN=$(TOOLCHAIN_PATH)aarch64-linux- +CXX=$(TOOLCHAIN)g++ +CXXFLAGS=-Wall -Wextra -g -gdwarf -O0 -MD -mcpu=cortex-a53 -fno-omit-frame-pointer -funwind-tables + +SOURCES=$(wildcard *.cpp) +OBJECTS=$(SOURCES:.cpp=.o) +EXECUTABLE=read-apache-logs + +all: $(SOURCES) $(EXECUTABLE) + +$(EXECUTABLE): $(OBJECTS) + $(CXX) $(CXXFLAGS) -o $@ $(OBJECTS) + +.c.o: + $(CXX) -c $(CXXFLAGS) $< -o $@ + + +clean: + @rm -f $(OBJECTS) + @rm -f *.d *~ + +clean_all: clean + @rm -f $(EXECUTABLE) + @rm -f perf.data perf.data.old + +-include *.d diff --git a/src/06_optimization/ex03/main.cpp b/src/06_optimization/ex03/main.cpp new file mode 100644 index 0000000..f74cc0f --- /dev/null +++ b/src/06_optimization/ex03/main.cpp @@ -0,0 +1,30 @@ +#include "ApacheAccessLogAnalyzer.h" + +#include + +// forward declaration +void usage(const char* progName); + +int main(int argc, const char* argv[]) +{ + if(argc != 2) + { + usage(argv[0]); + return -1; + } + + std::string filename = argv[1]; + + ApacheAccessLogAnalyzer analyzer(filename); + + analyzer.openFile(); + analyzer.processFile(); + analyzer.closeFile(); +} + + +void usage(const char* progName) +{ + std::cout << "Usage: " << progName << " " << std::endl; + std::cout << "\nWhere is the apache access log file" << std::endl; +} diff --git a/src/06_optimization/gcov/Makefile b/src/06_optimization/gcov/Makefile new file mode 100644 index 0000000..dc3f70d --- /dev/null +++ b/src/06_optimization/gcov/Makefile @@ -0,0 +1,34 @@ +CC?=gcc +CFLAGS=-std=c11 -Wall -g -fprofile-arcs -ftest-coverage +SOURCES=$(wildcard *.c) +OBJECTS=$(SOURCES:.c=.o) +EXECUTABLE=example-gcov + +all: $(SOURCES) $(EXECUTABLE) + +$(EXECUTABLE): $(OBJECTS) + $(CC) $(CFLAGS) -o $@ $(OBJECTS) + +.c.o: + $(CC) -c $(CFLAGS) $< -o $@ + + +clean: + @rm -f $(OBJECTS) + @rm -f *.d + +clean_all: clean + @rm -f $(EXECUTABLE) + @rm -f perf.data perf.data.old + @rm -f *.gcno *.gcda *.gcov + + +gcov-generate: all + ./$(EXECUTABLE) + gcov main.c + +gcov-read: gcov-generate + less main.c.gcov + + +-include *.d diff --git a/src/06_optimization/gcov/main.c b/src/06_optimization/gcov/main.c new file mode 100644 index 0000000..4c39b85 --- /dev/null +++ b/src/06_optimization/gcov/main.c @@ -0,0 +1,19 @@ +#include + +int main (void) +{ + int res = 1; + for (int i=0; i<16; i++) + { + res *= 2; + } + + if(res < 10) + { + printf("dead code\n"); + } + + printf("res=%d\n", res); + + return 0; +} diff --git a/src/06_optimization/gpio/Makefile b/src/06_optimization/gpio/Makefile new file mode 100644 index 0000000..274aa5c --- /dev/null +++ b/src/06_optimization/gpio/Makefile @@ -0,0 +1,54 @@ +EXE=gpio +SRCS=$(wildcard *.c) + +ifeq ($(target),) +target=nano +endif + +CFLAGS=-Wall -Wextra -g -c -O1 -MD -std=gnu11 -D_GNU_SOURCE + +ifeq ($(target),nano) +TOOLCHAIN_PATH=/buildroot/output/host/usr/bin/ +TOOLCHAIN=$(TOOLCHAIN_PATH)aarch64-linux- +CFLAGS+=-mcpu=cortex-a53 -funwind-tables +##CFLAGS+=-O2 -fno-omit-frame-pointer +OBJDIR=.obj/nano +EXEC=$(EXE) +endif + +ifeq ($(target),host) +EXEC=$(EXE)_h +endif + +CC=$(TOOLCHAIN)gcc +LD=$(TOOLCHAIN)gcc +AR=$(TOOLCHAIN)ar +STRIP=$(TOOLCHAIN)strip +OBJDUMP=$(TOOLCHAIN)objdump + +OBJDIR=.obj/$(target) +OBJS= $(addprefix $(OBJDIR)/, $(SRCS:.c=.o)) + +$(OBJDIR)/%o: %c + $(CC) $(CFLAGS) $< -o $@ + +all: $(OBJDIR)/ $(EXEC) + +$(EXEC): $(OBJS) $(LINKER_SCRIPT) + $(LD) $(OBJS) $(LDFLAGS) -o $@ + +$(OBJDIR)/: + mkdir -p $(OBJDIR) + +clean: + rm -Rf $(OBJDIR) $(EXEC) $(EXEC)_s *~ t.txt + +clean_all: clean + rm -Rf .obj $(EXE) $(EXE)_s $(EXE)_a $(EXE)_a_s $(EXE)_h $(EXE)_h_s + +dump: all + $(OBJDUMP) -dS $(EXEC) > t.txt + +-include $(OBJS:.o=.d) + +.PHONY: all clean clean_all dump diff --git a/src/06_optimization/gpio/gpio.c b/src/06_optimization/gpio/gpio.c new file mode 100644 index 0000000..1266fbf --- /dev/null +++ b/src/06_optimization/gpio/gpio.c @@ -0,0 +1,87 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#define GPIO_EXPORT "/sys/class/gpio/export" +#define GPIO_UNEXPORT "/sys/class/gpio/unexport" +#define GPIO_GPIOG11 "/sys/class/gpio/gpio203" +#define GPIOG11 "203" + +static int open_gpio() +{ + // unexport pin out of sysfs (reinitialization) + int f = open (GPIO_UNEXPORT, O_WRONLY); + write (f, GPIOG11, strlen(GPIOG11)); + close (f); + + // export pin to sysfs + f = open (GPIO_EXPORT, O_WRONLY); + write (f, GPIOG11, strlen(GPIOG11)); + close (f); + + // config pin + f = open (GPIO_GPIOG11 "/direction", O_WRONLY); + write (f, "out", 3); + close (f); + + // open gpio value attribute + f = open (GPIO_GPIOG11 "/value", O_RDWR); + return f; +} + +/** + * main program... + */ +int main() +{ + cpu_set_t my_set; + CPU_ZERO(&my_set); + CPU_SET(2, &my_set); + sched_setaffinity(0, sizeof(cpu_set_t), &my_set); + + int gpio = open_gpio(); + bool on = false; + struct timespec start_time; + struct timespec stop_time; + clock_gettime (CLOCK_MONOTONIC, &start_time); // setup... + + + // --> measurement with internal timers + clock_gettime (CLOCK_MONOTONIC, &start_time); + for (int i=0; i<1000; i++) { + if (on) { + pwrite (gpio, "1", sizeof("1"), 0); + } else { + pwrite (gpio, "0", sizeof("0"), 0); + } + on = !on; + } + clock_gettime (CLOCK_MONOTONIC, &stop_time); + long long t = (stop_time.tv_nsec - start_time.tv_nsec) + + (stop_time.tv_sec - start_time.tv_sec) * 1000000000; + printf ("pwrite (gpio, \"1\", sizeof(\"1\"), 0) -> %lld ns\n", t/1000); + + + // --> measurement with oscilloscope + while(true) { + if (on) { + pwrite (gpio, "1", sizeof("1"), 0); + } else { + pwrite (gpio, "0", sizeof("0"), 0); + } + on = !on; + } + + return 0; +} diff --git a/src/06_optimization/gprof/Makefile b/src/06_optimization/gprof/Makefile new file mode 100644 index 0000000..ea6dc2d --- /dev/null +++ b/src/06_optimization/gprof/Makefile @@ -0,0 +1,34 @@ +CC?=gcc +CFLAGS=-std=c11 -Wall -pg +SOURCES=$(wildcard *.c) +OBJECTS=$(SOURCES:.c=.o) +EXECUTABLE=example-gprof + +all: $(SOURCES) $(EXECUTABLE) + +$(EXECUTABLE): $(OBJECTS) + $(CC) $(CFLAGS) -o $@ $(OBJECTS) + +.c.o: + $(CC) -c $(CFLAGS) $< -o $@ + + +clean: + @rm -f $(OBJECTS) + @rm -f *.d + +clean_all: clean + @rm -f $(EXECUTABLE) + @rm -f perf.data perf.data.old + @rm -f gmon.out gprof.out + + +gprof-generate: all + ./$(EXECUTABLE) + gprof $(EXECUTABLE) > gprof.out + +gprof-read: + less gprof.out + + +-include *.d diff --git a/src/06_optimization/gprof/main.c b/src/06_optimization/gprof/main.c new file mode 100644 index 0000000..a4cd546 --- /dev/null +++ b/src/06_optimization/gprof/main.c @@ -0,0 +1,21 @@ +void func1(void) +{ + for(int i=0; i<0xfffffff; i++); // wait... + return; +} + +void func2(void) +{ + for(int i=0;i<0xfffffff;i++); // wait... + func1(); + return; +} + +int main(void) +{ + for(int i=0;i<0xfffffff;i++); + func1(); + func2(); + + return 0; +} diff --git a/src/06_optimization/gprof/target.mk b/src/06_optimization/gprof/target.mk new file mode 100644 index 0000000..65ac0c7 --- /dev/null +++ b/src/06_optimization/gprof/target.mk @@ -0,0 +1,71 @@ +EXE=example-gprof +SRCS=$(wildcard *.c) + +ifeq ($(target),) +target=nano +endif + +CFLAGS=-Wall -Wextra -g -c -O1 -MD -std=gnu11 -D_GNU_SOURCE -pg + +ifeq ($(target),nano) +TOOLCHAIN_PATH=/buildroot/output/host/usr/bin/ +TOOLCHAIN=$(TOOLCHAIN_PATH)aarch64-linux- +CFLAGS+=-mcpu=cortex-a53 -funwind-tables +CFLAGS+=-O2 -fno-omit-frame-pointer +OBJDIR=.obj/nano +EXEC=$(EXE) +endif + +ifeq ($(target),host) +EXEC=$(EXE)_h +endif + +ifeq ($(target),xu3) +TOOLCHAIN_PATH=~/workspace/xu3/buildroot/output/host/usr/bin/ +TOOLCHAIN=$(TOOLCHAIN_PATH)arm-linux-gnueabihf- +CFLAGS+=-mcpu=cortex-a15.cortex-a7 -funwind-tables +##CFLAGS+=-O2 -fno-omit-frame-pointer +OBJDIR=.obj/xu3 +EXEC=$(EXE)_a +endif + +CC=$(TOOLCHAIN)gcc +LD=$(TOOLCHAIN)gcc +AR=$(TOOLCHAIN)ar +STRIP=$(TOOLCHAIN)strip +OBJDUMP=$(TOOLCHAIN)objdump + +OBJDIR=.obj/$(target) +OBJS= $(addprefix $(OBJDIR)/, $(SRCS:.c=.o)) + +$(OBJDIR)/%o: %c + $(CC) $(CFLAGS) $< -o $@ + +all: $(OBJDIR)/ $(EXEC) + +$(EXEC): $(OBJS) $(LINKER_SCRIPT) + $(LD) $(OBJS) $(LDFLAGS) -o $@ + +$(OBJDIR)/: + mkdir -p $(OBJDIR) + +clean: + rm -Rf $(OBJDIR) $(EXEC) $(EXEC)_s *~ t.txt + +clean_all: clean + rm -Rf .obj $(EXE) $(EXE)_s $(EXE)_a $(EXE)_a_s $(EXE)_h $(EXE)_h_s + @rm -f perf.data perf.data.old gmon.out gprof.out + +dump: all + $(OBJDUMP) -dS $(EXEC) > t.txt + +gprof-generate: all + ./$(EXECUTABLE) + gprof $(EXECUTABLE) > gprof.out + +gprof-read: + less gprof.out + +-include $(OBJS:.o=.d) + +.PHONY: all clean clean_all dump diff --git a/src/06_optimization/mmio/Makefile b/src/06_optimization/mmio/Makefile new file mode 100644 index 0000000..fcf2ee0 --- /dev/null +++ b/src/06_optimization/mmio/Makefile @@ -0,0 +1,54 @@ +EXE=mmio +SRCS=$(wildcard *.c) + +ifeq ($(target),) +target=nano +endif + +CFLAGS=-Wall -Wextra -g -c -O1 -MD -std=gnu11 -D_GNU_SOURCE + +ifeq ($(target),nano) +TOOLCHAIN_PATH=/buildroot/output/host/usr/bin/ +TOOLCHAIN=$(TOOLCHAIN_PATH)aarch64-linux- +CFLAGS+=-mcpu=cortex-a53 -funwind-tables +##CFLAGS+=-O2 -fno-omit-frame-pointer +OBJDIR=.obj/nano +EXEC=$(EXE) +endif + +ifeq ($(target),host) +EXEC=$(EXE)_h +endif + +CC=$(TOOLCHAIN)gcc +LD=$(TOOLCHAIN)gcc +AR=$(TOOLCHAIN)ar +STRIP=$(TOOLCHAIN)strip +OBJDUMP=$(TOOLCHAIN)objdump + +OBJDIR=.obj/$(target) +OBJS= $(addprefix $(OBJDIR)/, $(SRCS:.c=.o)) + +$(OBJDIR)/%o: %c + $(CC) $(CFLAGS) $< -o $@ + +all: $(OBJDIR)/ $(EXEC) + +$(EXEC): $(OBJS) $(LINKER_SCRIPT) + $(LD) $(OBJS) $(LDFLAGS) -o $@ + +$(OBJDIR)/: + mkdir -p $(OBJDIR) + +clean: + rm -Rf $(OBJDIR) $(EXEC) $(EXEC)_s *~ t.txt + +clean_all: clean + rm -Rf .obj $(EXE) $(EXE)_s $(EXE)_a $(EXE)_a_s $(EXE)_h $(EXE)_h_s + +dump: all + $(OBJDUMP) -dS $(EXEC) > t.txt + +-include $(OBJS:.o=.d) + +.PHONY: all clean clean_all dump diff --git a/src/06_optimization/mmio/mmio.c b/src/06_optimization/mmio/mmio.c new file mode 100644 index 0000000..7268e49 --- /dev/null +++ b/src/06_optimization/mmio/mmio.c @@ -0,0 +1,98 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#define GPIO_EXPORT "/sys/class/gpio/export" +#define GPIO_UNEXPORT "/sys/class/gpio/unexport" +#define GPIO_GPIOG11 "/sys/class/gpio/gpio203" +#define GPIOG11 "203" + +static int open_gpio() +{ + // unexport pin out of sysfs (reinitialization) + int f = open (GPIO_UNEXPORT, O_WRONLY); + write (f, GPIOG11, strlen(GPIOG11)); + close (f); + + // export pin to sysfs + f = open (GPIO_EXPORT, O_WRONLY); + write (f, GPIOG11, strlen(GPIOG11)); + close (f); + + // config pin + f = open (GPIO_GPIOG11 "/direction", O_WRONLY); + write (f, "out", 3); + close (f); + + // open gpio value attribute + f = open (GPIO_GPIOG11 "/value", O_RDWR); + return f; +} + +/** + * main program... + */ +int main() +{ + cpu_set_t my_set; + CPU_ZERO(&my_set); + CPU_SET(2, &my_set); + sched_setaffinity(0, sizeof(cpu_set_t), &my_set); + + int gpio = open_gpio(); + pwrite (gpio, "1", sizeof("1"), 0); + pwrite (gpio, "0", sizeof("0"), 0); + + int fd = open ("/dev/mem", O_RDWR); + if (fd == -1) return -1; + off_t psz = getpagesize(); + volatile uint32_t* pio = mmap (0, psz, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0x01c20000); + volatile uint32_t* dat_pio = pio + (0x810+6*0x24)/4; + + struct timespec start_time; + struct timespec stop_time; + clock_gettime (CLOCK_MONOTONIC, &start_time); // setup... + + // --> measurement with internal timers on gpio + clock_gettime (CLOCK_MONOTONIC, &start_time); + + for (int i=0; i<1000; i++) + *dat_pio ^= (1<<11); + + clock_gettime (CLOCK_MONOTONIC, &stop_time); + long long t = (stop_time.tv_nsec - start_time.tv_nsec) + + (stop_time.tv_sec - start_time.tv_sec) * 1000000000; + printf ("*dat_pio ^= (1<<11) --> %6lld ns\n", t/1000); + + + // --> measurement on internal data with internal timers + volatile uint32_t data = 0; + clock_gettime (CLOCK_MONOTONIC, &start_time); + + for (int i=0; i<1000; i++) + data ^= (1<<11); + + clock_gettime (CLOCK_MONOTONIC, &stop_time); + t = (stop_time.tv_nsec - start_time.tv_nsec) + + (stop_time.tv_sec - start_time.tv_sec) * 1000000000; + printf ("data ^= (1<<11) --> %6lld ns\n", t/1000); + + + // --> measurement with oscilloscope + while(true) { + *dat_pio ^= (1<<11); + } + + return 0; +} diff --git a/src/06_optimization/trace/Makefile b/src/06_optimization/trace/Makefile new file mode 100644 index 0000000..451b10f --- /dev/null +++ b/src/06_optimization/trace/Makefile @@ -0,0 +1,54 @@ +EXE=tracing +SRCS=$(wildcard *.c) + +ifeq ($(target),) +target=nano +endif + +CFLAGS=-Wall -Wextra -g -c -O1 -MD -std=gnu11 -D_GNU_SOURCE + +ifeq ($(target),nano) +TOOLCHAIN_PATH=/buildroot/output/host/usr/bin/ +TOOLCHAIN=$(TOOLCHAIN_PATH)aarch64-linux- +CFLAGS+=-mcpu=cortex-a53 -funwind-tables +##CFLAGS+=-O2 -fno-omit-frame-pointer +OBJDIR=.obj/nano +EXEC=$(EXE) +endif + +ifeq ($(target),host) +EXEC=$(EXE)_h +endif + +CC=$(TOOLCHAIN)gcc +LD=$(TOOLCHAIN)gcc +AR=$(TOOLCHAIN)ar +STRIP=$(TOOLCHAIN)strip +OBJDUMP=$(TOOLCHAIN)objdump + +OBJDIR=.obj/$(target) +OBJS= $(addprefix $(OBJDIR)/, $(SRCS:.c=.o)) + +$(OBJDIR)/%o: %c + $(CC) $(CFLAGS) $< -o $@ + +all: $(OBJDIR)/ $(EXEC) + +$(EXEC): $(OBJS) $(LINKER_SCRIPT) + $(LD) $(OBJS) $(LDFLAGS) -o $@ + +$(OBJDIR)/: + mkdir -p $(OBJDIR) + +clean: + rm -Rf $(OBJDIR) $(EXEC) $(EXEC)_s *~ t.txt + +clean_all: clean + rm -Rf .obj $(EXE) $(EXE)_s $(EXE)_a $(EXE)_a_s $(EXE)_h $(EXE)_h_s + +dump: all + $(OBJDUMP) -dS $(EXEC) > t.txt + +-include $(OBJS:.o=.d) + +.PHONY: all clean clean_all dump diff --git a/src/06_optimization/trace/example1.sh b/src/06_optimization/trace/example1.sh new file mode 100644 index 0000000..24fa81d --- /dev/null +++ b/src/06_optimization/trace/example1.sh @@ -0,0 +1,7 @@ +#!/bin/sh +# 1. example +echo 1 > /sys/kernel/debug/tracing/events/sched/sched_switch/enable +./tracing & +pidof tracing > /sys/kernel/debug/tracing/set_event_pid +echo 1 > /sys/kernel/debug/tracing/tracing_on ; sleep 2 ; echo 0 > /sys/kernel/debug/tracing/tracing_on +trace-cmd show diff --git a/src/06_optimization/trace/example2.sh b/src/06_optimization/trace/example2.sh new file mode 100644 index 0000000..158a565 --- /dev/null +++ b/src/06_optimization/trace/example2.sh @@ -0,0 +1,10 @@ +#!/bin/sh +# 2. example +echo function_graph > /sys/kernel/debug/tracing/current_tracer +echo *i2c* > /sys/kernel/debug/tracing/set_ftrace_filter +echo 1 > /sys/kernel/debug/tracing/tracing_on +i2cdetect -y 0 +echo 0 > /sys/kernel/debug/tracing/tracing_on +trace-cmd show +echo nop > /sys/kernel/debug/tracing/current_tracer + diff --git a/src/06_optimization/trace/main.c b/src/06_optimization/trace/main.c new file mode 100644 index 0000000..1370ebd --- /dev/null +++ b/src/06_optimization/trace/main.c @@ -0,0 +1,8 @@ +#include + +int main() +{ + while(1) + sleep(1); + return 0; +} \ No newline at end of file diff --git a/src/06_optimization/trace/setup.sh b/src/06_optimization/trace/setup.sh new file mode 100644 index 0000000..c7a0e1b --- /dev/null +++ b/src/06_optimization/trace/setup.sh @@ -0,0 +1 @@ +mount -t debugfs nodev /sys/kernel/debug diff --git a/src/07_miniproj/oled/Makefile b/src/07_miniproj/oled/Makefile new file mode 100644 index 0000000..134cdc6 --- /dev/null +++ b/src/07_miniproj/oled/Makefile @@ -0,0 +1,58 @@ +EXEC=oleds +DTB = mydt.dtb +SRCS=$(wildcard *.c) + +target=nano + +TOOLCHAIN_PATH=/buildroot/output/host/usr/bin/ +TOOLCHAIN=$(TOOLCHAIN_PATH)aarch64-linux- +CFLAGS=-Wall -Wextra -g -c -O0 -MD -std=gnu11 +CFLAGS+=-mcpu=cortex-a53 -funwind-tables +##CFLAGS+=-O2 -fno-omit-frame-pointer +OBJDIR=.obj/nano + +CC=$(TOOLCHAIN)gcc +LD=$(TOOLCHAIN)gcc +AR=$(TOOLCHAIN)ar +STRIP=$(TOOLCHAIN)strip + +OBJDIR=.obj/$(target) +OBJS= $(addprefix $(OBJDIR)/, $(SRCS:.c=.o)) + +$(OBJDIR)/%o: %c + $(CC) $(CFLAGS) $< -o $@ + +all: $(OBJDIR)/ $(EXEC) dtb + echo $(EXEC) + echo $(SRCS) + +$(EXEC): $(OBJS) $(LINKER_SCRIPT) + $(LD) $(OBJS) $(LDFLAGS) -o $@ + +$(OBJDIR)/: + mkdir -p $(OBJDIR) + +clean: + rm -Rf $(OBJDIR) $(EXEC) $(EXEC)_s .obj *.dtb *~ + +clean_all: clean + +CVER := aarch64-linux- +KVER := 5.15.148 +CPU := arm64 + +KDIR := /buildroot/output/build/linux-$(KVER)/ +PWD := $(shell pwd) + +INCL+=-I. -I$(KDIR)/include -I$(KDIR)/arch/arm64/boot/dts/ +DTS = $(DTB:.dtb=.dts) + +dtb: $(DTB) +$(DTB) : $(DTS) + ln -s $(KDIR)/arch/arm/boot/dts arm + -cpp $(INCL) -E -P -x assembler-with-cpp $(DTS) | dtc -I dts -O dtb -o $(DTB) - + rm arm + +-include $(OBJS:.o=.d) + +.PHONY: all clean clean_all dtb diff --git a/src/07_miniproj/oled/main.c b/src/07_miniproj/oled/main.c new file mode 100644 index 0000000..664e4dd --- /dev/null +++ b/src/07_miniproj/oled/main.c @@ -0,0 +1,23 @@ +#include "ssd1306.h" + +int main() +{ + ssd1306_init(); + + ssd1306_set_position (0,0); + ssd1306_puts("CSEL1a - SP.07"); + ssd1306_set_position (0,1); + ssd1306_puts(" Demo - SW"); + ssd1306_set_position (0,2); + ssd1306_puts("--------------"); + + ssd1306_set_position (0,3); + ssd1306_puts("Temp: 35'C"); + ssd1306_set_position (0,4); + ssd1306_puts("Freq: 1Hz"); + ssd1306_set_position (0,5); + ssd1306_puts("Duty: 50%"); + + return 0; +} + diff --git a/src/07_miniproj/oled/mydt.dts b/src/07_miniproj/oled/mydt.dts new file mode 100644 index 0000000..8841022 --- /dev/null +++ b/src/07_miniproj/oled/mydt.dts @@ -0,0 +1,13 @@ +/dts-v1/; + +#include "allwinner/sun50i-h5-nanopi-neo-plus2.dts" + +/ { + /delete-node/ leds; +}; + +&i2c0 { + status = "okay"; +}; + + diff --git a/src/07_miniproj/oled/ssd1306.c b/src/07_miniproj/oled/ssd1306.c new file mode 100644 index 0000000..a8e7195 --- /dev/null +++ b/src/07_miniproj/oled/ssd1306.c @@ -0,0 +1,236 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "ssd1306.h" + +// this code is mainly based on Bakebit software: https://github.com/friendlyarm/BakeBit + +#define ARRAY_OF(x) (sizeof(x)/sizeof(x[0])) + +#define I2C_BUS "/dev/i2c-0" +#define OLED_ADDR 0x3c +#define OLED_COMMAND_MODE 0x00 +#define OLED_DATA_MODE 0x40 +#define OLED_DISPLAY_OFF_CMD 0xae +#define OLED_DISPLAY_ON_CMD 0xaf + +static const uint8_t font[][8] = { +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, +{0x00,0x00,0x5F,0x00,0x00,0x00,0x00,0x00}, +{0x00,0x00,0x07,0x00,0x07,0x00,0x00,0x00}, +{0x00,0x14,0x7F,0x14,0x7F,0x14,0x00,0x00}, +{0x00,0x24,0x2A,0x7F,0x2A,0x12,0x00,0x00}, +{0x00,0x23,0x13,0x08,0x64,0x62,0x00,0x00}, +{0x00,0x36,0x49,0x55,0x22,0x50,0x00,0x00}, +{0x00,0x00,0x05,0x03,0x00,0x00,0x00,0x00}, +{0x00,0x1C,0x22,0x41,0x00,0x00,0x00,0x00}, +{0x00,0x41,0x22,0x1C,0x00,0x00,0x00,0x00}, +{0x00,0x08,0x2A,0x1C,0x2A,0x08,0x00,0x00}, +{0x00,0x08,0x08,0x3E,0x08,0x08,0x00,0x00}, +{0x00,0xA0,0x60,0x00,0x00,0x00,0x00,0x00}, +{0x00,0x08,0x08,0x08,0x08,0x08,0x00,0x00}, +{0x00,0x60,0x60,0x00,0x00,0x00,0x00,0x00}, +{0x00,0x20,0x10,0x08,0x04,0x02,0x00,0x00}, +{0x00,0x3E,0x51,0x49,0x45,0x3E,0x00,0x00}, +{0x00,0x00,0x42,0x7F,0x40,0x00,0x00,0x00}, +{0x00,0x62,0x51,0x49,0x49,0x46,0x00,0x00}, +{0x00,0x22,0x41,0x49,0x49,0x36,0x00,0x00}, +{0x00,0x18,0x14,0x12,0x7F,0x10,0x00,0x00}, +{0x00,0x27,0x45,0x45,0x45,0x39,0x00,0x00}, +{0x00,0x3C,0x4A,0x49,0x49,0x30,0x00,0x00}, +{0x00,0x01,0x71,0x09,0x05,0x03,0x00,0x00}, +{0x00,0x36,0x49,0x49,0x49,0x36,0x00,0x00}, +{0x00,0x06,0x49,0x49,0x29,0x1E,0x00,0x00}, +{0x00,0x00,0x36,0x36,0x00,0x00,0x00,0x00}, +{0x00,0x00,0xAC,0x6C,0x00,0x00,0x00,0x00}, +{0x00,0x08,0x14,0x22,0x41,0x00,0x00,0x00}, +{0x00,0x14,0x14,0x14,0x14,0x14,0x00,0x00}, +{0x00,0x41,0x22,0x14,0x08,0x00,0x00,0x00}, +{0x00,0x02,0x01,0x51,0x09,0x06,0x00,0x00}, +{0x00,0x32,0x49,0x79,0x41,0x3E,0x00,0x00}, +{0x00,0x7E,0x09,0x09,0x09,0x7E,0x00,0x00}, +{0x00,0x7F,0x49,0x49,0x49,0x36,0x00,0x00}, +{0x00,0x3E,0x41,0x41,0x41,0x22,0x00,0x00}, +{0x00,0x7F,0x41,0x41,0x22,0x1C,0x00,0x00}, +{0x00,0x7F,0x49,0x49,0x49,0x41,0x00,0x00}, +{0x00,0x7F,0x09,0x09,0x09,0x01,0x00,0x00}, +{0x00,0x3E,0x41,0x41,0x51,0x72,0x00,0x00}, +{0x00,0x7F,0x08,0x08,0x08,0x7F,0x00,0x00}, +{0x00,0x41,0x7F,0x41,0x00,0x00,0x00,0x00}, +{0x00,0x20,0x40,0x41,0x3F,0x01,0x00,0x00}, +{0x00,0x7F,0x08,0x14,0x22,0x41,0x00,0x00}, +{0x00,0x7F,0x40,0x40,0x40,0x40,0x00,0x00}, +{0x00,0x7F,0x02,0x0C,0x02,0x7F,0x00,0x00}, +{0x00,0x7F,0x04,0x08,0x10,0x7F,0x00,0x00}, +{0x00,0x3E,0x41,0x41,0x41,0x3E,0x00,0x00}, +{0x00,0x7F,0x09,0x09,0x09,0x06,0x00,0x00}, +{0x00,0x3E,0x41,0x51,0x21,0x5E,0x00,0x00}, +{0x00,0x7F,0x09,0x19,0x29,0x46,0x00,0x00}, +{0x00,0x26,0x49,0x49,0x49,0x32,0x00,0x00}, +{0x00,0x01,0x01,0x7F,0x01,0x01,0x00,0x00}, +{0x00,0x3F,0x40,0x40,0x40,0x3F,0x00,0x00}, +{0x00,0x1F,0x20,0x40,0x20,0x1F,0x00,0x00}, +{0x00,0x3F,0x40,0x38,0x40,0x3F,0x00,0x00}, +{0x00,0x63,0x14,0x08,0x14,0x63,0x00,0x00}, +{0x00,0x03,0x04,0x78,0x04,0x03,0x00,0x00}, +{0x00,0x61,0x51,0x49,0x45,0x43,0x00,0x00}, +{0x00,0x7F,0x41,0x41,0x00,0x00,0x00,0x00}, +{0x00,0x02,0x04,0x08,0x10,0x20,0x00,0x00}, +{0x00,0x41,0x41,0x7F,0x00,0x00,0x00,0x00}, +{0x00,0x04,0x02,0x01,0x02,0x04,0x00,0x00}, +{0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00}, +{0x00,0x01,0x02,0x04,0x00,0x00,0x00,0x00}, +{0x00,0x20,0x54,0x54,0x54,0x78,0x00,0x00}, +{0x00,0x7F,0x48,0x44,0x44,0x38,0x00,0x00}, +{0x00,0x38,0x44,0x44,0x28,0x00,0x00,0x00}, +{0x00,0x38,0x44,0x44,0x48,0x7F,0x00,0x00}, +{0x00,0x38,0x54,0x54,0x54,0x18,0x00,0x00}, +{0x00,0x08,0x7E,0x09,0x02,0x00,0x00,0x00}, +{0x00,0x18,0xA4,0xA4,0xA4,0x7C,0x00,0x00}, +{0x00,0x7F,0x08,0x04,0x04,0x78,0x00,0x00}, +{0x00,0x00,0x7D,0x00,0x00,0x00,0x00,0x00}, +{0x00,0x80,0x84,0x7D,0x00,0x00,0x00,0x00}, +{0x00,0x7F,0x10,0x28,0x44,0x00,0x00,0x00}, +{0x00,0x41,0x7F,0x40,0x00,0x00,0x00,0x00}, +{0x00,0x7C,0x04,0x18,0x04,0x78,0x00,0x00}, +{0x00,0x7C,0x08,0x04,0x7C,0x00,0x00,0x00}, +{0x00,0x38,0x44,0x44,0x38,0x00,0x00,0x00}, +{0x00,0xFC,0x24,0x24,0x18,0x00,0x00,0x00}, +{0x00,0x18,0x24,0x24,0xFC,0x00,0x00,0x00}, +{0x00,0x00,0x7C,0x08,0x04,0x00,0x00,0x00}, +{0x00,0x48,0x54,0x54,0x24,0x00,0x00,0x00}, +{0x00,0x04,0x7F,0x44,0x00,0x00,0x00,0x00}, +{0x00,0x3C,0x40,0x40,0x7C,0x00,0x00,0x00}, +{0x00,0x1C,0x20,0x40,0x20,0x1C,0x00,0x00}, +{0x00,0x3C,0x40,0x30,0x40,0x3C,0x00,0x00}, +{0x00,0x44,0x28,0x10,0x28,0x44,0x00,0x00}, +{0x00,0x1C,0xA0,0xA0,0x7C,0x00,0x00,0x00}, +{0x00,0x44,0x64,0x54,0x4C,0x44,0x00,0x00}, +{0x00,0x08,0x36,0x41,0x00,0x00,0x00,0x00}, +{0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x00}, +{0x00,0x41,0x36,0x08,0x00,0x00,0x00,0x00}, +{0x00,0x02,0x01,0x01,0x02,0x01,0x00,0x00}, +{0x00,0x02,0x05,0x05,0x02,0x00,0x00,0x00}, +}; + + +static const uint8_t init_commands[] = { + 0xAE, //display off + 0x00, //set lower column address + 0x10, //set higher column address + 0x40, //set display start line + 0xB0, //set page address + 0x81, + 0xCF, //0~255???????????????? + 0xA1, //set segment remap + 0xA6, //normal / reverse + 0xA8, //multiplex ratio + 0x3F, //duty = 1/64 + 0xC8, //Com scan direction + 0xD3, //set display offset + 0x00, + 0xD5, //set osc division + 0x80, + 0xD9, //set pre-charge period + 0xF1, + 0xDA, //set COM pins + 0x12, + 0xDB, //set vcomh + 0x40, + 0x8D, //set charge pump enable + 0x14, + 0xAF, //display ON + +}; + +static int fd; + +static void send_command(uint8_t cmd) +{ + uint8_t buf[2]= { + [0] = OLED_COMMAND_MODE, + [1] = cmd, + }; + if (write(fd, buf, sizeof(buf)) != sizeof(buf)) { + printf ("error while sending command\n"); + } +} + +void send_data(uint8_t byte) +{ + uint8_t buf[2] = { + [0] = OLED_DATA_MODE, + [1] = byte, + }; + if (write(fd, buf, sizeof(buf)) != sizeof(buf)) { + printf ("error while sending data\n"); + } +} + +void ssd1306_set_position (uint32_t column, uint32_t row) +{ + send_command(0xb0 + row); //set page address + send_command(0x00 + (8*column & 0x0f)); //set column lower address + send_command(0x10 + ((8*column>>4)&0x0f)); //set column higher address +} + +void ssd1306_putc(char c) +{ + if ((c<32) || (c>127)) // Ignore non-printable ASCII characters + c=' '; + c-=32; + + for (int i=0; i<8; i++) { + uint8_t data=font[(int)c][i]; + send_data(data); + } +} + +void ssd1306_puts(const char* str) +{ + while (*str != 0) + ssd1306_putc(*str++); +} + +void ssd1306_clear_display() +{ + send_command(OLED_DISPLAY_OFF_CMD);// display off + for (int j=0; j<8; j++) { + ssd1306_set_position(0,j); + for (int i=0; i<16; i++) //clear all columns + ssd1306_putc(' '); + } + send_command(OLED_DISPLAY_ON_CMD); //display on + ssd1306_set_position(0,0); +} + +int ssd1306_init() +{ + fd = open(I2C_BUS, O_RDWR); + if (fd < 0) { + printf("ERROR: unable to open i2c bus interface (%s)\n", I2C_BUS); + return -1; + } + if (ioctl(fd, I2C_SLAVE, OLED_ADDR) < 0) { + printf("ERROR: unable to access OLED as slave\n"); + return -1; + } + + for (unsigned i=0; i + +int ssd1306_init(); +void ssd1306_set_position (uint32_t column, uint32_t row); +void ssd1306_putc(char c); +void ssd1306_puts(const char* str); +void ssd1306_clear_display(); + +#endif \ No newline at end of file diff --git a/src/buildroot_path b/src/buildroot_path new file mode 100644 index 0000000..f4f8654 --- /dev/null +++ b/src/buildroot_path @@ -0,0 +1,5 @@ +export PATH := /buildroot/output/host/usr/sbin$\ + :/buildroot/output/host/usr/bin/$\ + :/buildroot/output/host/sbin$\ + :/buildroot/output/host/bin/$\ + :$(PATH) diff --git a/src/kernel_settings b/src/kernel_settings new file mode 100644 index 0000000..fe2eedc --- /dev/null +++ b/src/kernel_settings @@ -0,0 +1,8 @@ +CVER := aarch64-buildroot-linux-gnu- +KVER := 5.15.148 +CPU := arm64 + +KDIR := /buildroot/output/build/linux-$(KVER)/ +TOOLS := /buildroot/output/host/usr/bin/$(CVER) +MODPATH := /rootfs +#MODPATH := /buildroot/output/target diff --git a/src/nanopi.cmake b/src/nanopi.cmake new file mode 100644 index 0000000..4e3ab41 --- /dev/null +++ b/src/nanopi.cmake @@ -0,0 +1,14 @@ +set(CMAKE_SYSTEM_NAME Linux) + +find_program(CMAKE_C_COMPILER aarch64-linux-gcc) +find_program(CMAKE_CXX_COMPILER aarch64-linux-g++) +set(CMAKE_FIND_ROOT_PATH /buildroot/output/host) +set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) + +set(CMAKE_C_FLAGS "-Wall -Wextra -g -O0 -MD -std=gnu17") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mcpu=cortex-a53 -funwind-tables") + +set(CMAKE_CXX_FLAGS "-Wall -Wextra -g -O0 -MD -std=gnu++17") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcpu=cortex-a53 -funwind-tables") diff --git a/src/set_host_path b/src/set_host_path new file mode 100644 index 0000000..f4f8654 --- /dev/null +++ b/src/set_host_path @@ -0,0 +1,5 @@ +export PATH := /buildroot/output/host/usr/sbin$\ + :/buildroot/output/host/usr/bin/$\ + :/buildroot/output/host/sbin$\ + :/buildroot/output/host/bin/$\ + :$(PATH)