From 602bff7cd80dcb76a6e3f94170aa573f140425d0 Mon Sep 17 00:00:00 2001 From: Luigi Cruz Date: Mon, 17 Feb 2020 17:37:23 -0300 Subject: [PATCH] Rebase Repository --- .github/ISSUE_TEMPLATE/bug-report.md | 30 + .github/ISSUE_TEMPLATE/feature-request.md | 20 + .github/workflows/release.yml | 47 + .github/workflows/validate.yml | 28 + .gitignore | 7 + LICENSE | 21 + README.md | 6 + builder/.dockerignore | 5 + builder/.gitignore | 8 + builder/Dockerfile | 14 + builder/LICENSE | 13 + builder/README.md | 351 + builder/build-docker.sh | 108 + builder/build.sh | 257 + builder/config | 4 + builder/depends | 18 + builder/docker-compose.yml | 10 + builder/export-image/00-allow-rerun/00-run.sh | 9 + builder/export-image/01-set-sources/01-run.sh | 7 + builder/export-image/02-network/01-run.sh | 3 + .../export-image/02-network/files/resolv.conf | 1 + .../export-image/03-set-partuuid/00-run.sh | 13 + builder/export-image/04-finalise/01-run.sh | 101 + builder/export-image/prerun.sh | 61 + builder/export-noobs/00-release/00-run.sh | 42 + builder/export-noobs/00-release/files/OS.png | Bin 0 -> 1399 bytes .../files/marketing/slides_vga/A.png | Bin 0 -> 51609 bytes .../files/marketing/slides_vga/B.png | Bin 0 -> 49456 bytes .../files/marketing/slides_vga/C.png | Bin 0 -> 106595 bytes .../files/marketing/slides_vga/D.png | Bin 0 -> 95581 bytes .../files/marketing/slides_vga/E.png | Bin 0 -> 81081 bytes .../files/marketing/slides_vga/F.png | Bin 0 -> 67009 bytes .../files/marketing/slides_vga/G.png | Bin 0 -> 106908 bytes builder/export-noobs/00-release/files/os.json | 20 + .../00-release/files/partition_setup.sh | 46 + .../00-release/files/partitions.json | 22 + .../00-release/files/release_notes.txt | 456 ++ builder/export-noobs/prerun.sh | 36 + builder/scripts/common | 100 + builder/scripts/dependencies_check | 38 + builder/scripts/remove-comments.sed | 11 + builder/stage0/00-configure-apt/00-run.sh | 17 + builder/stage0/00-configure-apt/files/51cache | 1 + .../files/raspberrypi.gpg.key | 30 + .../stage0/00-configure-apt/files/raspi.list | 3 + .../00-configure-apt/files/sources.list | 3 + builder/stage0/01-locale/00-debconf | 6 + builder/stage0/01-locale/00-packages | 1 + builder/stage0/02-firmware/01-packages | 2 + builder/stage0/files/raspberrypi.gpg | Bin 0 -> 2424 bytes builder/stage0/prerun.sh | 5 + builder/stage1/00-boot-files/00-run.sh | 4 + .../stage1/00-boot-files/files/cmdline.txt | 1 + builder/stage1/00-boot-files/files/config.txt | 65 + .../01-sys-tweaks/00-patches/01-bashrc.diff | 33 + .../stage1/01-sys-tweaks/00-patches/series | 1 + builder/stage1/01-sys-tweaks/00-run.sh | 15 + builder/stage1/01-sys-tweaks/files/fstab | 3 + .../stage1/01-sys-tweaks/files/noclear.conf | 2 + builder/stage1/02-net-tweaks/00-packages | 1 + builder/stage1/02-net-tweaks/00-run.sh | 6 + .../stage1/03-install-packages/00-packages | 1 + builder/stage1/prerun.sh | 5 + .../stage2/00-copies-and-fills/01-packages | 1 + builder/stage2/00-copies-and-fills/02-run.sh | 6 + builder/stage2/01-sys-tweaks/00-debconf | 26 + builder/stage2/01-sys-tweaks/00-packages | 30 + builder/stage2/01-sys-tweaks/00-packages-nr | 1 + .../01-sys-tweaks/00-patches/01-useradd.diff | 22 + .../01-sys-tweaks/00-patches/02-swap.diff | 13 + .../01-sys-tweaks/00-patches/04-inputrc.diff | 12 + .../01-sys-tweaks/00-patches/05-path.diff | 26 + .../00-patches/07-resize-init.diff | 5 + .../stage2/01-sys-tweaks/00-patches/series | 5 + builder/stage2/01-sys-tweaks/01-run.sh | 56 + builder/stage2/01-sys-tweaks/files/50raspi | 5 + .../stage2/01-sys-tweaks/files/90-qemu.rules | 3 + .../stage2/01-sys-tweaks/files/console-setup | 16 + builder/stage2/01-sys-tweaks/files/rc.local | 20 + .../stage2/01-sys-tweaks/files/resize2fs_once | 25 + .../stage2/01-sys-tweaks/files/ttyoutput.conf | 2 + builder/stage2/02-net-tweaks/00-packages | 4 + builder/stage2/02-net-tweaks/01-run.sh | 30 + builder/stage2/02-net-tweaks/files/wait.conf | 3 + .../02-net-tweaks/files/wpa_supplicant.conf | 2 + .../03-accept-mathematica-eula/00-debconf | 2 + builder/stage2/03-set-timezone/02-run.sh | 8 + builder/stage2/prerun.sh | 5 + builder/stage3/00-install-packages/00-debconf | 2 + .../stage3/00-install-packages/00-packages | 15 + .../stage3/00-install-packages/00-packages-nr | 6 + builder/stage3/00-install-packages/01-run.sh | 8 + builder/stage3/01-tweaks/00-run.sh | 3 + builder/stage3/prerun.sh | 5 + builder/stage4/00-install-packages/00-debconf | 2 + .../stage4/00-install-packages/00-packages | 25 + .../stage4/00-install-packages/00-packages-nr | 2 + .../stage4/00-install-packages/01-packages | 22 + .../stage4/00-install-packages/02-packages | 4 + builder/stage4/01-console-autologin/00-run.sh | 5 + builder/stage4/02-extras/00-run.sh | 7 + builder/stage4/04-enable-xcompmgr/00-run.sh | 5 + builder/stage4/05-pisdr-system/00-packages | 1 + builder/stage4/05-pisdr-system/00-run.sh | 6 + builder/stage4/06-pisdr-soapysdr/00-packages | 9 + builder/stage4/06-pisdr-soapysdr/01-run.sh | 20 + builder/stage4/06-pisdr-soapysdr/02-run.sh | 20 + builder/stage4/07-pisdr-limesdr/00-packages | 9 + builder/stage4/07-pisdr-limesdr/00-run.sh | 23 + builder/stage4/07-pisdr-limesdr/01-run.sh | 20 + builder/stage4/08-pisdr-airspy/00-run.sh | 20 + builder/stage4/08-pisdr-airspy/01-run.sh | 22 + builder/stage4/08-pisdr-airspy/02-run.sh | 22 + builder/stage4/09-pisdr-rtlsdr/00-run.sh | 20 + builder/stage4/09-pisdr-rtlsdr/01-run.sh | 20 + builder/stage4/10-pisdr-plutosdr/00-packages | 9 + builder/stage4/10-pisdr-plutosdr/00-run.sh | 20 + builder/stage4/10-pisdr-plutosdr/01-run.sh | 20 + builder/stage4/10-pisdr-plutosdr/02-run.sh | 20 + builder/stage4/10-pisdr-plutosdr/03-run.sh | 20 + builder/stage4/11-pisdr-sdrangel/00-packages | 31 + builder/stage4/11-pisdr-sdrangel/00-run.sh | 21 + builder/stage4/11-pisdr-sdrangel/01-run.sh | 21 + builder/stage4/11-pisdr-sdrangel/02-run.sh | 21 + builder/stage4/11-pisdr-sdrangel/03-run.sh | 21 + builder/stage4/11-pisdr-sdrangel/04-run.sh | 21 + builder/stage4/11-pisdr-sdrangel/05-run.sh | 0 builder/stage4/EXPORT_IMAGE | 4 + builder/stage4/prerun.sh | 5 + docs/.stylelintrc.json | 10 + docs/404.html | 11 + docs/CNAME | 1 + docs/CODE_OF_CONDUCT.md | 46 + docs/Gemfile | 2 + docs/LICENSE.txt | 21 + docs/README.md | 68 + docs/Rakefile | 1 + docs/_config.yml | 61 + docs/_includes/head.html | 40 + docs/_includes/head_custom.html | 0 docs/_includes/js/custom.js | 0 docs/_includes/nav.html | 40 + docs/_includes/title.html | 5 + docs/_includes/vendor/anchor_headings.html | 100 + docs/_layouts/about.html | 5 + docs/_layouts/default.html | 102 + docs/_layouts/home.html | 5 + docs/_layouts/page.html | 5 + docs/_layouts/post.html | 5 + docs/_layouts/table_wrappers.html | 7 + docs/_layouts/vendor/compress.html | 10 + docs/_sass/base.scss | 111 + docs/_sass/buttons.scss | 118 + docs/_sass/code.scss | 123 + docs/_sass/color_schemes/dark.scss | 17 + docs/_sass/content.scss | 160 + docs/_sass/custom/custom.scss | 129 + docs/_sass/labels.scss | 36 + docs/_sass/layout.scss | 209 + docs/_sass/navigation.scss | 120 + docs/_sass/overrides.scss | 3 + docs/_sass/search.scss | 167 + docs/_sass/support/_functions.scss | 10 + docs/_sass/support/_variables.scss | 129 + docs/_sass/support/mixins/_buttons.scss | 27 + docs/_sass/support/mixins/_layout.scss | 36 + docs/_sass/support/mixins/_typography.scss | 81 + docs/_sass/support/mixins/mixins.scss | 3 + docs/_sass/support/support.scss | 3 + docs/_sass/tables.scss | 58 + docs/_sass/typography.scss | 58 + docs/_sass/utilities/_colors.scss | 239 + docs/_sass/utilities/_layout.scss | 38 + docs/_sass/utilities/_lists.scss | 17 + docs/_sass/utilities/_spacing.scss | 121 + docs/_sass/utilities/_typography.scss | 91 + docs/_sass/utilities/utilities.scss | 5 + docs/_sass/vendor/normalize.scss/README.md | 78 + .../vendor/normalize.scss/normalize.scss | 427 ++ docs/_sass/vendor/normalize.scss/package.json | 70 + docs/assets/css/dark-mode-preview.scss | 45 + docs/assets/css/just-the-docs.scss | 49 + docs/assets/images/just-the-docs.png | Bin 0 -> 20992 bytes docs/assets/images/satellite.svg | 132 + docs/assets/images/search.svg | 1 + docs/assets/js/dark-mode-preview.js | 23 + docs/assets/js/just-the-docs.js | 312 + docs/assets/js/search-data.json | 12 + docs/assets/js/vendor/lunr.min.js | 6 + docs/bin/just-the-docs | 16 + docs/docs/computers/computers.md | 30 + docs/docs/radios/airspy_hf.md | 40 + docs/docs/radios/airspy_mini.md | 46 + docs/docs/radios/airspy_r2.md | 40 + docs/docs/radios/limenet_micro.md | 50 + docs/docs/radios/limesdr_mini.md | 56 + docs/docs/radios/limesdr_usb.md | 56 + docs/docs/radios/plutosdr.md | 53 + docs/docs/radios/radios.md | 15 + docs/docs/radios/rtlsdr.md | 61 + docs/docs/software/gnuradio.md | 38 + docs/docs/software/gqrx.md | 40 + docs/docs/software/limesuite.md | 32 + docs/docs/software/limevna.md | 29 + docs/docs/software/sdrangel.md | 37 + docs/docs/software/soapy_remote.md | 44 + docs/docs/software/software.md | 12 + docs/favicon.ico | Bin 0 -> 3263 bytes docs/index.md | 99 + docs/just-the-docs.gemspec | 21 + docs/lib/tasks/search.rake | 27 + docs/package-lock.json | 5904 +++++++++++++++++ docs/package.json | 19 + docs/script/build | 8 + 214 files changed, 13585 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug-report.md create mode 100644 .github/ISSUE_TEMPLATE/feature-request.md create mode 100644 .github/workflows/release.yml create mode 100644 .github/workflows/validate.yml create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 builder/.dockerignore create mode 100644 builder/.gitignore create mode 100644 builder/Dockerfile create mode 100644 builder/LICENSE create mode 100644 builder/README.md create mode 100755 builder/build-docker.sh create mode 100755 builder/build.sh create mode 100644 builder/config create mode 100644 builder/depends create mode 100644 builder/docker-compose.yml create mode 100755 builder/export-image/00-allow-rerun/00-run.sh create mode 100755 builder/export-image/01-set-sources/01-run.sh create mode 100755 builder/export-image/02-network/01-run.sh create mode 100644 builder/export-image/02-network/files/resolv.conf create mode 100755 builder/export-image/03-set-partuuid/00-run.sh create mode 100755 builder/export-image/04-finalise/01-run.sh create mode 100755 builder/export-image/prerun.sh create mode 100755 builder/export-noobs/00-release/00-run.sh create mode 100644 builder/export-noobs/00-release/files/OS.png create mode 100644 builder/export-noobs/00-release/files/marketing/slides_vga/A.png create mode 100644 builder/export-noobs/00-release/files/marketing/slides_vga/B.png create mode 100644 builder/export-noobs/00-release/files/marketing/slides_vga/C.png create mode 100644 builder/export-noobs/00-release/files/marketing/slides_vga/D.png create mode 100644 builder/export-noobs/00-release/files/marketing/slides_vga/E.png create mode 100644 builder/export-noobs/00-release/files/marketing/slides_vga/F.png create mode 100644 builder/export-noobs/00-release/files/marketing/slides_vga/G.png create mode 100644 builder/export-noobs/00-release/files/os.json create mode 100644 builder/export-noobs/00-release/files/partition_setup.sh create mode 100644 builder/export-noobs/00-release/files/partitions.json create mode 100644 builder/export-noobs/00-release/files/release_notes.txt create mode 100755 builder/export-noobs/prerun.sh create mode 100644 builder/scripts/common create mode 100644 builder/scripts/dependencies_check create mode 100644 builder/scripts/remove-comments.sed create mode 100755 builder/stage0/00-configure-apt/00-run.sh create mode 100644 builder/stage0/00-configure-apt/files/51cache create mode 100644 builder/stage0/00-configure-apt/files/raspberrypi.gpg.key create mode 100644 builder/stage0/00-configure-apt/files/raspi.list create mode 100644 builder/stage0/00-configure-apt/files/sources.list create mode 100644 builder/stage0/01-locale/00-debconf create mode 100644 builder/stage0/01-locale/00-packages create mode 100644 builder/stage0/02-firmware/01-packages create mode 100644 builder/stage0/files/raspberrypi.gpg create mode 100755 builder/stage0/prerun.sh create mode 100755 builder/stage1/00-boot-files/00-run.sh create mode 100644 builder/stage1/00-boot-files/files/cmdline.txt create mode 100644 builder/stage1/00-boot-files/files/config.txt create mode 100644 builder/stage1/01-sys-tweaks/00-patches/01-bashrc.diff create mode 100644 builder/stage1/01-sys-tweaks/00-patches/series create mode 100755 builder/stage1/01-sys-tweaks/00-run.sh create mode 100644 builder/stage1/01-sys-tweaks/files/fstab create mode 100644 builder/stage1/01-sys-tweaks/files/noclear.conf create mode 100644 builder/stage1/02-net-tweaks/00-packages create mode 100755 builder/stage1/02-net-tweaks/00-run.sh create mode 100644 builder/stage1/03-install-packages/00-packages create mode 100755 builder/stage1/prerun.sh create mode 100644 builder/stage2/00-copies-and-fills/01-packages create mode 100755 builder/stage2/00-copies-and-fills/02-run.sh create mode 100644 builder/stage2/01-sys-tweaks/00-debconf create mode 100644 builder/stage2/01-sys-tweaks/00-packages create mode 100644 builder/stage2/01-sys-tweaks/00-packages-nr create mode 100644 builder/stage2/01-sys-tweaks/00-patches/01-useradd.diff create mode 100644 builder/stage2/01-sys-tweaks/00-patches/02-swap.diff create mode 100644 builder/stage2/01-sys-tweaks/00-patches/04-inputrc.diff create mode 100644 builder/stage2/01-sys-tweaks/00-patches/05-path.diff create mode 100644 builder/stage2/01-sys-tweaks/00-patches/07-resize-init.diff create mode 100644 builder/stage2/01-sys-tweaks/00-patches/series create mode 100755 builder/stage2/01-sys-tweaks/01-run.sh create mode 100644 builder/stage2/01-sys-tweaks/files/50raspi create mode 100644 builder/stage2/01-sys-tweaks/files/90-qemu.rules create mode 100644 builder/stage2/01-sys-tweaks/files/console-setup create mode 100755 builder/stage2/01-sys-tweaks/files/rc.local create mode 100644 builder/stage2/01-sys-tweaks/files/resize2fs_once create mode 100644 builder/stage2/01-sys-tweaks/files/ttyoutput.conf create mode 100644 builder/stage2/02-net-tweaks/00-packages create mode 100755 builder/stage2/02-net-tweaks/01-run.sh create mode 100644 builder/stage2/02-net-tweaks/files/wait.conf create mode 100644 builder/stage2/02-net-tweaks/files/wpa_supplicant.conf create mode 100644 builder/stage2/03-accept-mathematica-eula/00-debconf create mode 100755 builder/stage2/03-set-timezone/02-run.sh create mode 100755 builder/stage2/prerun.sh create mode 100644 builder/stage3/00-install-packages/00-debconf create mode 100644 builder/stage3/00-install-packages/00-packages create mode 100644 builder/stage3/00-install-packages/00-packages-nr create mode 100755 builder/stage3/00-install-packages/01-run.sh create mode 100755 builder/stage3/01-tweaks/00-run.sh create mode 100755 builder/stage3/prerun.sh create mode 100644 builder/stage4/00-install-packages/00-debconf create mode 100644 builder/stage4/00-install-packages/00-packages create mode 100644 builder/stage4/00-install-packages/00-packages-nr create mode 100644 builder/stage4/00-install-packages/01-packages create mode 100644 builder/stage4/00-install-packages/02-packages create mode 100755 builder/stage4/01-console-autologin/00-run.sh create mode 100755 builder/stage4/02-extras/00-run.sh create mode 100755 builder/stage4/04-enable-xcompmgr/00-run.sh create mode 100644 builder/stage4/05-pisdr-system/00-packages create mode 100755 builder/stage4/05-pisdr-system/00-run.sh create mode 100644 builder/stage4/06-pisdr-soapysdr/00-packages create mode 100755 builder/stage4/06-pisdr-soapysdr/01-run.sh create mode 100755 builder/stage4/06-pisdr-soapysdr/02-run.sh create mode 100644 builder/stage4/07-pisdr-limesdr/00-packages create mode 100755 builder/stage4/07-pisdr-limesdr/00-run.sh create mode 100755 builder/stage4/07-pisdr-limesdr/01-run.sh create mode 100755 builder/stage4/08-pisdr-airspy/00-run.sh create mode 100755 builder/stage4/08-pisdr-airspy/01-run.sh create mode 100755 builder/stage4/08-pisdr-airspy/02-run.sh create mode 100755 builder/stage4/09-pisdr-rtlsdr/00-run.sh create mode 100755 builder/stage4/09-pisdr-rtlsdr/01-run.sh create mode 100644 builder/stage4/10-pisdr-plutosdr/00-packages create mode 100755 builder/stage4/10-pisdr-plutosdr/00-run.sh create mode 100755 builder/stage4/10-pisdr-plutosdr/01-run.sh create mode 100755 builder/stage4/10-pisdr-plutosdr/02-run.sh create mode 100755 builder/stage4/10-pisdr-plutosdr/03-run.sh create mode 100644 builder/stage4/11-pisdr-sdrangel/00-packages create mode 100755 builder/stage4/11-pisdr-sdrangel/00-run.sh create mode 100755 builder/stage4/11-pisdr-sdrangel/01-run.sh create mode 100755 builder/stage4/11-pisdr-sdrangel/02-run.sh create mode 100755 builder/stage4/11-pisdr-sdrangel/03-run.sh create mode 100755 builder/stage4/11-pisdr-sdrangel/04-run.sh create mode 100755 builder/stage4/11-pisdr-sdrangel/05-run.sh create mode 100644 builder/stage4/EXPORT_IMAGE create mode 100755 builder/stage4/prerun.sh create mode 100644 docs/.stylelintrc.json create mode 100644 docs/404.html create mode 100644 docs/CNAME create mode 100644 docs/CODE_OF_CONDUCT.md create mode 100644 docs/Gemfile create mode 100644 docs/LICENSE.txt create mode 100644 docs/README.md create mode 100644 docs/Rakefile create mode 100644 docs/_config.yml create mode 100644 docs/_includes/head.html create mode 100644 docs/_includes/head_custom.html create mode 100644 docs/_includes/js/custom.js create mode 100644 docs/_includes/nav.html create mode 100644 docs/_includes/title.html create mode 100755 docs/_includes/vendor/anchor_headings.html create mode 100644 docs/_layouts/about.html create mode 100644 docs/_layouts/default.html create mode 100644 docs/_layouts/home.html create mode 100644 docs/_layouts/page.html create mode 100644 docs/_layouts/post.html create mode 100644 docs/_layouts/table_wrappers.html create mode 100644 docs/_layouts/vendor/compress.html create mode 100644 docs/_sass/base.scss create mode 100644 docs/_sass/buttons.scss create mode 100644 docs/_sass/code.scss create mode 100644 docs/_sass/color_schemes/dark.scss create mode 100644 docs/_sass/content.scss create mode 100644 docs/_sass/custom/custom.scss create mode 100644 docs/_sass/labels.scss create mode 100644 docs/_sass/layout.scss create mode 100644 docs/_sass/navigation.scss create mode 100644 docs/_sass/overrides.scss create mode 100644 docs/_sass/search.scss create mode 100644 docs/_sass/support/_functions.scss create mode 100644 docs/_sass/support/_variables.scss create mode 100644 docs/_sass/support/mixins/_buttons.scss create mode 100644 docs/_sass/support/mixins/_layout.scss create mode 100644 docs/_sass/support/mixins/_typography.scss create mode 100644 docs/_sass/support/mixins/mixins.scss create mode 100644 docs/_sass/support/support.scss create mode 100644 docs/_sass/tables.scss create mode 100644 docs/_sass/typography.scss create mode 100644 docs/_sass/utilities/_colors.scss create mode 100644 docs/_sass/utilities/_layout.scss create mode 100644 docs/_sass/utilities/_lists.scss create mode 100644 docs/_sass/utilities/_spacing.scss create mode 100644 docs/_sass/utilities/_typography.scss create mode 100644 docs/_sass/utilities/utilities.scss create mode 100644 docs/_sass/vendor/normalize.scss/README.md create mode 100644 docs/_sass/vendor/normalize.scss/normalize.scss create mode 100644 docs/_sass/vendor/normalize.scss/package.json create mode 100644 docs/assets/css/dark-mode-preview.scss create mode 100644 docs/assets/css/just-the-docs.scss create mode 100644 docs/assets/images/just-the-docs.png create mode 100644 docs/assets/images/satellite.svg create mode 100644 docs/assets/images/search.svg create mode 100644 docs/assets/js/dark-mode-preview.js create mode 100644 docs/assets/js/just-the-docs.js create mode 100644 docs/assets/js/search-data.json create mode 100644 docs/assets/js/vendor/lunr.min.js create mode 100755 docs/bin/just-the-docs create mode 100644 docs/docs/computers/computers.md create mode 100644 docs/docs/radios/airspy_hf.md create mode 100644 docs/docs/radios/airspy_mini.md create mode 100644 docs/docs/radios/airspy_r2.md create mode 100644 docs/docs/radios/limenet_micro.md create mode 100644 docs/docs/radios/limesdr_mini.md create mode 100644 docs/docs/radios/limesdr_usb.md create mode 100644 docs/docs/radios/plutosdr.md create mode 100644 docs/docs/radios/radios.md create mode 100644 docs/docs/radios/rtlsdr.md create mode 100644 docs/docs/software/gnuradio.md create mode 100644 docs/docs/software/gqrx.md create mode 100644 docs/docs/software/limesuite.md create mode 100644 docs/docs/software/limevna.md create mode 100644 docs/docs/software/sdrangel.md create mode 100644 docs/docs/software/soapy_remote.md create mode 100644 docs/docs/software/software.md create mode 100644 docs/favicon.ico create mode 100644 docs/index.md create mode 100644 docs/just-the-docs.gemspec create mode 100644 docs/lib/tasks/search.rake create mode 100644 docs/package-lock.json create mode 100644 docs/package.json create mode 100755 docs/script/build diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md new file mode 100644 index 0000000..856eb01 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug-report.md @@ -0,0 +1,30 @@ +--- +name: Bug Report +about: Create a report to help us improve +title: '' +labels: bug +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Device Version** +Which Raspberry Pi version this problem happens. + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature-request.md b/.github/ISSUE_TEMPLATE/feature-request.md new file mode 100644 index 0000000..34f91c5 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature-request.md @@ -0,0 +1,20 @@ +--- +name: Feature Request +about: Suggest an idea for this project +title: '' +labels: enhancement +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..50394e1 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,47 @@ +on: + push: + tags: + - 'v*' + +name: Build & Deploy Image + +jobs: + build: + name: Build & Release Image + runs-on: ubuntu-latest + env: + working-directory: ./builder + steps: + - name: Checkout code + uses: actions/checkout@v2 + - name: Build project + id: builder + working-directory: ${{ env.working-directory }} + run: | + bash build-docker.sh + echo ::set-output name=filename::$(ls deploy/*.zip | xargs -n 1 basename) + - name: Fix Permissions + id: fix_perm_filename + run: | + chmod a+rw ${{ env.working-directory }}/deploy/${{ steps.builder.outputs.filename }} + echo ${{ env.working-directory }}/deploy/${{ steps.builder.outputs.filename }} + - name: Create Release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref }} + release_name: Release ${{ github.ref }} + draft: false + prerelease: false + - name: Upload Release Asset + id: upload-release-asset + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ${{ env.working-directory }}/deploy/${{ steps.builder.outputs.filename }} + asset_name: ${{ steps.builder.outputs.filename }} + asset_content_type: application/zip \ No newline at end of file diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml new file mode 100644 index 0000000..f4088d2 --- /dev/null +++ b/.github/workflows/validate.yml @@ -0,0 +1,28 @@ +on: ['pull_request'] + +name: Build & Validate Image + +jobs: + build: + name: Build & Validate Image + runs-on: ubuntu-latest + env: + working-directory: ./builder + steps: + - name: Checkout code + uses: actions/checkout@v2 + - name: Build project + id: builder + working-directory: ${{ env.working-directory }} + run: | + bash build-docker.sh + echo ::set-output name=filename::$(ls deploy/*.zip | xargs -n 1 basename) + - name: Fix Permissions + id: fix_perm_filename + run: | + chmod a+rw ${{ env.working-directory }}/deploy/${{ steps.builder.outputs.filename }} + echo ${{ env.working-directory }}/deploy/${{ steps.builder.outputs.filename }} + - uses: actions/upload-artifact@v1 + with: + name: ${{ steps.builder.outputs.filename }} + path: ${{ env.working-directory }}/deploy/${{ steps.builder.outputs.filename }} \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2c891a3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +*.gem +.bundle +.sass-cache +_site +Gemfile.lock +node_modules +.DS_Store diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..665af33 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Luigi Freitas Cruz + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..a94dfe9 --- /dev/null +++ b/README.md @@ -0,0 +1,6 @@ +# 🛰️ PiSDR - The SDR Linux Distro for Raspberry Pi +#### Modified Raspbian image with the latest SDR software pre-installed and ready to go. Compatible with every Raspberry Pi. +The PiSDR is a Raspbian based operating system for the Raspberry Pi pre-loaded with multiple Software Defined Radio software. It was created to serve as a fast and reliable bootstrap for SDR projects. [Documentation](https://pisdr.luigifreitas.me/) + +- [Documentation Source](/docs) +- [Image Builder](/builder) diff --git a/builder/.dockerignore b/builder/.dockerignore new file mode 100644 index 0000000..e7f7a4a --- /dev/null +++ b/builder/.dockerignore @@ -0,0 +1,5 @@ +output/ +work/ +deploy/ +apt-cacher-ng/ +.git/objects/* diff --git a/builder/.gitignore b/builder/.gitignore new file mode 100644 index 0000000..3ae85aa --- /dev/null +++ b/builder/.gitignore @@ -0,0 +1,8 @@ +deploy/* +work/* +postrun.sh +SKIP +SKIP_IMAGES +.pc +*-pc +apt-cacher-ng/ diff --git a/builder/Dockerfile b/builder/Dockerfile new file mode 100644 index 0000000..706a5fb --- /dev/null +++ b/builder/Dockerfile @@ -0,0 +1,14 @@ +FROM debian:buster + +ENV DEBIAN_FRONTEND noninteractive + +RUN apt-get -y update && \ + apt-get -y install \ + git vim parted \ + quilt coreutils qemu-user-static debootstrap zerofree zip dosfstools \ + bsdtar libcap2-bin rsync grep udev xz-utils curl xxd file kmod\ + && rm -rf /var/lib/apt/lists/* + +COPY . /pi-gen/ + +VOLUME [ "/pi-gen/work", "/pi-gen/deploy"] diff --git a/builder/LICENSE b/builder/LICENSE new file mode 100644 index 0000000..a50089f --- /dev/null +++ b/builder/LICENSE @@ -0,0 +1,13 @@ +Copyright (c) 2015 Raspberry Pi (Trading) Ltd. + +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/builder/README.md b/builder/README.md new file mode 100644 index 0000000..1f8524b --- /dev/null +++ b/builder/README.md @@ -0,0 +1,351 @@ +# pi-gen + +_Tool used to create the raspberrypi.org Raspbian images_ + + +## Dependencies + +pi-gen runs on Debian based operating systems. Currently it is only supported on +either Debian Buster or Ubuntu Xenial and is known to have issues building on +earlier releases of these systems. On other Linux distributions it may be possible +to use the Docker build described below. + +To install the required dependencies for pi-gen you should run: + +```bash +apt-get install coreutils quilt parted qemu-user-static debootstrap zerofree zip \ +dosfstools bsdtar libcap2-bin grep rsync xz-utils file git curl +``` + +The file `depends` contains a list of tools needed. The format of this +package is `[:]`. + + +## Config + +Upon execution, `build.sh` will source the file `config` in the current +working directory. This bash shell fragment is intended to set needed +environment variables. + +The following environment variables are supported: + + * `IMG_NAME` **required** (Default: unset) + + The name of the image to build with the current stage directories. Setting + `IMG_NAME=Raspbian` is logical for an unmodified RPi-Distro/pi-gen build, + but you should use something else for a customized version. Export files + in stages may add suffixes to `IMG_NAME`. + + * `APT_PROXY` (Default: unset) + + If you require the use of an apt proxy, set it here. This proxy setting + will not be included in the image, making it safe to use an `apt-cacher` or + similar package for development. + + If you have Docker installed, you can set up a local apt caching proxy to + like speed up subsequent builds like this: + + docker-compose up -d + echo 'APT_PROXY=http://172.17.0.1:3142' >> config + + * `BASE_DIR` (Default: location of `build.sh`) + + **CAUTION**: Currently, changing this value will probably break build.sh + + Top-level directory for `pi-gen`. Contains stage directories, build + scripts, and by default both work and deployment directories. + + * `WORK_DIR` (Default: `"$BASE_DIR/work"`) + + Directory in which `pi-gen` builds the target system. This value can be + changed if you have a suitably large, fast storage location for stages to + be built and cached. Note, `WORK_DIR` stores a complete copy of the target + system for each build stage, amounting to tens of gigabytes in the case of + Raspbian. + + **CAUTION**: If your working directory is on an NTFS partition you probably won't be able to build. Make sure this is a proper Linux filesystem. + + * `DEPLOY_DIR` (Default: `"$BASE_DIR/deploy"`) + + Output directory for target system images and NOOBS bundles. + + * `DEPLOY_ZIP` (Default: `1`) + + Setting to `0` will deploy the actual image (`.img`) instead of a zipped image (`.zip`). + + * `USE_QEMU` (Default: `"0"`) + + Setting to '1' enables the QEMU mode - creating an image that can be mounted via QEMU for an emulated + environment. These images include "-qemu" in the image file name. + + * `LOCALE_DEFAULT` (Default: "en_GB.UTF-8" ) + + Default system locale. + + * `HOSTNAME` (Default: "raspberrypi" ) + + Setting the hostname to the specified value. + + * `KEYBOARD_KEYMAP` (Default: "gb" ) + + Default keyboard keymap. + + To get the current value from a running system, run `debconf-show + keyboard-configuration` and look at the + `keyboard-configuration/xkb-keymap` value. + + * `KEYBOARD_LAYOUT` (Default: "English (UK)" ) + + Default keyboard layout. + + To get the current value from a running system, run `debconf-show + keyboard-configuration` and look at the + `keyboard-configuration/variant` value. + + * `TIMEZONE_DEFAULT` (Default: "Europe/London" ) + + Default keyboard layout. + + To get the current value from a running system, look in + `/etc/timezone`. + + * `FIRST_USER_NAME` (Default: "pi" ) + + Username for the first user + + * `FIRST_USER_PASS` (Default: "raspberry") + + Password for the first user + + * `WPA_ESSID`, `WPA_PASSWORD` and `WPA_COUNTRY` (Default: unset) + + If these are set, they are use to configure `wpa_supplicant.conf`, so that the raspberry pi can automatically connect to a wifi network on first boot. If `WPA_ESSID` is set and `WPA_PASSWORD` is unset an unprotected wifi network will be configured. + + * `ENABLE_SSH` (Default: `0`) + + Setting to `1` will enable ssh server for remote log in. Note that if you are using a common password such as the defaults there is a high risk of attackers taking over you RaspberryPi. + + * `STAGE_LIST` (Default: `stage*`) + + If set, then instead of working through the numeric stages in order, this list will be followed. For example setting to `"stage0 stage1 mystage stage2"` will run the contents of `mystage` before stage2. Note that quotes are needed around the list. An absolute or relative path can be given for stages outside the pi-gen directory. + +A simple example for building Raspbian: + +```bash +IMG_NAME='Raspbian' +``` + +The config file can also be specified on the command line as an argument the `build.sh` or `build-docker.sh` scripts. + +``` +./build.sh -c myconfig +``` + +This is parsed after `config` so can be used to override values set there. + +## How the build process works + +The following process is followed to build images: + + * Loop through all of the stage directories in alphanumeric order + + * Move on to the next directory if this stage directory contains a file called + "SKIP" + + * Run the script ```prerun.sh``` which is generally just used to copy the build + directory between stages. + + * In each stage directory loop through each subdirectory and then run each of the + install scripts it contains, again in alphanumeric order. These need to be named + with a two digit padded number at the beginning. + There are a number of different files and directories which can be used to + control different parts of the build process: + + - **00-run.sh** - A unix shell script. Needs to be made executable for it to run. + + - **00-run-chroot.sh** - A unix shell script which will be run in the chroot + of the image build directory. Needs to be made executable for it to run. + + - **00-debconf** - Contents of this file are passed to debconf-set-selections + to configure things like locale, etc. + + - **00-packages** - A list of packages to install. Can have more than one, space + separated, per line. + + - **00-packages-nr** - As 00-packages, except these will be installed using + the ```--no-install-recommends -y``` parameters to apt-get. + + - **00-patches** - A directory containing patch files to be applied, using quilt. + If a file named 'EDIT' is present in the directory, the build process will + be interrupted with a bash session, allowing an opportunity to create/revise + the patches. + + * If the stage directory contains files called "EXPORT_NOOBS" or "EXPORT_IMAGE" then + add this stage to a list of images to generate + + * Generate the images for any stages that have specified them + +It is recommended to examine build.sh for finer details. + + +## Docker Build + +Docker can be used to perform the build inside a container. This partially isolates +the build from the host system, and allows using the script on non-debian based +systems (e.g. Fedora Linux). The isolate is not complete due to the need to use +some kernel level services for arm emulation (binfmt) and loop devices (losetup). + +To build: + +```bash +vi config # Edit your config file. See above. +./build-docker.sh +``` + +If everything goes well, your finished image will be in the `deploy/` folder. +You can then remove the build container with `docker rm -v pigen_work` + +If something breaks along the line, you can edit the corresponding scripts, and +continue: + +```bash +CONTINUE=1 ./build-docker.sh +``` + +To examine the container after a failure you can enter a shell within it using: + +```bash +sudo docker run -it --privileged --volumes-from=pigen_work pi-gen /bin/bash +``` + +After successful build, the build container is by default removed. This may be undesired when making incremental changes to a customized build. To prevent the build script from remove the container add + +```bash +PRESERVE_CONTAINER=1 ./build-docker.sh +``` + +There is a possibility that even when running from a docker container, the +installation of `qemu-user-static` will silently fail when building the image +because `binfmt-support` _must be enabled on the underlying kernel_. An easy +fix is to ensure `binfmt-support` is installed on the host machine before +starting the `./build-docker.sh` script (or using your own docker build +solution). + + +## Stage Anatomy + +### Raspbian Stage Overview + +The build of Raspbian is divided up into several stages for logical clarity +and modularity. This causes some initial complexity, but it simplifies +maintenance and allows for more easy customization. + + - **Stage 0** - bootstrap. The primary purpose of this stage is to create a + usable filesystem. This is accomplished largely through the use of + `debootstrap`, which creates a minimal filesystem suitable for use as a + base.tgz on Debian systems. This stage also configures apt settings and + installs `raspberrypi-bootloader` which is missed by debootstrap. The + minimal core is installed but not configured, and the system will not quite + boot yet. + + - **Stage 1** - truly minimal system. This stage makes the system bootable by + installing system files like `/etc/fstab`, configures the bootloader, makes + the network operable, and installs packages like raspi-config. At this + stage the system should boot to a local console from which you have the + means to perform basic tasks needed to configure and install the system. + This is as minimal as a system can possibly get, and its arguably not + really usable yet in a traditional sense yet. Still, if you want minimal, + this is minimal and the rest you could reasonably do yourself as sysadmin. + + - **Stage 2** - lite system. This stage produces the Raspbian-Lite image. It + installs some optimized memory functions, sets timezone and charmap + defaults, installs fake-hwclock and ntp, wifi and bluetooth support, + dphys-swapfile, and other basics for managing the hardware. It also + creates necessary groups and gives the pi user access to sudo and the + standard console hardware permission groups. + + There are a few tools that may not make a whole lot of sense here for + development purposes on a minimal system such as basic Python and Lua + packages as well as the `build-essential` package. They are lumped right + in with more essential packages presently, though they need not be with + pi-gen. These are understandable for Raspbian's target audience, but if + you were looking for something between truly minimal and Raspbian-Lite, + here's where you start trimming. + + - **Stage 3** - desktop system. Here's where you get the full desktop system + with X11 and LXDE, web browsers, git for development, Raspbian custom UI + enhancements, etc. This is a base desktop system, with some development + tools installed. + + - **Stage 4** - Normal Raspbian image. System meant to fit on a 4GB card. This is the + stage that installs most things that make Raspbian friendly to new + users like system documentation. + + - **Stage 5** - The Raspbian Full image. More development + tools, an email client, learning tools like Scratch, specialized packages + like sonic-pi, office productivity, etc. + +### Stage specification + +If you wish to build up to a specified stage (such as building up to stage 2 +for a lite system), place an empty file named `SKIP` in each of the `./stage` +directories you wish not to include. + +Then add an empty file named `SKIP_IMAGES` to `./stage4` and `./stage5` (if building up to stage 2) or +to `./stage2` (if building a minimal system). + +```bash +# Example for building a lite system +echo "IMG_NAME='Raspbian'" > config +touch ./stage3/SKIP ./stage4/SKIP ./stage5/SKIP +touch ./stage4/SKIP_IMAGES ./stage5/SKIP_IMAGES +sudo ./build.sh # or ./build-docker.sh +``` + +If you wish to build further configurations upon (for example) the lite +system, you can also delete the contents of `./stage3` and `./stage4` and +replace with your own contents in the same format. + + +## Skipping stages to speed up development + +If you're working on a specific stage the recommended development process is as +follows: + + * Add a file called SKIP_IMAGES into the directories containing EXPORT_* files + (currently stage2, stage4 and stage5) + * Add SKIP files to the stages you don't want to build. For example, if you're + basing your image on the lite image you would add these to stages 3, 4 and 5. + * Run build.sh to build all stages + * Add SKIP files to the earlier successfully built stages + * Modify the last stage + * Rebuild just the last stage using ```sudo CLEAN=1 ./build.sh``` + * Once you're happy with the image you can remove the SKIP_IMAGES files and + export your image to test + +# Troubleshooting + +## `64 Bit Systems` +Please note there is currently an issue when compiling with a 64 Bit OS. See https://github.com/RPi-Distro/pi-gen/issues/271 + +## `binfmt_misc` + +Linux is able execute binaries from other architectures, meaning that it should be +possible to make use of `pi-gen` on an x86_64 system, even though it will be running +ARM binaries. This requires support from the [`binfmt_misc`](https://en.wikipedia.org/wiki/Binfmt_misc) +kernel module. + +You may see the following error: + +``` +update-binfmts: warning: Couldn't load the binfmt_misc module. +``` + +To resolve this, ensure that the following files are available (install them if necessary): + +``` +/lib/modules/$(uname -r)/kernel/fs/binfmt_misc.ko +/usr/bin/qemu-arm-static +``` + +You may also need to load the module by hand - run `modprobe binfmt_misc`. diff --git a/builder/build-docker.sh b/builder/build-docker.sh new file mode 100755 index 0000000..79b68d4 --- /dev/null +++ b/builder/build-docker.sh @@ -0,0 +1,108 @@ +#!/bin/bash -eu +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" + +BUILD_OPTS="$*" + +DOCKER="docker" + +if ! ${DOCKER} ps >/dev/null 2>&1; then + DOCKER="sudo docker" +fi +if ! ${DOCKER} ps >/dev/null; then + echo "error connecting to docker:" + ${DOCKER} ps + exit 1 +fi + +CONFIG_FILE="" +if [ -f "${DIR}/config" ]; then + CONFIG_FILE="${DIR}/config" +fi + +while getopts "c:" flag +do + case "${flag}" in + c) + CONFIG_FILE="${OPTARG}" + ;; + *) + ;; + esac +done + +# Ensure that the configuration file is an absolute path +if test -x /usr/bin/realpath; then + CONFIG_FILE=$(realpath -s "$CONFIG_FILE") +fi + +# Ensure that the confguration file is present +if test -z "${CONFIG_FILE}"; then + echo "Configuration file need to be present in '${DIR}/config' or path passed as parameter" + exit 1 +else + # shellcheck disable=SC1090 + source "${CONFIG_FILE}" +fi + +CONTAINER_NAME=${CONTAINER_NAME:-pigen_work} +CONTINUE=${CONTINUE:-0} +PRESERVE_CONTAINER=${PRESERVE_CONTAINER:-0} + +if [ -z "${IMG_NAME}" ]; then + echo "IMG_NAME not set in 'config'" 1>&2 + echo 1>&2 +exit 1 +fi + +# Ensure the Git Hash is recorded before entering the docker container +GIT_HASH=${GIT_HASH:-"$(git rev-parse HEAD)"} + +CONTAINER_EXISTS=$(${DOCKER} ps -a --filter name="${CONTAINER_NAME}" -q) +CONTAINER_RUNNING=$(${DOCKER} ps --filter name="${CONTAINER_NAME}" -q) +if [ "${CONTAINER_RUNNING}" != "" ]; then + echo "The build is already running in container ${CONTAINER_NAME}. Aborting." + exit 1 +fi +if [ "${CONTAINER_EXISTS}" != "" ] && [ "${CONTINUE}" != "1" ]; then + echo "Container ${CONTAINER_NAME} already exists and you did not specify CONTINUE=1. Aborting." + echo "You can delete the existing container like this:" + echo " ${DOCKER} rm -v ${CONTAINER_NAME}" + exit 1 +fi + +# Modify original build-options to allow config file to be mounted in the docker container +BUILD_OPTS="$(echo "${BUILD_OPTS:-}" | sed -E 's@\-c\s?([^ ]+)@-c /config@')" + +${DOCKER} build -t pi-gen "${DIR}" +if [ "${CONTAINER_EXISTS}" != "" ]; then + trap 'echo "got CTRL+C... please wait 5s" && ${DOCKER} stop -t 5 ${CONTAINER_NAME}_cont' SIGINT SIGTERM + time ${DOCKER} run --rm --privileged \ + --volume "${CONFIG_FILE}":/config:ro \ + -e "GIT_HASH=${GIT_HASH}" \ + --volumes-from="${CONTAINER_NAME}" --name "${CONTAINER_NAME}_cont" \ + pi-gen \ + bash -e -o pipefail -c "dpkg-reconfigure qemu-user-static && + cd /pi-gen; ./build.sh ${BUILD_OPTS} && + rsync -av work/*/build.log deploy/" & + wait "$!" +else + trap 'echo "got CTRL+C... please wait 5s" && ${DOCKER} stop -t 5 ${CONTAINER_NAME}' SIGINT SIGTERM + time ${DOCKER} run --name "${CONTAINER_NAME}" --privileged \ + --volume "${CONFIG_FILE}":/config:ro \ + -e "GIT_HASH=${GIT_HASH}" \ + pi-gen \ + bash -e -o pipefail -c "dpkg-reconfigure qemu-user-static && + cd /pi-gen; ./build.sh ${BUILD_OPTS} && + rsync -av work/*/build.log deploy/" & + wait "$!" +fi +echo "copying results from deploy/" +${DOCKER} cp "${CONTAINER_NAME}":/pi-gen/deploy . +ls -lah deploy + +# cleanup +if [ "${PRESERVE_CONTAINER}" != "1" ]; then + ${DOCKER} rm -v "${CONTAINER_NAME}" +fi + +echo "Done! Your image(s) should be in deploy/" diff --git a/builder/build.sh b/builder/build.sh new file mode 100755 index 0000000..a396b06 --- /dev/null +++ b/builder/build.sh @@ -0,0 +1,257 @@ +#!/bin/bash -e +# shellcheck disable=SC2119 +run_sub_stage() +{ + log "Begin ${SUB_STAGE_DIR}" + pushd "${SUB_STAGE_DIR}" > /dev/null + for i in {00..99}; do + if [ -f "${i}-debconf" ]; then + log "Begin ${SUB_STAGE_DIR}/${i}-debconf" + on_chroot << EOF +debconf-set-selections < /dev/null + if [ "${CLEAN}" = "1" ]; then + rm -rf .pc + rm -rf ./*-pc + fi + QUILT_PATCHES="${SUB_STAGE_DIR}/${i}-patches" + SUB_STAGE_QUILT_PATCH_DIR="$(basename "$SUB_STAGE_DIR")-pc" + mkdir -p "$SUB_STAGE_QUILT_PATCH_DIR" + ln -snf "$SUB_STAGE_QUILT_PATCH_DIR" .pc + quilt upgrade + if [ -e "${SUB_STAGE_DIR}/${i}-patches/EDIT" ]; then + echo "Dropping into bash to edit patches..." + bash + fi + RC=0 + quilt push -a || RC=$? + case "$RC" in + 0|2) + ;; + *) + false + ;; + esac + popd > /dev/null + log "End ${SUB_STAGE_DIR}/${i}-patches" + fi + if [ -x ${i}-run.sh ]; then + log "Begin ${SUB_STAGE_DIR}/${i}-run.sh" + ./${i}-run.sh + log "End ${SUB_STAGE_DIR}/${i}-run.sh" + fi + if [ -f ${i}-run-chroot.sh ]; then + log "Begin ${SUB_STAGE_DIR}/${i}-run-chroot.sh" + on_chroot < ${i}-run-chroot.sh + log "End ${SUB_STAGE_DIR}/${i}-run-chroot.sh" + fi + done + popd > /dev/null + log "End ${SUB_STAGE_DIR}" +} + + +run_stage(){ + log "Begin ${STAGE_DIR}" + STAGE="$(basename "${STAGE_DIR}")" + pushd "${STAGE_DIR}" > /dev/null + unmount "${WORK_DIR}/${STAGE}" + STAGE_WORK_DIR="${WORK_DIR}/${STAGE}" + ROOTFS_DIR="${STAGE_WORK_DIR}"/rootfs + if [ ! -f SKIP_IMAGES ]; then + if [ -f "${STAGE_DIR}/EXPORT_IMAGE" ]; then + EXPORT_DIRS="${EXPORT_DIRS} ${STAGE_DIR}" + fi + fi + if [ ! -f SKIP ]; then + if [ "${CLEAN}" = "1" ]; then + if [ -d "${ROOTFS_DIR}" ]; then + rm -rf "${ROOTFS_DIR}" + fi + fi + if [ -x prerun.sh ]; then + log "Begin ${STAGE_DIR}/prerun.sh" + ./prerun.sh + log "End ${STAGE_DIR}/prerun.sh" + fi + for SUB_STAGE_DIR in "${STAGE_DIR}"/*; do + if [ -d "${SUB_STAGE_DIR}" ] && + [ ! -f "${SUB_STAGE_DIR}/SKIP" ]; then + run_sub_stage + fi + done + fi + unmount "${WORK_DIR}/${STAGE}" + PREV_STAGE="${STAGE}" + PREV_STAGE_DIR="${STAGE_DIR}" + PREV_ROOTFS_DIR="${ROOTFS_DIR}" + popd > /dev/null + log "End ${STAGE_DIR}" +} + +if [ "$(id -u)" != "0" ]; then + echo "Please run as root" 1>&2 + exit 1 +fi + +BASE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +export BASE_DIR + +if [ -f config ]; then + # shellcheck disable=SC1091 + source config +fi + +while getopts "c:" flag +do + case "$flag" in + c) + EXTRA_CONFIG="$OPTARG" + # shellcheck disable=SC1090 + source "$EXTRA_CONFIG" + ;; + *) + ;; + esac +done + +export PI_GEN=${PI_GEN:-pi-gen} +export PI_GEN_REPO=${PI_GEN_REPO:-https://github.com/RPi-Distro/pi-gen} + +if [ -z "${IMG_NAME}" ]; then + echo "IMG_NAME not set" 1>&2 + exit 1 +fi + +export USE_QEMU="${USE_QEMU:-0}" +export IMG_DATE="${IMG_DATE:-"$(date +%Y-%m-%d)"}" +export IMG_FILENAME="${IMG_FILENAME:-"${IMG_DATE}-${IMG_NAME}"}" +export ZIP_FILENAME="${ZIP_FILENAME:-"image_${IMG_DATE}-${IMG_NAME}"}" + +export SCRIPT_DIR="${BASE_DIR}/scripts" +export WORK_DIR="${WORK_DIR:-"${BASE_DIR}/work/${IMG_DATE}-${IMG_NAME}"}" +export DEPLOY_DIR=${DEPLOY_DIR:-"${BASE_DIR}/deploy"} +export DEPLOY_ZIP="${DEPLOY_ZIP:-1}" +export LOG_FILE="${WORK_DIR}/build.log" + +export HOSTNAME=${HOSTNAME:-raspberrypi} + +export FIRST_USER_NAME=${FIRST_USER_NAME:-pi} +export FIRST_USER_PASS=${FIRST_USER_PASS:-raspberry} +export WPA_ESSID +export WPA_PASSWORD +export WPA_COUNTRY +export ENABLE_SSH="${ENABLE_SSH:-0}" + +export LOCALE_DEFAULT="${LOCALE_DEFAULT:-en_GB.UTF-8}" + +export KEYBOARD_KEYMAP="${KEYBOARD_KEYMAP:-gb}" +export KEYBOARD_LAYOUT="${KEYBOARD_LAYOUT:-English (UK)}" + +export TIMEZONE_DEFAULT="${TIMEZONE_DEFAULT:-Europe/London}" + +export GIT_HASH=${GIT_HASH:-"$(git rev-parse HEAD)"} + +export CLEAN +export IMG_NAME +export APT_PROXY + +export STAGE +export STAGE_DIR +export STAGE_WORK_DIR +export PREV_STAGE +export PREV_STAGE_DIR +export ROOTFS_DIR +export PREV_ROOTFS_DIR +export IMG_SUFFIX +export NOOBS_NAME +export NOOBS_DESCRIPTION +export EXPORT_DIR +export EXPORT_ROOTFS_DIR + +export QUILT_PATCHES +export QUILT_NO_DIFF_INDEX=1 +export QUILT_NO_DIFF_TIMESTAMPS=1 +export QUILT_REFRESH_ARGS="-p ab" + +# shellcheck source=scripts/common +source "${SCRIPT_DIR}/common" +# shellcheck source=scripts/dependencies_check +source "${SCRIPT_DIR}/dependencies_check" + +dependencies_check "${BASE_DIR}/depends" + +#check username is valid +if [[ ! "$FIRST_USER_NAME" =~ ^[a-z][-a-z0-9_]*$ ]]; then + echo "Invalid FIRST_USER_NAME: $FIRST_USER_NAME" + exit 1 +fi + +if [[ -n "${APT_PROXY}" ]] && ! curl --silent "${APT_PROXY}" >/dev/null ; then + echo "Could not reach APT_PROXY server: ${APT_PROXY}" + exit 1 +fi + +mkdir -p "${WORK_DIR}" +log "Begin ${BASE_DIR}" + +STAGE_LIST=${STAGE_LIST:-${BASE_DIR}/stage*} + +for STAGE_DIR in $STAGE_LIST; do + STAGE_DIR=$(realpath "${STAGE_DIR}") + run_stage +done + +CLEAN=1 +for EXPORT_DIR in ${EXPORT_DIRS}; do + STAGE_DIR=${BASE_DIR}/export-image + # shellcheck source=/dev/null + source "${EXPORT_DIR}/EXPORT_IMAGE" + EXPORT_ROOTFS_DIR=${WORK_DIR}/$(basename "${EXPORT_DIR}")/rootfs + run_stage + if [ "${USE_QEMU}" != "1" ]; then + if [ -e "${EXPORT_DIR}/EXPORT_NOOBS" ]; then + # shellcheck source=/dev/null + source "${EXPORT_DIR}/EXPORT_NOOBS" + STAGE_DIR="${BASE_DIR}/export-noobs" + run_stage + fi + fi +done + +if [ -x ${BASE_DIR}/postrun.sh ]; then + log "Begin postrun.sh" + cd "${BASE_DIR}" + ./postrun.sh + log "End postrun.sh" +fi + +log "End ${BASE_DIR}" diff --git a/builder/config b/builder/config new file mode 100644 index 0000000..72dca46 --- /dev/null +++ b/builder/config @@ -0,0 +1,4 @@ +IMG_NAME='PiSDR' +ENABLE_SSH=1 +HOSTNAME='pisdr' +FIRST_USER_PASS='raspberry' diff --git a/builder/depends b/builder/depends new file mode 100644 index 0000000..6238eb1 --- /dev/null +++ b/builder/depends @@ -0,0 +1,18 @@ +quilt +parted +realpath:coreutils +qemu-arm-static:qemu-user-static +debootstrap +zerofree +zip +mkdosfs:dosfstools +capsh:libcap2-bin +bsdtar +grep +rsync +xz:xz-utils +curl +xxd +file +git +lsmod:kmod diff --git a/builder/docker-compose.yml b/builder/docker-compose.yml new file mode 100644 index 0000000..f733860 --- /dev/null +++ b/builder/docker-compose.yml @@ -0,0 +1,10 @@ +version: '2' + +services: + apt-cacher-ng: + restart: unless-stopped + image: sameersbn/apt-cacher-ng:latest + ports: + - "3142:3142" + volumes: + - ./apt-cacher-ng:/var/cache/apt-cacher-ng diff --git a/builder/export-image/00-allow-rerun/00-run.sh b/builder/export-image/00-allow-rerun/00-run.sh new file mode 100755 index 0000000..dd67f4c --- /dev/null +++ b/builder/export-image/00-allow-rerun/00-run.sh @@ -0,0 +1,9 @@ +#!/bin/bash -e + +if [ ! -x "${ROOTFS_DIR}/usr/bin/qemu-arm-static" ]; then + cp /usr/bin/qemu-arm-static "${ROOTFS_DIR}/usr/bin/" +fi + +if [ -e "${ROOTFS_DIR}/etc/ld.so.preload" ]; then + mv "${ROOTFS_DIR}/etc/ld.so.preload" "${ROOTFS_DIR}/etc/ld.so.preload.disabled" +fi diff --git a/builder/export-image/01-set-sources/01-run.sh b/builder/export-image/01-set-sources/01-run.sh new file mode 100755 index 0000000..86dea2d --- /dev/null +++ b/builder/export-image/01-set-sources/01-run.sh @@ -0,0 +1,7 @@ +#!/bin/bash -e + +on_chroot << EOF +apt-get update +apt-get -y dist-upgrade +apt-get clean +EOF diff --git a/builder/export-image/02-network/01-run.sh b/builder/export-image/02-network/01-run.sh new file mode 100755 index 0000000..4150732 --- /dev/null +++ b/builder/export-image/02-network/01-run.sh @@ -0,0 +1,3 @@ +#!/bin/bash -e + +install -m 644 files/resolv.conf "${ROOTFS_DIR}/etc/" diff --git a/builder/export-image/02-network/files/resolv.conf b/builder/export-image/02-network/files/resolv.conf new file mode 100644 index 0000000..cae093a --- /dev/null +++ b/builder/export-image/02-network/files/resolv.conf @@ -0,0 +1 @@ +nameserver 8.8.8.8 diff --git a/builder/export-image/03-set-partuuid/00-run.sh b/builder/export-image/03-set-partuuid/00-run.sh new file mode 100755 index 0000000..1538c07 --- /dev/null +++ b/builder/export-image/03-set-partuuid/00-run.sh @@ -0,0 +1,13 @@ +#!/bin/bash -e + +IMG_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.img" + +IMGID="$(dd if="${IMG_FILE}" skip=440 bs=1 count=4 2>/dev/null | xxd -e | cut -f 2 -d' ')" + +BOOT_PARTUUID="${IMGID}-01" +ROOT_PARTUUID="${IMGID}-02" + +sed -i "s/BOOTDEV/PARTUUID=${BOOT_PARTUUID}/" "${ROOTFS_DIR}/etc/fstab" +sed -i "s/ROOTDEV/PARTUUID=${ROOT_PARTUUID}/" "${ROOTFS_DIR}/etc/fstab" + +sed -i "s/ROOTDEV/PARTUUID=${ROOT_PARTUUID}/" "${ROOTFS_DIR}/boot/cmdline.txt" diff --git a/builder/export-image/04-finalise/01-run.sh b/builder/export-image/04-finalise/01-run.sh new file mode 100755 index 0000000..0864639 --- /dev/null +++ b/builder/export-image/04-finalise/01-run.sh @@ -0,0 +1,101 @@ +#!/bin/bash -e + +IMG_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.img" +INFO_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.info" + +on_chroot << EOF +if [ -x /etc/init.d/fake-hwclock ]; then + /etc/init.d/fake-hwclock stop +fi +if hash hardlink 2>/dev/null; then + hardlink -t /usr/share/doc +fi +EOF + +if [ -d "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.config" ]; then + chmod 700 "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.config" +fi + +rm -f "${ROOTFS_DIR}/etc/apt/apt.conf.d/51cache" +rm -f "${ROOTFS_DIR}/usr/bin/qemu-arm-static" + +if [ "${USE_QEMU}" != "1" ]; then + if [ -e "${ROOTFS_DIR}/etc/ld.so.preload.disabled" ]; then + mv "${ROOTFS_DIR}/etc/ld.so.preload.disabled" "${ROOTFS_DIR}/etc/ld.so.preload" + fi +fi + +rm -f "${ROOTFS_DIR}/etc/network/interfaces.dpkg-old" + +rm -f "${ROOTFS_DIR}/etc/apt/sources.list~" +rm -f "${ROOTFS_DIR}/etc/apt/trusted.gpg~" + +rm -f "${ROOTFS_DIR}/etc/passwd-" +rm -f "${ROOTFS_DIR}/etc/group-" +rm -f "${ROOTFS_DIR}/etc/shadow-" +rm -f "${ROOTFS_DIR}/etc/gshadow-" +rm -f "${ROOTFS_DIR}/etc/subuid-" +rm -f "${ROOTFS_DIR}/etc/subgid-" + +rm -f "${ROOTFS_DIR}"/var/cache/debconf/*-old +rm -f "${ROOTFS_DIR}"/var/lib/dpkg/*-old + +rm -f "${ROOTFS_DIR}"/usr/share/icons/*/icon-theme.cache + +rm -f "${ROOTFS_DIR}/var/lib/dbus/machine-id" + +true > "${ROOTFS_DIR}/etc/machine-id" + +ln -nsf /proc/mounts "${ROOTFS_DIR}/etc/mtab" + +find "${ROOTFS_DIR}/var/log/" -type f -exec cp /dev/null {} \; + +rm -f "${ROOTFS_DIR}/root/.vnc/private.key" +rm -f "${ROOTFS_DIR}/etc/vnc/updateid" + +update_issue "$(basename "${EXPORT_DIR}")" +install -m 644 "${ROOTFS_DIR}/etc/rpi-issue" "${ROOTFS_DIR}/boot/issue.txt" + +cp "$ROOTFS_DIR/etc/rpi-issue" "$INFO_FILE" + + +{ + if [ -f "$ROOTFS_DIR/usr/share/doc/raspberrypi-kernel/changelog.Debian.gz" ]; then + firmware=$(zgrep "firmware as of" \ + "$ROOTFS_DIR/usr/share/doc/raspberrypi-kernel/changelog.Debian.gz" | \ + head -n1 | sed -n 's|.* \([^ ]*\)$|\1|p') + printf "\nFirmware: https://github.com/raspberrypi/firmware/tree/%s\n" "$firmware" + + kernel="$(curl -s -L "https://github.com/raspberrypi/firmware/raw/$firmware/extra/git_hash")" + printf "Kernel: https://github.com/raspberrypi/linux/tree/%s\n" "$kernel" + + uname="$(curl -s -L "https://github.com/raspberrypi/firmware/raw/$firmware/extra/uname_string7")" + printf "Uname string: %s\n" "$uname" + fi + + printf "\nPackages:\n" + dpkg -l --root "$ROOTFS_DIR" +} >> "$INFO_FILE" + +ROOT_DEV="$(mount | grep "${ROOTFS_DIR} " | cut -f1 -d' ')" + +unmount "${ROOTFS_DIR}" +zerofree "${ROOT_DEV}" + +unmount_image "${IMG_FILE}" + +mkdir -p "${DEPLOY_DIR}" + +rm -f "${DEPLOY_DIR}/${ZIP_FILENAME}${IMG_SUFFIX}.zip" +rm -f "${DEPLOY_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.img" + +if [ "${DEPLOY_ZIP}" == "1" ]; then + pushd "${STAGE_WORK_DIR}" > /dev/null + zip "${DEPLOY_DIR}/${ZIP_FILENAME}${IMG_SUFFIX}.zip" \ + "$(basename "${IMG_FILE}")" + popd > /dev/null +else + cp "$IMG_FILE" "$DEPLOY_DIR" +fi + +cp "$INFO_FILE" "$DEPLOY_DIR" diff --git a/builder/export-image/prerun.sh b/builder/export-image/prerun.sh new file mode 100755 index 0000000..cecde32 --- /dev/null +++ b/builder/export-image/prerun.sh @@ -0,0 +1,61 @@ +#!/bin/bash -e + +IMG_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.img" + +unmount_image "${IMG_FILE}" + +rm -f "${IMG_FILE}" + +rm -rf "${ROOTFS_DIR}" +mkdir -p "${ROOTFS_DIR}" + +BOOT_SIZE="$((256 * 1024 * 1024))" +ROOT_SIZE=$(du --apparent-size -s "${EXPORT_ROOTFS_DIR}" --exclude var/cache/apt/archives --exclude boot --block-size=1 | cut -f 1) + +# All partition sizes and starts will be aligned to this size +ALIGN="$((4 * 1024 * 1024))" +# Add this much space to the calculated file size. This allows for +# some overhead (since actual space usage is usually rounded up to the +# filesystem block size) and gives some free space on the resulting +# image. +ROOT_MARGIN=$((800*1024*1024)) + +BOOT_PART_START=$((ALIGN)) +BOOT_PART_SIZE=$(((BOOT_SIZE + ALIGN - 1) / ALIGN * ALIGN)) +ROOT_PART_START=$((BOOT_PART_START + BOOT_PART_SIZE)) +ROOT_PART_SIZE=$(((ROOT_SIZE + ROOT_MARGIN + ALIGN - 1) / ALIGN * ALIGN)) +IMG_SIZE=$((BOOT_PART_START + BOOT_PART_SIZE + ROOT_PART_SIZE)) + +truncate -s "${IMG_SIZE}" "${IMG_FILE}" + +parted --script "${IMG_FILE}" mklabel msdos +parted --script "${IMG_FILE}" unit B mkpart primary fat32 "${BOOT_PART_START}" "$((BOOT_PART_START + BOOT_PART_SIZE - 1))" +parted --script "${IMG_FILE}" unit B mkpart primary ext4 "${ROOT_PART_START}" "$((ROOT_PART_START + ROOT_PART_SIZE - 1))" + +PARTED_OUT=$(parted -sm "${IMG_FILE}" unit b print) +BOOT_OFFSET=$(echo "$PARTED_OUT" | grep -e '^1:' | cut -d':' -f 2 | tr -d B) +BOOT_LENGTH=$(echo "$PARTED_OUT" | grep -e '^1:' | cut -d':' -f 4 | tr -d B) + +ROOT_OFFSET=$(echo "$PARTED_OUT" | grep -e '^2:' | cut -d':' -f 2 | tr -d B) +ROOT_LENGTH=$(echo "$PARTED_OUT" | grep -e '^2:' | cut -d':' -f 4 | tr -d B) + +BOOT_DEV=$(losetup --show -f -o "${BOOT_OFFSET}" --sizelimit "${BOOT_LENGTH}" "${IMG_FILE}") +ROOT_DEV=$(losetup --show -f -o "${ROOT_OFFSET}" --sizelimit "${ROOT_LENGTH}" "${IMG_FILE}") +echo "/boot: offset $BOOT_OFFSET, length $BOOT_LENGTH" +echo "/: offset $ROOT_OFFSET, length $ROOT_LENGTH" + +ROOT_FEATURES="^huge_file" +for FEATURE in metadata_csum 64bit; do + if grep -q "$FEATURE" /etc/mke2fs.conf; then + ROOT_FEATURES="^$FEATURE,$ROOT_FEATURES" + fi +done +mkdosfs -n boot -F 32 -v "$BOOT_DEV" > /dev/null +mkfs.ext4 -L rootfs -O "$ROOT_FEATURES" "$ROOT_DEV" > /dev/null + +mount -v "$ROOT_DEV" "${ROOTFS_DIR}" -t ext4 +mkdir -p "${ROOTFS_DIR}/boot" +mount -v "$BOOT_DEV" "${ROOTFS_DIR}/boot" -t vfat + +rsync -aHAXx --exclude /var/cache/apt/archives --exclude /boot "${EXPORT_ROOTFS_DIR}/" "${ROOTFS_DIR}/" +rsync -rtx "${EXPORT_ROOTFS_DIR}/boot/" "${ROOTFS_DIR}/boot/" diff --git a/builder/export-noobs/00-release/00-run.sh b/builder/export-noobs/00-release/00-run.sh new file mode 100755 index 0000000..1d0b12f --- /dev/null +++ b/builder/export-noobs/00-release/00-run.sh @@ -0,0 +1,42 @@ +#!/bin/bash -e + +NOOBS_DIR="${STAGE_WORK_DIR}/${IMG_DATE}-${IMG_NAME}${IMG_SUFFIX}" + +install -v -m 744 files/partition_setup.sh "${NOOBS_DIR}/" +install -v files/partitions.json "${NOOBS_DIR}/" +install -v files/os.json "${NOOBS_DIR}/" +install -v files/OS.png "${NOOBS_DIR}/" +install -v files/release_notes.txt "${NOOBS_DIR}/" + +tar -v -c -C files/marketing -f "${NOOBS_DIR}/marketing.tar" . + +BOOT_SHASUM="$(sha256sum "${NOOBS_DIR}/boot.tar.xz" | cut -f1 -d' ')" +ROOT_SHASUM="$(sha256sum "${NOOBS_DIR}/root.tar.xz" | cut -f1 -d' ')" + +BOOT_SIZE="$(xz --robot -l "${NOOBS_DIR}/boot.tar.xz" | grep totals | cut -f 5)" +ROOT_SIZE="$(xz --robot -l "${NOOBS_DIR}/root.tar.xz" | grep totals | cut -f 5)" + +BOOT_SIZE="$(( BOOT_SIZE / 1024 / 1024 + 1))" +ROOT_SIZE="$(( ROOT_SIZE / 1024 / 1024 + 1))" + +BOOT_NOM="256" +ROOT_NOM="$(( ROOT_SIZE + 400 ))" + +mv "${NOOBS_DIR}/OS.png" "${NOOBS_DIR}/${NOOBS_NAME// /_}.png" + +sed "${NOOBS_DIR}/partitions.json" -i -e "s|BOOT_SHASUM|${BOOT_SHASUM}|" +sed "${NOOBS_DIR}/partitions.json" -i -e "s|ROOT_SHASUM|${ROOT_SHASUM}|" + +sed "${NOOBS_DIR}/partitions.json" -i -e "s|BOOT_SIZE|${BOOT_SIZE}|" +sed "${NOOBS_DIR}/partitions.json" -i -e "s|ROOT_SIZE|${ROOT_SIZE}|" + +sed "${NOOBS_DIR}/partitions.json" -i -e "s|BOOT_NOM|${BOOT_NOM}|" +sed "${NOOBS_DIR}/partitions.json" -i -e "s|ROOT_NOM|${ROOT_NOM}|" + +sed "${NOOBS_DIR}/os.json" -i -e "s|UNRELEASED|${IMG_DATE}|" +sed "${NOOBS_DIR}/os.json" -i -e "s|NOOBS_NAME|${NOOBS_NAME}|" +sed "${NOOBS_DIR}/os.json" -i -e "s|NOOBS_DESCRIPTION|${NOOBS_DESCRIPTION}|" + +sed "${NOOBS_DIR}/release_notes.txt" -i -e "s|UNRELEASED|${IMG_DATE}|" + +cp -a "${NOOBS_DIR}" "${DEPLOY_DIR}/" diff --git a/builder/export-noobs/00-release/files/OS.png b/builder/export-noobs/00-release/files/OS.png new file mode 100644 index 0000000000000000000000000000000000000000..02b67cf7e9fa5352b828649bb11f5a135a0e91f0 GIT binary patch literal 1399 zcmV--1&I2IP)u(40tldCk+2eX!N%m*x3^p8 z@spfZC-r;=5;N2ggmsE50gw|J0t=i705UKKnhdy3(Mg`?v*lv<$_2o?wTR@PatU&{uS3O*^H5(~gQM z&7JiJ?@~ zW@>xPZ-pTMTuS(0PXG*|uc%@EEN}=he{@m+e$V<12LN>xenX&u=RvEpz|CiYDWfMo zu0`fi!b^o&jCFj_7h!CVfLPWS7+EjZ8ZUOd)@77_4$vndU;(MDD}nYkMt#_FGfG1 zKHC|Ow{8;Jbk;8usp=>v@8%EcC~Z60>{p~{m+sUpin}Q5jY6*hOEmI+voi+Z%rVi6 zI@2bVHFn2~z+q7&@6WB-e~e-E*c=ZOX&?ZrDD7>3-nE-s@j6@H-|v3sYUy1n>gtRI zR~!iFDY9AC29gDLA$UPwQLZx=QXPeqUh@6!SD)tx-0ChqrqeXH=FQoC^?VlvfHJ!1 z9$a2e|J5_KmDb9j=sD*EV93kY5?J7(0LZ)fyKloCJ$@B=_P#Q@uau#d&vD{|w)S?t z{JfpL9sYrw42R3bD#nLGNJPD|cX@rim65&wf4=-z@)y5C*d=ZYi=6-f002ovPDHLk FV1m?wlkfll literal 0 HcmV?d00001 diff --git a/builder/export-noobs/00-release/files/marketing/slides_vga/A.png b/builder/export-noobs/00-release/files/marketing/slides_vga/A.png new file mode 100644 index 0000000000000000000000000000000000000000..1f2dc558f4c2837909ddba1d016e8501b46b8177 GIT binary patch literal 51609 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 z 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 literal 0 HcmV?d00001 diff --git a/builder/export-noobs/00-release/files/marketing/slides_vga/B.png b/builder/export-noobs/00-release/files/marketing/slides_vga/B.png new file mode 100644 index 0000000000000000000000000000000000000000..870730b07fb69982eb6b513a7b2ec424d2dc3d67 GIT binary patch literal 49456 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 z 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 JTDo}4e*!^jT-N{q literal 0 HcmV?d00001 diff --git a/builder/export-noobs/00-release/files/marketing/slides_vga/C.png b/builder/export-noobs/00-release/files/marketing/slides_vga/C.png new file mode 100644 index 0000000000000000000000000000000000000000..96b46db22f86bda4b3a3aaaa77086b4181a23ae3 GIT binary patch literal 106595 zcmcG#1z1+=+AjJb64Ih{qXHrz(v2u0DoA&COG!xz5|Sd)ARsN>-3TI*Qqm35-Ep4J zx&D9ceXhOszRq>d(K(&Y0gP{qH=gIN_r2`Pr?^<;SO^3H_nD-)JOXjW3xPnX#6*WH zgE-0_2*g!fv&WBRpFMs|D{E(MY-VYMK=5^jC~28eD%}*Ru{XJOyIaAM%lCDbDDEBH z2xYF6(rV9%37%I`&v-`Zmkkd#x??)J`8aFNQ)HgVx;=lxgA*4?c@+{=M6|Xv`X!55*a2ZE zTbW9ojwo+V!f8ZT)Ts~jmn$ATY`y=ca>ih|#a_fC#LRe}W%gG9nv#NfKr}(v&u>Q( zIHwN^hjfyq%~!uJFMQFDcbG^nvf0$TNU~}&_1(2<$?SYd{b0 z(hr5Ek({p)-x8V}TPwKLcXkA?HomXch}&+rJGD~yytA~h!X4M?>LPx2QtKjl;BJ@1 zzy8Nars8SbpVP9+Snhd& zL&7^i^MZKwozl^qXd^HVjh>%8h1BKotP)Pb9g0lFA z;pWN6bIT{%LcBxgwZWY78Szgh_)BY&buT%Yr8E_Wb6N1p{cd&MJw?;1J8RP^()`21 zD_1^CmRPOQeXMi5dd6{Z@60@H+H+oIyTYzr{bx%i3ih;w)U4U?ByywCPRx&$$zFzt=kEFJ`IoZPF}gFIx7BsI|8Vbe z?{;s}x)LtfnK)NJ!)8NcuhVv5zDuq?AT4C}h$|CnU-7QNZYGS))o*6kkjvYoE zOoK;qBX6VfR!@nO?td1h!ZV;*%skbsXH!Obe_C{9Px?YhN%4=(r@K_j*3x|SVmE?s zKQ;{h#G`mvsj{0wA1SjSZ$_XXsBj~@Xh00#za+yk+3L#a8P#C+t77?;euGK(D{8+4 zUajJG5jnl+kI*MC;9-u6TUidsBK7+&6>6&BKWe2;fwnoh7q%DAQG>J2`Q4nznq;L`A^)u-w7*p5;cz3U}P;Ip%5VVMA;$n)M{@+IGKaars4=w)qk5go2CAeCed@xd!b3#U!#;hCM&AT`I z(_eh=>avRL`C3rW9)9a-mi+m({QU?Ayxm`;y9zD8(g^j(houqjGGVXJf+86l zo}SLGuAo+o=|!Ib=j`b8sI_uDI`JWjLu8sd4az4b_sPEN{?Ot`tYrq7OdN%`$= zYmFEWjSioLQ1DJ~ZsMDmEb%1X=Y2Kq6%v9gBrNRk??-BVe?zA0@EV$zG4ait@BIAG zCwC(6spvO(qtz~~k5zcinoZU?-8b%vOD~hkR{T;}NWl0q;h~3z$fW0``|Higa~U;b z9k*>XB~8vsk8=UI`OM;?L~LJMYg?O0c#rU#Jtm1@Qn6u1Ge?R?`(9TXc?whtw7omE zw6yvfJTG}-7ai9}^?H-V1crx)hUkTaD3d%d_}!~+B(iDO2B4s#%Tm#iW8hO;IwB;q zaOteD_fgKUi;9YxM$0U=f14!986%glr{3PxLZYIP$&aKGe5w-x^B?g@xf$3ppp-yW846`1tXoti1dc9UYy$^)Zt2@^XQS2KQ5* zSCh5xtE&Z$j*n-mmOlH4)Ax-^5yLN4Bds}RCvMzp2G+mL|_IStW z)2C0#o|hNu=YiBJva*Q#_wP^Ih0cA5i3!NfWsyvmzlwp8YQNN7yRI7bL`{uM;PrCy z-5^er?#AwJygJuIp6sbe^*o8^&#^c-IJU;^duC!yKAYLm7_4~F9Z!97J=|#O=(u+0 z&Yi5>TyZ@;Iu1@w?)GaqIPc2J%7#P+2L~meKYs+*-|Q{FO-`n5dNVOz?5XH+e0&T~ zdR;RqIy%!{%gE@CYLst8#Es1uH8nN(3GaxAi0&ODHR6SZ1shx2zO>7qv7Dp=ud}*) z+|I^#cX#`;6&On*)nFWR^YY4mJXWdmbfd{u#G;^}$XkGqu5>%**xB8kSz8PK@PQ!D z9=Q`>*>JZ@zI=&}7#SPe?d~9uPFGN=v(!9{8}2xR*YB z`t)wB!a7x>;uYq#YbY)3aaQ*B_VJdF_XbfPj}aO44-gt%nuy6DGJw5L+UVr)Qo0|289fZL& zqSPH79b5bRPsGGfjDNJB5LL2JPEk$QK*H2J&m4<03-*VdMeqN3s!dD795^LULD{>;qGNQ0+nLPCP9 zoZQ>2EG9}mo5n1+?jJvzM~V!#p+GfFOi-!hYc}Pom2AQPUVCLNMa9l=xzF!;AvBb) zg?;bdz42O?8<{T?n_uzMO$K$jZ+jdOinZa-D)AC?SEevbuT}?um(u`|Vp0 z37QYSLg&SGKRp5>qICQ7dj+-LX=%5c9Fp7*$cl@LOQR;L9k8wI_KESRg)pB!eflXf zQtwZHdcgblGyA7``T1=y88%DZRN~^|)AJn>TZe~BXbO*pRTULK4JEVKfBO9v72`u( z+^Aul=XlCv|E<%_1`Ad}wBa(AMvCu?H`?dAifMRpgv=JK^_GRjyO z82mcFf1kF>k6>XNJuCYWti{XtCCBVuvJo0s&(j$Vx60G-4xz{cE>P`Vz8sb5MjI7a4BLvc7ySy zO^vNJLwWmD@rm;a;f@3kzE!BqZeWoT{>aT8R5bk&&21wNXRFWydge zw4*DY*M7J_XE^?)!K#rxEQ~Q!Ey5c&s(zQ4*fU24R=oO^Aw3Swv@<8QZHV7sG-aa3 z$zJqq%cpyfTGS)qw8!%z^;q!E9p88ncY*sfs!w!gP9O-Mg$0F{deK#73cedMU49YYM>B# zdwcg5=!i}pTwGir`!?*Fku|P`r6q$FKin8$*YfF{)?sZ|X`6=Q-KE_PfzHm(zVsI) zljZtFq$S2(&2ZI4h7S2eW7_oLx?OSHBbBzP(^`5xpM_mI{qd-bibai1KZf{nAUHos*#Z^^F)bZU{j^!O7~w zDNh>c_`T}JmQ?IKmlT4~&_k((1NT>lSKYMwM|`nKrdL)1c_*EHDxmscK{@^gJ=jIY zMEdS&8?^qn(9dHl&MwazF8$4ZWzey*hE!|-l0vo{frf?7=sEa20yibz*UPfCJ3sD? zl$eAK?ZE8LEJW-0`9Aq2Y`n6v!tSu5DE{>6F8W9Ail09h#;fd|ce{AehH(KrMMg%- zbl9Ix{e4%ez_s1b?u3=}C`J8Jn9#c~z_~XZqM%#p; z9emLT8&o({P=4|A0c4T|Dn{+vFmiY0b_w=-`wr6A8u+?10`x=K;KN20cqK>oh z&IL?-{B~F zvw?3@Q#vMfuR0vR#c;)@uH8l4MyKF?mC)_5v9X~}k|TNhk(t@ujfon@qk`({(PR-U z%673lWsCD0LEj3?%6t`>zrl8gl8xKs9+LR|U@lCwZST*o@WjNf0!8|8zxWh>)IR{66gpS>IbmsWvAL%QA3;D){sY_G<9uJ` zY>wu#_bf3g$`24OmrE!f9-gk6a>?59QWEd-qQ%a9#}TZdzB~=y5=~B4qob`Ern`5W zpmkn7?dMT)(s-n>-%n|kc6VLOAT~Bupz|>N&Wk9nnr^Z&JYQd5z2SVVTC2;`sY`RT z=h@lWn3$Nov0;ZB6Hu?HKE%dmJ5ajcpm%k4<~rudxbt^)hZbLQevxZr71z1N94^Tf z8DgYnXk>)sDbgY+W`R)bCTkJ^Mh8;~62lfJqI`BQq63z6Sa2}TmR;{Pqlifr0FH z^O8*}wX6 z7`9sm^oOw&s0;@CD}&Q~FIWHkfyQ0RfZy}uhqn~N<2P@rC+DiFtI5aN)HO8X&rVAD z*8}gGnZNw4fRI!dmy`^UyEQLmWML5mh-(gdbi3E~a%aox>?Qdh3iYPz{8SL%#3JAd5+nAupQO=un zudG$M|&_!L-I6r3B%(~$P)p0f`on*&bS;(4)4la`iN`h$Dd+1=udVp>8Nt+24M zP_L!Xc1{9^l8*qJgw1l_QC6ppO9lDrjZ;%J0D91^r}`Z>paO-o4C{F29iKvzS;Q4z z>rW3de$`%{d}l1Od`s&g3hjd|lvm?_%I^#g4_lnO@611Y=kLEtSt_rfkh=d}6DrEZ zOOCCrqBB@MVKkm+eOX*U-L|y_mm{L0h75gVm6iSK-A`9E3#=clE%rx>E@q*2bzMTg zolB3_ZhlJRZm39phwxd1`~J(%LS}pSqz!&d!Xr9uPJROg!+C-V;6Pfe3cIi{RZ~-w z`YO!NUA_-#wpH948@fzIs=;|075cFJYcH}{ZM%eamiJTGLUay07VHwo>i7CzFtM__ z)2}DjzcCBt>8D&5)77Q5e)+A9+B0qdIRK%dp}M5#@W{Y2{N%Ie9iIFd%pn2vHac*q z^P=pY)k2Nem4{!3fwk;~Hd~p=XDe=61i~`ULuZDC5YJ=PUscyjH39GV+OeOFiRmG% zYnOuJz5V0gWfm$C?iPD>9FkH}ttb1dWdhpq3YQn>wlmFWO%7PTS9Cm%(>oj*Kb={x zMXG3vMYCyL^(5{ETFns~Tp=VNKo0w;-{mJ1vjjmWJOE%8j=xu59RB&0iKes7frAQk zCh`2*`Pmt5bmzW^*%;sqdU|>(HYeaxmSg3(G#*DOL(y^kKcu38#mxHCco1m9zzVmv zw_C7Un9u5_l*XLI{Z>UXlu=3hQVcdWHd*G#Hy8;*7gsB}SH@v^Q1}bG9_UWhyE`u> zI$cE_`S_6#c4UPq{|W%hn9=-F$A5|ml=!}Sch{!l=$lw*#P_u=hXikiOQsQR;ZpG6 zAYXI{^92I7rD~Zu(WA$Y%c$c|kB{l@+<9X2{1ZTwT7X>7XyT|tp0qqh5eH*EBtr*$?2+=fM2J(lElM~4qJsT_Qx3p&wS9NH} zH4dbO?+Dm0;y}$s^Z5vCke-bV?|$9h$LWh8lKT?C3#TQ=0h8b2<*iWD;X>$|nD|50 z((g{-kIPhEWagyn5jkZ6(ZuZd16q{Dyl;ACK1sL zG*i`jH-2lyV$k@M^VEGk0RW5?>Y=*1yU#2v`0nk!hR-vXE=%r&()++-hy}_trgiN$ zIu;fdl36=BIk~|zRKD3~hH8ULEo_PdiU@LD+uGU|mX!Da8bj)3YHII62f%*WZeU8q ze&^C5mfM0DaIhahB=eJ>`)j{%03~VzCFMFHq4!LSe+!hC#+GMI4NzKZPd93|c6Pig zDtP<*`(;&B{9)~2d*l}x6@-b?i%Co4YP&2DHSIt4!x2+eCA|O)ikS}&)()VoP`Bv{ zOz`XVQ6l*Dy`!TkSNQSeyy4uk_D0p%pQ zwDcy7S#6^MV5zK}oR$~&>#o9n-rJm_sj!}Evu-%|>q~u#jqVS8HU^Nwn}fA$GBPrC z3N|r5vUQfPD9rK?8Ue)JQ^^+xP73OyKgevbHE%I8VgLc}#gR8(7dXtaS{}-apL}ad zCFs}+qk`0(*l~Q2-%3Q30uPZW;6O-u)s)5EDu6%%pqEewG`-*%b^EJV9!P?I2h{sI zDXHnecXk7bBrL1WVir4l`xIHG-YR<&pU`w!rVr84{$IZ`gW`*IQRxD(SLA$8Ay>1C zu(9R378x1Y*52MbfNNrZ+_$Dtp1*j3q>G8}L=M?szcwcdI)NN~DK3B*9vGO0_O=ZD zr)ig!Tpa_a!&3o@xU`Ny3JNdOXC^4Eva%n#cR8N^uDDsI9s;PZsju%k2xxf+Rb6*W z0K%loB#8)|aw;h+)8D_3uT|s7ZF+kXcnUlsD0&!2M@L-0Ck+h^AJT_&P_BSK_)@a*j@yDs0h7*H%>5suvS8gh`Py~Qap};!JgEU#JpoucBnk>R67Pe? z6(i`xX2=oST~kTMX^fQUoHweLkb0$59M?6N^mb4^x27&HhI7r%LDVREvu_T9WP$YJ z0`S7Vl_Zz*69;6+irs_R8F%1wKY1;5x>jPfIKE#dBl80~ToE9p)I*IzU9or(-u+VdwY%`t`tmQOfOne^{4PqU5uY8uH^orb7WGI9+W6d=YDF zYb1?oY`ECJe|EB3fGnV0ABUg`qaZ~HV1w65NS^v)OwWD`B4yV_jE|2qabnU9h;TOn z9RdB@)YQ}qv;(nIq%e$>Wr$2E#6d5Xh2FXy=6Qw+b!o zF>V(18l-{7rY02k(}O1<*%RTwqKQBjH>7&eG-f?jPqkThNNuF~_l6@m1@(bt7Q?e4 zypz2wAn{=ytdC`ia*(_yARzF9Zp_EW$8`^P%54`Hh6e+&JX}D-rc=*yG%x?xbs&Uc z$3Wa9CZ?yOLlF@XS)Qn=n6~~9R~+^Mps%xw%eDM_Y-|$x`t;@&7S|~$gI`Tl{}Fom zzw$TK$L1FozZ4e}0!{q>^XEHpdK3h-h33)G>W)1{6_s0e?_Ps1K`+DrX^NIO$Yl(Q zZ3?s>1OnWQ|4DQ2d&7KIIXbGYS?@*$K7);;qlBa+rkk5vFth!Caz4OF(A3oAT5wwY zNrpou@aZrXYE7lx0v2$#Ucl$@EIg+t>|BY=kyu7XMsJe*xY#%qcBe)J4g)mV+CfKY zWXCx2plUfu@#kb8gNCbZY+`#KWO zo?SaR+{A~PK8c%JS0{{AA`G$y&7m%D9}MohfG8=hu1=1uLp4s;K4V;3!+Q3i$4C70 zOG~N1$Piw|#T+A}qvqZ5MrxpHgE);Bcj5`}G4lI&3cx&g{~^~kpi<+YfP-Z0)6gJ_ zNdEd2i}1a;^)Xq$NSSio4G#TQ%-Y>hn1VJrs_jlTg4Lu9I$|dKXPy=o7^j8 z2?F{{&%;B^&(Ck;;P9=;pdBQRK!9yK!iZ@kWhyr6{E(Q4%gf74De6H9IOy?{ zCur75V5{C@X2$yV?HhOi{*O``s~uL^p;)8}l!TE!xB}LWzaleIxdA9mKuz6!`g3K) zd~Ku%)oEi~4AgI+FW0~f01L%5@epRb$Zp~J!0>QOTN^rX7C;ZGB?4U(5#6)1`j!*b zN}JmNlE>H1c+0zmtI?6D75Y^Z2$rxsc9(kERdn3%RJxm+Gb155Txe-&L4_I-5D?JI zKkEScplX#J(mYeoYb&=JL-O}Fj^=rnm|CI$m(j1~MS1cDkVZGgM%A2`{E1IACmG1H>7D z&C3eauq;31e`EbT+!_HL2#E-RN=k7yWpk6fpJl2SmYW|1=Eys+cbFNW7;sOSL00UV;7V?jE)x2G#P1?sFJ&z?OS zhi+LKB^}50KBu5y$x1_BzWIr`xD9x*wLq@C<6$*LM@9~=xr4*($FuA|lsilFnD zEoHlsqM{9$LQzBfNPLboIdrLi#`A`OKSFMO3{F`kEH0l;$F^WHr0e6{xw^Vqbyp$7 zrr~TSXlQ47*>nTY!8o8vms6nMHZV}X)E&V_Vq<20&MpiB^)zVyy@oFTqtmf!XJ=Ol zH!)=eQ(+t=_xssaw!G%BTvd%&+vq=v0EZyc?<| zE87SEYdb6ck}Z05g5kk~@OWWY zo=o}ds|9rcM$0=a^0zq*!pNwox?Y&Ly9<-R769Mpk5#lG2N?+oN&C0fRvR#2YkNSq znhOjHa@jWok6Y8hf!q2tO!OiKc{`{56(ye^QYxnd2z8ZI#E+|3;8I5md6SDX40LwRWbsHBOstN858{Q6NSU0xhYV zJ^;ks3|Rx0&O3zHkYYREm7ky7ysDCg`cWF-n6R+TNsE9F+7VIhF|qZc$>2v{dU2TujevwF81 zjEOC%b66f1TQej8VPh>Vs*IP3fv~3Q+zV+gYsGxfuhqW^ z2?<%)|1}AwF9=vnN9qofwJt}0GLwGx=T{ikalXsTV-;{*3jjYhacpg@0)Ml1H?(`d zEu&+kn062A=zVyHA$Y7}Nh0pO0QmD%q{2>KmvW`czwhstcXoC*W%b-2RM`gM8*76T zjIl&_hVh9BIb~(^(7Cv}FuJ#^;QTt|Zw?nE4Ur51yK#60CWU_gxKh|ykpaeHcVdox zoj83HEN7d&Wx2cs@IeNu!l1>0q{`(9TJjb;j_^i=jEEUWBGRhBaYkAd50#aphKiAJ zgwm?ssFPS+LSjW|5~Ng{KmB)7cYl3)9oHO#tjQ?&CRcj*?~niJ^d9R(dbLxKwZhQ*HTrDQ6B#A{s!YpLf{HgQ=3raQC3yO zg!o0>IVSEOQPXaN9}9LMqRsi>i#!CZE0*+UdfE$g%WL_o|ClGKWh{5@pnD+EdHf}I^@Dvyf(s8Y>^d^$+o+*sC zLRO9D>feDFQ#-i}iprp?R7(A8*6^1Kq!E{3Wg@__ALOS(Z(&!LAyrUNxK2Qje3-5E zj|K2v#Qg+G0M#9yEg!WFxVn#lLrAo}y&cy8ofkjKNKQ@;g^`gl&*}ytAxI@Thb53W ziKpZ%fk;H^k7E9I*tQ_1URBOjO>uZU`3Xs$MaVo~TM22`Q?_%vgv6~bHr!cFOsTD_ zgB|-Gnm6DivphkFANb)>eJv@dxogIe!2;Pd*6zVUrJO!4@i{R%)<3Yr1vY!z!f3)k z^ueyL9&G=|Jdi-M&sb|I&h1cgQ0__ATYl1%guB3#Mm{mP(7w;$>*dt71GE{n`Qh49S z(p*u~fR2vN`__Z_&XLz~cDSTD+#&`CYroND{ur!r8@vK-rU`&#J`rMLv3bQyYPdk3Gbr%=FOYS zYyNuO?&9<;ZtMd47Fb);|3n!^~MM|FjG=e;%uOr;;5($8y|AN z!rt#zMJlZxCw~}gPgZge$;VcwjIkL*=A54$xiHfr)ig9xGcwweJrn@KF<{(;4$_Eh zVc^9iUee#XwcW)#Md~nKTPu{RLljdi1DI*=KsYBWtM})o)4vRYvnvJJ*=7d;^6$m_ z=M$X3O6D>(OkuOD(p;*J)_#-SQSaQ?(qXxerqt#krUpgRi0#K>#xH=sxVX3i75DGn z?Th=>b+c`NUtw=$5F7Gs=+-m@1ikYKwu>L5q8LVoq!Re9!zW)sxE)S7kqW;l6>GmRdQuFENMe&2^+QD31+Zly#7+`d?}JeL$C)Ma`F=e)SOo-YsHRe$Kau^l;FpEDxy{BnKMn=Y z&-ph+pdi*!#p1e50#!3vqJyx-ri(RN$n~-qY@o{a)l)+ z(BcCAk>Dvx|Aw6))w8VWIsg57YR22X!$qXk3Ovetn!A}D=SOGfb_>4fa)NpG1Au5y z9O`(h+b&qr`9sZ&jC_%q2Kch&(Cx))q-zHj8o;!rfcI>{ssbiLLo)Sm(Asqk z*bI?@8XbqH!(gQcmC@&a`n0I^*s#$xGl}N%e3V#l$4j7%kI3T+f*y_;zbL< zTGOpYX6U)FCuc!n_I{g&3@~QyL1s_2NFNQ-ry=AHl>epd7yP5_^BkFdsR}duw{KwV zSuG5C5~P|=qFKxmgoaIQ>Ot5|&{it5nCq1B*~!gK2&lIH)^r|n^h?QP1Xoax-u;Z@ z#s<(Y0rC{&?s~y)`V;^RKnf?VuF%Z&osS+D)|Je)~O$!gpNVA8mFB1z(DMs+j(!yueD5nLd3VtmQWZ%fwX$S>~ z!=hH)nl=2ntsJ?K+Tc#!puz5;T4I}-=kd&$wb{tL$s!X21^|#44HOZd&pV}`ptZZ5 z{K-TL3|{`J>X3(+{__VZ(v++l1VY*WzF>Ft>eXd8tfv1m18^?t7M{v5|N8X{)V}fg z?`2P+^vKD|dL<_(6UX{&f!+JPv(pEnHApq?vuG};P#~MUZD?rdQ~18DpsE@Gsv~G^ zaYipW75Y1hSpeLDab-F%@Q77zDGu`Pv|s>()*nYxHOwd|NFkp+Fi-KdZ9fMr46W+d z4@|c@VFC+1FE5NMY~lMDqL#}-}(hJ`(a zEobzO>{VeGw+hogryIBU+xkCf`;B{P z3BKroj5?_o@mu96=YyPyMfHzB@R7w6l zgdwyK8yG?uO#K2t!foKqe+0BA@Y#O(-TtA&Fb2|+5RVN4_Dc@lRdVnh!(~#og{- zBfF-|I-~k(!d)=S+oKi*=h>_Od@m+lm>knhNaCdg)6QS}qH~2V4VRgPMH~(;z`{Z5 zpiroG%I`8Uc|}J@cN=_)j(*G>*$gBJUhdyPbh>a!1OmeK;Ov8!HnbLzkbr|Itf+Vj z__Z{&!7#~Dmr0_X6=c8TsX4~V@ z1~lFeoeSyjAw9sW~LJpMi3btei8mz7BrRRm~blToBW;^74?U0H8u3={i7j zx6AWGq^AjjU>^wC^Yil$Q)H7typ5YfCaRHc0ti1KWXNf2hay)9C}Y^j=$@+T*``M^ zY;dIX!Pz6^1DxX_Lj=;}fB{wo8I~`UbA|D0G>e)y(zu7z%wroHb})UB-YF=iw{G9Q ziU3#Ftk*^8rA|Fa++R{sP+(;}h7`heA|hYFKb2KgDPVAc3-wNlp#@akd!#r}0C50l z0=33~vjMhiBM*=)l~l;NP>qpUiM+l+|eI`xjDD164h6W3=e0T9*iHT-*g1YwHR4S!C!s)JUz11GGPos%;-U zc%W%z#cG`dx$^wV%8}&S-?c8BPJjoS9H4L^Q`^Q{F3Vr;=^$k~5bwUVwPAfe1<$N< zd|Y#K2a@_5VDZ&1{QmvBww8lO8bmlwx_JA>HJ>e~+HtJ18WC zC|3uW?;gCbMLt{u=L}w*?ETSv{Mcv6?qAYlf4|}ccR4K4j1(xCrPsk-Y^inGbw(<4 z$_3iz;+a2?!GQXsS#0o`wuW%21a218?qC6>OD%JQ^fM`!>4)i@fsql_wehN7$vv>E zK#)O2s^TC@sPBz8oUGgfK>m1Z99BgTkeTNezajTa00)L3bGKc7czD?UJ^WTYcQ4Q^ zY@`za2%$*>Y*$~T3=Wb%$l&U$@Q&|5E5#lv;I5XnsCns_wSUPu zucjcf3%jm8xd*badEE|>u5pIr89|>Lz(o+;ti4sq2Hr8Ryc1+spfV4*)Pf2$gG{w& zn!uoe@tNPfPx$_-L0j;Qbmo@=kE)uQREQ)lpG1EAcmNz^PbL)fVWokR= z>Arq`&Cq~ts9M--cfpH>w;Oc*85oH5YjgAo{p56D8#*3k04fHa>HeU_`;*AHIApLA zY*v{i9thVzG&W{{Rq&XE|8K<)1{=s1LT<|V2u@DU2Y_9C`c+g_v&g(?BcFFgp~p)3 zfpq{r{MKjr!GVF&hwxLpq{As^6-_WZko-wA?n=Mw}DykHa;t${g#y;gR# z1kwmu1+-(k8n8!RuZ{HOCM7~-8iYE15O$WQ8a&6WWuJT@Ue7c${ScLy7y^<>hT487 z0RWV~pLLR$$n%Z;S9W%GO10C4-zNFS36bXtTNOd$^Os_{p&6Z& z1iS}7Z@3=jtQBJ0w3X-Zn2?X{(b$-uPut~0%nbkV@bG}X0+GexswuEM;BblFfl&DK z^fx-9PsPPC(LcAE#koihLvl(S>P?iNSl0XGX z23uBQNds8G^XJbY!ed#^VV#$c`wn@U5pw-Fq+US#CeN(wswg4C1E-8ahjvVo+=(G2 z^8Lq;e)W9$>_V4aV>jSjwLO@4cx|w$UuV2EQUk;}xdWXDY0x1Hl>;bR5@34VpJw;h zYw?=_dE(uplpsney#w8 z<1ckIjQWQ<0*R%w)&kddZ>Rv2xcJxg{~ffFfS?t*Fn)4=v7q}27xeF}6xvoPQvysn zD{+vwkx~{ig$y@Z{*{Rj@-y=EPp)dwqpi$p9ticrph4=BmX;O)&Nb|;CxG>J3x{CZ zDMj2!OH6u@F0~&%4Ia3MT_^C}KNI+GK>HS!l1qm2Rh{)%@P|@M= z&K0mYp-##MNz1SQA32z*)>6s~g=76(D5;R%!bF}K0HvIgiV70vA>f!xyKq0zi32Yr z4D=J~&H7U|*uHSqGX&zckdM&=_qaC68x`O@Ehy$#Lj}O{Db5sZLLAmcu4|NAHhp;# z1U@)8^sQ^N|J|cV1o+2&F)di06nq zrGA(Fj*gVvzu5%W^XhD_$mr-)AjM*0VggGi_aNy9PZS77ahzfU4l=*=`7<8umDd3M z)Y>_aee3UO<-QxpGt2+N-2c{DJu>0R7*nobjJS&3}Iy;urtlo=O%M z#s1+vq@t+)4t&0pFSV51k!90-c#a2-S^2r%sx01Rb=-X2TXVKJy{Rhqk4}!?wzN>O ziqkVGnGf(}(OwVIHL$uCI+tv$mglY(NzPohGGoiR_X^85oY9roLKbXB z72dtI-`Hf?+0z%5OACBTsTOZhN6Iybb>DW2XLH~A@v_sv##X({b;|PBD zMM!kLEh_HiA}(VlVmn`*s@&hbZ{sR^EeNl>kcOAshf(GoS|_}wqDtq??=gyxDD*3e(L-s^Y1GGcZ^!is}JIHd~3)Q#yr zxPJTCUU?x4Ey)_~OWZG=6vT*I*zsjn!ni~}GlnVKUU4GE-wmEy@Rz*ZY;E%LOP2aO z!c`C1qJ+h^cc{8_S8nU;ir>GsmRmN*m?5WqdEZ?#2R#U?awo%k;lt-BtS66ATM5m}pJ7i}u+wKLJ=c`(ekf;# z`{_B6;>sJo(ZFp_pVP-I;ilyZSvQ&PxqCS}uIpM^p+*@r72#Xw7h9XO47Cj<$1k8i zK}|?VL`Yn$(Ix?i;2ASX6Vlk9RbzBOHcw@Bin~0A?Ro}&N2C&d5 zE!P^0S*SlP(yvEL@ztBY4Lv|9j8sp}_=;s7iKUPIpwU*=mNG3WDlTYt=G(zmv##2H z3&PKZ^lYNT(+h)x-y2mBg;+UDC40v3UYoB)Ea_+gC*_(Y0`WW@Yk|nfW|mSePZ3C7 zil#EUlaqC+g$e$3@hp`AgRw={@0~rUopz>KD#_~FA%5s+^`pl$do+9q+(2|277Q0{ zk>|}BDdo#3h9a*p-O3q-F3WCOK0a^pQm}lhV?fe4v${D=LG`w_RAbp?1zmi1cv{?y zUt60GUzUm1SX_2+xJhoDT5G)q6)QPNg|~3rkBpSoX;8kB)BA}@M^Z)&$!C4SdT5B!LF0mr?kQAcm@LoSn=IR0o+#Wp z>)$k-x>cC39QwwW9M7@bSymlAQvKSCY%0wJDuj*fT_w*?1*9wJchaH=HEZKg(AraW zIVV5xX3^z*^(#rld>X3LY;k|jtGJ%n0ShnmC0-#xP~%s%hqt{k!{{FqD=FEH@Q?T? zl@J6y(dFL=dyQgVhUJAxnIoa3bf=Z@?rnW^V!{_f!E$5+gG0$FV%M-=yx`*(c$hBV z@`wdQGjCsU?`m>>UA=2Bib&TCWTF9)(O!|&Y8Sgb+dJX&HWe2&6jhv_wjub*1u7ml zE+wVax9Jhl&lg|S28ITk+lGj7P+^+~V`fDRH~$z#pB4Q~%Hb*A5cZk8#9W#Ep_TU4 zBX-TQ;!pH5M`8)Wwm5_@uuGln9=b;3={AYwDe5k7@e&LiZcYz8ANamN@Qg)|PQTaq z%fsuaeg;kK0~Y?JjkxH1@CjH?s8%TEE8T=|I6Wuj~ay!%%6=A6&+XHGAz8oGV@CQKmg|;xn;QtdHv8Gg3FZKC&Jg}sUlbZ6EAN-drhUY;Iu>@&CV#`o#dD?e-&)CIJugvqm`yHkQ~ z8$~aN@XdwX))Qmjpa%O03XBHYF6SY{{5GEf;C z>)*UaAzMi3Ec%OV{WgmwWkR2<7M?PTZ*@I+a60ZQMjf9VPt5Aqc27L?u2YWw{-VwX zkvK2^Fq&lL=8tl-tyM1yZ)!BQ4AX!I_Tl**MCX^>Qi66F#$=6x`ofZO?-#BZpM;p; z%pLE}t{vUIyN}eU*lil^ZHg;=Pr}d@b7vd9QCkp0Q8>?Y2C}|h-a;69jiNtf)@%Gq z^!+ExyF7Q-td)fis?Wkzobf+XQ^{$JAxKC}B*j_et&N*gBS`p&{8x793zb6)%XIs? zi-cD!zD_UCqElp}sed_FF2RyyRl9oC(L2%S*7&$kV-da}X_gZ6fbzuCq4n2_1I*Kg z79o!7iF)@UOJggVaXKHOo#@|Uef%@PmRFSK)Z^t_NkcTEdw!`_!mWX>vV#>qieImY zhvK|BhUl&&8^cR)`1+9`-gavFB(GhF5QUO4&<|{ z{CR_vlp?1|iHQlsy6&dP2hbLmrd>%#6t3%&LYcaozb1P1K$%BEbgdCPX| z?KEo95R`%jy!RvIE|*Dly!ap2DmTwWVmGr?oE(&Kw^YAeNas9_8n@3SYWF=K6^}! z$w`bz&T9Ufr^Y8?DigniG1w8t?6}GGo_lilr(D&JwT(S?qZ_6Uoldw3ZYP;-T`F0^xW}awS{m?zn z2g_=uv&3!v*rYJ++equn+aH;{CTb29L~FcyKXMk-OHD1mY>ou4-aZCO1=X*>XG;*jVX8Unec1xJ|+lWTuIr6)0V+msMp%Buojj+wBU0n z3MBY7?rIv`o+R3G-X4fEuX)j6qBC~`fAVpOawgg6e3S~m{q}8#@Y^O7H}RqjBJ5a{ zhpyE6s$KlL<@tXBJVC?0jpL;V1HF(dE;i3;QQOk>EnU`v~sbFV?zo!VwsF5sMkBp zO<&;r^c;gj{e*snVt@yassdg zT5Dc>?q!^0lH<#3JoxaZ$T$huF4hDCRxf6+hg)a?Y}8v!FB=9&260@$%F+Ty2QKl! zy;&x9-i?z;v9hwl6HokzzCw|;wKCd|u(JtPR@bl!B_!8&GwJvprl+S7Qm}jXZdO-T zIsWQ#zVKgu0U-p5be>&1C$Vgo!GV69!YD%n{Wz9k_ELq>;Xyi)%|J0t6ovqlSIa0J zVoRHZmm=Z0lvh^iEA{stXpaDHa}tOm>NII8#ba&FUf1ILeh0KcM*)}?rNJSBg=K_O zqG-c{yFxx+U}SuhR<+FP$^w;!;=rAXusdl=%c7W6jPz$1?91`e$tC{XA3nq1`RN@j zR}>$4aA?EAqqHKCNRY{;(MmHsG)l+s5OzBl#Fnowe(?)5TP+;d>2gd%r_*L=WSA(5 zz-ZLsB7+Y<#QA5Qrr#12S|QQhcd%khlI=FibLro)gFm}x7e94yFW>muH?Uoslpj!e z@B=j3k8yB(9MyF+7Di!|B3e;|HBBT1vZ0BR3fIvL5BKqdr~igzI>)~KJLxNCSeRR+ zQEM?cJizj$6|#jA6H1XU4bZMt35A7CfD(pm#zjSK1_p|F2|?8{9DnW!1~MM~g)Fst znW5n!#-_%xbx3h!9KUgqA3Ui!aBxptPo)S{K&@J%S}C(MKaDb)!NFk!ij?Qjm#8x} zk|&o=@tw!d@PGfsvwZ2ZQ?vt@9V1yBHO1KIFsDwRAqXQfeI5fjk4u-9sMdUvqoWja zE{#@`{rh*(Y=`vq6)EJ>6b46l`jKz4ao=r3hyRu)O5bL`nQ$^6VbbMy0LT*1;xg=8iJ!VqbV)Df(QP;}jL zq=Y~j+@!}!d5&5$!gCC6B1JNjqSa_p_d`Oz#)Y+r{$d~X#u~Qkkjdw0R;$$O6`XXM zfx!V3AwhU^0~~}9_)&-@9GZ<5%|?B*!)MG7jV9wJXg7QUU}&%pTZCYOZA1VCqGti@ z;a1H@2GZ#S_wTb&YJo6{NN3j2kxzMT4a;@exnmc7#R3)%FFgM|yZ7y7Y zv0aNW(i?#vQpyc0pyzrF4h>>i7Pe(`@4fdDMj=5EknrM#mX}JAaBOPJZ3ZVsSzB4; z`;Yz&QwNVwtyJhA9s<>!yCOxsQbhp5vS>7#fI&xwbS8($irz!Lq33?noo;$~Bb>i@ zj&`$7d9BWKzx_Kbo;u5ZH^GeGq3`e=-1l$)4Tb&^XpNAu1x83gU$L`un}ON*R2djZ!LeEpFZxiH`0=%H~&N5=WZpZQ?yQY$3YYL!PG`3}Rw zLj>&*H{nuVTjkKdX z`n&%~Antu}7LMIcdrgQuQ*g?sP64@X>s97qXTZ^VTN zDe*fU9LFJwG;YGhZ?~~s7t4~g>ouBzp;X8cstDV%nLc-tZ$G_+o9;tvjT9S3H4-kY z)&)mKBj!#&L%M&G{ZqpzEwLI<5+V(bV`G#;8G|h?l+kFVux%HC!Q6r|TL?j? z)4@)7ET8@nL92n)_D2l;}|po2%?B63^{!GPKHNDHdb$)c87YkhO{Kg#GNvoN|DKC;~hp>^nLmhm|6o|dt<9jh`4UgKJ_fNZBZ!n@!juzhn<5%eDW8+fC&N+f?B1@ znVAzjb@6dVa-(R|wF(N0a&v_pr77;+@j;Z1uGt=%>kC|NE~~H8zMBhNb*-3Fab?l1 z7ZNlYbsCK(rBaa#7w35T<#R|YMZ!x`$O=Au_deW&$GV%0ys}cV8%e9o*86TMqlJzK zKg?Bix~fX+?XoGTZu9lxV{tsN(y^saSb~|07kKu>5@)N~I56evugXXFYCP9qN$YY% z^m=&n7Aw}K&$b*lw=CE~2!Zbhq;duP+5*kW8p5)+R6|D*17kbbeaBrJq;=a3)WT4! zH<;Kxg(a-sAlk#teZM43pFhX(mtQ6bBNCp2B^~zc*~`HLhlo@Z%MY2jPYFvT1{LaVx7XbF!2Q>hKHJ<+ zuQ{G~=Z4LS2bPp%lGz>s>=D52iF4BzxN!bFf$!sVHTRm$7THW1qZK-exKWL6-JS9a z#Uj~!q1#ggLdKTCb*(eYl0?dE`0Z_U7b&h-dC?`G=8AHccf;0Qr{e#w7E=+H#Hh`T z#B5;*qTZ+y>9A|1i@&W97HKcDAr-J4q0u<5 zOTtUhs@LK{scR7vQX-`!igdRDxA*tRWb>5QR;ktM>#x?9$7xBB+jzId7)W>?gF_?u z?G{`1f47v==qTK_&%+2qCYzsQ_BX+L*C~Q#@`9A+ar+Ypu|PlpEW< zdXq+=F;J;h34EV*Ij*kM!bW)$+x!s*5?+FQuE5P)1(r%hh6Z}RfIR}Z4e`=Tr@KB2 zV#A680{wcHkSpgcbL~m&-8A5I<<_q8Wny9~xgN7H@6I_;0Pn(jOCh$`cIaDxdQXrh zLvOh5;nojQyzyl7hGV<9;f0|#H~+mJ8yjNh&e7iEd;|1?KyF7D6I(l$HrMZDmJ|pq zBBeI`++q=4i4+#vsEzZ*yKt5k;yQzli6uzhQ+Stt9c>Ksc*i#BFFoh>9<~E1eB;6H z&8)d@_IusyCOrc9p1|VL0`p7r`0XamuJlUE^Kg@Cin$^qgQIv}0&U)<=A|Bb=%I%m zdg!4?0DI^@7-@0x+-rRQ2j3>;B{+QOF2=@2@sdew+h%TVh95ogD8<46Kk>lFaqX@| zOOFKh(8IQe<2XHQUJpI=&?A67Tn%9fmY0|5E0#F8e;+$`?xx*pqrwO;nZ&XzQeJ{g z+Gb|v1lkB}DY0zOO7w_e4?Wz9ekr?olQ+5BTC%Iqr?>XHYke*N%eI)GTjGHSK7I?g zssy%e@z%EQdg$TZ4Jmt(@;w6hE`~9N@v#Z!7p5td`Y9IkOgAcAoV!43Esc&8pMLnK z7#|;FcBMmG*(|MAm>lw$9Lj9O8)(4Vi0Zl;+8CsaqcJw3zq(p)o6lL#KO5)Om76}_ zI^nIWd#vYoRoZL>xv-%~2kSnI#$5h=`NqJODf8O(wz^)%m+!f`u57v2=D(HEIF?PM zbT_ANe0=?ym!n-Tw}}v4d6a9-*w?7@_1de4ck`qonO&@~RBn=R?buJ%#P5AN#9X&{U=*|bN!8t3}9om(*k3ye{``sxX^i8i7zO)p1k5ATCkF*Xm@;yeK~TuEah^Qa=Ah}oua?L52Ye( z$H5N*9Lpk9icZ@n@I!`%N(4cOl!8ddBGQ(S*p7`9g1LodeBURVN>M0eab1UA@aDT8 zmMy8)+KdjQDdjWWex!Nj>>^6$>j39c5VqFVAptQi-ywleC1Y;9z>C* z-C5(o2kxQSsG+nXlj*~D+*oK_btP{$uaSD_;XQ)E!JY(6j{v^QEr71$kg${3wj`5D z6Z(qKQDo97EJxx8in*04eh|`W*SP2CU0ggrP2}4Q_h;}s0g+ZTnr#{jD;ueKY{y1L z3d^x*w|$gSw0xf^h;{0`q>E9Sq~~GVHpOC&APBJ&7Ui`HsdSQ7y@BT?=|Sv5=?LYLiGN&?+W*j$^Z9 z$2ee^n_Y;tsiefVViD0O3~~GISZ`{rN)#!4Kj6}(Wm=sM0)y`dG&?>j4B5ALilwDh zTCG-`c1Q?XtqycWf`t%-VMr83)LTttS+KaYLZL55v(d(JU8DrR6JT2w^;VNsvyBuM zp68&oA(3#AQZhVLqSNUh5!4z@?1V!p;r8S^-ZPd3fs__&)hg{)o58^WEFojrA}M*{ z#du-%kq>{U`+1xJO|&xn%+Gx8+E(OS0MAPT5s!ZTKjF6;OioUcNF^EHb(pa| zM=?qP2Bi%u(zveGBZ57=C*Zn0YSSZt?_y{Jj^pAc5-6o;`z@M&jVOvRZJ$oi!Sifd zvkMIDJHR(yUgFVb{*3YdK0b2qevF1>GJ%tD>2!SBzK`uVWK&7%%@&pr*tU%=B?y5q zf<(f>bzM@aB|p z32fV@zgVDNZ{l|XENQV?u7Cm0OAskd5C%xwqFBgxCnQa~)xvdMTI~)9=r0vXxDKo3 z3evLUiP)ATyaeq|hg336tzJjz2+wumtz`pA&%Z5R#hJz8%9b)q+n>Ugk@Q1t?1W9R#wZ5 z3=LuogkeZ3D2!eo8F^}uocnKG+yQEBo*p9Pd8PUejYP3isT=wsqLfTeLRDnWY z4!;wSN_rR!`D|vRwZgD~5CX?`Fc_55D5a26GC47_rDY?nL2GQ=Ms!u_*S~iZMKQ6p zZTd?E%4=1;M1p)iL%Z#hOeToB*;;HnR>NOjEi*DQfD|w>I*gPOvmtOQ;^)}Iw(DQU zyuJq6X3MP<5=%;^XDj5hNiuyY&dpZ{!U!+na(=EtI+*|*&dsf%4A??&Zl+Aqi_=n_ zn<>Y+z26Bdpb$izCdK|iq>~_sLIC_w1BP}dAmMpb)@oRmMLw7AS*m;Jp+^9FxZRKf zl!{m_m)W&zl0u<~F>#tS+p*~@_EB%NC=~M?*t>(>yC!fgNh+COad|l&|6eBpFyT0? zRVp~HgC!)@dL4j9qk+*ead8}*<<-^eCz!o*zLDMZJ_w992nh|?l2EtaXdtAZ-Dz(M z3yI5Ld9C(hCr&}PevM7X8jZ#^8g1Qty7m8Rl{YSXonu1A^e~8gmY4m@_rBtMr4+`} z%+D|OUfy?6Cv$CwAPBCV0ZzwqEz*`7aYU&^oT@SC)Ylmz#f*(5HGU9bAqiCok)oJ( z5W>*v1O%M`01Fr>W;uHzxb^Y50wOKBI5Usqx`06|MXqlc+0BRScYMYs26613n?esg z^ax-N+XC7^!b>tWv6nNaE@HHx*=e%0yo75fsg~C$^p(K!7#b_a76rZ4Vxf$tvQ{CN z&t6j+-55i=-KNxELa_-`bc()G;&My}Y%F?OofejD5r!d|bY^2wQ$lRSp+`C*j1*47yX8_% zN-6UFqa1ngb0`%NXPPt=iX{R+B9~24?8{==5~Cpu!rn{K!+WD|Z^}*FLvLz(*W&KG zkI`zisjQW8gvDronq)GGXJ<(zJxci^1H%Jxl&Ogw&b8Jkr7=q5B@+w{4aNRzmOx)Y z5-(i1KsFO^^G2PJT|0K+xDIQT6&ij6WifFP7e6X`^&}>AMhhfOG&p*rLj!BF*u{B&uFa|#i5eQ~3 z&X7r`v0a-e2q_gyq|zx88$!+!r6a;HqFSl2R;`fDWEmMAMrn=fxJV(0qL4^wv{GDJ zTEKCfTl-~2?7JFhi{YL7+1L*d@q(`DM+jjPMnJfU&2H*LSE(CaqYPIbzfN7QS?(Hg zQ#X9>mB+7F=6c6p@806-@#GEb*~7L%w#WZ^1n}JgDL@FhLCm)3<7q=WohFq^BZMIg z6-h5a7^!abYDA~yqm9OMT%LL9Ws<2hJ0`~B=-Wu4l|ot;)6=u$a#?b@+{OyY7!wmZ z;`>J`!V^ip{oJ4OzyIW~N8$hgAOJ~3K~#r-gqyPXUw-QkdEl;xSem`S#nlE!5AI=h zW)7pFP%2?bNO&G$&_RfJYiWM=JidaRJ9c7Q@uY*WkTPDK3ClvV{&}pMrnSaNBrs8k zL4wf;6wkl-GKY>HBjrefAjEMj!mwN3NdOuZh6pKHt5his^rNF#=0eI?@8{uEQ@b_=dW2>S>;m?eVk&kNTedPR&-h&q>w!R_*2Zz&XUjPICA7J zip4&{D8vxEL>O)G+dh`G_{KNCMZH!hQkuz$aUQt;KKxFA!4Uc(?N$e)4d4CIqntT+ zhEF~GFk>Sl1Yx-0J9|rE45?I_(TOpXQiOrpAb`@cact|VMOCCjbO>(3#h{1+g_B4i zr9rE$>`4fSREWXCwXL{)SSLzbJC=$fjI?m9*k4xbcmb)EB2pU1u|Wz%H>k|OhCePQ zUPLj45k`uH>u&PZy#^QT>VyVigqv`$ zx_%Ga6YBAFWtS#c@hJc8^LWx2lPorK#MJ*PV8cgjNBk((%I&+GB zhwdimv@kkLq$0vFMB0)cKl2oiKmG*2^u=Ew2m+K=@ivqIV>Ib>k|&;gh7Wz{J~HVf z`dZn#B^V2=A6EI;A4x16#Lsl#h#+WJdF*@NWq#%?v(p#R21@;d7$SxS2bn%U&7Jpr zh|&HeCtiJpKpPh3W~kNM*j7Zs%g}21STZExrD--=jPKfmXs&Q^rB0`|Okre-%KUk9 zrBUjYC6ehp^RpM2Sy(3P8s-+uBy1PQk+gzX1gW&T}ul$jHzTmSyqy(@*ii z58NC3{z0s>hv9{nU*s>o@t53lqct*jwGvJCs1c!eU(dVZN^51 zFn$v&S0d+GWU@IdTLK0XggpK9vv~P_c1#R&ar!J?s)%Jec)0;4MoTEI2z{UP(+i9Y z<(ZjZVQOjzl~w~UmBQ)@o(myy5;h=+IxU`h`Zn$e7 z2Wd81u^NG}NTpm_?SO3BW9IxcBAH`ku#Z-=MLL@!>DjRWy)m3Vah$b!#ExB4cv2%1 zY4X`5+Qer$>ef0TW!vrc^PE{u9t*YUSM@)iF*r2W4}KYuS$!VB9?S$)EeYc8Hi=RHU{NZ ztAm&Hu$}9q$q^vBZ-jK@#tYKj?M2&yqxT&ntW_DA+(9yFv%0WKcA$@y)fFsDvD&EO ziV7X2IdbeM-~X$>#8;9Xdk=8_{Hyp8?B0KfGiQzyMUWkx#0!1;`qR8{@6b?j7zY!Y60;S~mkMhFay4wdL1pX7<}ew%@@9eBA6&FUhdZL?a*5XuB@ zRHKDtDCLky7C712leV29X}+U%ivm)g{2h=g&e{dmRHZ<@88RX^V96V>u&b! z97d~%DD~zeugTih0H0*bbR|mdaWU$8m6u+(j;Fqk9~qhaLg! z;ccx{EQd@oL1}0Q?b;;k{J#k*oClc3=*OHaU6?OB1zxCAVH(X_+*P0UVe?cf8t}vphh(ieCfUqGJ9#6 z{{DV!OX50$6Qx1+@7cjqFTBb}Kl)Q7Jqz1)Ik<0v&`NS&e+kv8@+W`%=M3+P6`Q_8p>&?qU^hWa8c+hIMTDS?1z;ENaX|xH!7?cqR6Ctbw zm*&n>8p<*U@$;CtT8jU#MI6`*ccT0s@>o1G^B5*o#{vB#O(J%up_DJ^VE#(sZYeZX?L%<$L{j^nVrw2IJ>N~bq` z&wx0yj#kvGb!^ur@B{MsJVu*XCsJCmFPb)Jt?2}9o_g|G_U*nC`xXU*gki|(bFc83 z&wYX@j0qH7Uq&GXosLh!O&~3?J`vDvw`hlobiyNyB9dLL%_!6)ysh=rO2__jT`3vY zO~m=QVTX1oYiO%w+nhan zhIUZKOL(YIZCE-makQh+aX^PgQz#TbfagMg{_+GG=lRuSvzeGEwcAJ;r@FdPNGU-Z z-gI2876jGTH$caMG5U2TbcvJ#rPb?}6+&W5+4ar3mW>2_$K5vXN81soZNdWcT9b*) zhK1xd4pcN8ho*FH8d+CHQ(0ZZwyysk3MuI8FCheU+8yeZI#LQ;+am96eP^`Mu&i6N3A331s%r$DNFlExF;d8@zR&f_zR|U=bzN=r zM%mXpXLI@WG3IjJ%+}y7(bW;{2F+bwP+!6P&DP*LFdG`ASDkZNpmgi;P50_ydn1#| zkW1%!4e3=yy)RMQ={3ey5nRIz{ z&ptwF-FEAn0KRwFp_7-G+bm@uEWv*}y~h7AQ>SCy-j?wq#Xr5{C|@5xfU9oO7QPTz zmUT^nbeW6@4ClK9A|?W1r1;Q*N&b&tzK`}MU(z^FaBO|Qa+}v^!=;%^RH{`xCqb=J z1#`Pz{A-i1>k+ayvUa_d&^}D0I`6! zZAi2gR&aYqRDmIs5keV+G24OwDk0EP-2S;n3M^yDDuZ*ItKz9xsz_Nb>LxxVWx6lq z^^R|TFx}sg0Bo0ZI)kkvgpjzxB_hJcCL}~_b=9hF)+o+iIK%FpyKkB0?{$e-SIWh< zJ7}Hk?kwm{k6XqWZH(CvfqyeFT4Qv)C4Mb}XE1cy9bC`7#;YbTlXBaMcPCUps6tkj zS2%e1AhxtXa)l(#jS>Bx=F|HN$wac(2t5M${(#o8KhF0a`5vWGiQoALzr%O_>N`C8 z$fMkI?4AwL=5^_b+wHxw;m0Qh+rr~57GmTb(dM{861Z*9Z5Jc9K|Qt|Vp7p=wfXAT zzRKd_BB^wW&;9i07#SWR+H9#b!~qt@ptO3&tGRG#o_429A^RkQ168CPK$|b1Ndocs z5%>Xfb91-}mx+l9wANdQoVCd{t>sWKK>Ai zM1oX0#be)p?Cs5Qntwr2sHNBt)3q!s7PuB-L+n-viRcR3u8RpvAvVr`D^`}*G4I6R zIZpM`W!VC3i#Xi_;M~IQt_?&HSXNvI5es?8UsTdX#=V!4U7h#}(V4$nDCkWa;tBpE3()b;p*^4s-fzQb3DB5VW(lnb* zgwd26Ra`fL@B0+{OB+47u{=X<3%}`tdR@su#QQzJQVRbY6P| z@co1Fv2mm&nV6X1&%gFH?%00^149FZe)!gjh5?Z&z~E7+oB)x)tX@P6?1FSZEWZjv zcSH3Qro4DlI-Eg~Jvc?~z!WP#c#7oi-MCp7e`PHuQlTa}(uaR(1uZ2`!lC}+G}h=4 zrF##u^629vCMF1%7fDU+z)3r-J%5_w{YPn@J4fyK#TzGq#vpBnBOkg4zq&@H>NB}( zgvFT!l1Yc9l_nDtLl_fs_S7tU5AUP0xI(KP(m!0FUanwVi==InDHcg(6V$717B5^P z;W^Bno4q+CP-(`-CRnXj=`R%+NasOF8m&5KW-fBik$X_e=lIz(MA0pA>`IorB~3TwJcw2^CUW4CFkr35Vk|i|ia3LJ^LJ|PoL)K-AB>eKypY(@RCVfYlu#u zu&e)!Fj8o_BVH_-IBi_LUc>W}v|BCwj!(i%&{yi)2%u0=#Oc>ga`?#6En`F{@~M>9 zHqu0PIvrNaWrjwEyG7z?+aUC5H{19@fNfb6Sto!R!Ztg0?WgTW_(tNmNrE6mbghdk zOUop3Ir^o;!pv#fq030g-NZ?_JooGcjy?Dj z6tW3=PJBJ|&?A8FDGUz}bN_?)bMEvxzVhX-@K64yf5IR9{vQwo0sr0K`4Y$OJ;q~? zz6C3w0rFFb@y}!OBM@o;b%p-P0<(X!#ut9$=lS{{{PE3mOHzuD9k>hI zvgykiN;1!5XHW6K_ylKXX88QUBQ(N@`PC(s7FXlQpPOr9f{Ags=P)8S43!1MLk}QE z1~HWmqFjwh-;uizhj+l}(})irgJ)lboC_yULBof)7-*ukVYn~HClBu6#Bzq=bdnd& zFVi=YLzswrrY3p(+#J95&{2MH{34E*{z02Fn0&0ym%Zp2hu5V^QG4k*?16r~LXwpqJWuZME^yM+pF2+T)p>Fc?x5518Tj;l zsMZ>(og;{3ns9Lz(btb{SqQg7{k1cY^hoX;eNz?yAq4gE3h5)`3=TCZFRw5@Il$~I z7ZG+2&kb2PKaUctl!_TnJ@q2mb{L;3a_RJW+HJ$s(E*k!O)4vEl$R_noH)zbGkckz zS?s3ax+ya}YmEjMD`oai^dpllwzNnmQye>RfQ4$AuRi@F)+&{oPyW^shVabGn3)yC zeTSi1!?b+x6 zOy_m0Wji*%@C(1dSO4g%WKtO#%?3aG;SU)a9^yCu?r-AD&TZcY7DC`9yH4?D7#NMM zZeo*MUFP7Df(ieiMU0W@{0AhR$FmXMNLF&60933ZN3$#(O zXN2tS3%(y9dXKqB0N*b-dFmuT^S3_F#pxM-^>6mk7tk$|ea`>bQMrqG}7(4nR6Mr6edtSZ?CJ_!_F(*d%X#19h=1 zR_AB<;n%C^D4-KWWHTw6jTTZ$j4@c2h1R;OF9yQ0aUF|JE6y|f)T0&xfl`{q`5A1f zc;x^6Hu`3UTRS%2e*OuRQk*z%VcQP2W%1an$B~xg`BNu}{NUD+KgWiXr!lV?2qVnO z0<>G}A-3_m@zM!sG`hZl-8{^e4NpA<)dsu`GHh9riwkAGa;c1E+1QrAaU?;gdGdsy z-uB67lT>RhQb`Y^6=4+1EJ@iF95$M#&d%exHbJO(=Cupd+Ws37hDb&1+`W^(_xJxE z%S+3YN+mw~+0XJDzy2GP%d7m}Km3PCTfF(m)mt_*DmKM7Z*520Vtjl&UiZDpKox@_ zlgW_F<*rE{4TfT=NU6VsF=oqggJ#F>{Y>pYw3SpwA(4(qrqY~0cOG%W9f~g^7Sl&?^%@kN(}Z7_8Ou`0N?wlR;v8?Zysl1ae<+cAwK%ik8aAZ~YfP&VkEv1T^7tA?Ah>+&=FL#3c0knj5!k4DyE|P8Ocb&?uu`=(v?Ib= z8-bv+Q0WGXNYD}Ca;;lgiNCO}BlhMhE2N}ZtH(S>2x^sj><^{lT18jp6b>VT4L%&_ zi(R+EC>4v)hC#3)T6@#1ra=f&pn?z;g!os@?zcDsvMWN4C82T+i*UKpU6yYq77?^e zHyZqH-o9&PQ(;ID8rBVWrrY+FS_>frt#;=!DJ71biJxIyy5k23pw&I^hT6XS4h)S9 zqK)C`k)wS1KYp3t{>|U!$B+M*pZw^@@Kx}x7)#zxgz|d8$Lk%x9_dm#LIu$^Mgu`# zsV_cvb1>RX!j-FA=>wV{&-4NuM1~#mP zH<_zBwnH|Xeb2SmwZ@lsOZJj0>mKJoc=L64ET`9TdIa!2J}_>|V9;*2`PMhT#Seb) zL-y?6%}X!5#LUdhmX04qagUO>c`Oh*HofS!!rXRMLW60?0=P=EErg&Wr7+4|Z>R2^ zgA}npRTLp^w-8{Y&`P7U*|7HAE~v<$y7{}W+#=T6bkh??B$LU@=?QP+Yi?O~tlp$G zs+$-0sxs2LzV%N?9LvIJO{8!4OL>!DaVcMiAbMK@fHa11eHY~IPQ12@wMmUYV^G?^ zDgL6CWnDp};`DV&sSOgnp0}Mhc|Xgtu*Fs(@5qFxn~nVXyL z5<#$}B$du#J1#m3X*L@~D%|wS%b3)^)5{y7IeGjQYORQ=shuPe4yok297;?Bq9~$V zX_D{Hg96*Nh=LHubuq?JU0LM#@l)i6MmV^43V}h`HbzAVx!osPgNnAMmXkN&Z)!}$ zGvEIcDr<`f5o?Q%jPK^ay$@kwZ}bNVC?cXLyz$}Bz$;IGk4rPBW5Q!Jh5ixly8mGk zPU?zlE21}HK^90}di<|=;fY7Eqz%H5%;fpVr@l!4=oF^wx`Hrqpw63G4@wqi&hpB$ zk0OKxLgP9fhd=Of`UfUA)~oB}Qt2BHfD%%&x^RJS|H+rpS|LpQoQ{0(Ar9XAG0ggP zgo*V{rPvl4n>_;9!|ky`XvJMe?&K#PybpDQT4PEIw4s6l>KwDhP=TWYcLZ%P@ConbEOPq9DRT(eOjY#zwI$hkbh|DP-r-L5m;% z_(uet0O>lYAf(Vg!UvAsxh?b#uSqO~B=9@D^x|_!OLFAMF+9h6!~Dfj81gsY`wOP0 zXRs}S(uQo><-pUAk?>Mo%dWv_&HlSSz~K*katq;qBLeu`{RG7s%xE8y0D!HA5rg z{QQ@G58FxHAeoZPPoLnMfBHvA%R*zoC|-E-F~+C%b$6r;Mi`P_ijRKgzap6}UY!>4 zn#5JmsIT$T^Uo1Rv2=bIg&cqJc?Q4!hutM#tnhBz7C-kZzrpyfyKcD6d*~6s_Z-3? zq}^_zl;K80+9Yh7=r_~eMr}#2F4ray+ec9Ua{TJ{c!A|6Vyq1$+!UQwlVmDQyVKlq zT-+uSEu=t)0p)T9DFwB9jchK*rI|S#&!ZETRq4Md}JD6@-Kcgb%&%DUNV?TMr3ljsFDBh{j#!xC`IC$s)8cDmhiqIO3#%Rsr zxi+2qA10B?-w=_4*oCCiZX?5xOe(>#yN_a7NwiTLq*ZH;t=lxp3-pcbf*U08+GxTs zgh=BiEDj&KgG{zSyS55i$GMlZq0IuT^QW0S@ZlS-x6vBE)9H$}3l80}n^I|rNJX*5 z(WsUqeEa|aAOJ~3K~!#pc|>L59OJw1-fp91j{x?teIbOvwyj=6Y!^bKG|_r0xp%{} z>4w!R^?DPoy4unuY&7q!_fDe0Y@K`@FG;gjBbCWwONrhFj`!yOXYb8}EIID`&QE4m z)w_?r@9ycIo_huu%wPZv?u(=-ijsKPrX-89cUKWocy}$WBeb%;5w_QkU2nw7mh4q% zS1XY#i55*AyhI8hDG~&665!w(0E5BYS5Hsh{kr=dRh60hM^(Rmea&=(00@Ge5kU03 zS1&6ovoiCW-{0@|{aHnSe-HDOfLjg?Qu8agZjx>NJ@}zT7>%z5J9Z6YwPm5^Gc>#d zVSVzgZFII22}4Wown4N2M=5$byHM#gx?IN1WO=VEEH8>xF9MhwgJwx(ZkioK0}Ksr zM@T_3l|?# z4!;g-gj#RrMI|WDaQEFuk&cU_ToRc)*REb;rc}X^4%-F?@jRDM2k||(^7?H7z^$@j z@HaPKVPs@-eKz8~x{gPoV3-(yi0FTB>%L>(rM1M`NINbF44s`#>>BPt2)H^r&BaUO z@uFr|qpr6)Mk{{0Sesp4^BTXgD^C9wB?Vn=i8Ze`){@HR$mH@3o0&va&*1uFZ+jHy zkE|FlZV{c_wQRf`rC5kfQbH+A5G-Q>-|eELAn8f^2m4VLLTeDDqWst*9gn|25ap{z zfUp9Kp<1qRVq>^Og0Hw_?CqW2KGL4cB7E7fvw`RL-EWEv`y0ykhWpR{?AJjPU!ZFgR4D)l- zw6=G0=JW}MhK2}@CSl^fPwyQKJ@Ud?B3SP z@fXhV?eD(C^Dn%?^mHlyRk(ip&5a*#&1Y@+&7vu_5dd1d;@WyUB5y~DQ z2UCQ;K`AHl1*(Nu3qe?A*Wn`^xa(nb5IL?JnWixM$K z;y7Nt;~b?>%E9$Kq?G6|To$e0`1d>7Mj<#qy1-vQF@|_6lT?UEvs;(mCo7;}xJ%Mi zbkN3qTT zrwFxRzEq;Ss|T$^s^v0{QrJy8co-YvFU-f$y4OGG+D$13L_t!u`31D&P^nf)x{BVO zE-qZCF*Pl0FMhl7|U4(?ik zG$U3b5>JlWZLvtSRS|a~Kq64WU<`yCX_#H-8N^#`_>KC(S^{lIcrJ$y40HG0H`CIb zp2Jnz8}Ws%Sa?yIgraL z`n$5+yfaOEONwN!i9&M+ItUoMIzpuuMu1`6j$Hc8RS?9Mp@aj00Z&CqL!=NByvup=X>qtHU4;aVl)q$Di;?MMjCA}jRPCX=<6T%n0# za~sxL{BoIMQyX43LoySA0>4&e{OTo)v1BtD26_i+E;KL6!@N^dUBIPlRbHDPL&_-Q ziHwg=apJTnnio?a9UChxzwfeWS+G(-s2Dwa8H?h;P5ZA40F8x8wYI`68=pi)qr9Svf0W5 zUsI`6kxH%GZm>up2#wuTzl7RQt5ygcMGyppVL*AIL~~P-@xaG%T`HA@XkG_~t!!^w z0C20kRho?rg1C2KmWegN$&!Hz5t$c53qn|=FbFKh3c{EkbVR(R*&EPfVg(Qs>wv%? za(|8hlqHdL*|D>W;T?U{%07Sf?2D%b-wx#LmX{Wn)fP7O2bER1>oIT0- z*tN)++*L>{QaZSsKW^x(s1O zaJ2$mS<5R|6g#>#NBZN`f^VUCu1BG%8I(jA8wFe#6PbQhw6rEuDe{FTrluxv9L3=@En)`+ii{umY^% z+W0k;NZg?R1wvS=wQ2;1Mf9H#OTd5eaA&QdTB~hhnT+c3t2KgJ4WVRQ|Dp`JjoJ9f z#Ib4LSt|&1K&@IuIWAgATH0Fckl!~3VJv=Nuzt8{ZaCDMYPEvvChDT|i!Mdh*3B|# z9b)w6K$@|ZN~MgKNMV3fI>SOGz*<8tUnG@I;@1MS4hZy?5qJv#Zk5d=tsBkA&9F;v zd-E2Vza@@h5x59raaBXpgoqYr3!$-uHeRSVv!peGLAwHf-KZ+NF5!nUkk3kb+FgbR zixje!$?;d2ovM(qhEzhbU|pmlqPOa3Q(V9DxPBUvT3BPz+90J|B}%-qHft?mXs{Cc zdONxI-kZ4pzMJUlYsZ?1QQfxfAM?$xJwi&1($U#UPv3UB`*xrlhpU%Q^TsPrF*7xT z6_P~C108Kx!Wv`{UN;emHG&t;Dh>{Zym?vj$ZL{q9R{N^f$4)Dnn+>PWD!$`e9vn7YD+&4%@Y-cbTfy?!Dfsjq zn&(a^0txAqVPBVJwg%lT_N@bbYsnW|P>x%d(3qc}Ba_WDGdW2npCgsdM9g2InexIs zz8{%@-wn4wYoIwV`Ntm}AeUBr>4~d6^U@@{TPozUDH5quRII}jlR5hOdXPplUk#Zq zRSB(q-?A%Gs*U+&3Xg?yfFuI;LP%t6i7?j2Szk0J)Fg5sq}tfpV?aoka$u>HD=5cV zr*4C_8rQlgnb`1&R0xS5Nah!+xCw(0l5nwZqWsrr16E_DLdfK%oT;^Sm@8FCX5xHJ zB3gGWHeSkfWc3I_gxYw!BPnc;xrHhzD-i-5H-%IJPy}H}sk8uC{J_UrZ)-o_0)Sg( z(+uE7{m1Neki=K&Ua>(&>0cS=QPvCORn>Pk)$oM}c7B_f97;4g) zG&^<-Pz^#(zIh&>D5}p`fv_Sn|5!l~XfmlJ2M-Q$|HFs4_3%z|xio)m2>!&G@VsgTV2<7ad+3^?k>gMy+Cny_u}pe4#lBJ zON*rt+}+*XrMNr%dEW2(4|153?47mNoNLT+a}y|zFOH3kr(EMG#O4jd>yu+e-wWsB z&cO%@(EGjCm(sv)igOH?voaClRQIP%%~}WwQ8(+%SZPP6J5piMre!*jl>dZ39H61M z_RuY&!^3q8HsU5XaB*y;B^#9%a71xcnovin3_m-|!Og-eu~ufcR}gkRtG9&W*xt56 zCDI0jMM((9$AMTF%NTzh2-p20lPzBA0Z%h+sIKoldnKvvElAnXdV1p9*d8)D5~hSl z{z0lQs-uIL&EDdCYa0iWT^+WIliqyiexv?*EAICgsH&*4)Gpbf!&&>7HZAAn0gF(& z0v5T_93k9>0M#!v-@vUj6{FTb*kdZlp|*T!2G~G)8-W#_3lx)ae3-iKy=NXxl@MYV zjcA>wUoxv9ioPe8qni=%N=nw6ZgoannOkE1Z}E4^yuw*rX6qB~QojTugt0bLv#;y) z-EqK2u^R6;vj=a+&y8J&m9{HM#GlvDRw#dZ!rUB$#U!_~3&2#8>j=(>H%)rKC5!Q5mSo-z zOI2X#_Dl+i0y)wwan4}W756t%%{z4M-LeK3T^YqxAHb{_gi}&pE)qIqj(B{S^zM;~ zc%|9=8uqZ(Eh?qU4UNIH(FbhUGLzXxvq1uF*X>RoNkf_F zF@j(&0cwUEWpxt);WkEtlDSxxtS-z^TK|l3BM5NHm7~QU|G|qug0XF}T;l8M;I+8B zs2Ou<`O~Pgy%^Oe-0clIYnD3!T#=g5$b;U?zL%HL9>IpJ1Cicc9InY_QcApcPw56M^wY-BBj z9wMK&@+k-WiJ++DWLtO{XXoM~@wsKRImBmRhf5)r)i+`pLXkCLB%?|ua#+B6qyirP zg;15j&xhxho89DrhpU5+lbsKQM&yN3f+_aOSWm_9lCfGCy{nM$>7=!O2C+bf4xkw3 z4nHGwT%4}70#*b7)q$cu#yOVlzWA*2nIj=15mJwf|Zv`NqC3I_Am2YLvkV3+muV3Th|lY z(-pzGy4fb+=w$Hep}h+;WJg}-4_VSeW!<%eX2yWQ_DkFsBZCi!Wpw_2jb2koV%u># zSnaa&h71Ky)ZQVUuZ1C{e_(T{V8uh5E|rT#N1n*1Ks6<|=s7P(fFwy2eKZC6hW5}Q zCx0n7Me-PJ37vhr-jLjJa3uhSo_YUU}%*~`SK*=W@z{~mZ3c9alldIYn(NT9kk(`}SPsZEClRx%T?I7Sq}OY#Fc zOdOF`e?LL^5z2ZiEo4a1#wnLPd8mmlMxEgi|%pz`ocdE=zL2O5OjZXW>i*k+y)1$$1kDO-M7ce(ROKr_D;~b z;a5Tu@|W@RZd1IJSnvFF96(u^S6|{>FuDBad~sVQ@?7=0oU>We;{Gi@fP0F*I97sc zTB6_Xm6I}C-Q)00;EE^Y!rbS4bs%jsC?({5GB_#iCr5a4Q$a)n773sx2(qKdyR>Fw ziUxj;aoJE~KGv*e-^cwTwdIdtLKeuaXJF=kjk3s|Z*8-~4OT)%vuoWeGD*6v)AT`R zqQ&ow$J0RORdiOU%(k4j$P+Q=CRKczBLzK=nC<&IL~Q0YT-HRwgEg@>`7B|Ybq7I z>W+>)C3@^0-|G9qf_ilvs8$gXn**$u( zdFW%K%me9g9uSPA)Bij^I@^BDWw5{41m2DEg29}8{A${Ug!#@PJ)irK)$-b6 zwc@))1ME3yoBW+qo#^|e=!#nZWTdc^)YtQSzRxM@G~}+{-(9Y|ipw2txwx!|c8xs} z)#SHz89!{wYx668W`NK0+lN=;Q!K8?p0LP4!FVb)3-kas0QqsMfAEU-j;+A}Q}=QW zkR3gXL`KSR;&f6yZ8`oryJ0z_uOd8ed_ZzLq1Ko$7$0#LrB&KWps5pTU6;j}s70Bu zDSk#_L9~FErV6Fvx4|~U8#e$;(8)(>)dl7}x zB+cy zw0_7Rv<9EO@kCY9r8$?+&rL~Pr6dJ@=Lp*`wJB(1XY;;1VK61m!qFA0kS*#N|J(c7w;5)YAY}y zkJcIGuud1KyPeP3uL$P|J@skxg1xzg_~ac|&tl7ViKS4=#U#}42+_!VNLdJT|3cn(rF&@jM`%28D6Ve`nJJSO`?~iQ#HJ8eBZ?(J6Ht8o7nG z(_ZXlxchK`P3V9K>7E^;W?%$3b9lL#Z&{lql_F# zg|xqR*+&CaqMFBmpRN;&zv9@i{UQrxC&O%`O;_jXIW|7&3CZFRyQ_f6$eM2wjXpt> z22s4m9)P$IC?bIU7;jw+m#}c*Ud+Ay5N>+CCa9qMY<1c5=FIPywZB0!5-$>rvPf@p zbao7sFc1-Ua?*m6Bzm-?QJ`Hra>Is8Ow1cpNP<`?%YVvO*vV=S?5W~NsVBwk7He)s6mv>ZV zk%nzgG-^?RQ1`0k%XOBYE%hd~(eYJhw0@@#AKcK+-Sup<1*@j9;2j+u{rFQCr~Hq( z9o9I}l-x4d96Ebq#&}4}gt1PeB2}@pW>sESpKRab{?QRH*H9>M)?~nDw4U#<+3N{~ zO?1_5mWj-qQug9kOq&Q);pF3z)%e5x z+0@$15OX#ScP}@7Ol5p#d#);K|EiGb?No=PN@IxbyaGuczGwj&;#mz}S;$eg5^F>5ZN@MzMIxglOQ z_!!DL?|~X_J^ITxLA}ZW7%>ugMXicV;TCL|o}4n>X}DkoZ9Nv>_gmw&kGKH4bEkto zOttIfk4yNDk5kliLWeCuB&thkRZm0Q#zP1UY-FE!>8ghaDK!?<8=>6 zZ)iV$Y>`>Tq%~d_S!;x|PJ^ycMeFzTp4KN@wZfk9`q{jU(%jEWpXYi{=kRPfl4ciX z)SO*11=v;H2fK~io}Nj)9v6!T`l-SEaSiKS~{_mQnj3FhQR(4beN z`cYbG>zB;ccSAT^@Ksvgkkp)rQ;5$nYnxModz*V|exUhAkJ@dH=q!+Ysst?Qs7h66 zePPy6V77r0CT`kYGr!Z7PIsV1jjRgLSaj3*vB6cw^5yRn8O7^zYx7|mriRm~=j*b- zf zuE1cyJ1#s0f$=pJrkPY7D5+%afET3&nw(wx$V*E zDFk3e%wjj%+dKYhU_hA6U#jm!FT^j+cWLi(LdnCg4w-bV_%0no#pdjsCl(T?RMccG zk4Sg5u~JJ2Ez?KjP#b+iI5E4jA*)4FZPbKj0_i6GB2lz;#2pAt#j*Uc>8$@(w)WYe zYPXr>-0))Qv)XZ(6t0Y-mmLY}ur`uH8l+{3%gxIeFZ`Bv01T1%w z44T$#GfK%cYUxhmH0j>8{d$_4LB7Sz;GrB>vk1bG-eYL`%i+BaF2C|*+W!k${a-U@ zEjDHK^o~Wf_dcezb2{2J-#*WGnC%&e5en(vJ{pKs zexpgcOIQcK&H`5+G??G>Bz$KjRgzz^<=5g6sB+}Ca8n&mXuQwJ_Lqn0LfEKuJE;?z z!>WvTS8(=M?W;Ka<*rCO%)7xj3N-i4Arnk?r+< zoNM2bk=dMA?6y5IOzxauF=)$O()QGct-$|aE4L@*=Oey5t4j(5UIbn7j2X3td#qXa zEGMWMGPO5w`eYndzY~V1z;$Qy$|usX{Ly#Rtbl{S5q{U|VkG#MA%#g7BitGk*vHe+MsL}OCx$%1t_{zr)R(UB^5G(~|H8wn?l zw%G!4*og;-W9Mvl{HaeF5*WH9*HIP~C>#gb+%eJ9l)Luk$c)$5>%Dwurx)bJawSL= z)lC(YzL3#>SrnE_n-LeJ8^ z@*KCdFvh7=Zk58?fAxB>NcSe7qizv8GS`}Nv8l{@T4Hsp`qQcdz<7j^1>Rk5mhq8> zb5ylMm>=2jN7~cTksyMG7Vov*V{jL#EqgUTbd4Ev1jHwR_ws;#11fCKh1|(>+|Jwj zo%P!`Sug$h`Io1-!qp~W^6z6Jf}1r=r3}jOc;iO**+X!s6a8R968Y|N=eHbX*F0%N zs;`Sw8EzHPIVG562e6%&P|oD4k06dh(}ey4aGCC1h3;=SbF90(#2fliSyu(p;ig~s zleQ8q?BmA0>9!0s0;32GlPIlH13hvUlju-i8N;$v`VKTajm1T&@G@q|)C0F`1n88D`=HUpuIy+e_wW+{aw zF<{wPG4gQYEjM3bl7jDjYjt<&Qcqk>2Fw86?s>9a@h2^`zWPqS8FRPfgn-yAk*i6>`237d{f;qFf*q!xp zVE=xZ)Ty#k<*~Za^S6)~7y1i`TERlIb>hn77W3j@s2wwPeE-|o5?8_N4P;GsNUw|x zoGGD)2e%{@?McSG9?s8c0|2;l&W~?R? z-Q>F;p=YhLwflZL8op(Qc;90su?Eak;Xq{A&Zm$;vq1jQ$0b1}xo#@0A%#A_{fMs% zD!#TL$cdUeWosh9WhYDQ4jRGV@aa#D*!ack`Qb3b$XbXeuso36M`B^Ls4VvD;83^x zVA0gn^zz{L=TG#TI(r$1g$K98xUA`i)9}h59$ER8D5YiCr<`XPgkjkniY>W3TScpZ+M0Vzs6L} zWytt`oeVjwXURYfd!b~j)ZLtmzK*%RBJiEyV$HNThZ-N#`uG<(ng(S#kzLZkr5uLKbsR+wB0r0niOD?5kd$=E`;@qD1_%`Z+6t#)!DxBQ@@Pm*cK}XiJ zDsr-=_CiQcGKz&TyO3jcWv*{{mf_pZlWj`R0=yxuM00eAHBN;jE>9>rrMzPQC`2n> zrEBTt7P}tcBkz=Z$Yq>El{sn|vdwpGetJ zPjCIAzM?{(F!cOl^tI2nq;?^hg*U~tcM@`01EE{4O<2MKwy<9l@Qor$173!Q5pK%# zCpPAI@D;+qX7w^7LwS2GpH%xr^yCLmSo0ud41B2GN&)G~LJCFxA)Vi4N5tzjM{sDt z1VP86fcjOuf(379fS*SS4CrV26S$to0*Kb~=lpstZ^PPOVOHmLG&wut|IK~ve4;Uan>Z=4ze zpNtQ{Y(DC3%#=w0@8x`M_Bp=2t|S7f0Juo#$b?^_iI={G>d=p(st0B~MMdG?9SiRE zT?Z&oeb3JB#)OB(TvKiYay_3 z&y47>#>|QB;ITAQ7HmqFH|ejL;Nle=3k!Nd3Iy=wOi#0@sHsk`PvhGj`~tOi63Q#q zb9vQ!X|Q@-<}-Bmt0-rym@%EHmf(u%8ukSDztd1y*d3bxm3O5_`_1aF|K1<+hFZS> z34NTMo|gP2ecddwySw{(-}&lnU}(6B8|*S_WyVcBQ5c*t*m-}5hT&}c(ES-=DTqH? z{ZYw#WmKojBh0O2=u4=^I;@kEUF1O9Z{#xX*U2Hd#cfui2g(&cwq|*>_^%Q4Ktnp@ zV0NVz)+OsIG%Yb6hrm8%kl=wQjFuTEwd$vxilbD9Q^!-rctlf8V-%LO0MjgqwZj|} za4y^@{v1P5+76E62s&fxxCZ~k@&~rMuusj-x1?__vR)vuz!4>!C`B@S)v3plN>w>P za?BJk{Z_VN6Iz~05bbknZsU_v$DocyAf>e`LcoroZ0t;h#8-l=t@8&Q`wiQpSyr!F zyx<46OpP@HzgZ+*hGUPa&96+tOc_6^2rP`V^;IIGHF;1~-Nt*vIh7KFshko%kCbNL z#6$Go^818~!3#&@K{) z=aqh4J9^E=aqTfdg89j!_p3=^X5f}|;Xvy>i6qwCJ{8coVygLsQ*Ht~Iz>c|@7L9k zZ&C?2lfTE{(#B`?JATE{uq3VyH%JZJ7HvA5tSVGQ79Dc3czm*~ETN#mL_>y{uzxiD z`McrwK~GVF5mdpM?SDsK8eBKks7(FTza#4ncPU6#@dB$Q7}O-SEH7!){>T{a~lLj^k49X<{#x8PimlsT|q8P8Xm*GdN9T4 zQ~oTqR{y;dz6g(1`!@^=O%olfs)jHj2BZiG!cUiouDf+1&q$J3KSL8}!kka*80^r3 zW2utCm5sbn!XqkfC&i+We|%ut z@xU{=o{e^VH)LRm6HSrU_&-0{R-Hzf#-x$WVeXv1S_f_{tac7yM6OF==vWIH=^0_aq=JF}zMIE_1f6yU;1rL*Kt+)9~(Q9fLT;WJYBqqTglx{vd z()j*JJYb8bdOWn|I?5+SI$)!fkX*zSxJN@#A+O2N(YVXATRLlRwAgP@$HbK6>tSPW zNuxkRy-a;<^}UeEeC!9>7%w4*QCBDTh=wVJ4q@^zOmpde6ruWG-$f|f$-I*0k_@K~ zeM~R^O|~RmNC7YZJvX~gDNJT+L39ZC=36!LtqNHHJ{&$=z%)4ZiiNN%1<8?#*SGfJ z5>{}=&|Pkoj1y0Ry)Y;$!Sxd&{_y9YGqU&O9fe*FQIpp;Cj{Yf(+PROPfV4u{@qtN zr_KAHa^j8uY(#eH2(ZV|n48<=ECNNNxr7&G{Xr63wE7P$7Z z%G8jXDaoiKZg|+gt>@u|* z(%$>GnB}0G_DFwA$|;i32Z|3v6aRN19oDH+;rLt(amj|Imdf*qFe;4ow>nar?o#}= z_nx%C-9M&%?#7iMB>Uxu*WG&W2TSj^DSc^BMgFST<*;Dcfm~)l|NiXY)6AiGf{v!Y zaDw?`MQ2HfpKE0!ar@!07o=Q!6HQ%Si>3m9<#ERtixB%sBY}C|wZdUOM zJF_qed3;PxuT3}hW4Qcx%E^@6G8ju~>b@ftk9Ya!n-b_|S$U3w$QWrB+%fi05cq8w zJrOYXZgi`a98u*N;<#Z#s!V_EK6&=J>14>qB=8De%=Z)zSDWuugL^4!7q(GAa}2^V z-tl-3aP~n)rW?TA;ylu22KG}+h9hik^~Z9}zN;(3LVhpnkHHzX6fg93v$#l1mic13 z--W0a54D(xe``~v(WIe~twdvZ8LLkXjIj3@L}FJOb(TT5GWxMevW>#D`rCo|d418R zR`_J-7sF)*;2L9F2zGZk$l#C5q2K?Bi%%R`!I!}SX_oA`5vi!R&j%jZP&z8GA3+t& z9o}$gU(l$HMQXZ+=9ACQ_q4FWll7~nGmx79N~Cdrx0*q7hTHC$4eUH6GP5 zhFHx8m!YX#G_=1)n11M`NHoS8GbbJt1Y7_&d5m3az|r?WU<(|YL`^8?+{LOaHcwCa^g*10L+`iS!z_V-IP-v7{A`?i>rH>O~NGW zy{h1}QAlceQT(D%`j^yZHj!WFH=mB#P`T*+**X9xdYHwwq<_Fc%90UKXggV4!t0IZ zLZm=!`Aa7#a;mAo;-dPjl*gW4p5TPvt|X<0yZMFw`JSx*J0N=;0G@N8`eI5$ce=tQ z;ps^_TXOhgUZi@}Vf-jt%s?11E-&!^iXKwapgv4!j5CDLZ9`7tRlecDeT;bXU%Ruv zV{bm>kk0_1$c0)11%JNBlM5Bk#dqrFKEWEX5M+V+HSl7Ykq;wjQvNDxDVa2p{07Po ztE-tSq7_h<6eud;r@Cg<7v1c;%qW>iD#&Xd;kzzxI|;=h`ha)1DH4T+aNKlsQbfl@ zwYckMJ#ctTkyrY#Aem!$L*)E#x`G;Ez;Qbc>6VS_cc%WVD|#(XGa^aqFe`9Z_V;Tl zlKJ2C0wHdY{2K|8a)2#^OH1f?cA8Qn1pgZ48c;IdRBnmND^mWK0~?;``wug zl;$>d{ODXDf8DW(1AH*i%7+mxgTd#FD-_xMuT1B0-yq} z#bvc8p&mpoHK(X73DsxYccFYkb{4t#yN)ggg)hxB(8h8WdAYxeS6{P0^M_s*0|||bS$&-BRh~qY6xG{Wm-6KU7{f!u@P!Z_nWQ6j-1%4 zohVFV!=kk^iE5X!IR0n^NnfgZK2YEr-7m*?WA!?E-putk;&UN=DCf%vP85q|0@6s{ zMw_MSoI#@YbPk?5B&Ordj@;t>7vgsRxJ8rTf+DR1SV~q(kW@H;Sh$2sm$S`Qym8Hk zP>(%tcbX$O?4K0zzM$p-5bUwSA8KPs^;P40-WH^Z(($@DdHJXFUK_Lr0)(s8BDG%q zB5$oGE0R%+!%{2V1tYoa1P1(IPiD*F7k6enNE5l;k`#Mkpkc%ZVMrm(9QUncujqaf zQOUnwpZZ*`vnMUYBdV(H$zwaAyA&e9{v;>-iCV9V9Zp{rk8!Vgy4(qFIEbldf`qzE zqk15k-CW3{^ma`Fk@L7^?P<2qY_$rLr~Uy0t;jhPEA`UZW9nzve5O+I-sd!WHDQFX zzJ6KZYvCJqVL{}L&FQwDSh{W3*gy?(!o{!XE0F-8z6o{IPZ3svD%ko0bM!JlG64_0 zAofGUJc18YDFs0kRcOY2sakRo7{giaDko5msIxnSUsF=JqdQ7S2f z!H(eps~{0c;0V9$1YJy48D-$@GTs81SEz8)L^^zaqsES0*@_|IFznJyp|GlIs9kaH zVQ(C9%J?5Wqzqn04;5~m=oI+((Ad+b$9nL+ki+s8P+r}oPr92d7)qt44YEtG=l5vV z>nVb^q+1--{0S&)XM*HW+@w@+B|=UAK=9%(q*_c*kSGI;8S9d+_&+ZPT&j6tUH5pZ zb3#Zp`=3nnZlt8yxm9#iRO8P1WX(6`A_CpGo57LOqlC#laX~@ym@KIEgRC)ZIPq=n-wd}qnz@sU z$!#PajFfYBeidaI&I;)4FR@*~NjwmzRlAjNjHmCN~EuE21)dF%pr6 z*Noy8O+&WHEpfqIV`FO9M~$E2UNQABVj@?1V6r&cAgn`f1F#@EZ}_5@+T6k-bvgSh z*_VSQ&&jm$0|mc0zL#=g@zE$2&n43Dr%_~1doJ6u}Ow&t{ zI&VbRtWfyPVEA=Cx7YCIuSM3n8r7k?XD8Fx@{)pJU2DCOh=e?|mn*(T>ZBl^$3HCM zWP6Y!zbi8ci5qm2M8p~ErRxU;X`nVgguQedyhg!GeQE9H32*Q&oA^I6u{^sOtm5Gs zb97_SU<6I^c3cv;YdFcpFJ`Q+)j@DYvlCT*4$D~5Nv&NPD+8cQ;m-x5b2Xi;mO~iT z;39<{d{!MoO%ok?>irbwk-iw^1Z3&!ew+JE4}tyzACr({`-y@;(UBTbh&0);3Vfuo z>;Fmqys5C*7!lH{KJ?q~Kb$s?^;j$0b&%dhyWP}2B=AadWwa=I}e zAv34SzJSB!^|$!FtO9K;S9Nz zPrB~s5R29bZ@mzfadrJ{`nIxri{Zs9!z!<$*KA}1fddvj-Af}hs4Y4c5;#r2h1xxC zd|~%26M`teuaK2Hwq_Ty6ZBV|FsA3@+Wq0ZPI0E1YS@$>iQs1_$vBIx%{xZg=J#SS zU@@MZZC-Sp%?76C(sz%hgQkgi(IOHhWlFpf!9L>>Y{fda=XTnQXND~%lu@)uz22B8 zsr)|YWbt1!9-1?AqrwV&fMjA=!xY)IVv`Fky74}cq?gw15djjYzmG1EFm8}$UHr6U z-$VjnUcCP7kl&;cnYu9)eWAVTLOO*M80oNlII^_H&E?MoKOTi=iHnM4&bUZj2EXV% zye~pePpF|Z$3tHxlC_-en0}y49rDi!3->@GlySZC_# zGDTR+i=;MHv5bQefha#)U4%xuwp`frzU5o0heWJM5i^k`YW&eIAx77o6==&fbO{M< z&PMKd?-#dr@W7$Vv!kjT&9$opmZ?x*IkeJC<86biq~uogfqRdRw#_2Ks_FsS`P1>( zy~4Y=_EgN4*vv4&)rXXjKx;*dET3{=zdC-4NP<;BzdLQ%#ZBRR4aW_@HMp?4nm>4d zRy@M=?&;sAh@`!Zm<^O(Es>HYlOAYbXII{010=R-5%7DTxml`#{ijF!!-zY+wsu-Q zxY6@`4Q)9v)ruLwg%jV7Bmk?&VMcJ^Zk@-sB4e?cfL6&x(21i}6{#{ddGk6(TbJ}s zCx7wC8FNn_C=Wi1#2RBuM-ERmV#j^im%TWhyJZFEs23;OdU&8X7FRS&h~*9#gkd#I z#7>T-GiI^WgTXuBF!q%I8Yhn{{T&Yt3vFLGXc_lAsuF(RsNLVJt}HZ`oF9pj)hr}q z+}7{^kdDO4>*O77;-}S0y|)m zrL|Ll2EQgd&`@+`Fd;Vn@8TiX{Aj@vUhgmGz3^DkdRMzj{kH1lxGWC+2^_3GNu8cd zs3q4w@2lsQei>f+1Vb30qoxuNk8I`3uM-6R0-c+F6>>B*j5G6xuvNx!waZ6=_weOo z(9qh6pmJAnSPED1e?98Ue9UByhRYeA&4brt0i?<<_w_IDD{?UkgT;*@$qwMLqoX05 zgNBntdDg8{D0>>tV6viOS#pI+`13NXCXh;m4zkFkH1oFzX-QVrrAuxkCP~Lyg2gXm zSwZh_A6KT2@18YR+nDS9;;&_eJCkA$5LfOy3j~3rnOn)0ORd1mHi~vAlj6?q%Nerz z6iw2jU|MU$L}RSTo|Rx_TkY9}#f`G_JwJzPQ)g>znCX5!J;C*tW-~v1<>;(>5Wrl0 zde2%R0S*|eg@hm}(QHtn!^ESNy-NaZq8!~|75&rX8KJIDTg2_Q8&D_g3Js-8@H?;5 zEn5ntKm-{N3k8Q;_0SZKx?Sxc@pVSy!A#yUj%U_NjAN!O%*@Uz+Pj1;WZE1Y96Wt2 z2i$PBR$q@jG%gfO1gedvm8Rg z@YK8t{NTU%614d;F)@ytG^ojVU~@2RGrQ+uuY3AcZ{<&OisFEimU}|Z$!;I31rS~; z87KrHyR0AAhy;up2?ygsZG?$;A3-H~qQ1b^4L8IFXAL$ECvG;Sev~VJuJ2fX`&%?v zqGnJwA2db`h(qzAnr2L}9}Ooi9xR%_8o?l$ps6f;xGdDP;&D|N!kH7qi`)ISz+y{w z-9}R#sFz585tt&kbq+yW#LR7xOjGEWlwe++06Mz%)H)S}{G+0mQ;WdhM61hIF|_LG z!ICyG@?5`jYO}$#1ybz9Y`&p@J>Xe!r5ka)lvuoeeFgi7ItsWPjK$HYr~{2XzDEL| zD-8{94KNH?3f}HLZ#zyfcDPXS^EOk;nLsLOTHpcgm!vw|LphK2IAKfwI3W;JGQJ)0 z@F?r;mobo_fN(Fx+psND#-G>uj~hcTpM%F;@h93rU}5)PRynx=cKyAQ3~FNaxvDD> zr$HCvBp$ZHD*k=roWNOws>_{>yFw?Ss6i{<+t643 zX?e8#h84v{kxIYS9%`@7k&dSkV+IZ@~)+9%pLtGs#X)#D?R@nu{@A%Q>~{OG$^nUZey z-*PBMd(qPZoI~CM?HHRkevgI^+@d}hOh112)J8pNMHc_4Yt0oESVKT6@ZSpRf5C7-LNgs78Jb1%ZSL{Lhgv#qV)!<>((r z#h<)&@4UB-DVt3fP^EPutgB+e=68ttonsCQLDp9P$xWxe$i9YFMcS)yB=)rHMZY z1*@i47ADZ4EN8z#p?WYIO)yZ+W4867GHd383*I7kW81Pzx}EgK9~{5E@Bvw>#>v&$ zI8HmzS&T>yvCFC5??k^VG9{6Yj!%k1?y$-{!WbytAb~=bLNolfVNmH8OwVsxR$BGpI~}w zA1hj2_g9=9uil`Tr~x9eI=ASvGEr3f9{2!y;v^bX$tr^i$9CjW?BQNWvtRvc4>#tq zSKJRX;^g_U7xP1OGvqdVXyHsrzg*ZdW88{KZzR&&S-e=**oNk>|DP|8c*=Btk54Tg zLxiIJ!@ly<)y>v<`S^G|_X(-2Zg(w9?51SH0YE8KxDdEEen2?-5i*M&5D#y9%Hp6e^OI45^_H z*-Csps4b^h2p#EC^yTML0|`JY_jU49IERIwx0bpiQ4`GIc3 zbM43bT^*~2X`TO8v~(C7@6cu_L1LvKf5F5+!W79DSEiQr7@jOwre% z@Ew5^^HO&@l8nFDmd7#BJ)BD&H^SAOcNjLdKcB7%#l}zf;80DR2(_|foB z_-lGK_|(WmrHiDcDw3tPnm<99AB&ICL3e5LC{gD$m4H0s)|$iW&#rsV?S@lI=AXIf zf0h%GlJ;_<4Gc2)ZSTX1eDt7>B_@_g$u=}5EN;4!ia#_I(&ww}1c>o19=>3TCs_|X z4#|rRMQjFSZa%dqK?qKO^Q!pFt1_Low?s9vcPxs|IyHNj7QyeYpLTI}cB5l&p%eP4 zvz>qp1wlZXn@NpN*-}in#>~{I7)10dwbWCK3i2A7U^lRw(xRVxTd1?)-gB!$k&y2> zal9jcT4Fy3^IA~9G35{Dq2CnvkM$di@W1OPa#;tWI&n>MQj8)0aCzsM_}R@Y!H^v0 zaS7Aw*NQ)Uu){hhqY^zsmq;-E-C3sPuH#t9%G%W}v2Hm^kbJ1Y?*(i#v#S7SMH>cs zAyMv8K;x zw^34;J@AXq&XeSv>x=1t?b@8@@thoWlr6QfhQn?dn z$YE3{AC`m9T767FusiMxML;%Tq2SnYT}k=~ejs`eui~Coz4sxJ{`}}O0JhS2QCTmb z^qC?$$D?c{1`?n8G~wGBW5`GqNomSH9kmDWx|U0|+v=;}3EaNwJWw`mOA>#6+cY0+ zaL)VuxmVP8Q$>Ve_aXQLSLCv5*UpPZ{387GOx9Bk895CK%Q3{R6F=c2sGTOf_TAPQHiDvg&VTZ;wMrOtiKh zV|aK$>xwpqN`1RrK)jK9?|ng!Eu`F<<-Vb-v|oN0+9*94=Enam=qSVz?%13^Il3@9 zv@U%?{~k3v-Y_ZX zvK)5_H{MK)8s(Zb%*GF!&DPoLzT;G7yWo-o^(sQ1lMXwLB~TR+Dniv1jY8B}t7n z{8>>TZBNbP^(loX@D{gluTcCA6RpZ{JjnD3I^?bKqvvrCEt4w6yC_GA-hExcV^8GO zmuu>8-c+5P!6gUwc{>);oPp&sJ%kJQdbqD;YRzYR*Bod=aVbNxL37SA(@$|spdtV_ z(HK){hzWfztu#Jh{=~@!AnGMBJ_HB?skApHzZT=3* zaP%q)Zu4$34GIV8cR$STY@OBW=i~FC;(CXsK-SP7@S%8-!KE)tm8-Euy6l|X!g2X3 zAe(upza85%%w`sW@e}7RrBjDVomz=N%w0=P&M890OFKyHvVJB2OOvn70op&_fbX}@ z0#bNafBjCWcAP@ALeFgzrYw8qQyi|5&%R$y>z5OA2@_X?IoF}R5jWG5J zGI2@P>|T(ngGnfjo{^;Pf4ju=*Y5rIAfe`=r7lAosKMei~ve z&fEtC>?9D^8|$sJR6lPM+T-cEQV| zICsDSt>jGK%AEW(rUIP>Htdp-eI;IgdwZ$J*L1Bpktk@QOvxEF_KolbKfXfv6T@O^ zelCKf8$F6QBKZRUXiQMbU0-t7&+oKhrG%)B1){`7zqZrtPj<9BpG^2ao>z&)goYt% z-p!lGG>#$}9jCDPK>d0xr*-bW6dDGmbS1V^057evXtOMFR+*=giB&c0prGk5DEn;m zxG5Zay91l@fJ_S4Dnj7a7gs*arHpBgn=$Ilx z{n;rbp9Ow?U3V;|-rZ^$MZ%IIitgKS=Xc&zriZXAp5j&xw`dAsyy(%o-k{*xED0tN z4heWF^89rp-~R_QLCn7E>sh;DE2odW%+ue$pW$=oP+`c1&D*gZo4MIJUi!orn0omL zN1uC%iHT`ywm~h_^v7(B!FK#mVV$SZry1O|IkKEnstE%{-n?2YvYHFvk9w$FN`Yk< zeD|S;xQ!0Bl3AEZ>O zVcRAFiZHSVsYgsD&pm%2VwRQ>ls2V-zL1x6vr^A;1Ae6iNK1Zi7zV!QQ<^UjZ|`Sx zcp4q%kyZ-dj*&vJ-IK&alZuA24#~@aIZIPD1;UV+P7zU#^V+sHl8GXgb|LWUetK7D z(n}$kFXlOP=pY?^gY@-I#`MG_r$#2| zTeFtlY&@D%(XN4{WpKJ!BW~94l37NFhe>AJ85ur_X=P|j*_<7nVs&qtBZm)Ct$G-i z!;QDz+8WG|paP#trABdXnsdX$v}Ln6DTh$SvAj77r5bJNSPOHw(*E@chjb>5X`0Jc z*ekV|>aDb9{pL*o1a-%yD0;L4T~+|#N_%Ap>-?m;D_?{!r~3C5<5AIAP-r-VETx8) z^Zi)57((D{UOJv8{ zh8U*BHT!O0&yBC8R;%*h*T2Zg!~4-HKq1Md)2v=Qgy;HIVOvB_aKl0ZcK60EPQhbLw z9uWl+!r&dcm(#-KX+6i&%yH*+*Yj6@^dUCC?k2we)kpcekAH>Do7T|Z*Tcz^!}UIH zlx8=s;zEn3@)cvFGc9_6LV)YKC=G_<^7BcTZagmKKvVyjWm^=BMPjiSVaEoX;!)!H zkTsUepqV3u1j{6@0{UeP5kT1un6A~BqKxMkn5+qm!L3+94P7lF3RBS5UuQwD#st@R zq0P?SyD;n|hR`&_KWW&kS-XZrGL2Rqg}EZ-l+XHggM>)3=`2FK_?``?NX8RUwY3b8+5n+RXEO8*^b%Bq^CH_?YqD(}q&qtpK7E$KP22HG zbLdnjeVGL1QW>WfMnzC8vTvqoAw!qp@mV%)7~;&Cvt+xwkiJhrE7lJUlCZ5M*$$eH zzFsyvZNx1Xj3j|qA(2YscI23!oulSwS=SXOU#_z2+MVRf6;O~(#TJ2N{aGDYvzA;( zCp{fm^2H*i8N(DFM~|MOf87SssTJ_|<6V9<1FHsj-}~Q(@B5ckTy?c&m{!^f0Q~olIP2;4REo39%d`!dSKmF$qao<1P%k{MLT`@}nn-A!IcIY@E3Z(;{7#w2V2j9;7 z-}7!>c;O`P`Q<<5xn~a&1d3a3zJ~G9nJ7oCo_o0fE-u>93xtk5AJGXZ2!klJBbJIF z>I;y$7n@@j+oWi)ER)%}S-QHrKx{lsK0NaP(m*$ z7Sb&XsM4B_&Q3s)jP-M4_duN?T&S*(*z}&h-o~>L&AHY^SZPgXZx5j9?dh%O46bcC zf0RSGBrI;2?B2Jpk)ANHY9O){WUFXm@A*)ueW_8_$()WEbxlX!!yCXsHmG)z8(vSpU(2{$)(pCWAO8aqw zLcJ`dw)|qv)n)(mk{#l*7q?I;D;A147K=j8X8?86Vg{?a9g+!&@7MJOg`jWMdNS?Z zjGj5p^zT!^S!*6)!amy-=fOT=`OYsqd*NOkz@0F z-@?!S?zBV=Vu}l9Vk@QT9~i*2 zW~o&wRJ~dx^P)kRbx&YnET3K=F2X)vgqapd&>{KRJlVD^qa(ANo)7TO&Qh)gtnaXp zS~H=NboKNxopR_mi}V_r{!EI_Sc1~b848|9CLV+G9711RxrtC~)I~}d8=&k8pR)$I z(%}U&-PC22POAF-sw*tBywY4r6)MyP%)zCUSKhDnerpD`(lF@i>RbVTD{ZB%0Kk=Y zS%~aHxqp|l2)_dSsc1HNqs8b=AfnK%SfnMz1u3K@7bakJf236<1tij0vh97;DkY8` zd>TK9s(u$MaqA}Jbzs%mx0-#o-h-1!^Z3Kx;@IK+1YXdj9T+ywsZ_}KzWrr>;_dIk zG;9nR>DWkV(6)I4-K7eaX|Z)WKn9=#Fg@^qlWo!BxpBun+B&-keeb-kwk->d;OyB^ zjvYJ6`1k~l9b@g<)!caFUcUSA_gSmsyn!62aY+fuHf`Yn8{T#oyFUCY6xy@=@yG7t zTVH#W+4&--Wnx)o9b-otg9~g^NK{4LT79zw_+5e}R$9~1)y~kyO?aM1ty-g0E>X-E zDHIBn%VlcSYUB&70VB$hlTy@$z%MY&mzaZwVNi2x*cF?ez8;dPB(B?q?bw_3Tj~6xJIKYHSlxAx8*!62{x%#jZ&DqrIbx z9s6#mU)!P`k^u-QIe730fBt{}4^EsrfK1dd;u?v>D@i&NtC^T6vXK}Tf-$O8l*g(Y zcXPvs--q5g#3#S-AYZ=sdyG%aVweVT+al14uqne*2tf!a1X|VY*t7r((e0%M^=6iuod?Qi)ovhVS{&MnFbvkVKpxLWT?aS6i0F z{M)6ndByg*U zp7ktW!Sc#m;0Kh7B}~I?0V2tCvH`Bn(}LEEpHpE}grm`DUq#Y3p+Fb{VTu+;T?ZOz zMnG+Be6HRXns9EGj==$(xU;yBYdAeRMHmW@k;r&^%BHI$yO?jMG+My)e4desX}a5U z^mcbdzSs5h8J0o0;_=k}m+8!JH&R5t-3#}l{E$F} z%*@UZ1kq+|W^NAKw#cN?4KOE!U}AELY&wk{vl*Y7Aq)g62*~9Uq|>SM!p$|ehVT36 zKw~;4wrL~H%VQcX!$4{9eMMpT0W!VUqOBY{3?gywur9eHK?e$9N~Ce=V=JY=2W`~f zbD;o}Wxu;H?$VG{YgL{-d5U~hvAUy;oofbALbW^w^RDEvQNdknLQKOz*X4W`ny=u& zvj%Pe_pA>wWL-F4hl^ur8ca{mkW3{=C6Y{i_iOk^ULgIGzer+m5Op!ucj0-}s&VZr zq2Cn%xYGVt1b_MxET4GwcDBo=CDuz_7mVS~H-tD}`>!P+tTpL`MSI5P@Tn;ZewNRF z;fw6vI>@`;emkBQE~R7$gMjYdey-j3dVJ60p>KYk>G2UlAu&y}9)@0mKJ_9iDYbwQ zl8M;jJ!yqIKgaa8J|66nq$?q=hB*fc4iIW=EcV@g2eEjnVRGK+ei6|&|L5=hK1JsQ zH@+)NqAi1AM12x?im5ZBjD5SpxU?xNm&CdO{>yLw2lm|c6MXSokMl2o`dLOtCoxTf zxMLCOsMky(30imzUC+g8?iY3GxpG0~KrnK4go&{kvbij&OcKY5VVWjF2u#z&G*cv# zDSG>Q8~K)=>rt+hDHTc)Q&=idsaEkkFA7V_y6CZxh-E^B8ii?EAYfu_f>nd7m>-^J ze0+k{gR9xJWfNM#xsfxRo_&Fenm}3-X(YJ+aD}bc?!??UL>T%Y%&S)b!eahhI-4dI ziy^e2R4#Gu%sJwTIEG;`Iag>1ISU}vid-s5JRS*gSE>~p%Zb2?jHG&e-zN+LbO@GX zHO8q>ERbu$wwDa`yFLK{E9-yzG0pa^8)@sv zp@NVTC(bf9G0EQDI}jSm)sSh|M*1G(Q&Vi;x}I3fK?)gpESIay&CC&~08<#azDGxU z2dQkT1#HPBjHe;M^A#sfPm)Us{3Bmr?)W3vKmAdxWQuCFLOdR)TqsB2%#^4wVlZvn z#)@0Z9$TYPHHGJSk+1DSL6_2435!G`(O^Fp^c>5TGKp9mLmE8%^7lA1_XXxFdzj3> zfMb4$ZEH5+*Ef)+6x@Hf%wK)CMDM?CV|)I2=1&}^=O=%$0Rn9)cQ-zMLnM$xta*sQHRgEhO0gAj!jzP}}!Ll0#b{ECUhq8fu9x6}|#6 zFiLI&N|P}v)e?^7;KZC2E4LK@xYB+s;O}A}P+SBEUQCzmDu6%TbYTm5fYG7@i_u@P zXc*j7lpv7k77(}y3$tkp$CkK(Bn%bha+Qhcxq8`b-TJo<7EMF4ar++TYbNji;D5%U z!dvd#8|{jlL6U9-jjf>}$$YuUxrqscjPmtr`2udIMcnFS4#kvJFRsuaR3yy1`?a^T zdi@6cdf|s|0>KJRGLfLGy_-b$Fqv)>-;M5gAz8k6$f4ukOOAaxM(@5~?f%_jn z$h+SC$Bd0nVHgIEZ8exA3609r^M_Pl9>sSV<1d7uSS&I%GmJC@rZkDgVx-e)GPw+y zY=%@ah3(i4P-qwivA9D#5vQ}O6LciimR! zreR{+7KK8Qe4PnQCX;N~u%1ex%!%*uiD*|*9Nl>r)Ryt&KViwCvkjrK9J)hY^4c`q|JJ?Sccr9ZPgdw3@MTeTe z3lIqA=I7{WZ*NqyH<(8ia$OeWd*eh_$AwoNS%n3lk;Rq70( zBnTDSuyB%TT=yU^y?lVusmIu}=5}Oe2jDkY^i_S`{Q9r{9LG+cK`F(?b!+(c6DK%R zPVwgJqGFAQ9($5UAAgQS+{RamvC%$myXAU(3)WAN;uDfT&MX*>HQ*`2>cynPLRwcL1r)Vx}hN9;i|6EV5P zVv)2=?tp3=N<;4~XzHGZ(a!WQQ^)#o2Z{nRfb2#`S4^V$FWezvd4 zQuQ}cdExs=$0D=q<`$|#aU0wlzEA3yU36`${UJm4GF5u60 zb-`cjp~QKAHq!DM^}u48l(gj$tpI{BdZBJvo8j^2huOJpkb7?1)mVhJjw)AeCqXTY z^U+V=$M+w34Bz*8<88Z=RtwO0%Vsv~IAq19b5l_TPr_*FJS<=}w$z&48v5~?+qmfeJI5tkqroE#*x=f|; zeV=NjM!8%jpU+b+mZ(*0xPgZs`e+rBODAz_RUF4AorrVz#2NnP2hVWe%rS&ecpg+L zA)dEz%M#PFc{TlXwbC3uc(@S))=D>a7)nK~aXMj9Dd*9(Jn@->lwSBQ`SP1cZ~3W~ zsjrpBt+@a=wu9$-7#LAC`;z7a9;*zKn(IO$NoP+RmL2&Ddo_=5e)E1Z9sMMFQ)oxy z5c1*+M;I9%=5?=sO=JgX2(p%WrfT-6x#b!*q~gG00I zyZ&a@btn1G{u#z{-Q-F$k&}q$v!}nCT|fU;PEAe`FBR$Bv7PB7#|V15>P{!o1TzeS z&1-w9PMzcVPyR=8nK(OM|4woVD@s=Y{F=*#_7t_GATUf$&TAYuPY{L-ty_%>6}DyL zI1Wz2AqWGiZWRL~+I&cX(jjimC6!Jgh2X{0HNJBw#C77(dkv2cYpz}OYrJ9mbqKu} z`ZO$qSRxjIOe;!v&|2dwAJ6w1te02wuuLoR!S;gacL@i}wvkq3Stl(?EEa2o)GL(= ziTF~_UBR37?BZ+B9U&}Rq|JBJo9v)csV;`JHT?VyZIttKw0EVLdTfTm>>NR*j1@Cc zT49+czj|92zN-jpH40NR=;>KHmlppB&1|vExv4y5Hy{WC%11v(w|1#)`Y`D=d)VC{ zU}?qo4p-ULJ3?aY4;Zz(*?Px^pjpyNX}jWPFZ?pL~J?hmKP!l@L<0b!ZiDzI_+28(c)1WHA|1)OkpNT4^4we8xx4 za_Z2FRPu!=SzT+iR_HJwP@2x}KK9=HdIr|6#}B;o4&Thsd2Yb%uX_z2`MZxYbIzx0 z&}Qn4$FpDY`Kh1X$MqZU;=mJmKK-4~F*R1jv?M+K9jxx{;iZ?3Erwj0#t=@) zC7Rex{UZ-{Jf0xohWLR;7zB~6pA;B%@tYtFC=?6i^Ld8DVT2*DEt_~EPA-#+Si($- zL?VG@SxBiG;Zegf$z;=HbJ@D=2)uawG;_QGMxfnunqjsCH?n6F$ZHwq#QDUjM{W@;QE z4E)*S$Wvd&2~RP8JVk2rTN)um1en4=n^siB<9SrwDqY=O2)UR)t0NRe@^hc(mQood zLChDJP@2i#{tf8u#18^SCnlJfnnfOY8G+!m=|j3eFu4JNL@9_lHtm@N?ddpDZ^w|^ znHkxK=_Fc0oiBT>P z7y;8kii2Y=YdbOwIVM^woP5MLLykY`ZMmrn{#*$}`l^*CtW(;}n7< z@k|EK7~*vC1di3})ociZTrSrb7q{x-c@fx)JMl)?x2wCWaegyqVcRx=7f_Qma_zbE zid_uDpsy}%)AGL5iftRZ80>u?g<_E-M~*T&I)&$YY~H+yAPg|1pet?h%#%mCyEDU) zCmtj*H^SMce#quK?<8<*XssAM@-h|Qr>}Stclr#4XC9&Jo?jr9%Pcu(6xQ`kFme`U zcOI?h@!SwY2%b4v;=$)gw|*wqN>vtH{^OjOc*dUw3fT?coPqP z&^2#Mv` zB$G+9*({x19d!ww`rIHyBKXv!Pjlet34VUpM%=(>|8#-5a+Up)^JLOls?sFc-btpb zyY)f?A5kl^F7Vl<<9KruoH)3jzO~m7^6CJ8VM2dOKLZ^?Jh4ix{x_cM}Pl z58mC+$A37=4<;P$UK8+hui1c)fmQ)JnWFj|zeDkb=LqseQhRojf9PS<4Znol*NgDH zMt>A0Mwvb}M!0nsn||@nnLYj-^Pl|_+^H#iuYws*(A(QhpXgz3exB;NDQ;Pt#?U^s zS``q)<8f@;CiFv;uZU-2b;h+-<8lFPDKtGfhhKYBFMoUAL57bCwysO_Z{M_$WFm&& zly=Yz+LTt5@+EA?CY?%S+GgW-EkI5{CX=CBtx_(OkwW6cobxJ^o4?bXI~RtEM8YBw zZ{y5q$#NcIen%4N|ijE+?o!(Y=8M}5#!TNq?-s3y0^} z)bmCg))!|*1o~AC3TmxadiY=U5;tn7LPrCfRFv{SFn}|4K=)RFSO>1%VZC)5-weQ%Pp#ngbkG7 z*VjgU*|BL|CwV&C9MG_HLz*3%GEB{uDACF1{_zWpkB=jS#Ia5O&D}R~{k22*eu!4! z>!!$P*o0WLicITu1VcQfh$VAu-g67Zsc{m?ESZj82t#6Vn`AmeJRXIEbf^$A3RA0k zQnnBxa`+Geq{OIK%>{nIT(QQ}PaojV|Jz^Dw%Q>n2FXwQ_@R#>jRlFsrm(9)I+uppkZhbM-w0HH8 z&9yfzViK*@`Z&0wGZ) zG#9u&DFvlsk*V=>Ev_e*-r_hcAm01FavyJf`&$08MpsS-3$2L(4#>U4e7K)2~t0Hc@yRVa6E{7lZ z%uLTlMGFE92$!1B`3n~`+ zNCnN+vf`qZz)}ioRhN;mS^9h1NhV?hN-cZ8jp?*d@oI?6dPk~IT~@{La_0iDEt`Bk z-y)qO5EM&gDy0h9T$*G$1=1vNtBrmL{eUoxyw@axL?(k$0byM;QL9MZpj<99KR=IQ z2$ZymYF47nVsBTjp5h^~jQUU*2Cg5rjLUM@ZWsp7JoyZ}_wJ^rr-vZ$7r!GUrsYKM z*Cir0mwI>&hJ@mTxZN+jG zDoWKuF1F3sbPW|kvEWjxl<3Jx&WsGx*Pdcc&nALUal@`5whj#t1mR*4%Ce-GU@<#! zF_daM4vB1zOs*4&L=p*YX(6b%K3))zh}%>uE>lx^y1Q~@QgIAZQY=+)s~&|)jr@Fx zvGG~XoE_)nsR@QhCMgt3q?1E<(+XF+NWg3c^i4P|^h4%m@{2h(dNJB5n(k?-oZo^R z2lak$iVt6SLvR^QsR(?9p+eRjSAQ$?k1=dO_LKW6SlD!vXs9Mh#v6D_R!G?6Q?%YuiZAyc- zdVx!$tK;?M$T1)e@pyc3p|UM{hqj@5uDAH+c zIxGv@UOcy72Zzn)(`ZtuR1<60x&SOVvV=-4N@^`5AbwH#7b%$fAu5ZQ`A|nzzkyu%)R{-EjyXy3tz6_@CRhEKLS~qK;fDm=SqR%s?&=)b5 zjclL-Iy>9gxqSo2PL41=Imwz{!Rk(Mj4FkKrXvBHU$>i8YgQ4sHB{&k1i@vwk~POw z7vO8Is}CuRDDOqcMP^P5!T?Oe;@SNt`OIe@U}&(95B|o#A(>9_*?)YHuYKc(cwPn9 z^9el{twL-&MyXmuND+ZK9W43)hZi5$mX~gmt6LL?xooXZL)d0P0!HhLZx$|Vo@t83 z3W<0O*AJ-_=TS0FGGWy-C^dl!NyHNPu1laG3<47A1jS+*+cMC?02SpC8is{qS=6dk z49liEKTDw&(ACj~)|!}OF*b4zFBJ6k^-!1^r&#gm?&@S_dYYd80SeQjRF$N^r~48Q z!qsgmR8*>!CQZp7?ZH{t1cVFvfLdc328LxeKz*%JTgGYU%8t_v_!d~@W^w6@fvBa= zW-J~fo`^5%e2Uh*y7NMzO9Z)0%ZhwUNvPD4`+xOB$|VA~R^sT91bp8oo{00- zpL#7rYgcjK*B-`jC%AQsBpHJsjGR8=@dSOVHqblJPot z2tAMD>^O>@O-6MKU`!$n!2=Jy$n(#i;NSnsPjb(ld-?tkUgl$;_zDM)oQg8BM1YWB z3rMC?yz`y+@Y&COgG#Nocv^LZKSGW6;^HC%`LmH<=)SJg7nZ{ibtMgqzs+u6a$;KaO<^e`NvOwioLJBi~gQ= zzWAw6v1a#;JoDJ2Xv0P*n420!CKBwp`3`Q`HiY|X6nrep<^|+u@|Vs0ToM3ElXNbU z8__BnRM&M;N@F`VVV4V?kT@QsO=Ga)4d7d}#!slwPOAv-6 z;<1+d4Rwg}HHH~gziJg#i!ayC2gv3czC2! zKi2t@LM_fLOMsar9gfUBgCQL@XLsRKK?)i&FALwX42c(nl%9ST(b0~s){q+F+qR&W z%xBxOnVFd-l}cjUHV91^sKufaDbX5cX6EVX=|HKd50?5qTb9`Z2qW^7zUJQ$7oF;UTG@;aHU;75V#y5rq4TEaU z<eOQKYsTUJoNqN2!i_JtQLDhqp8)ZeEl1bQ1jfy1@4uCaC!dN zne`vJLCDq}8z|*VoIW=ZIZ7bVT9L`**t%&Ak3aEz(*mxqSQtF;1KM+0jvsi5Bgaqj zy0^cM?A$Sqj81cWbdI>GXzN>x_VYaX{6We(&YiEjf$x0ter~$$R(^2*Qv}u+wXPfn z0YM1)+0z_2K1_1XBc)uDxf~NSQ*?P7&`J@8injK4EGckZms~c@nPX+%_Kv&x`v3ei z`KpT<_ym6VYDaxrKv5=>Vc)*JgiB`h!sti2e9^4am+|n-=jU;&E~#WHnnOZR(j^L| z0znwy)jY1J2s1U{+c zq63Kz0}9Xl1G+jz^4ed<&JENpn_=bq~}Xs>0i@FsazsvIfPpAna_M4 zbUh-0pz2n+e(x@BxbZq%&tDeMUVIOu@v0^E-gpz19S0#$N;gEU7ZwI-8AtKl5b{ zKKBE*_Cyw9uIJO))5mo;y@sJp+c^Bv^W6Wnd&$qwlFp<_rV}k1g9|x*3!2lS{_kec zBamnzs8%Z!$_2Di)GB4l`B~!KtC4ldliB$q z?L!L#fhO<+oVbNs^>N}3lViig(;Z||&P9{ng@~kdT+bz#^)YP=-}4#|Rj5LwDJd7` zc<9;v?7HqcjvaUj!^v^o-fNITw;ad!JkFgR#dXu!=1O1NW{@-#%HGZ!J|(h>MWpEA!`O#am!76(MY^dH40d?(inz8Sbttj z%qZ8mnH7^}6cIT79b|QiFt>}&Oc!7vgl2xe$VWbXFCA?eHmqAsDiPx~*I!#_yd>3f zh1#4#+5Z2>-kS$mmfiK8pL6c=_LndBTC(=Nx~h8bmbzQ5T|!7mAWMXdga$CiVLYD2 z9)|E3&x|ANh=~a^;F$meG8iNQ0$~{;A!~2CTTAczQd`%aRk>%r%(vX-Ec3^`@8!$2 zvZ@j+#5)lcnU#6-zI)HP_nhzf{(isjm!Lo3?8SM`Ua9iV+egS{lkLH^@hM(Ed5Zh* zID#6eP<``)Iw{r!k^L!4~BLT0}EE&S3jdk!4ph4b@7fyR}BAtT5FvC*ipQJhmR z(SPszICXgr0Sri&?IcAU+89(EQ;%Xk@{v!ZX*q&dUwMhq@iC-ufEXQXYC(-cp|B$N zuVpbOWT$PR#28DX5#Yq@=e1a4(z^UE1K0(C-F9;f;6}oPcAdZ7K-k!%E*H)Q!(4V5 zLQO)yspg;P4Dv4BfrBNCV~!r$&9D5@C&}kC{QF=14eC>8*fZ!7#+pjs0B?Ty9UQy+ zOOmwL&AmFpT1n2$pwT?^PD>oeWW5~PhJ>-< z!8biXs6()lcfIe&2y}y^cfEzfcfJXw6u##Z8^s~%5vvF(TYkeL4S}cZZk$N$XstKl z6-;D^OdRmsQ%^Hfk0|!lT-8zY{NFI%r_(YiXQD~YU(U9KVRkanNu7&e2k2rTgm2H zLv?0`|M=<8ll3#)clhuAM7@iYF?*B|BJo*nGmHcTyOu6TT`(s-_uxb3W#W0pRM zDh|=9Eo2Y`G@DJNm5I%mfT$T0H0wlBjF8EOERLhLjETk4sMiyZX%(ZSK*n-OZii8p zNX3ZM_u3kpRy&LKyC#K9Lg}v8_WtdxC|(5R9%}Xi;oKFPVS|#W6Tb92OvOzG@B27L zCsI4YYMy@XB`#ea<>x;3!8TyCXdd4G0kX0WVO{PVc@tYQGaTPtB$G)lTMNzc!+XhP zJhl$?^W4lF{;&Tlg6cfYiHY`HDx_rMsqZuYssD{ec?Z{yy@Qwb{VX~P+0o}=kr?32 z@BTZQPd!4#%<)n%#Hqra8ysDaa9k1YwPH!=w|yC{iQQUat$Ekm@8w_q(kHoi{sN!= zo!>x&QJ9q*-4ukpn{{!g4e`D*g;x2q?Uq~odaNd&#*3%T~Wmlm9~ zcJ=~m3=7p6YW0N_C?){TI9dGOoycqjDWF{G!76z4v6uMbUw)U1qZ7!~mdyfIFW%Xr z2k&)|wdBS_@tv$?$KN^a9!T!Nq`#LUf!m2?okWOLKJZ2+VIh&G!5@9+e&x?O z@xVKH=9^zeL@+go#Zl^b%ViDO2RN^+x8KP zr7}G|J%mBnW>{JU8<}i|QmMeXlP3|G5(l##;IDn2kip?$Dt&!;o<|r4ZC1GbE+|9J z6a3OIev)7R?N9StpZ*-b{;z+zohv30Ois`6)YH%LEC2i-6UOoKHJp4VgX>tHeerdg zjV6_zeBxfBmgbsTYYAhOvY@Rh+?6wi)|Obs2q9Bxtd+v0TAKtU3J1s0OXTJ($?p;t z3k(JoF9WqmGMPli$-~9ig!Qu>K+8 z$lrVaTlw4=fBP>e=5uIkFeq~I7QXqNr+D$1F+4BXh+G-l&buGJ zk66XvN}hY|98bLPI;wvQgCh?xInd9?ANH_Om;x?C`N#>*-tj>Oj^E4B(R(?2USTs1 zAH2JVQrxAlH?Gfl4un%t%Qwmtn#r zVp7H$hKGmw`Jey!RdXmUmIoeq0AnA7yCk2;ckGf8~kCzfH4I$4PbK z7E{<#oj4scer=3GvF{s)Jpce807*naR6wazB9rw~HYmZHGTo(yL4(>tl`st31rk<3 znK3u@z9+|`2A1+5fA;u$Ej3L^UUcp zG{Z!!cd&nmg^5wV|2@U{=oN+!-oeD!S)$TT?x+NO`|DrjANko|WOq-*@BWAHv*Xx3 zsCa?tg?XYl25X7Kn91>r2pv-$n?qNxv5*xbs><_ z;n2}zIIhD$Z!fqWIp1AUd5ZuQDMAwP5U2nhYy7<5iRJNJi6h`QfA6#CION{r$J)h1 zQb?MOfX{#Fs}%A%wr|<8q+p{3f@{ryhwi(Rzx?XA$!D{??>!Gwt2OX^cS&D4j-;nj z#u|gQf-M7m3=Q`u>|ff-y=8{C3=qXJQcAXL8K77!w(m^}$(C(HOwY|F+IEg0lgTW~ z4GDqgI#hak+96A8E%|(Qv42wB>EdEZB!nEBMk$ttKDc)FY3fRl^DL#~@1-evxH|e6 zTejbU)lnPpOij)4b07aOXU<!(i=2Q^Gi66qw5)~J}2qvrhi z%gjzskj-U@qY%9?O*FfJjdvw-I_W%6=hdM_%LwT@JpY{Fj@wUA zEavImv7H6$FkaqZ zwp#UZd($Z#4j(z3Y&bisk&Pt?L-IKfQYK!ec7RDSiUDJZqM$7m(`~m12f9MgfAj4J zP6*nr!sw)HzDX+qr4ZM}0ZJJ%S(k?%Jj|hkLp16QgmehQkW;6w@$xHUC}ma%@wTpB zb}(NpP-Jx)_O*goq!(!;KoBd%M?Um+e))g?`#ko@BYgYI{}~lG@iST8@{afNmUq3M zYnLzZU;q4bT)uD~={k#o$V)!Ig`!fOvJ|Mgo{R5#IF5r&Lu0W@C1O&6VJTp;3fHPR z2DkN7DrJddm>kngPRt`6$;@=Mea~?xtg=aH)Y|3Vd-3}0tzJ&urC?B`09;!fAy*wM zYe+-SKDAmMlj6`T;iZkuBV^bu`2|DVqn`aJN6vq z_`&_mUwfVB&Q9_ZKlY=1;Sc|S?FaXAesl_gCfZthNXdu(Tt0J}qxV0EYAkT| z@+G`Ng>v5G%9U~YDn+u6!|<*hJo>e7ux;NVqDGbC@Dcw0hu%hH;#(4eHpcMPuYHwI z{C6L3SDl(v4^aq#BSf3!a$N@2X8s!pqPwbCrq8mKr<98D@k;tsaVXhRr9_^zAiJuZ9a z1%lbRc_t^P@q90FAT*khZCl9YvI&!C7X_M^R_7+y-3cCKOKz#-J=(}I%Yo^7Rlv)c zzQu@Wa-CZ1#cP%s!g`JB*eMDh?G!mU9snOUCnvVnxRH2xCn?=b^2|#CnN@j}(G8&R=5d@F4jPaqP}#K*gF% zmqs~wU~fC`vz51p0O1HsY-k3}R3{Kz=_JgkyfIML5`w<_-n*H&a-K*2;OCY>B* zJ8EQGo8?r~_5Qbikb56`=MoFe&ej!z?lOSgwibX`jyF~TcE(s7DcG~852ZDiFQp)6 z4dyS7H9L0<^7gmgMt@(PdZWq0e4S!33G3|M(~si{UU_AlFx0DtgKdYXati<2K*=oo z=qQeO&pYnpm;R@Z@x4bM;R~Pp1B6lZ^!4-iKJjxLK5~M`zxidp_sBO0gJxpR&dLS$>#$G_*uH%W$Bymeg%?h@ z3W3|7yQG-f-e9#&Cpp;31g7AxTq?3I#a$ma@#%^Gv_RdBNOmJ39&V%wn;4DAOa4L|ackK*|rC++|p)oH{qJkZDF z#5MeU8S~%+)S4mXQjz-c6ATUxGCMQLL-`U}N20C4^L&n-xC7S_Oij-*FgQq%<_X?P zlTs2z5tEZsO8`eFqXi^6ZW{%PQ-a zoyYYU9v*I6$+hwoTf)=rh1+%L@2j*yQYZL>MA*2HiuJB`4+%K!VQ{c_$=*VzqSVU; zvacsEvL54fBgd@wInt4f8?QCM%;JZIG{p<7IOUW^?T` zyD78fdZ4u?m(OFZ!F45MD-=j{30I!lIKp+3DcFj{ZK74M&;oHeHGss#~|(;=UnJcAejw_=h)}-&nJ%BgPG%W23)sdlBC}$Zbb+^!3Jeji|tS8=v&u zZiz|@A(jAYDI7}W!rA~^x)`fcw%9I-h#8|W-NKMA0PMCKWB^wI7sfz7@6lKBaa|W{ zC5I37p<~VXcs-%{Me-6>Dka|a&J!Fxw3Q%ITppcd+txvZa1t~0LLOxlK{Mj?>2a=J ztFMV2#FFJ_(ODxYu&`}#n$7t9vw!lFEKHB{rT_fL1VO-_gGczOfAEV;PfhTt-}rX~ z)mbvxY{F`>QUcE|VF5*w)6*e9vjQWFq*8XKCO9?fGF?q9#2lGgAjO*7k00PCKl*n5 z>d_bZ*0-O=apV&4w>pWI-l>(V2rI8b&Dyoc({UWmoW02Jf3}K>6%MP*wn)3EB-09f zTj-F$5v*SVelr^niPkZvUVVe&K#`1B!V%zlNx?uW9fp*KjOP-@hEg$uwjm1(F`hIy znGBBfu&T+-LQFoJBbU)c+7Qgn;b${A*&KyJp1HZX1WXEnjx`gLA%jCX9BC7m11oTK znBeIkADJcMu&;Z%+mpd^Z6GjFh6DCLs7%qD_&c;x?HHm!4=;$bM9Cy_=x^0sXF$@e1;HIpk zv4$+!Hhby{iSBTNX+>PHU{uVDFTcXB{fDR&vT0G8A&z2Bo;}OfkzJJXUKa#*0bsXX z2XU%jUmYRrNMfkZTzmkMYlPbS=zvEtxAKk(4{eQp8Lbb}i z0|)u|Km4bhd*c*e{*zBro0}ul7L(>6iH&|snwP|mu9VS|kCATkYtxePdxOjcsuIs_RG?(gH= z`HLvqk7N?<6mWDI#2BNqhP#g(WP0iXXUCiD$>qu9W~nN{?%l(TO;rh_m`ohf^s+Rj z^UN+Z$@t0nMO0w_u*)=kV|1il6Ky;_(ZsfG+qP{R6LVtQoOm*^ZQHidF(yuKzu&$0 zXRp=W>v_&ORduRr*WQPNb+U51Z%c86T z$~Yo>%;oe{Im`!kQV&-g^m4hUE+g=~+*`v{oqQEUENP%eXwj#NV;;hOnLM^5_ zObgqa7Te;42p)~7^`~{rNcTOSWA`=JT8?a;(qM8DQ4F`MLlCB6`{1S>D)ms7cc96T zM>JZA{n6(d)Zmc|x4^$WkGtoV?%`Cplhty3M zN#+}ANA&*=2B{NY=3$aaM#VJw88ifFT9F?blb%n8JY9}q!nUSUp^9T>(Kj~O#~ma> zH!!Wwo6uiCd9wG)Z4ht^-FgWnDjKW>?_8O@<=ygMUC=(zNT=*m2)6Itw|8iw0p5Ph zsB!3?{2SsEQfOGHO$^b%tkbV(%;7&8kOba0AVws4b~Hq zy)f={xU29g!w~S9J2G|%_r9v=pEPkYeODs*L8n8DM{ON~oNAJ1Q4A=|up4$f5v@8l zXl}gX$`q{(t!PN%tZtiJO0qGOq5G zhHw{efg1>u&rDa%bn>(BRrg;>3b6jwZ?4W|WH!=d4};ifR?je0xWT|OdbK8vgo{T^ zb;x(OW^cDvS~sjz{_wlW!eV^iQy^FuwspS196o;vo+PACXEaeVg6x}7J@eh8A@nO{vke5 zNOZY#(6~p1#-xXC%N8FXMT&Y(=6~(<-Lix?S_k8g?p8nfF-j*Po!R{iren*Ob(!jZ22$ zn?VUjR?b25Xayy)(h?HmTHsBgIFA;|(V7;wdhxfn+6KJbQOgvm468=l%Gn-P^nxaH zKR|aD^#L11!p)(~6+?>xo{DW6E~c9 zDqkOAdfy-88Y%=~873C>)+Y-uZ~BsHeXb==w1^`QGF;0TRI%s|q9VM_M&AU6JqLvY zQ&4ssmF!=i4KQ}*4(o$H`{?!BxD?F%+^@FBm-l>W{KUK;E1&(Tf9q-(uig1HS9yzm z1m8N~D9JeQ?#>OC3_hVUTh*Ma;t%A%yDvB9%mB;bO`dCDtC;?Nu_V2`Axzsc9js{gXE0VuSi8rm!WT zwhNa-|7Hc$ziI|&s?9RGiJGn59Z!Y%_z3#^1rdk#9jh^oDaJ`3b0qa*RlT@u|GrAn zK<4rGFig9rgl^MCD#gXMzjW9tO-3=Tp{8s2X8972$DcR<>tlx)9zt)#`s9V&0Rv;k z*{OKoLL@lnI&sRg%FTW3a-xx}MaP4SlL9;6O^M>AO#_w`>f4WteN#d&%4@F`eZKn( z>(5)k4|avT_CO%d_vZ!Nk7vOL!G^3+OIuuSbp=E z`gbO(bc%Tz7wIKdGM%U@k^~~atPbTo;n|K}n{Vn!_Z!!bP1hV>ftg6rw=qj{nx>ih zWv9D&GRV9^{0GndO*S3st1W$N%0*o|{v(!a?+wUH=NQw_t4f?6?1UZrt>*1{(`38_ ztr4*)06m-kvTd0tmMsdsIJoP=LFfB9b(qAzdRtqa?-Ila1Wla!W65Z9 zpaL8TdGyhw9J-@_n9ue*m?GaReJKUyO{aKf`gD)J6%>_eL~3EmOeGV$vr3GrJ%AzR zd-W6rcK}4R2JFaF>%kznz$>cb!KGtYaD%1f%aP#=nxeo5EX^{l%SZJHSasY$diJY9 znVH#({3?RSg^5}&`TCr!TW{0e;AMF0PxGA2@-`?ox|UxZ!e{-5TEQpM?w4CZO|@>a zF5oh_g;J`cK34XL^U`L9#X>{KL;Le0iDKg^4NK!-*5LZ0TDJ`8Z3_^E`{(A?1w2Z5yMVcY}kMYB6*NcO*b(nY@ zbdWm%Tt(*p?5cLqqs5VGmGpNnG8?ijT8UKFa^<-V&ymbH;YynE!&h@`H!to#+#Za5 zy0V*I=lahj2xziJB%XNB1aHzF3wW5 zZ_rfK-@nrLDyH>33bj-bH0)5TVC+iO8!pR8pIpMV=3-40vQF*O06O_Y3|l}u+to>! zR+XqwyY6gBKHr3I_v?FH9W0*FzF&VG|9GB$GALeyzu|M7s~&fF@79uNZ>GsvQ5D%_ zayfn-+|zlMrxOR)YjsMMz;Yj*uXL8rbs)pFYbTwIkam&3=WhA9|L3r+ReX^6H26bb zOA;X5g?u+0Y8#0v)_(qy2T3AZmKMr}n5^3Lk1J&Y-P`94J74G2QxMGd)^9ll|9lY{ z4POPSLqEUzV#+NoZbe={X9Vy#I!2Tx*ca!u9YxzX{W^q51E&clG6mX!Y zkJyY$L#QI)qFyA{y>c-Ky)|wilT(7b z-Y>+p%usxUdAhzZT463J&8q2|2da)D{WhY>yd5^Z%*b~cWe~@h{>3is@)mEThMP_(pcKqL-7KzKwO{A6V&mfw!E|r-)mU*=->h zYC+V{{ZKTMImFU$buZ$svot(Mqs64k_quhi0T*+l5G8*jMc639EK;a;D2UhAND z{)Ub3I2$o_u73@v1Q$Hmv#f6&uH<?^K>BUea#Q^{=Fm4&4o0xyA3JQX)zAcEx0rrk0jcCE zBjz%f21*z)VEJqSYBj&ZDbJpiR1dpr_|wm4J&s^vgp4{#$474cge{A6THkCWugfgw z5!{G{A`@7HuRNGJk-pY)4Tfm3#XM%lYPJj&m^9o^hsvrBa#B&~X`ItJ`dL0UM22+E zhf?HYlFeZz(X50?qt((DMK@Nne7BqD za`P^BG`B=Ex#0?O6gp=ZY8qsV`0-rn5#iVmeodFxd3eZBcwJg@9APQEP%YD03uHcQ zxB`?(b|de;0u1z9SMz@tz!OQttKDhSH!k;|n5i<6w;+;o&sVq49gymEO>TRyZ&Mf& z%8aW9w7&^@l|=_4DdqBjF@2!z(eSEJN6c{}=QC2J$iIG?J1%-jBp*K^8^?O8!)t~I z*^DXM1_YPSbrs+L)+)c1&sXmCP)J)~{c0e`Yu% z2e3L|25=;qX;l7Dl`raDQWS?W1(}XG96SJP8vKB1>V4p31;XfM1dFzH?IK8Yi;@T`wx(iRlLmbo?A?p=lJZJf>_@W;3!22;iC@ zFf((r%9192ubdL%1A+evn6g~U6kV>~$xROGELRv}R4TS*(Zo-sYW%u~=1gr|vI^*V z6SrT%l!l_X)K&s4s!Uvb!|*{wK2=^aL6N8)h;3nhF-Sp1#=p)Yohj7hHfg+*=qZ-9 ze-_s_i)J_Ip3ePeiVO0%eQ73xJ{~iH$wT77>;M$)2(vQs^)Rbp*hXY3(unz*x>T`s zayG=oG%*Pj8tEK=LhHzR6!YYRSad8n3Up@!2%&Y1re@MXJI(iQd$^VeF6H&RN$jcI za2mYzj`Zzr6zr8DH+qF6Iw}6Uh|#^HsE4Q2HI`M`63TM3ye$3QNnFjBt{LCh6$KD5 z=aj4I1%@c;uR(yHbb70K)OKVZN5*l{1q&t0h*6amG)&De3i{}MKV0yDipBKPIKpi6 zmN|$I`=U6%9y1Clh}sP; zp+s?}cr)53IMB;(kvR7`Bcsb58Q*&R$i$Trb*GmW>T(B9Qa253;iMzG*_CNczN~S2(;p>xq`(h-+ zFg0mp!756m7(BV8a4a zM9FcO@AX~1`)i&Z#33_elKI)q;@3qUHN>aAv-=iBluLtAX%bMm`s z|7@i+0p%PaRRbg%CnrMF&qW4*l*Jtg(f29(EyK`C>1=GliftM19}{eHfN?F)Kx&@j zNcGkt4!ECR7gX%)xnhhwEJ;5V86c?Xew2=DjpWY6DB` zhNP{I7Ua;_#}i57haoJq~n`XgH#hZI~Jj|Kj;$Q=bwNGSG8NV6eY>i`OZ1 zV7qGru#BBd6<5tmQDypcu@=cpyvK80%+A4Wh*Z79sSt5Gy`{VNWkXTd8bS zH78^22G0Y9N+K6w3aPiz%MRXcl|)QrYf3{xLQBdb);jnsHfE_4&77nJ7lf5n_j?&_ zkwlsvV=_F+!tT3?@E@^$4x0&IdNT+AAX&{})v9u_-d1P~UGzZ_KrtGCc6ka{r-cxD zHRicswr~Tfy<;00Le2~|tl1W?uD}BR0UaOIts%;kv)B@!ECsc47)$y^@FWj&DV!@& z>rR?54E1RE`L#-BSFpEZ(uw1iK)1dVi_;3Tx^bkM0}Rt9av-Hnyam4|HtkvY1I13Y zYb=B?MRFfb^t{d1y)@bQUm)KI#LO+qNC8l<=-^px9J`X`lszt4g9PuF?Iy_MHlhT# zUAgJljymk}& z;mFGCnwUp44O_*sBTIz-Ceef7L*4ZOU$aYwmmg;_s(`-{7c&r(>g_9RB3DVXu=^9r zMA)mR%0wtcA0lA{NFi6lC=uRJlPD;0Ft$JEbU8S)m7U+0lf27Ei#Cp2e##ZJt@<2G z^H^i%5mr+9nUg;B1te4JdG@fFd#ZnIsk(JI9&?&;s-Y31N`y}mBp;nO5{WwU=fPh3$ct>b zIFS|~byCrtGU6K(Fa;ihJ1BM>w| z1SIIYJP<43Bg(BRB%5RtatSKW7>(#ydc8wQeJT{vXHsGK1v~3AHGSGo&i)hha$;)d@u=fb2r=RjHbu zw+cIyg$5zx{6uw?jAL!wh`}$`@ZuVwV!@D7-e9PYSwSLvsEgT$KHdOa_89aB1cah~ zp4d^QSzTiIb2UsHc=#VElJXWOe;*JK4}6l&-}&0~z-NAql~YHhg2QUZXSQkMt&|8D zmMC47Xy=biVV>1IAh7`_S8!Xa2WK#Dl|T~Bbs~vPxUp@-NLWKKBTFrGZlq*`<7Bw> zMV#V1BUG`=-V4*|wQm*+eCgtUH!M@u(2li>HIn0;Igau|p>Qd2cjR$V?UQ`AFPN3H zxhQlfXX5mI_Ssz6?G>dr|J=>$5)R+9($Os@S9K>yQUBqzv8tj<^>L2LPQwM|UH@wU zo9VWXdUC@^_Ak^dwz43zXgO0ILTRt;w?k;U^W0~VF)9jU>DtIo9p;$WaFE29((#lB zC!k1D6j!K3u6LNLS2t(EJiP=^6k zXJwJ+Va-jU>OyVn3Uq!r*GW}5RrZtiQWBA#quqnQm?U=%L zZ87OD$j#{fMHuiEodd8dn?=Y&AeLyC%38APHeVI&M0>v7a^5y!cF%wYoPzQ}Qt5v2 zZ}D3bw3PX~H+A9IF(c3O_chKxXOLlXDGa^6am2!&HobVu%5dLTr18PY2P0R0s5N?Ry#sIm?q9C`Q6L+{n;(4+?%p0<4 zI1b(MI$gufDrwLMpvsijw)-<6KGzprm0%Zg1o5U{E0t8YrJ*SxLbE!~2{|QVPuKaKAie?0%BBzzhnpE}j6}UJR47ZRA*4 zvh5IH0kcnv-6+lZF}q$IXzx00Sv7PHU|Gp?!$LT5gTbATeCgLJa@+b1r{&; zIti%rkK4CdsR6;QND5bP?qnH3ELf6?c%oJlZJg5}qdx%&2rKk|Qd?a#|IeO{@Ee-} z*1drVX;dL_>5vS197JmU-iZmk_-Vb-d-@wD<8&%GNI1kgg1U5TitlFH8ZWd?#Y4_e z)fKmT!o!d|>1KSw!>*$pC^MMPaZ;;doZx>UoK#)C?dgWKOzgjlOfBk-rjCJW!m@Oe zB|B4_)gQWu-+eM^EAIN>NS1xsPfYsG3^f>;*UlQwy?y&FO^z&3$wD< zWaMggR8%+Zhzw5@7Y1Z@)@gkXFS~f>+`v~|F(V8aJNPR~v|7?Eauo$@t zKK(tN{e$2{ma(hfN-?dImKgvOP0lbW$Fe<(cgm;&M+AIpt&YBy3S#=5KwVn}f;hEB zU7KN5KO96-#P{6ce4T^~_Sg8G#V=6R4hYpv4rMx1hz>OS4wlO%+tFhFVTaIoG&>LK zMPTfH)ZriFY-ni)lO?u>nKCn8`j;@}1s3{9nV$P8^ zQGl?LBZ?2R4J5ZaE;i_1!=yu6xtb!tHau&`;e4`1xXEnIRs-};(jqQR?e}(GpIt`c z$d+0;+ARqF!)0-?PhJ_iw`c5ru_`=kM}a7#e^&zs)^Q0#@dGZk&}^q#kJlG;F*X0g zjwWoD7U8^Z-dhI^g-N-QresJ%Lw^zV-7R*CPzE=Jg^hW2@u~3=GjGAGfYQ zvGUy#88}dkOdSdQv2+Nf*-;3P5ZCKUuWgtx1Bl{|7hzDO-VvQne-EaZC?lY_Uh*154%o7V7Y#IJ7q=eS}IAfkc56OHQn$?hmXak8uL z@SQB+@jbcoWcyp2pRS;x?{Np-s#l4Q%as5^J>m_wrBPW{%h9=u==gow+NQA~1luc*jGdUhi;l{+_a23DBj(PlkT z@OSZNyL6{5h&vjZH+UmKrHqr~Nji+b=&cMrZpve$5|hPRK;oBi2WHQP%aC(8rFM`1 zxX6&A9>ctEt!}uw=i%k;APceu$H&bQhFrPD0JmW+kD5MY6_X%GKN7+NUKuoiHralF z*V}Y$9eCHxnd(Ho2syNBH@VulKi^6MSYgI8RD_w9L3$0Nh%B}tQ^(VTLCa;AChIVn zM@7M-P0IkZ2-}@V!;2LV!y~xf!`Shg3qe>t#il5TZdnM{u_(a# zFl|M;KPMYNhqQii;2s26pvo%5f+h8fL6&WsLWRdAUP4;(i6wz@qg30AzsYe<32&Q!Duah$?<{jDnA7%R1dJ zi%-dVax+Iwtc)hH5@xKEafbV6(zPPP?!R2Elb$b&Zmam*Io=daTCD>@QIU>V1 zM+v0y`1~Apb9AR%cj<1O8yhLbUVeSu{W(^=(C64JR3z_`d+sJ$g~2SaBu7~!7SfX8 zN`$;p#P|g} z;O@yDM=JDtzQ#FWoPdjAm}WL;*w?L2)}BRc*~VsRtvI;&cN>#pgPYts>eva{m!qEr z&=suF#*dLnqbzjL+s|$%*V7T+4BKbo1vD=!-_#E}vVs4+IDo#(Iu{hVwA?!+fz29r z(=Rbwi_FrXDX6#E_bMz@Q#zG(w;vbpawX^uuB?l(vVX|MO39Z36JU+S&LvXyYFL7# z4l{DIg&C8ln1_u*OEPFx##7sq7zZO@wIB?Z?UjQ3ZeT&83PAS3NCBy{Vt`;K3_?NF84Cq)K?rkAG4*4E)Ng{P_-8;c;&R2{<^?JwbjE`|* zVQmk8>JRXJT>x9#AV@b_n0UE|Pn)P=nqzNv{RXy%y8p9T?q^jB^XXG@?jRAI44_Oe8f)o|UN^+j44)Iv3$ztG>mnfLM z?4}FWkS4jA$ya96nIFvQAiYko)!QvFN33T0zn85&Kx^^gyjWqQ8owemJ+H zs>CEn?NBB^T2vnAr@%YW1DB@2--Yp#ai_skq-%?iVfb#JO(&N~5I5a(Ov61I%qKAZ zrVn$wzOq-#PuG_q&sNUV`OFBEQVeHg{u_IINOEJtoX(|;6Q!$V68!QQEHD3W6^q0Y zLbpja18P}?m!&b8%8C}#(RW9SlbHGgQzHrT(Qfv>(VtL`%S~3`Dw)+!bTdE)uB<$8 z(w?>BLgdpg&u(t+=zlX}96t>F+3NxAWtjAc4_X7bDZq^L=!9?2?E zrXx><`$ONPVAEd@vG-qP1^M8AL#J-UUTpkWslx&`I{=#>x5>dZP{X3OyZtu{&1+jy zDrNk`R0I?i4HK($ExrTgy&sEU-& zy|Ixk-BKHku&ZmQT(CtT63LwAMo6iNI96!37LgI^<%GPqRaF!2IOoQ5h0S*$xcp4P z+5_hi&H&XQO>h*aW%BQ)(ltAW{jAy-(|Id4rMiA?N+>#{5areB!9<9VNb1Lb2jTL^ z7L?k56v{Fwf^6J=Rc(aLIp@BF{VpquIH8(0>=sc}Oq3D^0qRqS*D17jK&-Pl^VKFE zd)J^|2oUPmxyG?;L(=!x|FnvUCh9x7?_H130|2#?@os;#&vD&p;Ll)hFugH{=I9=!FnVX zY|Ee}=N5PA`=#7Z85xLQ{!B!$r020Z)B@56@TLg43LPoTjm>``xww}$8Uzwm=508Y zTTY?r4x3?SA(wr^tj8Zyo95WNat@<%Gq+K&20eTHvX-tLzvvZ~Gc)t5C^DnKH2x?R zh=jtT|Fco+w;I@wUcqimo+p|9R`x^9R2R7y7M%t(=~U347ZT##)wh;x2_k)^iv=U# z>8!!o_`kpI-yTpv_`OqtCqm>f3-*d~h_10w2U830v+c9*ub20*!nzCws~tC&i_^>E zTdxYKHH^gr9LDMGI!~rY_zmwc2ZzPI4CbJDcju{R9fWK6SX>D(0zDDUg}5)P4H$Hg zK}}AUYbuPB%`(B*;=jQu~FexKd&Md%wVuU zSYWwBHgKgz+1A}^v45VWpGIxf6_=ShbYx6`b1xm0d=yr}lYY9*^UQsQW#pyIiTZxT86u+I9WJGH4*m9R`(nIB2W?=>3~ zsFry!6>BhB2(3L}$1W6nb>6|(>#XEU_}9UYdpJ;yqVp*4;NgHccNz+K&q%_H|4&}t zWp9&w`}L}4SUdAJKj60Krgvkf?_NK!0?|@s8`rq%`2DeTfjV)*9 zdhO{|d%}WrW7UW%Angq0P*dCduoKYWsa^4~VzqL;Q5~wbKO4-F-po(nv3w@kcA_D@ z<`$LknfLu4;|I#eVnJgmav0V@MrJNdHY*;*Ps$Fn+XOVM;}fo*@8Ak8-`@8|1QZu# zpZAk#J!}57c<1oBaoS#(e!>Mzo(MdN8{`<0L}bZLD`+vxrvnoduoPJg4O=JUCGx)5Qr7K!)TAyQQS8IuZVV*_wDNs@DUIxWv`CK4-ak+|2&79 zsqs6O2FWt7=em~rX36V=^`U4yLARKbn#zQl?%wotNCLk%)4{QXNm_-TlJI8kDUENJ zByqWXQ+|#CwE4<;sZ%MjP3-mWfQC2Axktq0DT*22N9pq)+tF?R*z*$H{C6FD;w^h# z$t2jkZbM}~%We&v-Us!e{@xjdI^ua6E`m=c!Jl}vWXKXr&x_z%G_E!AQ$1K{>nwuP z4Q!`b)Ue&f7%^d?xq-<>g25&k$H1$535=n3x@(!rVvC;ON#_tD`7Bco>>=4d(7R=- zjEhw0{J%5WxXU#%_&Lyd{T8QmsO?#tR4lEr*i}Ci;&MD0eCQSDmgikH9B{wV6U#RC zGJX941k2&0zS%bEBvL`)JRdpjqKpsE;kkFZ{q?jH`*hPK`0T;VK{-Rm0{^Tl_&%Uz zTFz-h<{ShsLcryNa{&EFb@=)1iWERvIcEp`nex{n64nQygA`u`pmT{4D^ZjJXi-B^ zY{L;EN5718FZXVk7AxzdukvVIr%zEK_fkU&0e_U>#t}lN&2ekwIeH$%3Pv(fd>iyp zELv(Ufk6V_v(fs0Z}u&+aRO@Wp3|;f2g0{mA4vsl?^O2ek(SYK&+6Wt_r;?i5N7w= z##}(Yur63p@etCDs1<;So?x=7t)MUf{U6SwYadyuKaTrchY)qBN_|Sqs&m10$YA4ANjlE7m-7H%vxN2#2m$}>S8hDcu&NfZOhJ3+>TvWzzNi; zWZGfejzel1I58hYwB+8$6h$7s=27$k`pF~$n%a0EQ396WYt?GuQmreiKsN(%v+QB# zp=#&1wr|IR*Zex!*>bbz&Fi*aC(%C2CO>ybYpyajbDyw)lBVQJ!nd5Zd=B9)WV*Rf zP}^QP4P1t1k(f1{HJLWj$adFUdTZas{WT9AZF6W4c7bJkpultea@foss16qedL2*I zw2wOyVi6~McYyBmXM%){ubg=AI_2@v5z7ooA-rS#Iy2}Bt&FfASlG3 zVx(X!_`no{np{>^mTr>Ki3xTtkR5{@s?H-qs-TN>Ax((J?9Z&UK>`)@G=`cIF%p3p zS>13P;DjRL6hh;EZoo8W=d^zq ziR){TO96D8zy5(_D#DK=NeqV@=$;p;5jz%UVoWdW6WMPZOEC?<&eQog=}w9$zk)22 zWDz!T5Bx0>M_{9@YUAs;4Y!QiCnH$0Y*!axkp?oHAz8-V(EZgp(h$x_902vM#T?9u zl!n3J@pqy~?{CqylLjvs-ZR6)FkWfb?aO%yL1fZ5+oo0YCGPp|S#;A;CsoB(3r^ zM&e+!n{yF1$b_FqKkoAdUf+uUQi(;cl2GT3ibFG}Ajg3bqb2@XxH79GL!SSqOaKL* zmO)xLm6S;_eGM@e)LuZ*JzU@vTfxErKT(+ZT+Bc2-5Q97JdD?GQFg(q6A25mh@+SoHqi;R2kC%)oc0h+se)xq z!SuXj6CPs5!MBT+}X#gW_JxQQR*|KNMYB7Ba_CnMQ4{LKH#vCQ*=F-J>$ z8nT2TW)^>7T*1}|{J9$~~S>T48^xp?WPP2LJu#Y%?^@Wd+$%P`P=N}Q5o&A3-fPd5uh*4cJ zjhmOJ!>qok@jnN@;+dzIftP@L)wmsef$4d;J!yOU_3e2r|1+P9%_At_ zUC|$7#o;!Z@SW%~`(cV5=%-uNS2wp;bYc(8f`Z;FBqDftQD1O}q8q!IQI2*N#foy5ULFvv!EqMr~c*-7-M z3f0%B?b?568xFtt5uu7T1||5p99f@51+&^q8#uU^A6HG?&kzQ5cQaAdX2B8`z(sKuYFUeUA69w$e}5A z^|Wlg9woCp#__$2p1I$QGDx8e<`cBDe0Ju0Y;V%n72iJ+FVg&uBg05RzuIJN;gFvr7uP z&mbEjOdIXlSWhkq2_hl_piN)K^`dzws>LX-j_&!YQVw&SC!yrHm3bOy)4((@$N z{8o*S%@IjOV>Ov&f}Hf*b!MZ556%eqWftMI^nD5Py>I{`j6#vwuKK+swSKWHX-$?G zTv#&yF0bpzAk&s%9=;A$FB;++j7Rlq*VAg@C0GJlGY(xwbXfQ;s6d|9tYrV{0x_5!=U>xOhL)U`0@)7dI?nU5WgCQAAR2Vd8e7 z?>Au$BvHo1h+Dng+t#WgI%Xag^uU&)F_WMFxL^HjX)F^wFa8v@C48sR`7MEvnqy*R zDde#G=kc(Zyn&wh9@Elp+$wlZ9liR6i3Lo;Y^M+~(Gm z6AOUb>CY5z&n4YuIS(ISbk1=Kq}(kYgCwjnQJ3j~h%HBMv6Xg4wbBqF*; zZ?QL%z!Ir=WMWT{<~oHGV~sJimh(Ltj44}U5EYu|HIm9M)K6fZPyCdNJ<@&ZJscea z{OPnHlFtcyeU3|u-#2Jh;T zV)xI~C9!!z92F77DR%&lvU8VkqSj&Oh?g#&eb0Ol2~^)NV|7uo2pUc=iPu=FD$KCWopD$~VPg{Mz+P=*5Mi3ZBfgCQo9ba>Xh77O-riQdQ{_s+59S*F6&{+CIk-K7^(pD-9u zyO(orU~DshSB6%?hmR7G4aVNPwREqkgp4X<1fdZBijLARM1|@{jf4TwWxGXkA}fSb zVWV(`D~YNdX4-_V%17U^qshl8DhW`r#Orfq2|;;6vlLOJ-xx>yd`oPOhyd&mMHzsh zFtDLb{3U{#CkxT6N#c#ohX>G`3G_1_@!cLSm^J@VR;^jlUOR0FunF?WZ;O75Q<%#D zM0(q&2?d9#Til!+W=vS+GN5}f) z9-ZDP2O~_*$iVdomNVRw!~U{g#S4FtCD`#$D9K}`n3k&UFJvZPLcxKNN7Wzl+x}ky zldO>Sm|+j719x{Y-+mAtL4Iw;-?Z&~unRm&elfl@p?{vTvNKeYRsK-%Kh<}wbU2>m z5d9Z^^TPg|{`Dxn?LFiFdA!2|yFZ+Q1=MrK6KKa}=ONgchw!$&C8go@_5a?5TvYQY z>2bf)FU1hMiyJ_G5>$em~Z>q`6!S@&lS?YhyqY`Q6i|0*A!$0QPO6IIK zHHKd=R~K|p#gUu5)uI%^Qq)Uc$Qt)r!_EyJrSp#1&fN~_rH;73l>c8s0#}Z9e;@sR zoX@zB#TSEZUD=$rNu=$~%&XaRtxWr(iYpuwpN3{mk2KB%VT@XY0#?&-G!c z!e+DO!X#CfLRuVdm+cRHX$x+AWj-O~>#N=BwF&mrs&8eRQB@Qi^378&dP_<~rJ}P( zChhEl4Q0-o8g%^}C$TNx-SnL-7|`AoR}z z4Yq&9u}vfzkIpv{|JdZ6YEmEgy6-q?wIIXAW&TFm_o8J|1S6Urd@ru1_5F~lypLP* zchKBzj+uRJ-+mJ`;uY_xnq?Z~&OLsm@0~2($K2C`&$EDD+FmNzrQ_WNiv-p3As8XS9N5wgP%fk0 z%V?WgmC#?lZd2t$2@4^?)cgfcDdd5y2G!#@5iYmsbQBWSV}z)Ci<*j7D(BAGYL_8U zi2Jy$#Ke~?I2_*JgubT)E_#xQBX9y8DhFGV*{*Wx9n=qBmOlS^mv(1&DFVjUo1j6Y zE-oq3R!x1p;cj8WVz{=F*KRN&y=OTRmN=kx9<^QGp3r<`gt3y~9%(k~nZV_nI=8Z4UAt)S`k$7yF>p0H+rMxFVP>elB z&4@qy{yX98Dqp^UpwX3QxDL_t{RxZ|b`oG{@Q`h*S>zZfX533D_=sK1o|BPFRQc_2 z{bmW11%tyCo_iXOLvLz-PyY%jewT{3)MIo)za2C;5_^WBJ6Z`%78P?)%_2TCOHeufD!<3HWBP zKsj3=I(Vhiw_e_8C8Y}JMG)z^prX7g<&%F69U8sumKJgGg1`8stJZ znGOu&PNQ~eEdnbW;lNvn+>-~@fcuDj`@tIn;Ere2b@EW1ThS6ht^~l>D&h?&UQw-( zt{T4npgIs*VQY4aL`{CF5T5)^w-S*({a8~vjGA=|qv8YjzGC>My8SlF&*#0P4==A! z?UtBAOdhc>~#87CE&38q993ZuM1x88~zy-FhFPq=5vs+Rn!pzgtHA5Xrg ze{dK8$zXQncP?2|miMeNC=VBW%Z+zB?e-Am+szBM-}ZCKGH6g(+!&GkJZG7yVjxMt z%Y$$G5=-AJJ-!Potx;83=^fi&L+w8Z?Z*mU5^sFG?Rkdydi%QTnIo)BE}@pD@H|E} zJnrp=B+DE+Pl3}+d$|sHA9)6`_BOz$F%-GR-u=a@;ZK9U=(1$OGIC*Ep6H%t$J~Rq zPBIZ!hMZMRf?=AD&T=JRz4zQV_61@X*En;g!=UbtNB^T{e8bq{i%GU_6d#zQz`!l1y7!{lHIsl4`Mx!|`vrWlPmXqy0< z4pWII!q3%iK$!qfpDyM&47*r%3-84W_7?(fAs7u_Y3CPRS013^a|I$WySX5m#aTkJ z#OW>l^Hi?ulX{BZ+lK9R7BaiIGtO)YIWo_JDCYI-{I#vqq@)e}F@T zHwCg5iOj$lBMf8La!=dluyWZOda)=4!D+s|j~IGIwd8J(WVTUH_tZ|`l~UNrb_4C= zDGegp>T~Apq4jiij}pHr+`Q`y8znT$Obhf61hG2yA5q&L3k$cnV>U{YUkFvNakoY0-*9Bz@+^k;Rp+ef zLC*}h^5lgDW-v{J>M(N1NL7S%y@E!_LL2;(tT(ar6`s4Ogx=r1k9K_2+&9~bAAa0h z**?^W2G;W>5GV~W9vrf2RI}D6V+;9d; zn+>2U&!-kLM~-7Utn?+(q&|H+06tO-Ya z;Fk4%HTQRjxOv9(YP@4UgVpIb1wYRm4K9YE&JwwEA%{{(VJ&xR6S^fc(O{BoC^Gei zz?FW(uU2_W7qZro`qtfz51Tz@eSvbUv-9xU*-^s{aRDhDGe5ArWWUNQPpnUPc7WTw zf50w^Ub+-`#3^nvrQ$(;Vn42gB8ao|){I1@fMJsS{5J(r zn?wMeq7+t~5i`)XgR`>`yUY{1-EYhC0``%f3_LCUecai}{gwo=TD9b% z0_rw#>hRc%7hBNOsH*goly++SeR|ahh#`x}7^ETe-S{ZO&Sk{svCR}4+U-1id8XA= z3y0re1T2R-JYucHqWY6^!g|OpDAB9?;lSLH7Ud&(%a^yel^O{4JJST$m5q#T$F6}&!0osuwi~of81Y5v1CxdUMJB&ciK9D z1i6orFS<oL=(uT-BgF~a(-r^-;;lqm+_n7(em$uH?v!5>}D|+!EVSlWIrgeK@EK&!_SLpJ_yw@nB zKMIm$#juvmX>1==9R)%1(F5p6WRw(F$6RFS4R>4g4Ne2H!l5VyUS8W^Vgi ziwAQWa4k_L`LkKJx7;GhHw)!w+{3%6q?~UK(|TdK{e=7f2y7r6-ODK63v3y?xTGY$ zA6m-5{7izetF3c7DsnXc**duRr1Vs2{A-mKiMI8)2+lS%t)xld^o;9pEy?S*I2F9r zOB2?-TY}n0+CNxs=jYRc`CB1`e`fYJs7M*0U-r4p^2yD_1UVp%#Zre2Q$ZhyTIAq}{J+29XLSO;#gI&QcU2|P^fiB1{7xtcKn6kn5W3FT z7y=_vz#CTJ%wW>Un%fuzY7Bpt!iNs|x=OTJ$>777X)%TO1X7RTaYSGZDQ10euy-z*h?z!(L zzRI}9V{yKDxRh}H%?|8;hll2;6?cea86@i4XDeHE z_(@Q%sB))mpi8aAeW&7a>18J`YcVLn6Sb_Z+oPi;Tv%pu0cT&dwSzQunScHOa_*g) z3w*?r`W#tlZmWMvL@MBlHc1eMS6y4n;dw$YvGHco>gWRXH+p8ri>m(p?7kz>qD@U1 zrFq74j9<24nOWBHJIco6?1?=Ni38V|0wNZbZ@e0p*Zo~}6O6G~$;{HNuw!~~{YnN; z#GrN@x99%E3>F-;;kFFKb z{*6yW)zvjW+dF$kZ@-Xw-KgEExW_0XD>yxdBO#mRoQ+bd7_vv{c`ftA4 z|5p2}Y6KW}!)Ck7HJX^73dF{aDJq}SiD5~h+>r_NyS0ShqB0OqiTEZ!%O-N_8*V?= ziO4t1QOyxleL~W%<8!(o=OOv&m`k+>Jrfi`wHJb_FWrb;FAfmS_?^u(&Yd#foD%$>Q7^V$(To*-YHi2MVsK4( zFSc#ypm&Qo?_7xBHbh}@QY4DHW(|@0<6Ck`!0*>hy6%s6RA7Er3^uZNZAvrg{7)l- z(d{UKd2nO9sOELf4vN!1uUyC>&K8si+(ul{-p6CzftR0sfeUU@j~Q`D1Ox&;a}D}A zT{1_u#7m;FNvd4=?p$r3VeYJP7pYK{!(J8|z?Ix9!|60|efXcc>#;mtcem}G*BV<} zduC@b1MG(tTY?>xIaU!`T^qcPNmcY57%wKQ9g&#?N5h=}pafZk{ozSKLWmqOZ^K=^{(4QBB+Y6>tUj_X8!4oH zEH@j*hWaU2u>;g?2he1c+~znkHda z_&AkX9^EwlY=T#GW77*!GbUQ>p0sG%uf_#ly$9N^}g$y(Jd$ zNvj&m87CI%e>y@epUf{>wExxI96gDwr}H}LlTaWu5`Z<0Z2Z(M4&s43DL72thcgwL zpznS(fpVf(&htS6vrcdd3XaKFTDj95dgub1K_e^%6;7w{b%IE1;Q8^ZH3Nwk({-`V7(bfx;FXR^rD@5gG@(|PT3A}tgJwvR`-{y+?v8Wv7)S%GaF3Z~QOQVG^G|MN zbciEk{-T_J%gQ2n*Yk-^a@BT}y>Gx#VjzrBQg*x8;1uQ@I5|OvsF8CPvYW1`Jhj@c zjcyD-;yR!7dFv?GtYQ}w6r6=X?7TQsndWoir95->4v79h>K}Kg8HSfsMlhk-kZYBi zgl}KDU^{Q4Mqp>9|5Q25$07?IRn7${yyAEoS8HbB+b5BP^>qlvz19?2e(c<&HbTqOE_t3_^2ZlZ-#Z%&7o*860-6-SW& zF(ukuwg|t?JaOmS?Zxh-~AY4ed zq;L?b$IR?K#z1Z)Q~#ttLot9O&dD)lxF*gK?6t_9i<_tK`}4v$`-U?8p8krQK~l!h zMq+q)xAZKsd~B*MefKX>DLb_z%BMhvdSTE=bCcJ3_PTNt-j2*7{m}HM{Onv1qSW!5t)Am*X#pD<*ed*e{*1eUv1; z&!?EdZKwEzECC+}!nehsk>Z01-&eKK866b&3g*U*?6c8RCeyR6pUf~#q?|SL999@5 zXPwlJV;Z6Bq=znvmqBbj_Qf?Yl94wye*{`RO%{&N{Q}h;x3}`FKje%7KH?-?T2($= zeZka;sd%k4q6aDjBFbOnDOL81@W*pGuk*^qV`4t1!f6P`9z2mpgq6ti9u(eIw!plh zjW=alU5fDLk!hP2g*gZTu)+ew53%jsl63|ZX!`I{&KU+JM~nEfIqS^ZfqvajRSS$t z&{2gND1{2x|Ao^xiR1Q6|DC+@WQmmw;(OuqjF*8lTS%{9;3{sq2u}_9&Em?ID-!*U#;~=_iA$k!h&se%5zk z%)j_s&dPI<)p-AaF*%h#{n@OU(8}To$Hz%wWk}VP69mC!3P<=Z)2&X$wGS+@y(uHG z7XCo^`cEQxM|d>$f>-sX+^zPF6cP`Jti0MVwhd*Y- zMx4wcUHh@uyYuO04xhDNM?r`gwc$!g*7mCc5)*@zF;f!n{EFYJb0(z;*y%v={EtfY z(5{{Hi(W*>$6v;c;^4iTppR!drY^3j8UA&11_s!#nptbN!boC7@$BEZ3cLgf`-D%h zN>F5oaytfYMj3hs8$L+0MM5#D zWSC+U>m(rGO#Y!9p&YyWsp2xL(P4rK4;99g5Tmm0ipHoa^w@8xiKPyNp2m{i1z$uo zEj(2BPPo)akXw?5AV_e%W#hBsJipt+bTiz==Rg_oFvFP$-@yC*<<*ji4J8+ z0w}7i3B}I+D+#;F;T0Ak;5dwm1=X@Q#&w4JrOKHR4S%SJk%!TLfySqEJ|q+~QhA0M zvbTmI1=F<&$nL3dfkgK%Wc2YUtQ)!c$NCAmN4~ z^8-6}tGq{3124IljwN@f%R$V#p)17}p^A;&Wv%%L;>%rdqy28Rph^!xkJHWN7*Y;D=e0mnURWd(UC z4E3Zkh7IrP=CY+vso3DJYJIg~Q3=iwLK9KDzp;VD@r#*?l$wSgeU@2z@E3LgIfaUA z95)}>!+%NwF-54yHZkP~Aa0&av0yMJK2s`?o3>VFHciuLAtthSbAS1#Om=*dps$P? zuPNr%4pSAn8McN&jsM696~kLBt{q-S)_M;BWnkYJ#~JL)z?5H1~Gxx`Wi-gB(J5|H`< z#RDyCK)g&UdDL0d@khR+Q}i!WptURA=u=Rs+jGH}cDjVf1!(t3@hFK%Py0*46tzZ5 zD~=*^Zf;b-JB^EBv6cp&;sEU#`9q(24C*Ip>s$a_jbEvs&{(T8SA%vH;On$aM`n>} zzA)Ui-1(;#dZD|J6gK8>ytdI$# z^CxQMiw!DAXJ*!Lsbk=0`*-Lp2yUq0^SEon)MICoYG86+vX_k*=a;{ItSz=Q(6q`w zrsQzTIj?jA_W%;1WwW!TH92Vb#K1F7#mPLG-#D13eC~hQdVRyt<C)Tcsz2bI(2?)_NW{vpJ1RHwZ==($nz@2kx^ zdoEkKL$N08tbN~C#Z|{W?no0pVEX%A9kyi3qt3s0;%r1+dcC>WJ(KF!2awN#O~fG<3*434!1I`uciTAZS>i zrn|%^6-F(#+Y<0ZqYN{0^-q1dAggM`$Pl~yK%HbPE|f^(~Q{*+&qM6DCTTRUx@@i&!A9_i~o>0LC@ z#6XMB*V^m|RlwMYnG7Zvhz zX#wfO0fkx-bZr#=zQc2add{!+rS);*NwEkyNcntndbh9vU)}W3GY!mxm)|Tp8dVs8 zt>~vuZa#Bin2ncw{6E?>)n9+*nJ)sj+F_MN-f(ZUsl~iRv11uzQImVjECP^=1;c6#Yad`0*>UOWa0efId$h~}|x|r0wwH9*L zMOv=R`qHR1%F;bXuaF&yWpdO{bZi}`xzD8w`kmuuq$$^#0`Aexyfyz*R}}SD!BDnS zAyW0SnX%!wA03y_Q^HH?*5LMS+tN>;6fM|bz);-kzBY>>70%d^n{y|xI}^pIv2K|T zfd^-H%R8^kX%pAt4gU1@DvbNz7nETzhM|ue=9RA=XGrjrG9Mv=2%FT0Ba)JkDRb`| z1#8q3ZsKP8`@%NNS{ip{f*k7fV&22({XkgkI?NN9G#sSpZ=96IHqeP{jVf0i_xiEZQSjFrc$3IqFi{;B*;rkZH~SIQ%wKV z<`Z)L$A(MIVVCN1)h&VvGY+QUXtJ&V=AWCFZ8>KFju>QT2=9Z$Wg0-lnFwMB&bmBx!gedByqi z^`yES;H~Wm^^{H`>c;B-Q_P zlkKhBX!68Eic`vfTFQ_@g3{p+9|Fa1w?j;CP3&tSzrPp1t*%Zx16@s1#f7@9hi=B* zW|WnpoFkS%f5~BZ7urtR;i!rET>y(v^%yl8ANGK}4*41p2H2dOSLf~7tYw1ii9s(~ z*M#~St=!?#t355i*Z#%QS=!=!EJ7V32d4^O?q^2Z} z{PQL@f3!v!Y^kh%{%#!p5by&1vh^I8G+)|ANvQp>)%8x!G{yudMr^(}AKUs-aRot% z*J&wFv?@UV=Jo%-!6ej>IaI1~r50DB;~aowYj-Q5EyXAM>U~__>P;|m1^US^cc|>K zMU$GIBs~=3tOLEvmPHX8i9R0%g-^?`X<53`;Aj!UhJ3L>AvJR zfF?hOY>86Ytk}2;6D$SqEeW}hCpcXbc+C8vQdK>vlt13bUJ*WBeb@FU6|E{s+j(nR8rG$?5fpqe&Nq!pO(xiB|CQz|$4w zvA|BZRCn2N4zcJjG%)shG%gZSEP%q{LPehM&t*q{z^;+JzBF|3I)hTJ5}OiYnfM*M z$_F0DP)&Pccig3CW#oxi!7(stm|bJLvqUMU=L5&ILoP3$M>+l|$FbCK(RPq*vkra7 zf2RlRik5hEX7L5+&d>{n^;WAB0)WXgW3=wz#dbw#O39w5E4Z3F>|QS~>ma~0Yt889 z^ZCO&Fdl|K3orR(i?Ch+CrA~hcaB%`MLTpcLB=17v#WPN>04Ir&X!r?W0~}9|7_He z-+@+OUQ5?0J0-?W+~(O+{cRRw;rFe9N9pVu9*|ArEld-x8n(;n3I_lR+izwpBqq30^=HnYOg9%1U&^gL=ImX+jyf( zEh~85hQX0vbzbT$f`DnvHjU!jk4SfcJXErm7P7yR?~jsghQoQ_-T|ckzHg52&5q#t zj&e2+&n9qZ)-eRFGk??F4}qXMDXc1ie@Nisy99)Rm&^T?qLeAK8r9Cz`{qU~x4et~ z{cEPq!ouR=*~Oq@2TsQlE3_6DvNt zdGEWxnigr+u@T=yr!r20^}X*n-nT{H2;_4CIgPZFr^U}0#_DR8RB(iYaF4)2Bhk$V zET~{szwHHYzb)}5F54#Bu?~F8BHg-KyK20WJ(7+x=>Tv`mlF0NiE~8nW1o+&&@|>oElXH*JqHuE>ewpd#3`!+l%NsKZt;mq+sd0 zhWO=s=e_XT4(r>8j&#yf<>!7lz(m1|c<#_cp-KS5uW;QuQy>xPRMR^Dp(sHv1#v<5 z^zULd`6oJUuvL?8SzM7TZq030K2{layhSLV2s0ddG$b~(DxbR$AMs2rJ~dc4Zv!(y zM91N-X8oX?6acLbx{+?+Gv4x+cI7Gz)9TgaO1!k*KZh*rK@AD|;6~qAw+x@T0fhPR z+sE^7iX3U0e|ZW%4L;Z#NW*FzquAUI-sxjPWMta7hMqgSL~YEJFFQ0YJIsX%+mCmO zG6~g{M+7@fk_D@-32$hxth1bVUK7PtO*=^IcQy6IYJr?Zwj|j%&AmQ0Y62aFqj(m1 zm#Z)o?3a#O<4<$9POb+uY zVV9t{;6v|>IV&D`7B-Q zK2Z+yOEY{K4-8W1m|PcZ(b4Zxe18+JMw)jIi@{#OOBWoC;mxrpj>)byZy&({@n02X z`7n$fnmSMH4dkTb)oJOw8bf5@L06=+e1ubFKp{-~Ts87im9G(`_VrOTko+H*#+}g!o+V<_b=b0Ds!0~Q*WsPwN zx`HcoJIE|0O&v*_Nl8GS0=wR~6Q*RAUzUf#1Y*p}5!X?3<)sK8H8LF4h=Ej0T7a;G z2}374?;*Qsw$xjJjnwihP)v8wk(3V{4iV&~&RA(grI2A}RyOuS#6Z&LGU_t?Vm3`t zPB`g7gsE=g!pn|}D53fSnFZ`4-6$!RP&Q9dj)C2cl9(REB~3KFg&YnkujHOAC`211 zCOoIiRg!?$u;pgaZ)eMMRdH}BwjnZ?Y0Ow`{k@VygiisJT|=v;p^RLJmakhQL&M(+ zsja~g4bM1j#ibBk!!d|1jZx!KHSg6BekWn=dJxKLuWWIh(vOqk)0BqaJ<2x-_pd=} zj%+FWZ0W5G73@ zqA==QUj6Ypqzq`0sAc(U79%}){ut1;X~{*poo8981uuSn@2XJQVefb>nZFl?j>vxW zs^Q~K5mj%v8roxYCVc>O9gc5>MO&V;n=KpYYg!+BCT1Bi;K|-;D~2^SelwS-%l{5| z6=tb*d)V6WuQkva$}aBD24&O7D2(te`1oji|H4l>=)`i+i0FO8ltzvI_RPGo#q zX$fa6FO#kEK6_9y%U*Um9FBF`HO-{FoASPt=nORdhA8meID>de%U|;S*Iv=iIoR{l z({UKv6b2Yb_9IlCARX5>Y>0YX@3)0IUxSp@-(QnSAP1;-KvjsCU z{`hjFr=z+$t_S-=gtTabD>Zh6H}40}i6fUL0#%4bar5(A%#lu;m#64S?rMT4b5n(< z6Y#s?`g&+T;juJqRJpW>idRO-;gNR#GKENIVGmHMG->$jZ+&Tu2~E!)G(^%@9s`;7 z)B4|8?1@oWkxxXlKVEx2969=@hWo&_tfN#QB4mVy6;hEjI6uR^KkODX_+4`P?T#(7 zP1;?zpWuXSEPsf<;}?Co6va|)cRKx|`6r&lfBFaCp9Njx4)fe{-yM@;`hC#trdZQh z8PeC>&Bxbq^RUBr^;8Lcvv8Ypuj3lS&tDIWhxAHWiggy+pYK-n{kFMlJDf0%*LFpQ zE$;LQ0}uK32A_GSrM6r*0?&DxCd2w!)l?`QHXn=vRBl_I?Ck9^DuHUH$z+Kv$&x=6 z(*z=26CkSKA;D|;6SK~28%gn;s%f(Z@WC@q8V0>-CTAUqqe;OtNvP^>(s<>FbaxPp zv+}xj${noc$Tbb6)-j+byUFN$+Bts7YBW)(Nni^$^vk86{4EkfeibHF`t&$NS~VV(dFNEubLH%fBha_sQ>Ta7)c9Q4Y7Wf& zaBps8cbmJ)0xoN=I{^BMwaEl{(raS=_ts>82&+VI9E;suvX@FWP16&|!%Y<$IK3_; zrG+73kS#MP+o+ha;T={=xK8{iRO5jlzUnuXELKYC^T|F#2JgVFO7RN0Yod3KUf+qH z3v_-Os)@1NLzM!8($%5$D95Nu@6`^C!6r>~ju<}Z9Yju0E+1Hure1N`-JmjfIT>Tt zfG&|Q7;kc#EK1K#2+g(3l`WP_rA8nOAE66Ff0$_NGI{N#;W=9~b2g7p_sA2&2*erK z8-S1zkQl;HbGxF^wvOV6M+@dlxabTU#iuB2VrlB2X9W9{^S}tqmQ6%w)6Pn%X^e6+ zq431Or}5HlP0tV%VAVvM_*>-w7Y44-3HM?vP4ZkgD?<(D3YrmdJYlf?Ui;kR zWIxxFOE9+mtxOs_3A~I-G;&S_b86CJTj|Ptqxm>{B>;3Q<khre?JVQqH>$v{W&0EjtfTo6!sYsBASK!2Ehf6W~hAim7I9b408?J1@(OuhT&gV`%(-}gUQqg3%V{Y1o&TaskJS~ zaFSk5<#D!V9OdNMx5!| z!D(88silyERYt$>wKBxv29fviSL`UEWcgR?*XN3T>IBo`(Nt52GQaQtVyHOXf{VC* zUaweJ3DryWwzGHGmEzzx6e`QtWy3HXSqzF3R_gW5BTirg<$*z+Y>lq40ogCa4PO?+ z&h{?!o8Z`KjW{2!Uf-#m9g}47)N;Z?bdNA@2rAFXVdyNPr3+kNoN{@S$~!5N`0i2{+T17!XH(Yt=4SpY zv0Zmo9-&Q-p3H7s_#{-%W8X7*uHddCN0t-#E{_s!8vJrl5Fq2Z2SwIdkU}8MbK=TN zh8ZN@HT6@Jd8bbKEkAcraiZaGzdZ)|Cr;v8E@Kx{6mMV!@g8khw-*;nxm_{i%BM(E z?4!S~93*`+R#G&T*i93ktXQX9<2cJm+y%gLvb$F%cOoJD1ZYEi=co>!acqB$#QpE3 zrRAhJDC{NOW%6(AG4wx|eaR7h^2a=-I3S5w@Sr%DS40eTxOp5pNYSO7L>l!y*~#2zFTm- zY_-(7zcbE3zv)+0t@qL2qnfo_>+BJIx%g=Ce3j|7KZ_Waw_EtVOHl0!KX1raG{z)* zV*jRNev8TQnWLY3WkNttFGs^RzE`ctScv#@<)GD9<&Rqm`V^Jad-G7=hr<%1x<&Lqi%g&qAD-Wwd8V}*W+(-6#jcOK5tDq3=`VIu z^4UomOj79&(D6-#@Vu_Kv< z#I)}d+undJ>uz42FR|ynaSH%O3l5oYtwg-K_d!8r%C1xHQRp}P0dN-VL69lBsRPQf z^p)3RhA+8pDeS~5RvyP;*63mCh)M|TL3Xi_rMVAH-pJ&HO3~~=G);I4#9fcvRW3tL zq|n;E+)T{_5E)z%0X`i7+5n(*WHW4g@IHd^$~mlor(*-ok0Of{64T(thcQ}$`?C$nqVBzy*ZV*@&r=SqS`k@t z3X;2JHYy?M__>*i+&`7N41>Gupykw|95syr`8fnstuXDpc|q)$_;u<$>@Rc*S3F9C z41K>il!HgCLK58gT|=^mAST-@>Fga-Eb%R;71BBASommn5lTic#wSO-glG?(tS0Qr zmehz0&;jlMwsE$!&rJm+8L+Z;p5W5SK^)nD8DB}!s6W8`p(4|R{# zp)PQw^OpExRG2ABRi&4kD~8oIlfTDd2OGtxJN=8q8BP7khj4WA?`iy5O?Zb<+Cy}m z`=_U{64s_susD^R!gP#`?Li-!_`3}E;I)y(wr`v^>VG%N<@U=?nxTYAzzZaRDaViC z9bUx>L6vGXUw~9_b09GtEJk;TKEz&ym&hVR0zbdP{o}S5DeFrjoy@xOiZ)Z*va97= zxI{tC>M2Jo8sL}Rj}jNRz(^{ecVI(GJ`rSX>+Sd>novh-6~T09=CqD z;9jClE3P|~a6U%bW*D-6iLKj=qsX8xohvj(o`=C+8IUAV)%F9`AC}>@A{;G;nl&(< z)u-(WWaPgQJ{`(_-_-b-dg!Bo`Wf>xg;gqXTVCW>$6ZInQZTGM(ARb#>q z>wgA1WcBoQzB2FqR@#!w>7TPw8B_&M`ay#YE5txwpISb}U!=eX=g#}ly6j;qG)GF! z8OHDON_wqRVj9uUsKu&7Gv>{x+e?TgtPsz4-ey6#>$vhsHTq)G^>DV#|Jmu{mI^%nnfY{YD@fW^2J@$z`TF0U8e}HsrI&u5aMAC-c`QWbV9%R_^`c z5$}f!ibDK&*|;IoV$6ivG*GE^y|wdThSNuBUjy$Oirzhyt_DaV;@y#NqZKY!ci(f$ zm?!YjhG-@VEK-!Cb}DlD)v_W(=1Yy*f!APi-G=-_Y`#=8)^L1Np9R6 zyA*nrWJ1svHF5cWA#NUm0@IO*xW7YLL zgjjcpTkm4$Bg!;F{oRe`VB-;vA3T{(T=`Ju`c}EsN^h1UFZyUsDx1BEKjywtdjjyn zl)tk@h&fydQ;rLO+V78Bey7@W-Y#f4TP!-*=b*ctUHOL>^75Wtp0zE`#G@L%y?he% z@Kd3Jso`pWo?O-Mx}`9D8{|FUsS;Ee6;^}yS#5$jzh{uuy76z``alLhNp|{Mr8V(H zn%eK?KA=h0+}qq+7m06g|MnPpkbg36L?dtW=?TZ}q7Yjrdj?=qVj;N((}U-H;@HL)&Df-Ig-XMJ(s6|v@KLuxHqx-VPv?#R3AA5Z`Y6XSq&(;2LqCZ1 zT1-Nv#9Uhs;+1W+uRad#=Oa~RRxo~rr$2vMBkIxuJ|LK-#cgG*+6_D(d>@LE z7~f-7x;N%ZJLOFQ_I7a;Q78s@)TN4kJr+M=Ap;Hs~2VB8YbEk z@TZ-nK#GbDMg=~fukw1F6HiC~gpJt3D%17&OtSIKDr5Nir!)Pkq)u~7`^`US!_YR- zAQEAK+wU6g1tGep4SX2FvU(W83C7lCh8-bOTA0(&O{(5%jsB8IPp|96bC=Vm#gTZ5 zu-EXyVBi$eLyph8WXo2_LBVSlKuJv&%XYpQNib&1)US5=x-RH;eBuWfH^JZ}G?S0Y z54K7(unqofTK<4Ny7#hR7?8M7#X5b;)B0>A_A_E);v>W?7tJTS3U#5NaJV9gyx$&m z5;$eZbXZW3c}MC;p9Ob^8``4|8T(}50T#hpfT3qfL*F$YTxzYGfQ&3Hr0*ncJ)Ek4 z-5!`qd~9zGXk7aK?ki5oXP8Hh5>1#H<^CV5i}`IzJT9nr(q$hwHc^oD9#%n%tp%-f8`A;rNKnHChk7`*NfA=z5K zRGJPM;~xp~q-<;xkBn4bC|&DHSighXhljW;*Wo8hLNIV9)D889bpIxcffN$mm2}VVWpAjdq&co@4z!rgOR9BQCU=bK}umdg% z&v?S$k!f91b;%k7Nj)Wz(L`n#VLiJv&7m{N{C(=!k)m5aDiWM8lDX+b`&d%&!MZhr zM=Ojl;hd%-zn$~cY;?Zr{5@^i+_QCT7k4azqX$R{y@^>9h>mN3wUto|yUzznR5jv@ z)o>vpA(ai}@E>byTculc3myY5LS+LGQ2+kSI*hZn5vUt6{P^ZvG4%^)d|Z%?%&(J~ zCH`IY@aqHz$7Eyk-;P)PsaC8_NErLK>6At*6NXlmrDEmBZdt&bEAx737}X^2_ACMy-uoTplU< zCZ#fo?R3O6mkEV7iR~cOC;a?9es9021Ia-d5a~ZYPFiiAl6wd%M6;DLhKeHxkDyyt zXarFt={L;zdi`@yFn#p!)r&TqnbUT?<&;u9f0t{KLZl?A2;ug)2=^wJ9OlL2fbNhH zpOiN&1(>z#nYUWxS?BB+RAS(FvQ8JwY>0Zbq=^VBx6_r+7RAnDbn|XA${lvN9(S2VtDWGezf3Ix9xh z45Lx5DIf7pxo-~h*l+_ePP!R{ZYammU!7t^4SEG9eqv|r%oJ~%ngK$97%pqXljz3( zoKRmBV?F{-U>;Kzp=)60`kqvRNH@Nb*PIFF2kA08m!+}aOzy@B&$;fnj8RWU`MF&z zJ?uOf$YZzzXYn}z!>4JA{d=!oAD?Gq&h0CcTiDR1mUy4quRq_B{wl)jhUfXiiIuX(`%l(|;mxr1N1Yf?hK z#_5r0ADCOR1v%~3cR%p`Rs||qQ+VsL`*+W}dz=uKPOM~9-p4b~uCY&s4}{Spl}*H+ zP|Tiq`={1*WR~YXcQ@iyQEnGe=WmjyE@$&pXpFan8|U5=LEaDGnW_e1KWCk~mVB9jP%qGC(n!Rtc(VoHe^ z#)QpSZnWyYQlPP6;{Sbe)ezsD4`V<36ZRFBN&19_n z{T`S<*2yKw-QxPnS<@7bCxl2B2nPe)DN~`k5AfndTg#aSe`AoOk||w%L&Lxl)7wTE z`!)>`*N>!G9dwA|zS{aa{e)v>uu9VdqWdD7bCHtag~Gs6_OPvC&w&pPcp>>6Hwk~f z<1UxDu;$51!1t#k)>yJahdq)dRMN=v@Whb>F=MaKGAOz6G z+r(pt+n_3E@1yl%DqmZi7@zAaTXx=aB8@dS&C?X zuo$${<5P!Hb*Q?RT6?b8-L?RV_3s@e0A1DGg+hVYyV3l7b+S+(VcZ zr2+8RxzxLY*rbAZ#I>dDH!Mk6acszClhK6gCcXr;-=KFnB!e7UBs(-qTIMB>qbwRI zE`xydMb?IakG;%CrGXmofU5fk5o5nt(@8`iI}`BqBp|X`AS8?@AmpP)c<2^c8j_eE zI{cS+^I(K;hlv-HlFXW~WlOPXr&>MlNk!jgR32xwI=g4DU^iY4^@QG+!8)hhkK1Sg z{Y-V8<3>qWyMa#(tQ{{p*)?z*w%Idb?{AxLOcM)CjZ{tw?8+pWAi?&lc*pA(o6Lgu z8@#X$syCi@*6N6&Y3xP=H7Fs+;itQjZ=Q49s+InZhCr?cMSk$oDyuV zpoqDvTO$elm6E~vOiL~Ag?8=-B-alP9!F-c=Zcg}AI>{>o8}G@-aFN|ct`gAXQ&;6Cw&Dttu4WFE8H85od5d6QF2+g~;w3BN9z0TU?nP54@v}poOR#z`_s9}> zh>as{DY0_K)9J1%ZPx9<-q9bEvrpr!U%bQMxrC02Z1)LPxZLlnL`pxE3B#34Pi#G` z;fBO}-H^NXhkUA4-|0e3Wrw7b*7z7y-odMpw#4CN(!wZM(-H{dCl#D)?aboLd}57T z>ssZzp!9G)57R>Oz?Dn&a0cFS<|f!&4tbr0mqek0$c*EF{aj@aUqO8ML>>@kx`-4r z;{F_6OUCcpo?(5Abxvp+$`+A4qUZ02E493tj3nbsBd%kLgIcKl=ONrwnNdEojm0)f z+Yh-a_x=4dpXOf~zfX1pZ@&a)N$Ef;6rkALhTC{xOQI6Hy)y_%yuqckr_j(Xs^ab~ z_AZM(Qfyv1QWkq+_a{Y8_Obq+s6mUYZkDZ z#z{etGIJ1_<(G#jm&FuDk^#3Cxb;Ysp&L@hZo1{FS7f6sy_Bunw7BaO?1|L#X+QRn z*)Rup+ckcD4)dJoVPPRatk}F5wW^cncMKHsVjO_t>MnD|IIrarm2xs3f!}k<$G_aN zC!TsZ`NQuE>OaXfHbS6y;A2nhb*}6!OjR=8ApsU%y_t;C*R9ElSZ7UF+HJM_A_|E< z!e8WoIQ=@=f`$0(+2Zp>-(al4JAa%`E+*W}>B^UlDXKpS@l662t2*1$ot8aAXGReP zD+?0E7MGHE)I`;@XX1}^RDgP&58z^OY-XoesjzQL^HS`P8M|lr!}8@X9Va6tWD{V6 z4=&%hkz04WLF=KRQ^Wv}$@)?LD%jCMtB(W5fZmr)wNEMQ+_+bt@^wY8VM^OcYue!1 zQbpBQW!71NzPR1Wr!k=ZmA;)6TzWyHZS1@LErM`-8CJ|}2y^_5 zu})Q(U3EQU0yj<;RlJt?W(y*0>&6Z`)N0{ED2j0T%^v=8{6Y2iy zrwre!8?TB#j?Z2W5}BQt_g07PuKJRc!Cjl2jBVc9oB;!7g| z@V03y(N;P-IPu1BRlA=w%s(W(X74qoTX2ONMAerNoeJi*X8lY_SfqX%ZY{E4csTD$ zwDT5)VX0A2_~XC`&76bEh+0?Qc^cV)p2SGQbs(tds5D+9_p_ef^Y-rk+zpc=)knRP z;d%-a^RthM|5Zaa1a!y!=E%Hguu~jy(Ect3o;`LN^Ht{)B7{jf@GgB1am{0SGY=Nk z20>l?rPk(^$;ds_w_Zj+Bq*%@T_1`>rH|d!{|=fE6K~25?blGW?;U&ezOJTpc{)!r zab@-Tv$kXEg4oPxL-Vee*2H#@!}o)}MIeKV$uiPX@aZ^s;0NZ2XKI3}Tr77k6|w$J z{55iSlKLJU)!dtePbn()YAheCGdz$T5q`BIvLu$9ZKm6#dwOm*Y~u~FXA1zZ-{qNI zP#-1IFN6ughil=Epb_c_u=flHqjQ45ITMT2{ax-Zr)rmc#MM#GPO~YqLhVJ?^=j`^ zR?&)=*M8NuGnyit*U)16e7&%>=$*mGI`+D25R`i)?Up5)^1Jk(i1TEmSJLw`uJgm- zNi%8tI3vMBcr?>5^hGZ|sp+QAQ71^aT($uLn^$wRVw2L7$`(TFcx5c&F0`X@hq!Oc z+QZaqr*PY*9ScHm!mFLAz_zH(j!Q}N!-Sr_V%UjObj8E20i)b4?lmhNXU!LNP*-)$ zraIro+<~rfu(=Z?e z9HTn6Q~5j%%ll?%DLaooJU50OY2t@QYd1)LOG6>j_S3h`g=d-r<=6Hp#niP{&h}$` z4aly&)~u6_-8kdRL0n*~3 zS*YB^QFhZ2ee$An(2A3yhRj7bxv#Q|R2FK_y^RLsq#krE(r$0iq=P6?mbZg8(ZGV5 zr8HRJ06w@_<1hpk%~Ap=<#({;f|gtTYgMG3unqX2HP}f#Us)!n)~d(~r~rfrA3WOn zqp4^XG~=&6|0wgD2~!(G%ElU Nq@9axvrTZ;{{XRhl)wN0 literal 0 HcmV?d00001 diff --git a/builder/export-noobs/00-release/files/marketing/slides_vga/D.png b/builder/export-noobs/00-release/files/marketing/slides_vga/D.png new file mode 100644 index 0000000000000000000000000000000000000000..4500a950d2a4f1331f6ac31c1638adbb4eb58375 GIT binary patch literal 95581 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≉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 literal 0 HcmV?d00001 diff --git a/builder/export-noobs/00-release/files/marketing/slides_vga/E.png b/builder/export-noobs/00-release/files/marketing/slides_vga/E.png new file mode 100644 index 0000000000000000000000000000000000000000..e046aef561b7b4412ad6fc8b5120f385ef0d6575 GIT binary patch literal 81081 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%0D5imd0SB)GLI|*X!l0F6>j^wAD%3d~ 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�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%0A9xs6ZTC+uLjREE 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

nVwvI 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�(<-ps=)A#Ft~yB1dd ztMKQ`+(D0-&zrD{-~+T8F$OejXu;AcdKktBRkmbJYtQQ>f?>THu5 zuU0Z8DF~=y_~7?99>!gAO#`$^u7Lj2%R*YU!FJEg)eT0mTC}KfD(xcSwP4%$O{WBd z3TJQ$={!7_oGE;ZD7Xj0p$Q-S!(cFewVin0-rnGu*ZE95HC64pPD0ok$;MMt#|*yx z6x%n-mg-y@nrCjsV;;cizHFwA-(>J5BVDR&XB=S^rs7*&RKSOR_+wkx=M4`0C(UiD z=<@nC!*gkw;m)~tf0C+Qtu|697;Xa3u)sgKmh<&qlDw2Qu_$?nl!6M4A-Oy|O*j=D zW)`Uj`gAJ#B<;64MQ;r;^tO&qFwC;Df?@Z(ab^4HH&o}JXpfCDFdw`$^n3fZvfXLP zX6Q{}D-hd!rdSjuWAJfIDu1oPPLodl(x2$C?B&HjK3382++qUH1zHCZ^&)V0LA!na zl%gtR<#-^wyEMLw^O&^G*S&`WDvw0{j^%j+TWf>X#TSs(U7dHC8G~mn3ooLO&X}X! z;onK(xfW_8{pFgm;KiB$LwJ3To`ST| ztb$fa`k?lBK_!Bmc)6t>b@k-T&Q2cwMS23`?-OzX!?|xyYh7*$AI73i_Ke@m*hp#- z`;QU@Vq2D>q^K5KY$;m9X}KUPv9**7XxlLiLoY~C*Mv3;MF zw5vyM7b&Z!gpR$H2wMqTsmYP4_UZT6R~QYvKRUm9diWzSQ`Kn6%1<%@FI*)JVorEA zrdy9aPuHx#-XjY^K`QY0xQs*-7x4KomGSACUE~jKwB7g^Z#5%Tr;LJF&zu{yU~USYnLqq`A?dV84^$A3-Y3UD7t(RNzYbZ$!;WO6cz%qlWv2jc6KB> z{>}^PU~z?@JwFt~55uL|CHVV_p802+zL2j=N2B>8e~$l2bky#@L~fIg{|VjKZQ@zQ z(y%lpK;_Rl4Zn-b`R}q(v<|#dxYTF=QKrt+*!s@^wr-=<9Fx_DOuYMn2_z2~tah zj$YRDO`=SrMlD?6T23Ks6~%;&CRc?oW#}zYMNp>!i)|NVsB7E3Bjht+Ok!F4r*z!q zwn&nGW?}+Cnh`c6v)Nm+*06jb8h$X89C2bY)+wMLi`C%pW9x0&1IQ-6mjrLYOYq3Y zcZL<_CK`lpZPMZM#v-4g%jh@@T4D9YsN~9m(Md0Pi8K&4+*n*^`}50+mpD;*6dMp! z+V3+CqlFZGw~N>_pSB3B^mg^bfhx`^MVw}+-ZiD8Hwbj4kya?-)&*kJopm!4vF~^S zS&$md*rJ}#81s+f-zcs(MQB)=u|(x1vhX?<*ex)ysJU}A4?AhduGEgpFMjcN%UE#< zOqCR~U)cvv30)edeC~bwWXy|R|Hu0IXha^3&;eNq$rU_^5FLSO4IojtCM{G%^Is@y z_rj-qzR@*4-93so<_`Y_HCG;Mnd-Aml)8xzpXXqcS10!U^U(U$;r6DSAu-`YU$rxg z6X_R}XT6d7pS*yEqK@S{SQBIkE&EE41Y3h?ef&IoL7{~nu|2wd!r@G+IuiSxYVGL`Tglw7ov zY{`abmBkA6)|-Rl!>}Mwe+>*d;6z1rZ!}~lRN*B;>3p8%^xac1vb6BZN;`rfoC#gj z!f^uRrNocsqy zHb|$+qP8bEZmW_nMA}XhNEYBoZ3om~$kI#ou2EL4IQ{NFCa}p)R#snRDy3(xo38#m zXWCXmD7d%Aq6{ls2-(n{D6dAR_qWIop93-LR=0wWa6XW__Q9rrgr|clWeKo)Dq3el zOSLT*|(L0T32gq zM9l%8i8CARf7iG7PC61=NsnOUC zVkb1)e6z1s;1`{000#JIiI)Zkvn6?UXtgy7NhTB z<3&?LPZWq@gRl-0Elw+Fp^1w~kd`PN7`|b}S~BGNjlKTc;*l zXicNVpN@amLSbcrW54utM+J&beqE)u;nHp3{{698{-VT-VDo z?>wU&qp*x`r;Jx%DCU9!9NUwd#^Z&mKCb7h%Hu6mG|dmKkrPrOC12m@dvaHA zZrqyTU>~ZvUUuJEdQ?tNV9oBNDo9$0s7g&?|~A-y5^`K?XJC!^bNJ zG%S}p@`93@S}@=}#zy4q=sRA!;nC^xL^@Uug?L`2YF|7bJehRHq3;6t;DVK#+l~|$;9_Y>u3xmPMO?OAm*L@a`SG ze%}_^J2(2|KF}NfixwPzIgay4dPfjfkYpYBvnNB3Yd6&rM~Oqh zm#0b3QB4p}jqZ40pMPnRTY5!_0RhaW0P20uc8YVam1g`oA7!>)i@W7Xx(KOyD8K7x z7$;sUDrjArb=9t20xD;3SD~Z<4M{rg@3w%3Vbvj+A&d}ko;04%i-V`iD1)oza7c6Y zJJ?+>%;O~)aV2Io55p-F>NZV#_! zdGh_=alo8@@oJ`cCDMeyaK-v|Kc*hMikX#@)QXra-|2Ik$K(3i`Q@y;=Y7_wIMH?e z$9gX5DJaq^-w^5?LtRT*rxarw3l`$Mx;m%SiuW^9Na>mY6{#N!Uyhh?9rv6od zGLD)(yu`4$0aqV8me#CEt`u3%h_aM2N}Se4+7K6B-uG(lVrTCcha@h{PWP>FamBC? zg3V+Dabd0$i%cj7wJOR_z|eDg>34^sPzq#7Q=5t~_DjoQgXS3*pi!xzktkyb3r!T8 zF|r|Ii;k>Gqx=^L3skJE5O@sbg0cf;2C@>L&Xh>lUvT+r1RnYa5 z!bkaaxhv&}h@beKzFoMFnF@nob<+Oh-vQ~> zlS7@rbdP2^5Zv&a7cn?5VhHr5C`Yu`O3q}(Z!_~7KE zJWiQ_+ZPWY5H!1#`)kN&Zp4Zu7+u#2pnI}cIU3Msf0z&*-w@#2pC52n-{EHUE2Wv! z`5axefU7YoaXZM3*I_{%9Xc2+;2V@rOx|L;+$nGo{y=0Mcb<|9=+C|E-rU}zAUcXo zP*GFMoi)gC0j~bl?G~+GmBtTC)PkP&Z67qv;S=U9*|;i_~U$S&nH z53s{^cW-X2n^;{3(y?mJu+NjNfB8ZjC?_eVNukDk`1(+t%A0bZ1-Rbyrgh@ z6cH=y4eW8mwh+tKD^kS>gROiR%ESn&A>?XU!tj>G4(q`E3$_~~!46TROh88rDa+Rc zhDpbS6wN&pGvZh3`gToqt`k4-7UD*!R0$Dx<$$Syz2)D2npak zhHL<@GJNXHV)uI)!2tws84S)5>=2ERd(5f0*P^m2_@do_ddOe_l;d@mP$wvyF;9w< za=z|2xXqs4k=pK!98~3b@xqc}1Q@A!0l@)1{0GkUEtUuEU&`%r4uuNYaUhFX2fz2~ zp4&5;bR9h2O##z+kpp7~aR-yEky5FD%SSb#qi>k3Fd5(&jr|lLAD~ThJtMoOS=@mbSI}NLjC0A~JI?)8GhG{; z@!V9Tg(fTepr&n!rk^`Nk~gKp+B|RP^m3b^Y7&=W3)n z=e*kL8>1#txg#K}mJmY5XDOFs*V8N+2cqhWr*C|{lA8FsDn$rhMRHQb7dlCC**hZV zNS_)dHnN;U(*QGz>xtCnO0Q<2EC2OWX#!59zS^K)zPJ>UL3PorL`;yE{5C0uvT|V( zYLCiQ+t;x>T1PwormZV{ai8u;@RQfAj-M76UBkov1|g50iH%7x|C->V-N-@fYFBkP zw>%X`hnaX-9^|awKsq#xsEs*b0vqt#=r)&X46x@_N5RXqr%wmd3-5oOb1bf8Y(+8q zpLCV~SaTF$AQtsfnGx)x7PS10x>wA-{DZdt3C_5~;S8sSS*G$g4K@Y%jvwcC+i&&B z1h7%FG6(UT@K!z|T9k5d>!A$(EeI212ucrDZXVIVTlE4ORslAiA4iN+Jruxgo#L(ipNv&J{MI~Da{62%0i)#Vh^Ve2-tpvOL?J45f8YKpwp7MPCvGnwmf!*>% zQ60YTwZ7x|#49Ju>YXZKP!>Wk=?1!?Od$9YZ0pkbby2ZzC8VMq+XK(0Nao zSwVHmeJL#?in35;&lXi{2GLCUa;y)i+b30&fYggDv`ZNW_OsQaT*#f|DR-<-%k65_&&TMm zPs)rErkoQu%~TV%f*K`X{AGVo2m$>#78=_eP-vQQJfuH!0vaB+nWkS6)~w&X1(4jD zNZG1Z)WI`hdHv>{;Zk)x(79!wtfYoSGj)G`7dj)&+J2trGk5*(T=PBaE6n;WsF?&n z$l1DkTF3y$T%xu3Nc`{DK;+m46srpChns8C>?owj#oUePP@GaZ&Ob@)FGv34f~&^8 zG}J+V%b&Vy>jS^{eFJ%X;O7o#&WxHu*%`b(`~G!C>tdaRqc?}Ve85n134d(kY5Q?r z)Z0pO9z85vXbU-&mRULi2(OQGd0B_&Y<8)ssol#N;*;@Xp`0`y2Ra`*^A*{rEAq&U zuDM>D3BJ&)_}C#a*UlWqz%U{3*;(7#7nGJ}(c?9CH|7TAqi{I81t-iI?GBDq=ZL%^ z3_$B;>z|O}8^0NoegFPlQf)X*flBb{;$V7?Mb+qndUBOrm}mBE9Wf3CrKP1MdBRdw zHbv$T1p_w6%*z57c+30CthPnEtxgz4)=B(g332bW*IzAXAS_Y)@gIq}itOEvcR^F@ zjne9MAQGw>IYQg25~VR#q{Q?qiHnT~c>AGA?vN!3z;5w}NzFj!{kF7yuo4r-saX?C zZEW^>Y%N8J4|z7cES{Y?PXss7%Hw&pXe1kpO9WI2?%@UVQtRpp4+NJ-Z+}OtY={5m z%es4@ktN|@$WmKl&jl%X3%F$PERv6b+im_{)0@>STZ2|E$(8+_`P=n|Kzf`-HzzTr4li3ON@jJ zDS4f4nWa^y;|&K{uFzbk%Iw|huj`VHLEfRfT#5Tf6wn6N^}+^s6s$w`Igc-PflYE6HEEiIzXb*mfk!DpR82K!_K2_V!9 z-YxDnFzEWP9sH39AQ4Z;ok<=%JFzUL8EUe|l_ozIwZC)yzyE8+cX|BrUx z&rUKBsQnR(PliHc*nc8Jzkg|QRZhW5#8XC{n@LAOQF+$I%QZBq(a92s2cp=5VoRAy znb9@C#*o73w2v1TR;g1Z&!0$&;?T8Y8%=CXoCBO8xh>;uFdQP87e}T!M`cw4%4n?! z`h=zY-rWf2z909NQ7WN4xVE$}iOkCce16&J>N>S{FlnfdDE~M?(AL($?-U+gYsLe7 z2OQj73yK%c52x*&_uL%AU9A63A=!XCIlU^PYewm&I!gZAc36 zC1m~9l#KALOi$v+*KY{ubfmsvRY6r@HE|82;BwKpnmi+=n^E$FLm0!!a@l1`9H02H z`QU2R)H>gO`u}RX&Y&i=rY%?yK~O+I0_36yiUQJ+67Ho)k)qN;1Pp>P^hhWPAWDZ& zj0qqmpi+Y%z1Ki!(h))p9jT$WK=^WJzQ6Ck_uU`o%>LQkIcLt!vwL>tSyvKPpb3}U zyC9-a-_j_4+V>U@iXJch%OMK?WlznuuHE8?|8m{s_l>Z+n*oiBH#!w6;5Bmm3dRwBeG(j8nNYEm$k1reT zAIQh}%_FJAsYj|lP)(!txYTHK#9e)}2?k#gezNsosUR9Q9qT<%Q_=Xn;qs+w!H#YB zQwfQf)C_5*e})$ohfal2Rai;WtNOE7PBjpB=acD|D&}-JCa3Qa{mNUE%D|(g$T{;h zJle~`sofCe4zvPX4;>xPL)HH%J)@qUfW)SR&nB@{xu>xYM?hWJQ@2N!h$Umh3cre+$5+mY-xMW&e( zazG75%fh4HV`tAzz%Fe#CnKKZnx$KQWnFJ;95bI(uVR`dH1yv&^tOj=93iFa4f$LAd~cH>)dO zg}_O+FC08yeL`vgl*5iYDto1}0nHRyS>Fc8^<9_Vh>YUe_R*cCCVA=7lBlDk*M5G= zN!0%udvfHL)P`eW=(Tw+FDNwOX! zs3MTcMvW1C?KkgPJ?dQFShbTt3jD*%&P#|e59lTpHzhSrOx!Y3-MJvyaLCbxH|=Cz z`?EfM>TUE8RM%J$1Jb*^xGE8hlp`!Yzz=>q*>9Yrj;zsXTvABLli-ac8ewY8fL(pVeA%zUe`U2GZkP#RyU^6`y6 zuN^x`Ui8^Rq4`PU-AB;DHRl-L<(4qbBt}e`Y5m#Y(&+EO$U7%f=7fAyVyz!G!4?q< z)&{;_o4rX}7|A{=SrVL^Uyg<3!D?aK2G|7ieM5wqxRwSgkpEMuVIRcmJs>9OpszsgftvX`TV=eqbH@Irv(Fhk&<{mIkT+aV>Xrj zO`e-0Bp`mh=3sCt4*Y`^0rZR055H%gmya>q0@ZalGU3c5pa~S4kIH`_Zglq6_~&w$ z=KcWrzGgSznrMPLd7t%eTn@?$yG{0s-oS>Ul=&%4L4VJxj^@uzqAA8NQgwG0f1 zVZ~%hcHZr=#q}=a<`+n-0qN|hgj)X<*3@xe`Zo#p*&l<>&zrsA=t9Z3eDRXh) zvIFlwRC?4Kq`|a>kydq4b=Zk{ek8U7gRYHw2cJjO_^x)N*FYziuNJ6#y$;bgmI-46 z+IeNFnZN(CHas?J^iWk zTutB!t9IyE5>9ZIDU3}@sw6VEV3SU%o?VY%61foB>L+~@VQWIs+R&X84o+veH9By3 z$aQw4cA7#_-Q!J7b-@jot!`K;SLe9B(dV&3YH6py*eI$!O6odp`-arqDGQ4@Vdi1F z8jd%OMukhqTtnzP6!Fd~Ha&*VWqBCsQ0Iwhin>2H@b^;yP|GjL_O5WHNy>T_IyJi} zGj(xzf4687-D!4=jxJIJZ-H!Nr=#ygfc0JYKhaIF8C!opUv?4D#A%M#9CfbtX|kAA zBt8zEh9<+oI>=8ObX?X@pZ;hi9|-bzsk>eE+!=>uU?#MyX*I+eR2C8`~a*r za_gFVJfTexFj|^vz3$8G=->ZTNdjaT{?UkfEo>~bzpReRfddIz1CpOwm(Kftg0nMU zYZFZH;3e@=r#b1dXt~ajyvo2MkJ*swWmc`4*W;hyhlt-}MQx_%2A2+4Ufk7>iGBLg zrq1PhxK!V$>fiF_6_CCC5hOJ z!6RV*{^g8Icb!iple@PM0?%wo4V1fTr+DCsgGk=F&Qo#Sfe^;6EKZtPhL`F!iv&TM z?h9+XYoY*_C-NY3&Jk`QBxZ)Szx8_ zbzyEa8(O{pBojqJz-Y_h+nT54%G(=_;gWO?FvEr44(@_N-l8@^f38Rsa#V-)v$@F<=b`-xi=xPmZ-Vx zSn!xxkFzhMVXS6Y6C{7*i+OXlBetC{`kDBQ>xU5p?(VrxV0s{EN089fWl|=-YSU8| z#00SR`Ce8wth7e-SxA||bR`_R(}Z6GO>`=sI6`_}`xcahsdG)r#`H9oWopr8nk6mw zR@gj7idr@&%3Z5>Lafs3rLYlU4a!GKgU}nb{ZOiLTR&4wS(!&p?!~|^#YnnWf1hm~ z@}fvqcICrIhI=4aT`wcywDKTX_%d;%6sG0>T-qkH0jHG304DiycG#BTTRTkJEj6V;^9wG7}%M2Al_eFUY zCj-%-O7bz{)ZF9R`3+^FB#>&RzuQdEd)#IU#M-sBGt5!Gv|*#Bjh23;fwRt|nf>&@L+-Lh*UEG6vv3^Q2qle(Kh=LtQy{>z1uhRK|;Y z@e##kt#(20gT`(tzt`vT*ju@=zpnh1fs+o@Pt-5(va|k#^-8SptuR-Zq(yt^8yal) zGXXshH|@VzCA(4iu3xVT6Lm>g2;m9r4mw3ZAkfxC_wgab=Z=Reo;C;xdclQkx^Doz zYo3Snq%l6@nlxjOZCu&DvIAp5dT!hbsXiGtRi|6gX6P%b{Q2wm3_kh=aMDxCVxIqg zS68LZIDbcK(zSO)><^6I>jKu;r$5Y?ane;#R4bDyO;fWT8wCSz_!X_Ee5#RCx>|;s1?qMm F{tr(Dzo`HK literal 0 HcmV?d00001 diff --git a/builder/export-noobs/00-release/files/os.json b/builder/export-noobs/00-release/files/os.json new file mode 100644 index 0000000..afa9f9a --- /dev/null +++ b/builder/export-noobs/00-release/files/os.json @@ -0,0 +1,20 @@ +{ + "description": "NOOBS_DESCRIPTION", + "feature_level": 35120124, + "kernel": "4.19", + "name": "NOOBS_NAME", + "password": "raspberry", + "release_date": "UNRELEASED", + "supported_hex_revisions": "2,3,4,5,6,7,8,9,d,e,f,10,11,12,14,19,1040,1041,0092,0093,2082", + "supported_models": [ + "Pi Model", + "Pi 2", + "Pi Zero", + "Pi 3", + "Pi Compute Module 3", + "Pi 4" + ], + "url": "http://www.raspbian.org/", + "username": "pi", + "version": "buster" +} diff --git a/builder/export-noobs/00-release/files/partition_setup.sh b/builder/export-noobs/00-release/files/partition_setup.sh new file mode 100644 index 0000000..851290e --- /dev/null +++ b/builder/export-noobs/00-release/files/partition_setup.sh @@ -0,0 +1,46 @@ +#!/bin/sh +#supports_backup in PINN + +set -ex + +# shellcheck disable=SC2154 +if [ -z "$part1" ] || [ -z "$part2" ]; then + printf "Error: missing environment variable part1 or part2\n" 1>&2 + exit 1 +fi + +mkdir -p /tmp/1 /tmp/2 + +mount "$part1" /tmp/1 +mount "$part2" /tmp/2 + +sed /tmp/1/cmdline.txt -i -e "s|root=[^ ]*|root=${part2}|" +sed /tmp/2/etc/fstab -i -e "s|^[^#].* / |${part2} / |" +sed /tmp/2/etc/fstab -i -e "s|^[^#].* /boot |${part1} /boot |" + +# shellcheck disable=SC2154 +if [ -z "$restore" ]; then + if [ -f /mnt/ssh ]; then + cp /mnt/ssh /tmp/1/ + fi + + if [ -f /mnt/ssh.txt ]; then + cp /mnt/ssh.txt /tmp/1/ + fi + + if [ -f /settings/wpa_supplicant.conf ]; then + cp /settings/wpa_supplicant.conf /tmp/1/ + fi + + if ! grep -q resize /proc/cmdline; then + if ! grep -q splash /tmp/1/cmdline.txt; then + sed -i "s| quiet||g" /tmp/1/cmdline.txt + fi + sed -i 's| init=/usr/lib/raspi-config/init_resize.sh||' /tmp/1/cmdline.txt + else + sed -i '1 s|.*|& sdhci.debug_quirks2=4|' /tmp/1/cmdline.txt + fi +fi + +umount /tmp/1 +umount /tmp/2 diff --git a/builder/export-noobs/00-release/files/partitions.json b/builder/export-noobs/00-release/files/partitions.json new file mode 100644 index 0000000..3d06017 --- /dev/null +++ b/builder/export-noobs/00-release/files/partitions.json @@ -0,0 +1,22 @@ +{ + "partitions": [ + { + "filesystem_type": "FAT", + "label": "boot", + "mkfs_options": "-F 32", + "partition_size_nominal": BOOT_NOM, + "uncompressed_tarball_size": BOOT_SIZE, + "want_maximised": false, + "sha256sum": "BOOT_SHASUM" + }, + { + "filesystem_type": "ext4", + "label": "root", + "mkfs_options": "-O ^huge_file", + "partition_size_nominal": ROOT_NOM, + "uncompressed_tarball_size": ROOT_SIZE, + "want_maximised": true, + "sha256sum": "ROOT_SHASUM" + } + ] +} diff --git a/builder/export-noobs/00-release/files/release_notes.txt b/builder/export-noobs/00-release/files/release_notes.txt new file mode 100644 index 0000000..45e8576 --- /dev/null +++ b/builder/export-noobs/00-release/files/release_notes.txt @@ -0,0 +1,456 @@ +UNRELEASED: + * +2019-09-26: + * rpi-eeprom included + - This will automatically update the SPI EEPROM on the Raspberry Pi 4 to the latest stable version. + See https://rpf.io/eeprom for more information. + * New icon theme for file manager icons + * Appearance Settings - option for identical desktop on both monitors + * Appearance Settings - option to show different desktop icons on both monitors + * Taskbar automatically moved to monitor 0 if monitor 1 not found at boot + * Switching of audio output between two HDMI devices added to volume plugin + * Switching of audio input devices added to volume plugin + * .asoundrc (ALSA config file) now uses 'plug' values to support more devices + * Audio Settings tool modified to integrate more closely with volume plugin to reduce duplicated code + * Screen Configuration tool now shows separate menus for resolution and refresh rate + * Primary and active monitor settings removed from Screen Configuration tool + * Overscan support added for FKMS driver + * New keyboard shortcuts added - Ctrl-Alt-End brings up shutdown menu; Ctrl-Alt-M moves taskbar between monitors + * Latest changes to Bluez ALSA interface integrated to improve connection to Bluetooth audio devices + * Mousepad used as simple text editor instead of leafpad + * Version 3.2 of Thonny added + * Version 74 of Chromium added + * Version 3.0.8 of VLC added + * Version 32.0.0.255 of Flash player added + * Version 6.5.0 of RealVNC Server added + * Version 6.19.715 of RealVNC Viewer added (full image only) + * Version 12.0.1 of Mathematica added (full image only) + * Version 0.20.8 of NodeRED added (full image only) + * Version 3.1.0 of Sonic Pi added (full image only) + * Scratch 3 added (full image only) + * Bug fix - URL handling in Terminal + * Bug fix - octal values in SSIDs in network plugin + * Bug fix - remaining value in progress bar when transferring files + * Bug fix - integration of xarchiver tool with file manager + * Bug fix - start menu opening on incorrect monitor + * Bug fix - minimised applications wrongly displayed on taskbar on second monitor + * Bug fix - Bluetooth icon disappearing on x86 platforms when Bluetooth turned off + * Bug fix - Screen Configuration tool not shown on x86 platforms and settings not being saved + * Various translation updates + * Various minor bug fixes + * Epiphany/Web removed + * ntfs-3g included + * pciutils added + * Linux kernel 4.19.75 + * Raspberry Pi firmware 01508e81ec1e918448227ca864616d56c430b46d +2019-07-10: + * Clearer options for switching of Pi 4 video output in Raspberry Pi Configuration + * Option added to Appearance Settings to move taskbar to second monitor + * Option added to Recommended Software to restrict package installs by architecture + * New version of Adobe Flash player (32.0.0.223) + * Selection of screen refresh rates added to Screen Configuration + * Fix for missing text insertion cursor in LibreOffice on Pi 4 + * Fix for Wi-fi interruption when Wi-fi icon on taskbar is clicked + * FIx for incorrect desktop background behind desktop login prompt + * Fix for segmentation faults when launching obconf and lxapperarance + * Fix for unclosed file pointer in Screen Configuration + * Fix for Bluetooth plugin freeze when large numbers of devices detected + * Fix for opening URLs not working in lxterminal + * Fix for start menu opening on incorrect monitor when launched from keyboard + * Fix for taskbar item not having [] removed when un-minimising on second monitor + * Fix for Chromium video playback and WebGL performance on Pi 4 + * Remove 4kp60 option from Raspberry Pi Configuration + * Rename hdmi_enable_4k to hdmi_enable_4kp60 in /boot/config.txt and raspi-config + * Linux kernel 4.19.57 + * Raspberry Pi firmware 356f5c2880a3c7e8774025aa6fc934a617553e7b +2019-06-20: + * Based on Debian Buster + * Support for Raspberry Pi 4 hardware + * FKMS OpenGL desktop graphics driver and xcompmgr compositing window manager used when running on Raspberry Pi 4 + * Screen Configuration application added for use with FKMS driver + * Raspberry Pi 4 video output options added to Raspberry Pi Configuration + * Uses new PiXflat UI theme for GTK and Openbox + * CPU activity gauge plugin no longer shown on taskbar by default + * CPU temperature gauge plugin added (not shown by default) + * USB ejecter and Bluetooth taskbar icons hidden when not appropriate + * Version 74.0.3729.157 of Chromium web browser included + * Version 32.0.0.207 of Flash player included + * IDLE Python IDE removed + * Wolfram Mathematica removed temporarily due to incompatibility with Buster + * Display of package sizes removed from Recommended Software + * Appearance Settings modified to support independent settings for two monitors + * Oracle Java 7 and 8 replaced with OpenJDK 11 + * Miscellaneous small bug fixes + * On-board 5GHz WiFi blocked by rfkill by default + The block is removed when taking one of the following actions: + - Selecting a locale in the first run wizard + - Setting the WiFi country in the Raspberry Pi Configuration tool or the Network Settings applet + - Setting the WiFi country in raspi-config + - Providing a wpa_supplicant.conf file through the boot partition + - Running 'rfkill unblock wifi' + * Boot partition size set to 256M + * Linux kernel 4.19.50 + * Raspberry Pi firmware 88ca9081f5e51cdedd16d5dbc85ed12a25123201 +2019-04-08: + * Chromium browser updated to version 72 + * VLC media player updated to version 3.0.6 + * RealVNC Server updated to version 6.4.0 + * Flash player updated to version 32.0.0.156 + * Performance improvements to SDL library + * Performance improvements to pixman library + * Option to set display underscan added to startup wizard + * Mounted external drives now displayed on desktop by default + * Network plugin modified for improved compatibility with wpa_passphrase + * SD Card Copier tweaks to reduce copy failures + * Various minor bug fixes and appearance tweaks + * Added ethtool + * Added rng-tools + * Add PINN restore support + * Linux kernel 4.14.98 + * Raspberry Pi firmware f8939644f7bd3065068787f1f92b3f3c79cf3de9 +2018-11-13: + * Two versions of image created - "base" image has no optional software packages included; "full" image has all optional packages + - Removed from "base" image - LibreOffice, Thonny, Scratch, Scratch 2, Sonic Pi, Minecraft, Python Games, SmartSim, SenseHAT Emulator + - Added to "full" image - Mathematica, BlueJ, Greenfoot, Node-RED, Claws Mail, VNC Viewer + * Python Games and SmartSim added to Recommended Software + * VLC media player with VideoCore hardware acceleration included in image + * Version 3.0.5 of Thonny included + * Modifications to LXDE components to enable local configuration to override global configuration correctly + * Modifications to Appearance Settings to support above configuration changes + * Modifications to various initial config defaults and relevant package to support above configuration changes + * Selecting default option in Appearance Settings now deletes relevant local configuration files + * PiX theme modified so that all changes made in Appearance Settings are in override files rather than in theme files + * Design of scrollbar buttons changed + * Image Viewer moved into Graphics category on main menu + * Recommended Software now installs LibreOffice language support files if needed, and suggests reboot if needed + * Latest version of Pepper Flash plugin included + * Chromium h264ify plugin permissions set correctly by default + * Corrections to various MIME types so that files open in sensible default applications + * Set default timezone to 'Europe/London' + * Linux kernel 4.14.79 + * Raspberry Pi firmware 12e0bf86e08d6067372bc0a45d7e8a10d3113210 +2018-10-09: + * Raspberry Pi 3A+ support + * In startup wizard, assign keyboard to country as per Debian installer recommendations + * In startup wizard, add option to use US keyboard in preference to country-specific option + * In startup wizard, show IP address on first page + * In startup wizard, check for existing wifi network connection and show it if there is one + * In startup wizard, install language support packages for LibreOffice and other applications + * In startup wizard, improve operation with keyboard only and no mouse + * Password change in Raspberry Pi Configuration and startup wizard now works properly if passwords contain shell characters + * Battery indicator plugin modified to cope with Pi-top hardware monitor crashing + * Networking plugin hides wifi password characters by default + * In Scratch 2 GPIO plugin, set pin from dropdown list rather than free text + * In Scratch 2 SenseHAT plugin, swap x and y axis values for LED array + * Include latest Adobe Flash player (31.0.0.108) + * Include latest RealVNC Server (6.3.1) + * Include libav-tools + * Include ssh-import-id + * Removed Mathematica + * Merge in latest third-party code for Bluetooth ALSA interface + * Add ability to prevent software update changing configuration files, by creating ~/.config/.lock file + * Various other small bug fixes, tweaks and changes to text + * Make dhcpcd work with 3G devices + * Add hw acceleration to ffmpeg + * Improved WiFi-BT coexistence parameters + * Run fake-hwclock before systemd-fsck-root + * Raspberry Pi PoE HAT support + * Linux kernel 4.14.71 + * Raspberry Pi firmware 5b49caa17e91d0e64024380119ad739bb201c674 +2018-06-27: + * New first-boot configuration wizard added + * Recommended Software installer added + * Bluej, Greenfoot, NodeRED, Claws Mail, VNC Viewer removed from image - can now be installed from Recommended Applications + * Qpdfview PDF viewer installed instead of Xpdf + * Version 65.0 of Chromium browser included, with latest Flash player + * Volume up / down keys now change by 5% increments and affect currently-selected output device rather than internal device only + * Network plugin now remembers previously-entered WiFi network passwords when prompting for reconnection + * Serial port and serial console can now be switched separately in Raspberry Pi Configuration + * Lxkeymap keyboard language setting application removed - replaced with dialog within Raspberry Pi Configuration + * Wifi country and keyboard language setting dialogs in Raspberry Pi Configuration now callable from other applications + * New version of Piboto font included to render with correct weight under some rogue applications + * Reconnection to Bluetooth audio devices on reboot improved + * Disable click-to-rename behaviour in file manager if single-click selection enabled + * Appearance Settings dialog makes config changes to some Qt files to match selected theme + * MIME file type associations improved + * Multiple desktop management options removed from mouse middle-click menu + * Menu shortcuts to Raspberry Pi website amended + * Python 2 IDLE menu link removed + * Sample Magpi PDF installed in /home/pi/MagPi + * Various minor tweaks, bug fixes and appearance changes + * Bluetooth updates + - Firmware with Bluetooth 4.2 features + - SCO profile suppot added via bthelper.service + * Linux kernel 4.14.50+ + * Raspberry Pi firmware 748fb17992426bb29d99224b93cb962fefbdc833 +2018-04-18: + * Fixed race between wifi-country.service and raspberrypi-net-mods.service + * Linux kernel 4.14.34+ + * Raspberry Pi firmware 5db8e4e1c63178e200d6fbea23ed4a9bf4656658 +2018-03-13: + * Raspberry Pi 3 B+ support + * WiFi is disabled until wireless regulatory domain is set (Pi 3 B+ only) + - The domain can be done through 'Raspberry Pi Configuration' (rc_gui), + 'raspi-config' or by setting 'country=' to an appropriate ISO 3166 + alpha2 country code in /etc/wpa_supplicant/wpa_supplicant.conf. + * Default wireless regulatory domain is now unset + * Added support to desktop for different screen sizes and resolutions, + including multiple preset options in Appearance Settings and pixel doubling + option in Raspberry Pi Configuration + * Version 2.1.16 of Thonny included + * Version 29.0.0.113 of Adobe PepperFlash player included + * Version 1.2.post1 of Pygame Zero included + * Bluetooth plugin now supports connection to Bluetooth LE HID devices + * Network plugin now indicates 5G-compatible APs + * Latest changes to Bluez ALSA service merged + - service now started on CLI boot as well as GUI boot + * Latest changes to dhcpcd networking plugin merged + * Improved support for running on pi-top devices + * Small design changes to PiX theme and icons + * Bug fix - hide spurious window resize handles + * Bug fix - Scratch 2 remote GPIO state block now works correctly + * Updated WiFi Firmware + - brcmfmac43455-sdio 7.45.154 + - brcmfmac43430-sdio 7.45.98.38 + * New packages: + - policykit-1 + - obconf + - python-buttonshim python3-buttonshim + - python-unicornhathd python3-unicornhathd + - python-pantilthat python3-pantilthat + * Linux kernel 4.9.80+ + * Raspberry Pi firmware 3347884c7df574bbabeff6dca63caf686e629699 +2017-11-29: + * Added battery monitor plugin for taskbar - works on x86 images or first-generation Pi-Top + * Added cutdown mode to PCManFM file manager to reduce complexity + * Added ability to rename files in PCManFM by clicking name when selected + * Bug fix in Bluetooth ALSA module to reduce truncation of audio at end of playback + * Various small tweaks, bug fixes and theme modifications + * New kernel and firmware +2017-09-07: + * Disable predictable network interface names for Ethernet devices + * Bug fix for keyboard settings dialog in Raspberry Pi Configuration + * Bug fix for crash on some videos and animations in Chromium + * Bug fix for taskbar crash when running RealVNC server + * Bug fix for reloading projects with extensions in Scratch 2 + * Bug fix for MAC address problem in Bluetooth + * Simple mode and new icons in Thonny + * New Japanese translations in Raspberry Pi Configuration + * Install fonts-droid-fallback for international fonts +2017-08-16: + * Based on Raspbian Stretch (Debian version 9) + * Version 60 of Chromium browser included + * Version 3.0.1 of Sonic Pi included + * Version 6.1.1 of RealVNC included + * Version 0.17.4 of NodeRED included + * Bluetooth audio routed via ALSA rather than Pulseaudio + * SenseHAT extension added to Scratch 2 + * Various desktop applications modified to prompt for sudo password if needed + * lxinput control options for mouse speed simplified + * lxpanel plugins moved into separate packages + * Wireless firmware for Pi 3 and Pi 0W modified to address Broadpwn exploit + * Latest kernel and firmware + * Various small tweaks, bug fixes and theme modifications +2017-07-05: + * New kernel and firmware + * Filesystem created without the metadata_csum feature +2017-06-21: + * Scratch 2 application included + * Thonny Python IDE included + * New icons with thinner outlines + * Volume control more linear in behaviour + * Updated Flash player + * Updated RealVNC server and viewer + * Various tweaks and bugfixes + * New kernel and firmware +2017-04-10: + * Wolfram Mathematica updated to version 11.0.1 + * Adobe Flash Player updated to version 25.0.0.127 + * Use PARTUUID to support USB boot +2017-03-02: + * Updated kernel and firmware (final Pi Zero W support) + * Wolfram Mathematica updated to version 11 + * NOOBS installs now checks for presence of 'ssh' file on the NOOBS partition. +2017-02-16: + * Chromium browser updated to version 56 + * Adobe Flash Player updated to version 24.0.0.221 + * RealVNC Server and Viewer updated to version 6.0.2 (RealVNC Connect) + * Sonic Pi updated to version 2.11 + * Node-RED updated to version 0.15.3 + * Scratch updated to version 120117 + * Detection of SSH enabled with default password moved into PAM + * Updated desktop GL driver to support use of fake KMS option + * Raspberry Pi Configuration and raspi-config allow setting of fixed HDMI resolution + * raspi-config allows enabling of serial hardware independent of serial terminal + * Updates to kernel and firmware + * Various minor bug fixes and usability and appearance tweaks +2017-01-11: + * Re-release of the 2016-11-25 image with a FAT32-formatted boot partition +2016-11-25: + * SSH disabled by default; can be enabled by creating a file with name "ssh" in boot partition + * Prompt for password change at boot when SSH enabled with default password unchanged + * Adobe Flash Player included + * Updates to hardware video acceleration in Chromium browser + * Greeter now uses background image from last set in Appearance Settings rather than pi user + * Updated version of Scratch + * Rastrack option removed from raspi-config and Raspberry Pi Configuration + * Ability to disable graphical boot splash screen added to raspi-config and Raspberry Pi Configuration + * Appearance Settings dialog made tabbed to work better on small screens + * Raspberry Pi Configuration now requires current password to change password + * Various small bug fixes + * Updated firmware and kernel +2016-09-23: + * New PIXEL desktop environment - new icon set, window design, desktop images, splash screen and greeter + * Chromium web browser included + * Infinality font rendering patches included + * RealVNC server and viewer included + * SenseHAT emulator included + * Rfkill entries added to Wifi and Bluetooth panel plugins + * Updates to various standard applications, including Scratch and NodeRED + * Various bug fixes, tweaks and translation updates + * Updated firmware and kernel (https://github.com/raspberrypi/firmware/commit/ad8608c08b122b2c228dba0ff5070d6e9519faf5) +2016-05-27: + * Fixed crash of lxpanel when D-bus not accessible + * Fixed permissions for D-bus Bluetooth access + * Removed sudo from shutdown options + * Appearance of tooltips updated in theme + * Fixed ejecter plugin grabbing focus + * raspi-config command line and GUI apps tidied; unnecessary reboots removed + * More error detection in piclone; copying of volume names and IDs added + * Updated translation files +2016-05-10: + * New version of Scratch, which no longer requires sudo + * New version of BlueJ + * New version of NodeRED + * New version of pypy + * pigpio included + * geany editor included + * SD Card Copier added (can be used to duplicate or back up the Pi) + * Bluetooth plugin added to taskbar + * Volume control on taskbar now compatible with Bluetooth devices + * New shutdown helper application + * Mouse double-click speed setting added to mouse and keyboard preference application + * Option to enable / disable 1-wire interface and remote access to pigpio added to Raspberry Pi config application + * File system automatically expanded on first boot + * Empty Wastebasket option added to right-click menu + * Ctrl-Alt-T can be used to open a terminal window + * Various small bug fixes and appearance tweaks + * Updated firmware and kernel (https://github.com/raspberrypi/firmware/commit/cc6d7bf8b4c03a2a660ff9fdf4083fc165620866) +2016-03-18: + * updated firmware and kernel (https://github.com/raspberrypi/firmware/commit/951799bbcd795ddf27769d14acf4813fdcbe53dc) + * use serial0 in cmdline.txt + * wpa_supplicant.conf country default to GB (allows use of channels 12 and 13) +2016-02-26: + * Support added for Pi 3, including Wifi and Bluetooth + * Option to set wifi country code added to raspi-config +2016-02-09: + * dtb that uses mmc sdcard driver (fixes problems experienced with certain SD cards) +2016-02-03: + * new version of Sonic Pi (2.9) + * new version of Scratch (15/1/16) + * new version of Node-Red (2.5) + * new version of Wolfram (10.3) + * optional experimental GL desktop driver (can be enabled using advanced options in command-line raspi-config) + * new version of Java (1.8.0_65) + * new version of WiringPi + * raspi-gpio included + * ping no longer requires sudo (except NOOBS installs) + * support for more USB audio devices in lxpanel + * bug fix for creation of new menus in Alacarte + * various changes to raspi-config and GUI to tidy up board support and fix bugs, and updated translations + * small tweaks to theme to support GL driver +2015-11-21: + * Included IBM Node-RED IoT application + * Included graphical package manager + * Included accelerated pixman library + * Updated Epiphany browser to improve video compatibility + * Updated Scratch with performance improvements and bug fixes + * Updated Raspberry Pi configuration to allow boot to pause while + network is established + * Various minor bug fixes +2015-09-25: + * Based on Debian Jessie + * Upgraded applications - Epiphany browser, Scratch and Sonic Pi + * Included applications - LibreOffice, Claws Mail, Greenfoot, BlueJ + * Included utilities - Alacarte menu editor, Lxkeymap, scrot, tree, pip + * New GUI-based Raspberry Pi Configuration application + * GPIO control now possible without need for sudo + * Web link to Magpi magazine included + * New taskbar plugin to eject mounted USB drives + * Default boot is now to GUI not desktop + * Look and feel now based on GTK+3 default theme + * Print screen key launches scrot to produce screenshot + * Common keyboards autodetected by GUI and drivers loaded accordingly + * Numerous small tweaks and bugfixes +2015-05-05: + * Updated UI changes + * Updated firmware + * Install raspberrypi-net-mods + * Install avahi-daemon + * Add user pi to new i2c and spi groups + * Modified udev rules for i2c and spi devices +2015-02-16: + * Newer firmware with various fixes + * New Sonic Pi release + * Pi2 compatible RPi.GPIO + * Updated Wolfram Mathematica +2015-01-31: + * Support for Pi2 + * Newer firmware + * New Sonic Pi release + * Updated Scratch + * New Wolfram Mathematica release + * Updated Epiphany +2014-12-24: + * Fix regression with omission of python-pygame +2014-12-22: + * New firmware with variosu fixes and improvements + * New UI configuration for lxde + * Various package updates + * python3-pygame preinstalled + * 'nuscratch', scratch running on the Cog StackVM + * Misc other changes +2014-09-09: + * New firmware with various fixes and improvements + * Minecraft Pi pre-installed + * Sonic Pi upgraded to 2.0 + * Include Epiphany browser work from Collabora + * Switch to Java 8 from Java 7 + * Updated Mathematica + * Misc minor configuration changes +2014-06-20: + * New firmware with various fixes, and kernel bugfix +2014-06-02: + * Many, many firmware updates with major USB improvements + * pyserial installed by default + * picamera installed by default +2014-01-07: + * Firmware updated + * Some space saved on the root filesystem +2013-12-20: + * Firmware updated, includes V4L2 fixes + * Update omxplayer +2013-12-18: + * Firmware updated and now using kernel 3.10. Many, many improvements + * fbturbo XOrg driver is now included and enabled by default. Thanks to + ssvb https://github.com/ssvb/xf86-video-fbturbo + * Update Scratch image with further bug fixes + * Include Wolfram Mathematica + * Update to PyPy 2.2 + * Update omxplayer + * Include v4l-utils for use with experimental V4L2 Raspberry Pi camera driver + * Update squeak-vm to fix issues with loading JPEGs +2013-09-25: + * Update Scratch image for further performance improvements + * Include Oracle JDK + * At least a 4GiB SD card is now required (see above) + * Include PyPy 2.1 + * Include base piface packages + * Update raspi-config to include bugfix for inheriting language settings + from NOOBS +2013-09-10: + * Updated to current top of tree firmware + * Update squeak-vm, including fastblit optimised for the Raspbery Pi + * Include Sonic Pi and a fixed jackd2 package + * Support boot to Scratch + * Inherit keyboard and language settings from NOOBS diff --git a/builder/export-noobs/prerun.sh b/builder/export-noobs/prerun.sh new file mode 100755 index 0000000..54e0c59 --- /dev/null +++ b/builder/export-noobs/prerun.sh @@ -0,0 +1,36 @@ +#!/bin/bash -e + +IMG_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.img" +NOOBS_DIR="${STAGE_WORK_DIR}/${IMG_DATE}-${IMG_NAME}${IMG_SUFFIX}" +unmount_image "${IMG_FILE}" + +mkdir -p "${STAGE_WORK_DIR}" +cp "${WORK_DIR}/export-image/${IMG_FILENAME}${IMG_SUFFIX}.img" "${STAGE_WORK_DIR}/" + +rm -rf "${NOOBS_DIR}" + +PARTED_OUT=$(parted -sm "${IMG_FILE}" unit b print) +BOOT_OFFSET=$(echo "$PARTED_OUT" | grep -e '^1:' | cut -d':' -f 2 | tr -d B) +BOOT_LENGTH=$(echo "$PARTED_OUT" | grep -e '^1:' | cut -d':' -f 4 | tr -d B) + +ROOT_OFFSET=$(echo "$PARTED_OUT" | grep -e '^2:' | cut -d':' -f 2 | tr -d B) +ROOT_LENGTH=$(echo "$PARTED_OUT" | grep -e '^2:' | cut -d':' -f 4 | tr -d B) + +BOOT_DEV=$(losetup --show -f -o "${BOOT_OFFSET}" --sizelimit "${BOOT_LENGTH}" "${IMG_FILE}") +ROOT_DEV=$(losetup --show -f -o "${ROOT_OFFSET}" --sizelimit "${ROOT_LENGTH}" "${IMG_FILE}") +echo "/boot: offset $BOOT_OFFSET, length $BOOT_LENGTH" +echo "/: offset $ROOT_OFFSET, length $ROOT_LENGTH" + +mkdir -p "${STAGE_WORK_DIR}/rootfs" +mkdir -p "${NOOBS_DIR}" + +mount "$ROOT_DEV" "${STAGE_WORK_DIR}/rootfs" +mount "$BOOT_DEV" "${STAGE_WORK_DIR}/rootfs/boot" + +ln -sv "/lib/systemd/system/apply_noobs_os_config.service" "$ROOTFS_DIR/etc/systemd/system/multi-user.target.wants/apply_noobs_os_config.service" + +bsdtar --numeric-owner --format gnutar -C "${STAGE_WORK_DIR}/rootfs/boot" -cpf - . | xz -T0 > "${NOOBS_DIR}/boot.tar.xz" +umount "${STAGE_WORK_DIR}/rootfs/boot" +bsdtar --numeric-owner --format gnutar -C "${STAGE_WORK_DIR}/rootfs" --one-file-system -cpf - . | xz -T0 > "${NOOBS_DIR}/root.tar.xz" + +unmount_image "${IMG_FILE}" diff --git a/builder/scripts/common b/builder/scripts/common new file mode 100644 index 0000000..e2048d9 --- /dev/null +++ b/builder/scripts/common @@ -0,0 +1,100 @@ +log (){ + date +"[%T] $*" | tee -a "${LOG_FILE}" +} +export -f log + +bootstrap(){ + local BOOTSTRAP_CMD=debootstrap + local BOOTSTRAP_ARGS=() + + export http_proxy=${APT_PROXY} + + if [ "$(dpkg --print-architecture)" != "armhf" ] && [ "$(dpkg --print-architecture)" != "aarch64" ]; then + BOOTSTRAP_CMD=qemu-debootstrap + fi + + BOOTSTRAP_ARGS+=(--arch armhf) + BOOTSTRAP_ARGS+=(--components "main,contrib,non-free") + BOOTSTRAP_ARGS+=(--keyring "${STAGE_DIR}/files/raspberrypi.gpg") + BOOTSTRAP_ARGS+=("$@") + printf -v BOOTSTRAP_STR '%q ' "${BOOTSTRAP_ARGS[@]}" + + setarch linux32 capsh --drop=cap_setfcap -- -c "'${BOOTSTRAP_CMD}' $BOOTSTRAP_STR" || true + + if [ -d "$2/debootstrap" ]; then + rmdir "$2/debootstrap" + fi +} +export -f bootstrap + +copy_previous(){ + if [ ! -d "${PREV_ROOTFS_DIR}" ]; then + echo "Previous stage rootfs not found" + false + fi + mkdir -p "${ROOTFS_DIR}" + rsync -aHAXx --exclude var/cache/apt/archives "${PREV_ROOTFS_DIR}/" "${ROOTFS_DIR}/" +} +export -f copy_previous + +unmount(){ + if [ -z "$1" ]; then + DIR=$PWD + else + DIR=$1 + fi + + while mount | grep -q "$DIR"; do + local LOCS + LOCS=$(mount | grep "$DIR" | cut -f 3 -d ' ' | sort -r) + for loc in $LOCS; do + umount "$loc" + done + done +} +export -f unmount + +unmount_image(){ + sync + sleep 1 + local LOOP_DEVICES + LOOP_DEVICES=$(losetup --list | grep "$(basename "${1}")" | cut -f1 -d' ') + for LOOP_DEV in ${LOOP_DEVICES}; do + if [ -n "${LOOP_DEV}" ]; then + local MOUNTED_DIR + MOUNTED_DIR=$(mount | grep "$(basename "${LOOP_DEV}")" | head -n 1 | cut -f 3 -d ' ') + if [ -n "${MOUNTED_DIR}" ] && [ "${MOUNTED_DIR}" != "/" ]; then + unmount "$(dirname "${MOUNTED_DIR}")" + fi + sleep 1 + losetup -d "${LOOP_DEV}" + fi + done +} +export -f unmount_image + +on_chroot() { + if ! mount | grep -q "$(realpath "${ROOTFS_DIR}"/proc)"; then + mount -t proc proc "${ROOTFS_DIR}/proc" + fi + + if ! mount | grep -q "$(realpath "${ROOTFS_DIR}"/dev)"; then + mount --bind /dev "${ROOTFS_DIR}/dev" + fi + + if ! mount | grep -q "$(realpath "${ROOTFS_DIR}"/dev/pts)"; then + mount --bind /dev/pts "${ROOTFS_DIR}/dev/pts" + fi + + if ! mount | grep -q "$(realpath "${ROOTFS_DIR}"/sys)"; then + mount --bind /sys "${ROOTFS_DIR}/sys" + fi + + setarch linux32 capsh --drop=cap_setfcap "--chroot=${ROOTFS_DIR}/" -- -e "$@" +} +export -f on_chroot + +update_issue() { + echo -e "Raspberry Pi reference ${IMG_DATE}\nGenerated using ${PI_GEN}, ${PI_GEN_REPO}, ${GIT_HASH}, ${1}" > "${ROOTFS_DIR}/etc/rpi-issue" +} +export -f update_issue diff --git a/builder/scripts/dependencies_check b/builder/scripts/dependencies_check new file mode 100644 index 0000000..375512b --- /dev/null +++ b/builder/scripts/dependencies_check @@ -0,0 +1,38 @@ +# dependencies_check +# $@ Dependency files to check +# +# Each dependency is in the form of a tool to test for, optionally followed by +# a : and the name of a package if the package on a Debian-ish system is not +# named for the tool (i.e., qemu-user-static). +dependencies_check() +{ + local depfile deps missing + + for depfile in "$@"; do + if [[ -e "$depfile" ]]; then + deps="$(sed -f "${SCRIPT_DIR}/remove-comments.sed" < "${BASE_DIR}/depends")" + + fi + for dep in $deps; do + if ! hash "${dep%:*}" 2>/dev/null; then + missing="${missing:+$missing }${dep#*:}" + fi + done + done + + if [[ "$missing" ]]; then + echo "Required dependencies not installed" + echo + echo "This can be resolved on Debian/Raspbian systems by installing:" + echo "$missing" + false + fi + + + if ! grep -q "/proc/sys/fs/binfmt_misc" /proc/mounts; then + echo "Module binfmt_misc not loaded in host" + echo "Please run:" + echo " sudo modprobe binfmt_misc" + exit 1 + fi +} diff --git a/builder/scripts/remove-comments.sed b/builder/scripts/remove-comments.sed new file mode 100644 index 0000000..2a6889f --- /dev/null +++ b/builder/scripts/remove-comments.sed @@ -0,0 +1,11 @@ +# Deletes comments and collapses whitespace in ##-packages files + +# Append (N)ext line to buffer +# if (!)not ($)buffer is EOF, (b)ranch to (:)label loop +:loop +N +$ !b loop + +# Buffer is "line1\nline2\n...lineN", del comments and collapse whitespace +s/#[^\n]*//g +s/[[:space:]]\{1,\}/ /g diff --git a/builder/stage0/00-configure-apt/00-run.sh b/builder/stage0/00-configure-apt/00-run.sh new file mode 100755 index 0000000..9d21ffb --- /dev/null +++ b/builder/stage0/00-configure-apt/00-run.sh @@ -0,0 +1,17 @@ +#!/bin/bash -e + +install -m 644 files/sources.list "${ROOTFS_DIR}/etc/apt/" +install -m 644 files/raspi.list "${ROOTFS_DIR}/etc/apt/sources.list.d/" + +if [ -n "$APT_PROXY" ]; then + install -m 644 files/51cache "${ROOTFS_DIR}/etc/apt/apt.conf.d/51cache" + sed "${ROOTFS_DIR}/etc/apt/apt.conf.d/51cache" -i -e "s|APT_PROXY|${APT_PROXY}|" +else + rm -f "${ROOTFS_DIR}/etc/apt/apt.conf.d/51cache" +fi + +on_chroot apt-key add - < files/raspberrypi.gpg.key +on_chroot << EOF +apt-get update +apt-get dist-upgrade -y +EOF diff --git a/builder/stage0/00-configure-apt/files/51cache b/builder/stage0/00-configure-apt/files/51cache new file mode 100644 index 0000000..a8920a9 --- /dev/null +++ b/builder/stage0/00-configure-apt/files/51cache @@ -0,0 +1 @@ +Acquire::http { Proxy "APT_PROXY"; }; diff --git a/builder/stage0/00-configure-apt/files/raspberrypi.gpg.key b/builder/stage0/00-configure-apt/files/raspberrypi.gpg.key new file mode 100644 index 0000000..60b5f65 --- /dev/null +++ b/builder/stage0/00-configure-apt/files/raspberrypi.gpg.key @@ -0,0 +1,30 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.12 (GNU/Linux) + +mQENBE/d7o8BCACrwqQacGJfn3tnMzGui6mv2lLxYbsOuy/+U4rqMmGEuo3h9m92 +30E2EtypsoWczkBretzLUCFv+VUOxaA6sV9+puTqYGhhQZFuKUWcG7orf7QbZRuu +TxsEUepW5lg7MExmAu1JJzqM0kMQX8fVyWVDkjchZ/is4q3BPOUCJbUJOsE+kK/6 +8kW6nWdhwSAjfDh06bA5wvoXNjYoDdnSZyVdcYCPEJXEg5jfF/+nmiFKMZBraHwn +eQsepr7rBXxNcEvDlSOPal11fg90KXpy7Umre1UcAZYJdQeWcHu7X5uoJx/MG5J8 +ic6CwYmDaShIFa92f8qmFcna05+lppk76fsnABEBAAG0IFJhc3BiZXJyeSBQaSBB +cmNoaXZlIFNpZ25pbmcgS2V5iQE4BBMBAgAiBQJP3e6PAhsDBgsJCAcDAgYVCAIJ +CgsEFgIDAQIeAQIXgAAKCRCCsSmSf6MwPk6vB/9pePB3IukU9WC9Bammh3mpQTvL +OifbkzHkmAYxzjfK6D2I8pT0xMxy949+ThzJ7uL60p6T/32ED9DR3LHIMXZvKtuc +mQnSiNDX03E2p7lIP/htoxW2hDP2n8cdlNdt0M9IjaWBppsbO7IrDppG2B1aRLni +uD7v8bHRL2mKTtIDLX42Enl8aLAkJYgNWpZyPkDyOqamjijarIWjGEPCkaURF7g4 +d44HvYhpbLMOrz1m6N5Bzoa5+nq3lmifeiWKxioFXU+Hy5bhtAM6ljVb59hbD2ra +X4+3LXC9oox2flmQnyqwoyfZqVgSQa0B41qEQo8t1bz6Q1Ti7fbMLThmbRHiuQEN +BE/d7o8BCADNlVtBZU63fm79SjHh5AEKFs0C3kwa0mOhp9oas/haDggmhiXdzeD3 +49JWz9ZTx+vlTq0s+I+nIR1a+q+GL+hxYt4HhxoA6vlDMegVfvZKzqTX9Nr2VqQa +S4Kz3W5ULv81tw3WowK6i0L7pqDmvDqgm73mMbbxfHD0SyTt8+fk7qX6Ag2pZ4a9 +ZdJGxvASkh0McGpbYJhk1WYD+eh4fqH3IaeJi6xtNoRdc5YXuzILnp+KaJyPE5CR +qUY5JibOD3qR7zDjP0ueP93jLqmoKltCdN5+yYEExtSwz5lXniiYOJp8LWFCgv5h +m8aYXkcJS1xVV9Ltno23YvX5edw9QY4hABEBAAGJAR8EGAECAAkFAk/d7o8CGwwA +CgkQgrEpkn+jMD5Figf/dIC1qtDMTbu5IsI5uZPX63xydaExQNYf98cq5H2fWF6O +yVR7ERzA2w33hI0yZQrqO6pU9SRnHRxCFvGv6y+mXXXMRcmjZG7GiD6tQWeN/3wb +EbAn5cg6CJ/Lk/BI4iRRfBX07LbYULCohlGkwBOkRo10T+Ld4vCCnBftCh5x2OtZ +TOWRULxP36y2PLGVNF+q9pho98qx+RIxvpofQM/842ZycjPJvzgVQsW4LT91KYAE +4TVf6JjwUM6HZDoiNcX6d7zOhNfQihXTsniZZ6rky287htsWVDNkqOi5T3oTxWUo +m++/7s3K3L0zWopdhMVcgg6Nt9gcjzqN1c0gy55L/g== +=mNSj +-----END PGP PUBLIC KEY BLOCK----- diff --git a/builder/stage0/00-configure-apt/files/raspi.list b/builder/stage0/00-configure-apt/files/raspi.list new file mode 100644 index 0000000..122287e --- /dev/null +++ b/builder/stage0/00-configure-apt/files/raspi.list @@ -0,0 +1,3 @@ +deb http://archive.raspberrypi.org/debian/ buster main +# Uncomment line below then 'apt-get update' to enable 'apt-get source' +#deb-src http://archive.raspberrypi.org/debian/ buster main diff --git a/builder/stage0/00-configure-apt/files/sources.list b/builder/stage0/00-configure-apt/files/sources.list new file mode 100644 index 0000000..61820ac --- /dev/null +++ b/builder/stage0/00-configure-apt/files/sources.list @@ -0,0 +1,3 @@ +deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi +# Uncomment line below then 'apt-get update' to enable 'apt-get source' +#deb-src http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi diff --git a/builder/stage0/01-locale/00-debconf b/builder/stage0/01-locale/00-debconf new file mode 100644 index 0000000..b0ad3e4 --- /dev/null +++ b/builder/stage0/01-locale/00-debconf @@ -0,0 +1,6 @@ +# Locales to be generated: +# Choices: All locales, aa_DJ ISO-8859-1, aa_DJ.UTF-8 UTF-8, aa_ER UTF-8, aa_ER@saaho UTF-8, aa_ET UTF-8, af_ZA ISO-8859-1, af_ZA.UTF-8 UTF-8, ak_GH UTF-8, am_ET UTF-8, an_ES ISO-8859-15, an_ES.UTF-8 UTF-8, anp_IN UTF-8, ar_AE ISO-8859-6, ar_AE.UTF-8 UTF-8, ar_BH ISO-8859-6, ar_BH.UTF-8 UTF-8, ar_DZ ISO-8859-6, ar_DZ.UTF-8 UTF-8, ar_EG ISO-8859-6, ar_EG.UTF-8 UTF-8, ar_IN UTF-8, ar_IQ ISO-8859-6, ar_IQ.UTF-8 UTF-8, ar_JO ISO-8859-6, ar_JO.UTF-8 UTF-8, ar_KW ISO-8859-6, ar_KW.UTF-8 UTF-8, ar_LB ISO-8859-6, ar_LB.UTF-8 UTF-8, ar_LY ISO-8859-6, ar_LY.UTF-8 UTF-8, ar_MA ISO-8859-6, ar_MA.UTF-8 UTF-8, ar_OM ISO-8859-6, ar_OM.UTF-8 UTF-8, ar_QA ISO-8859-6, ar_QA.UTF-8 UTF-8, ar_SA ISO-8859-6, ar_SA.UTF-8 UTF-8, ar_SD ISO-8859-6, ar_SD.UTF-8 UTF-8, ar_SS UTF-8, ar_SY ISO-8859-6, ar_SY.UTF-8 UTF-8, ar_TN ISO-8859-6, ar_TN.UTF-8 UTF-8, ar_YE ISO-8859-6, ar_YE.UTF-8 UTF-8, as_IN UTF-8, ast_ES ISO-8859-15, ast_ES.UTF-8 UTF-8, ayc_PE UTF-8, az_AZ UTF-8, be_BY CP1251, be_BY.UTF-8 UTF-8, be_BY@latin UTF-8, bem_ZM UTF-8, ber_DZ UTF-8, ber_MA UTF-8, bg_BG CP1251, bg_BG.UTF-8 UTF-8, bho_IN UTF-8, bn_BD UTF-8, bn_IN UTF-8, bo_CN UTF-8, bo_IN UTF-8, br_FR ISO-8859-1, br_FR.UTF-8 UTF-8, br_FR@euro ISO-8859-15, brx_IN UTF-8, bs_BA ISO-8859-2, bs_BA.UTF-8 UTF-8, byn_ER UTF-8, ca_AD ISO-8859-15, ca_AD.UTF-8 UTF-8, ca_ES ISO-8859-1, ca_ES.UTF-8 UTF-8, ca_ES.UTF-8@valencia UTF-8, ca_ES@euro ISO-8859-15, ca_ES@valencia ISO-8859-15, ca_FR ISO-8859-15, ca_FR.UTF-8 UTF-8, ca_IT ISO-8859-15, ca_IT.UTF-8 UTF-8, cmn_TW UTF-8, crh_UA UTF-8, cs_CZ ISO-8859-2, cs_CZ.UTF-8 UTF-8, csb_PL UTF-8, cv_RU UTF-8, cy_GB ISO-8859-14, cy_GB.UTF-8 UTF-8, da_DK ISO-8859-1, da_DK.UTF-8 UTF-8, de_AT ISO-8859-1, de_AT.UTF-8 UTF-8, de_AT@euro ISO-8859-15, de_BE ISO-8859-1, de_BE.UTF-8 UTF-8, de_BE@euro ISO-8859-15, de_CH ISO-8859-1, de_CH.UTF-8 UTF-8, de_DE ISO-8859-1, de_DE.UTF-8 UTF-8, de_DE@euro ISO-8859-15, de_LI.UTF-8 UTF-8, de_LU ISO-8859-1, de_LU.UTF-8 UTF-8, de_LU@euro ISO-8859-15, doi_IN UTF-8, dv_MV UTF-8, dz_BT UTF-8, el_CY ISO-8859-7, el_CY.UTF-8 UTF-8, el_GR ISO-8859-7, el_GR.UTF-8 UTF-8, en_AG UTF-8, en_AU ISO-8859-1, en_AU.UTF-8 UTF-8, en_BW ISO-8859-1, en_BW.UTF-8 UTF-8, en_CA ISO-8859-1, en_CA.UTF-8 UTF-8, en_DK ISO-8859-1, en_DK.ISO-8859-15 ISO-8859-15, en_DK.UTF-8 UTF-8, en_GB ISO-8859-1, en_GB.ISO-8859-15 ISO-8859-15, en_GB.UTF-8 UTF-8, en_HK ISO-8859-1, en_HK.UTF-8 UTF-8, en_IE ISO-8859-1, en_IE.UTF-8 UTF-8, en_IE@euro ISO-8859-15, en_IN UTF-8, en_NG UTF-8, en_NZ ISO-8859-1, en_NZ.UTF-8 UTF-8, en_PH ISO-8859-1, en_PH.UTF-8 UTF-8, en_SG ISO-8859-1, en_SG.UTF-8 UTF-8, en_US ISO-8859-1, en_US.ISO-8859-15 ISO-8859-15, en_US.UTF-8 UTF-8, en_ZA ISO-8859-1, en_ZA.UTF-8 UTF-8, en_ZM UTF-8, en_ZW ISO-8859-1, en_ZW.UTF-8 UTF-8, eo ISO-8859-3, eo.UTF-8 UTF-8, es_AR ISO-8859-1, es_AR.UTF-8 UTF-8, es_BO ISO-8859-1, es_BO.UTF-8 UTF-8, es_CL ISO-8859-1, es_CL.UTF-8 UTF-8, es_CO ISO-8859-1, es_CO.UTF-8 UTF-8, es_CR ISO-8859-1, es_CR.UTF-8 UTF-8, es_CU UTF-8, es_DO ISO-8859-1, es_DO.UTF-8 UTF-8, es_EC ISO-8859-1, es_EC.UTF-8 UTF-8, es_ES ISO-8859-1, es_ES.UTF-8 UTF-8, es_ES@euro ISO-8859-15, es_GT ISO-8859-1, es_GT.UTF-8 UTF-8, es_HN ISO-8859-1, es_HN.UTF-8 UTF-8, es_MX ISO-8859-1, es_MX.UTF-8 UTF-8, es_NI ISO-8859-1, es_NI.UTF-8 UTF-8, es_PA ISO-8859-1, es_PA.UTF-8 UTF-8, es_PE ISO-8859-1, es_PE.UTF-8 UTF-8, es_PR ISO-8859-1, es_PR.UTF-8 UTF-8, es_PY ISO-8859-1, es_PY.UTF-8 UTF-8, es_SV ISO-8859-1, es_SV.UTF-8 UTF-8, es_US ISO-8859-1, es_US.UTF-8 UTF-8, es_UY ISO-8859-1, es_UY.UTF-8 UTF-8, es_VE ISO-8859-1, es_VE.UTF-8 UTF-8, et_EE ISO-8859-1, et_EE.ISO-8859-15 ISO-8859-15, et_EE.UTF-8 UTF-8, eu_ES ISO-8859-1, eu_ES.UTF-8 UTF-8, eu_ES@euro ISO-8859-15, eu_FR ISO-8859-1, eu_FR.UTF-8 UTF-8, eu_FR@euro ISO-8859-15, fa_IR UTF-8, ff_SN UTF-8, fi_FI ISO-8859-1, fi_FI.UTF-8 UTF-8, fi_FI@euro ISO-8859-15, fil_PH UTF-8, fo_FO ISO-8859-1, fo_FO.UTF-8 UTF-8, fr_BE ISO-8859-1, fr_BE.UTF-8 UTF-8, fr_BE@euro ISO-8859-15, fr_CA ISO-8859-1, fr_CA.UTF-8 UTF-8, fr_CH ISO-8859-1, fr_CH.UTF-8 UTF-8, fr_FR ISO-8859-1, fr_FR.UTF-8 UTF-8, fr_FR@euro ISO-8859-15, fr_LU ISO-8859-1, fr_LU.UTF-8 UTF-8, fr_LU@euro ISO-8859-15, fur_IT UTF-8, fy_DE UTF-8, fy_NL UTF-8, ga_IE ISO-8859-1, ga_IE.UTF-8 UTF-8, ga_IE@euro ISO-8859-15, gd_GB ISO-8859-15, gd_GB.UTF-8 UTF-8, gez_ER UTF-8, gez_ER@abegede UTF-8, gez_ET UTF-8, gez_ET@abegede UTF-8, gl_ES ISO-8859-1, gl_ES.UTF-8 UTF-8, gl_ES@euro ISO-8859-15, gu_IN UTF-8, gv_GB ISO-8859-1, gv_GB.UTF-8 UTF-8, ha_NG UTF-8, hak_TW UTF-8, he_IL ISO-8859-8, he_IL.UTF-8 UTF-8, hi_IN UTF-8, hne_IN UTF-8, hr_HR ISO-8859-2, hr_HR.UTF-8 UTF-8, hsb_DE ISO-8859-2, hsb_DE.UTF-8 UTF-8, ht_HT UTF-8, hu_HU ISO-8859-2, hu_HU.UTF-8 UTF-8, hy_AM UTF-8, hy_AM.ARMSCII-8 ARMSCII-8, ia_FR UTF-8, id_ID ISO-8859-1, id_ID.UTF-8 UTF-8, ig_NG UTF-8, ik_CA UTF-8, is_IS ISO-8859-1, is_IS.UTF-8 UTF-8, it_CH ISO-8859-1, it_CH.UTF-8 UTF-8, it_IT ISO-8859-1, it_IT.UTF-8 UTF-8, it_IT@euro ISO-8859-15, iu_CA UTF-8, iw_IL ISO-8859-8, iw_IL.UTF-8 UTF-8, ja_JP.EUC-JP EUC-JP, ja_JP.UTF-8 UTF-8, ka_GE GEORGIAN-PS, ka_GE.UTF-8 UTF-8, kk_KZ PT154, kk_KZ RK1048, kk_KZ.UTF-8 UTF-8, kl_GL ISO-8859-1, kl_GL.UTF-8 UTF-8, km_KH UTF-8, kn_IN UTF-8, ko_KR.EUC-KR EUC-KR, ko_KR.UTF-8 UTF-8, kok_IN UTF-8, ks_IN UTF-8, ks_IN@devanagari UTF-8, ku_TR ISO-8859-9, ku_TR.UTF-8 UTF-8, kw_GB ISO-8859-1, kw_GB.UTF-8 UTF-8, ky_KG UTF-8, lb_LU UTF-8, lg_UG ISO-8859-10, lg_UG.UTF-8 UTF-8, li_BE UTF-8, li_NL UTF-8, lij_IT UTF-8, lo_LA UTF-8, lt_LT ISO-8859-13, lt_LT.UTF-8 UTF-8, lv_LV ISO-8859-13, lv_LV.UTF-8 UTF-8, lzh_TW UTF-8, mag_IN UTF-8, mai_IN UTF-8, mg_MG ISO-8859-15, mg_MG.UTF-8 UTF-8, mhr_RU UTF-8, mi_NZ ISO-8859-13, mi_NZ.UTF-8 UTF-8, mk_MK ISO-8859-5, mk_MK.UTF-8 UTF-8, ml_IN UTF-8, mn_MN UTF-8, mni_IN UTF-8, mr_IN UTF-8, ms_MY ISO-8859-1, ms_MY.UTF-8 UTF-8, mt_MT ISO-8859-3, mt_MT.UTF-8 UTF-8, my_MM UTF-8, nan_TW UTF-8, nan_TW@latin UTF-8, nb_NO ISO-8859-1, nb_NO.UTF-8 UTF-8, nds_DE UTF-8, nds_NL UTF-8, ne_NP UTF-8, nhn_MX UTF-8, niu_NU UTF-8, niu_NZ UTF-8, nl_AW UTF-8, nl_BE ISO-8859-1, nl_BE.UTF-8 UTF-8, nl_BE@euro ISO-8859-15, nl_NL ISO-8859-1, nl_NL.UTF-8 UTF-8, nl_NL@euro ISO-8859-15, nn_NO ISO-8859-1, nn_NO.UTF-8 UTF-8, nr_ZA UTF-8, nso_ZA UTF-8, oc_FR ISO-8859-1, oc_FR.UTF-8 UTF-8, om_ET UTF-8, om_KE ISO-8859-1, om_KE.UTF-8 UTF-8, or_IN UTF-8, os_RU UTF-8, pa_IN UTF-8, pa_PK UTF-8, pap_AN UTF-8, pap_AW UTF-8, pap_CW UTF-8, pl_PL ISO-8859-2, pl_PL.UTF-8 UTF-8, ps_AF UTF-8, pt_BR ISO-8859-1, pt_BR.UTF-8 UTF-8, pt_PT ISO-8859-1, pt_PT.UTF-8 UTF-8, pt_PT@euro ISO-8859-15, quz_PE UTF-8, ro_RO ISO-8859-2, ro_RO.UTF-8 UTF-8, ru_RU ISO-8859-5, ru_RU.CP1251 CP1251, ru_RU.KOI8-R KOI8-R, ru_RU.UTF-8 UTF-8, ru_UA KOI8-U, ru_UA.UTF-8 UTF-8, rw_RW UTF-8, sa_IN UTF-8, sat_IN UTF-8, sc_IT UTF-8, sd_IN UTF-8, sd_IN@devanagari UTF-8, se_NO UTF-8, shs_CA UTF-8, si_LK UTF-8, sid_ET UTF-8, sk_SK ISO-8859-2, sk_SK.UTF-8 UTF-8, sl_SI ISO-8859-2, sl_SI.UTF-8 UTF-8, so_DJ ISO-8859-1, so_DJ.UTF-8 UTF-8, so_ET UTF-8, so_KE ISO-8859-1, so_KE.UTF-8 UTF-8, so_SO ISO-8859-1, so_SO.UTF-8 UTF-8, sq_AL ISO-8859-1, sq_AL.UTF-8 UTF-8, sq_MK UTF-8, sr_ME UTF-8, sr_RS UTF-8, sr_RS@latin UTF-8, ss_ZA UTF-8, st_ZA ISO-8859-1, st_ZA.UTF-8 UTF-8, sv_FI ISO-8859-1, sv_FI.UTF-8 UTF-8, sv_FI@euro ISO-8859-15, sv_SE ISO-8859-1, sv_SE.ISO-8859-15 ISO-8859-15, sv_SE.UTF-8 UTF-8, sw_KE UTF-8, sw_TZ UTF-8, szl_PL UTF-8, ta_IN UTF-8, ta_LK UTF-8, te_IN UTF-8, tg_TJ KOI8-T, tg_TJ.UTF-8 UTF-8, th_TH TIS-620, th_TH.UTF-8 UTF-8, the_NP UTF-8, ti_ER UTF-8, ti_ET UTF-8, tig_ER UTF-8, tk_TM UTF-8, tl_PH ISO-8859-1, tl_PH.UTF-8 UTF-8, tn_ZA UTF-8, tr_CY ISO-8859-9, tr_CY.UTF-8 UTF-8, tr_TR ISO-8859-9, tr_TR.UTF-8 UTF-8, ts_ZA UTF-8, tt_RU UTF-8, tt_RU@iqtelif UTF-8, ug_CN UTF-8, uk_UA KOI8-U, uk_UA.UTF-8 UTF-8, unm_US UTF-8, ur_IN UTF-8, ur_PK UTF-8, uz_UZ ISO-8859-1, uz_UZ.UTF-8 UTF-8, uz_UZ@cyrillic UTF-8, ve_ZA UTF-8, vi_VN UTF-8, wa_BE ISO-8859-1, wa_BE.UTF-8 UTF-8, wa_BE@euro ISO-8859-15, wae_CH UTF-8, wal_ET UTF-8, wo_SN UTF-8, xh_ZA ISO-8859-1, xh_ZA.UTF-8 UTF-8, yi_US CP1255, yi_US.UTF-8 UTF-8, yo_NG UTF-8, yue_HK UTF-8, zh_CN GB2312, zh_CN.GB18030 GB18030, zh_CN.GBK GBK, zh_CN.UTF-8 UTF-8, zh_HK BIG5-HKSCS, zh_HK.UTF-8 UTF-8, zh_SG GB2312, zh_SG.GBK GBK, zh_SG.UTF-8 UTF-8, zh_TW BIG5, zh_TW.EUC-TW EUC-TW, zh_TW.UTF-8 UTF-8, zu_ZA ISO-8859-1, zu_ZA.UTF-8 UTF-8 +locales locales/locales_to_be_generated multiselect ${LOCALE_DEFAULT} UTF-8 +# Default locale for the system environment: +# Choices: None, C.UTF-8, en_GB.UTF-8 +locales locales/default_environment_locale select ${LOCALE_DEFAULT} diff --git a/builder/stage0/01-locale/00-packages b/builder/stage0/01-locale/00-packages new file mode 100644 index 0000000..a306801 --- /dev/null +++ b/builder/stage0/01-locale/00-packages @@ -0,0 +1 @@ +locales diff --git a/builder/stage0/02-firmware/01-packages b/builder/stage0/02-firmware/01-packages new file mode 100644 index 0000000..b166aa8 --- /dev/null +++ b/builder/stage0/02-firmware/01-packages @@ -0,0 +1,2 @@ +raspberrypi-bootloader +raspberrypi-kernel diff --git a/builder/stage0/files/raspberrypi.gpg b/builder/stage0/files/raspberrypi.gpg new file mode 100644 index 0000000000000000000000000000000000000000..fe1d207eb1ec50f159e3b99415dd00b363262fb4 GIT binary patch literal 2424 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 literal 0 HcmV?d00001 diff --git a/builder/stage0/prerun.sh b/builder/stage0/prerun.sh new file mode 100755 index 0000000..9ce3e02 --- /dev/null +++ b/builder/stage0/prerun.sh @@ -0,0 +1,5 @@ +#!/bin/bash -e + +if [ ! -d "${ROOTFS_DIR}" ]; then + bootstrap buster "${ROOTFS_DIR}" http://raspbian.raspberrypi.org/raspbian/ +fi diff --git a/builder/stage1/00-boot-files/00-run.sh b/builder/stage1/00-boot-files/00-run.sh new file mode 100755 index 0000000..bc61397 --- /dev/null +++ b/builder/stage1/00-boot-files/00-run.sh @@ -0,0 +1,4 @@ +#!/bin/bash -e + +install -m 644 files/cmdline.txt "${ROOTFS_DIR}/boot/" +install -m 644 files/config.txt "${ROOTFS_DIR}/boot/" diff --git a/builder/stage1/00-boot-files/files/cmdline.txt b/builder/stage1/00-boot-files/files/cmdline.txt new file mode 100644 index 0000000..b815bd8 --- /dev/null +++ b/builder/stage1/00-boot-files/files/cmdline.txt @@ -0,0 +1 @@ +console=serial0,115200 console=tty1 root=ROOTDEV rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait diff --git a/builder/stage1/00-boot-files/files/config.txt b/builder/stage1/00-boot-files/files/config.txt new file mode 100644 index 0000000..548f4ac --- /dev/null +++ b/builder/stage1/00-boot-files/files/config.txt @@ -0,0 +1,65 @@ +# For more options and information see +# http://rpf.io/configtxt +# Some settings may impact device functionality. See link above for details + +# uncomment if you get no picture on HDMI for a default "safe" mode +#hdmi_safe=1 + +# uncomment this if your display has a black border of unused pixels visible +# and your display can output without overscan +#disable_overscan=1 + +# uncomment the following to adjust overscan. Use positive numbers if console +# goes off screen, and negative if there is too much border +#overscan_left=16 +#overscan_right=16 +#overscan_top=16 +#overscan_bottom=16 + +# uncomment to force a console size. By default it will be display's size minus +# overscan. +#framebuffer_width=1280 +#framebuffer_height=720 + +# uncomment if hdmi display is not detected and composite is being output +#hdmi_force_hotplug=1 + +# uncomment to force a specific HDMI mode (this will force VGA) +#hdmi_group=1 +#hdmi_mode=1 + +# uncomment to force a HDMI mode rather than DVI. This can make audio work in +# DMT (computer monitor) modes +#hdmi_drive=2 + +# uncomment to increase signal to HDMI, if you have interference, blanking, or +# no display +#config_hdmi_boost=4 + +# uncomment for composite PAL +#sdtv_mode=2 + +#uncomment to overclock the arm. 700 MHz is the default. +#arm_freq=800 + +# Uncomment some or all of these to enable the optional hardware interfaces +#dtparam=i2c_arm=on +#dtparam=i2s=on +#dtparam=spi=on + +# Uncomment this to enable infrared communication. +#dtoverlay=gpio-ir,gpio_pin=17 +#dtoverlay=gpio-ir-tx,gpio_pin=18 + +# Additional overlays and parameters are documented /boot/overlays/README + +# Enable audio (loads snd_bcm2835) +dtparam=audio=on + +[pi4] +# Enable DRM VC4 V3D driver on top of the dispmanx display stack +dtoverlay=vc4-fkms-v3d +max_framebuffers=2 + +[all] +#dtoverlay=vc4-fkms-v3d diff --git a/builder/stage1/01-sys-tweaks/00-patches/01-bashrc.diff b/builder/stage1/01-sys-tweaks/00-patches/01-bashrc.diff new file mode 100644 index 0000000..efa2104 --- /dev/null +++ b/builder/stage1/01-sys-tweaks/00-patches/01-bashrc.diff @@ -0,0 +1,33 @@ +--- a/rootfs/etc/skel/.bashrc ++++ b/rootfs/etc/skel/.bashrc +@@ -43,7 +43,7 @@ + # uncomment for a colored prompt, if the terminal has the capability; turned + # off by default to not distract the user: the focus in a terminal window + # should be on the output of commands, not on the prompt +-#force_color_prompt=yes ++force_color_prompt=yes + + if [ -n "$force_color_prompt" ]; then + if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then +@@ -57,7 +57,7 @@ + fi + + if [ "$color_prompt" = yes ]; then +- PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' ++ PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w \$\[\033[00m\] ' + else + PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' + fi +@@ -79,9 +79,9 @@ + #alias dir='dir --color=auto' + #alias vdir='vdir --color=auto' + +- #alias grep='grep --color=auto' +- #alias fgrep='fgrep --color=auto' +- #alias egrep='egrep --color=auto' ++ alias grep='grep --color=auto' ++ alias fgrep='fgrep --color=auto' ++ alias egrep='egrep --color=auto' + fi + + # colored GCC warnings and errors diff --git a/builder/stage1/01-sys-tweaks/00-patches/series b/builder/stage1/01-sys-tweaks/00-patches/series new file mode 100644 index 0000000..6287f0b --- /dev/null +++ b/builder/stage1/01-sys-tweaks/00-patches/series @@ -0,0 +1 @@ +01-bashrc.diff diff --git a/builder/stage1/01-sys-tweaks/00-run.sh b/builder/stage1/01-sys-tweaks/00-run.sh new file mode 100755 index 0000000..9c380ec --- /dev/null +++ b/builder/stage1/01-sys-tweaks/00-run.sh @@ -0,0 +1,15 @@ +#!/bin/bash -e + +install -d "${ROOTFS_DIR}/etc/systemd/system/getty@tty1.service.d" +install -m 644 files/noclear.conf "${ROOTFS_DIR}/etc/systemd/system/getty@tty1.service.d/noclear.conf" +install -v -m 644 files/fstab "${ROOTFS_DIR}/etc/fstab" + +on_chroot << EOF +if ! id -u ${FIRST_USER_NAME} >/dev/null 2>&1; then + adduser --disabled-password --gecos "" ${FIRST_USER_NAME} +fi +echo "${FIRST_USER_NAME}:${FIRST_USER_PASS}" | chpasswd +echo "root:root" | chpasswd +EOF + + diff --git a/builder/stage1/01-sys-tweaks/files/fstab b/builder/stage1/01-sys-tweaks/files/fstab new file mode 100644 index 0000000..f16e3fb --- /dev/null +++ b/builder/stage1/01-sys-tweaks/files/fstab @@ -0,0 +1,3 @@ +proc /proc proc defaults 0 0 +BOOTDEV /boot vfat defaults 0 2 +ROOTDEV / ext4 defaults,noatime 0 1 diff --git a/builder/stage1/01-sys-tweaks/files/noclear.conf b/builder/stage1/01-sys-tweaks/files/noclear.conf new file mode 100644 index 0000000..52671c7 --- /dev/null +++ b/builder/stage1/01-sys-tweaks/files/noclear.conf @@ -0,0 +1,2 @@ +[Service] +TTYVTDisallocate=no diff --git a/builder/stage1/02-net-tweaks/00-packages b/builder/stage1/02-net-tweaks/00-packages new file mode 100644 index 0000000..3e09fe9 --- /dev/null +++ b/builder/stage1/02-net-tweaks/00-packages @@ -0,0 +1 @@ +netbase diff --git a/builder/stage1/02-net-tweaks/00-run.sh b/builder/stage1/02-net-tweaks/00-run.sh new file mode 100755 index 0000000..fc9e763 --- /dev/null +++ b/builder/stage1/02-net-tweaks/00-run.sh @@ -0,0 +1,6 @@ +#!/bin/bash -e + +echo "${HOSTNAME}" > "${ROOTFS_DIR}/etc/hostname" +echo "127.0.1.1 ${HOSTNAME}" >> "${ROOTFS_DIR}/etc/hosts" + +ln -sf /dev/null "${ROOTFS_DIR}/etc/systemd/network/99-default.link" diff --git a/builder/stage1/03-install-packages/00-packages b/builder/stage1/03-install-packages/00-packages new file mode 100644 index 0000000..e8c148c --- /dev/null +++ b/builder/stage1/03-install-packages/00-packages @@ -0,0 +1 @@ +libraspberrypi-bin libraspberrypi0 raspi-config diff --git a/builder/stage1/prerun.sh b/builder/stage1/prerun.sh new file mode 100755 index 0000000..9acd13c --- /dev/null +++ b/builder/stage1/prerun.sh @@ -0,0 +1,5 @@ +#!/bin/bash -e + +if [ ! -d "${ROOTFS_DIR}" ]; then + copy_previous +fi diff --git a/builder/stage2/00-copies-and-fills/01-packages b/builder/stage2/00-copies-and-fills/01-packages new file mode 100644 index 0000000..283c290 --- /dev/null +++ b/builder/stage2/00-copies-and-fills/01-packages @@ -0,0 +1 @@ +raspi-copies-and-fills diff --git a/builder/stage2/00-copies-and-fills/02-run.sh b/builder/stage2/00-copies-and-fills/02-run.sh new file mode 100755 index 0000000..366ac24 --- /dev/null +++ b/builder/stage2/00-copies-and-fills/02-run.sh @@ -0,0 +1,6 @@ +#!/bin/bash -e + +if [ -f "${ROOTFS_DIR}/etc/ld.so.preload" ]; then + mv "${ROOTFS_DIR}/etc/ld.so.preload" "${ROOTFS_DIR}/etc/ld.so.preload.disabled" +fi + diff --git a/builder/stage2/01-sys-tweaks/00-debconf b/builder/stage2/01-sys-tweaks/00-debconf new file mode 100644 index 0000000..c13e3b1 --- /dev/null +++ b/builder/stage2/01-sys-tweaks/00-debconf @@ -0,0 +1,26 @@ +# Encoding to use on the console: +# Choices: ARMSCII-8, CP1251, CP1255, CP1256, GEORGIAN-ACADEMY, GEORGIAN-PS, IBM1133, ISIRI-3342, ISO-8859-1, ISO-8859-10, ISO-8859-11, ISO-8859-13, ISO-8859-14, ISO-8859-15, ISO-8859-16, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, KOI8-R, KOI8-U, TIS-620, UTF-8, VISCII +console-setup console-setup/charmap47 select UTF-8 +# Character set to support: +# Choices: . Arabic, # Armenian, # Cyrillic - KOI8-R and KOI8-U, # Cyrillic - non-Slavic languages, # Cyrillic - Slavic languages (also Bosnian and Serbian Latin), . Ethiopic, # Georgian, # Greek, # Hebrew, # Lao, # Latin1 and Latin5 - western Europe and Turkic languages, # Latin2 - central Europe and Romanian, # Latin3 and Latin8 - Chichewa; Esperanto; Irish; Maltese and Welsh, # Latin7 - Lithuanian; Latvian; Maori and Marshallese, . Latin - Vietnamese, # Thai, . Combined - Latin; Slavic Cyrillic; Hebrew; basic Arabic, . Combined - Latin; Slavic Cyrillic; Greek, . Combined - Latin; Slavic and non-Slavic Cyrillic, Guess optimal character set +console-setup console-setup/codeset47 select Guess optimal character set +# Font for the console: +# Choices: Fixed, Goha, GohaClassic, Terminus, TerminusBold, TerminusBoldVGA, VGA, Do not change the boot/kernel font, Let the system select a suitable font +console-setup console-setup/fontface47 select Do not change the boot/kernel font +# Key to function as AltGr: +# Choices: The default for the keyboard layout, No AltGr key, Right Alt (AltGr), Right Control, Right Logo key, Menu key, Left Alt, Left Logo key, Keypad Enter key, Both Logo keys, Both Alt keys +keyboard-configuration keyboard-configuration/altgr select The default for the keyboard layout +# Keyboard model: +# Choices: A4Tech KB-21, A4Tech KBS-8, A4Tech Wireless Desktop RFKB-23, Acer AirKey V, Acer C300, Acer Ferrari 4000, Acer Laptop, Advance Scorpius KI, Amiga, Apple, Apple Aluminium Keyboard (ANSI), Apple Aluminium Keyboard (ISO), Apple Aluminium Keyboard (JIS), Apple Laptop, Asus Laptop, Atari TT, Azona RF2300 wireless Internet Keyboard, BTC 5090, BTC 5113RF Multimedia, BTC 5126T, BTC 6301URF, BTC 9000, BTC 9000A, BTC 9001AH, BTC 9019U, BTC 9116U Mini Wireless Internet and Gaming, BenQ X-Touch, BenQ X-Touch 730, BenQ X-Touch 800, Brother Internet Keyboard, Cherry B.UNLIMITED, Cherry Blue Line CyBo@rd, Cherry Blue Line CyBo@rd (alternate option), Cherry CyBo@rd USB-Hub, Cherry CyMotion Expert, Cherry CyMotion Master Linux, Cherry CyMotion Master XPress, Chicony Internet Keyboard, Chicony KB-9885, Chicony KU-0108, Chicony KU-0420, Classmate PC, Compaq Easy Access Keyboard, Compaq Internet Keyboard (13 keys), Compaq Internet Keyboard (18 keys), Compaq Internet Keyboard (7 keys), Compaq iPaq Keyboard, Creative Desktop Wireless 7000, DTK2000, Dell, Dell 101-key PC, Dell Laptop/notebook Inspiron 6xxx/8xxx, Dell Laptop/notebook Precision M series, Dell Latitude series laptop, Dell Precision M65, Dell SK-8125, Dell SK-8135, Dell USB Multimedia Keyboard, Dexxa Wireless Desktop Keyboard, Diamond 9801 / 9802 series, Ennyah DKB-1008, Everex STEPnote, FL90, Fujitsu-Siemens Computers AMILO laptop, Generic 101-key PC, Generic 102-key (Intl) PC, Generic 104-key PC, Generic 105-key (Intl) PC, Genius Comfy KB-12e, Genius Comfy KB-16M / Genius MM Keyboard KWD-910, Genius Comfy KB-21e-Scroll, Genius KB-19e NB, Genius KKB-2050HS, Gyration, HTC Dream, Happy Hacking Keyboard, Happy Hacking Keyboard for Mac, Hewlett-Packard Internet Keyboard, Hewlett-Packard Mini 110 Notebook, Hewlett-Packard Omnibook 500 FA, Hewlett-Packard Omnibook 5xx, Hewlett-Packard Omnibook 6000/6100, Hewlett-Packard Omnibook XE3 GC, Hewlett-Packard Omnibook XE3 GF, Hewlett-Packard Omnibook XT1000, Hewlett-Packard Pavilion ZT11xx, Hewlett-Packard Pavilion dv5, Hewlett-Packard SK-250x Multimedia Keyboard, Hewlett-Packard nx9020, Honeywell Euroboard, Htc Dream phone, IBM Rapid Access, IBM Rapid Access II, IBM Space Saver, IBM ThinkPad 560Z/600/600E/A22E, IBM ThinkPad R60/T60/R61/T61, IBM ThinkPad Z60m/Z60t/Z61m/Z61t, Keytronic FlexPro, Kinesis, Laptop/notebook Compaq (eg. Armada) Laptop Keyboard, Laptop/notebook Compaq (eg. Presario) Internet Keyboard, Laptop/notebook eMachines m68xx, Logitech Access Keyboard, Logitech Cordless Desktop, Logitech Cordless Desktop (alternate option), Logitech Cordless Desktop EX110, Logitech Cordless Desktop LX-300, Logitech Cordless Desktop Navigator, Logitech Cordless Desktop Optical, Logitech Cordless Desktop Pro (alternate option 2), Logitech Cordless Desktop iTouch, Logitech Cordless Freedom/Desktop Navigator, Logitech G15 extra keys via G15daemon, Logitech Generic Keyboard, Logitech Internet 350 Keyboard, Logitech Internet Keyboard, Logitech Internet Navigator Keyboard, Logitech Media Elite Keyboard, Logitech Ultra-X Cordless Media Desktop Keyboard, Logitech Ultra-X Keyboard, Logitech diNovo Edge Keyboard, Logitech diNovo Keyboard, Logitech iTouch, Logitech iTouch Cordless Keyboard (model Y-RB6), Logitech iTouch Internet Navigator Keyboard SE, Logitech iTouch Internet Navigator Keyboard SE (USB), MacBook/MacBook Pro, MacBook/MacBook Pro (Intl), Macintosh, Macintosh Old, Memorex MX1998, Memorex MX2500 EZ-Access Keyboard, Memorex MX2750, Microsoft Comfort Curve Keyboard 2000, Microsoft Internet Keyboard, Microsoft Internet Keyboard Pro\, Swedish, Microsoft Natural, Microsoft Natural Keyboard Elite, Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro, Microsoft Natural Keyboard Pro OEM, Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro, Microsoft Natural Wireless Ergonomic Keyboard 4000, Microsoft Natural Wireless Ergonomic Keyboard 7000, Microsoft Office Keyboard, Microsoft Wireless Multimedia Keyboard 1.0A, Northgate OmniKey 101, OLPC, Ortek MCK-800 MM/Internet keyboard, PC-98xx Series, Propeller Voyager (KTEZ-1000), QTronix Scorpius 98N+, SILVERCREST Multimedia Wireless Keyboard, SK-1300, SK-2500, SK-6200, SK-7100, SVEN Ergonomic 2500, SVEN Slim 303, Samsung SDM 4500P, Samsung SDM 4510P, Sanwa Supply SKB-KG3, Sun Type 4, Sun Type 5, Sun Type 6 (Japanese layout), Sun Type 6 USB (Japanese layout), Sun Type 6 USB (Unix layout), Sun Type 6/7 USB, Sun Type 6/7 USB (European layout), Sun Type 7 USB, Sun Type 7 USB (European layout), Sun Type 7 USB (Japanese layout) / Japanese 106-key, Sun Type 7 USB (Unix layout), Super Power Multimedia Keyboard, Symplon PaceBook (tablet PC), Targa Visionary 811, Toshiba Satellite S3000, Trust Direct Access Keyboard, Trust Slimline, Trust Wireless Keyboard Classic, TypeMatrix EZ-Reach 2020, TypeMatrix EZ-Reach 2030 PS2, TypeMatrix EZ-Reach 2030 USB, TypeMatrix EZ-Reach 2030 USB (102/105:EU mode), TypeMatrix EZ-Reach 2030 USB (106:JP mode), Unitek KB-1925, ViewSonic KU-306 Internet Keyboard, Winbook Model XP5, Yahoo! Internet Keyboard +keyboard-configuration keyboard-configuration/model select Generic 105-key (Intl) PC +# Keymap to use: +# Choices: American English, Albanian, Arabic, Asturian, Bangladesh, Belarusian, Bengali, Belgian, Bosnian, Brazilian, British English, Bulgarian, Bulgarian (phonetic layout), Burmese, Canadian French, Canadian Multilingual, Catalan, Chinese, Croatian, Czech, Danish, Dutch, Dvorak, Dzongkha, Esperanto, Estonian, Ethiopian, Finnish, French, Georgian, German, Greek, Gujarati, Gurmukhi, Hebrew, Hindi, Hungarian, Icelandic, Irish, Italian, Japanese, Kannada, Kazakh, Khmer, Kirghiz, Korean, Kurdish (F layout), Kurdish (Q layout), Lao, Latin American, Latvian, Lithuanian, Macedonian, Malayalam, Nepali, Northern Sami, Norwegian, Persian, Philippines, Polish, Portuguese, Punjabi, Romanian, Russian, Serbian (Cyrillic), Sindhi, Sinhala, Slovak, Slovenian, Spanish, Swedish, Swiss French, Swiss German, Tajik, Tamil, Telugu, Thai, Tibetan, Turkish (F layout), Turkish (Q layout), Ukrainian, Uyghur, Vietnamese +keyboard-configuration keyboard-configuration/xkb-keymap select ${KEYBOARD_KEYMAP} +# Compose key: +# Choices: No compose key, Right Alt (AltGr), Right Control, Right Logo key, Menu key, Left Logo key, Caps Lock +keyboard-configuration keyboard-configuration/compose select No compose key +# Use Control+Alt+Backspace to terminate the X server? +keyboard-configuration keyboard-configuration/ctrl_alt_bksp boolean true +# Keyboard layout: +# Choices: English (UK), English (UK) - English (UK\, Colemak), English (UK) - English (UK\, Dvorak with UK punctuation), English (UK) - English (UK\, Dvorak), English (UK) - English (UK\, Macintosh international), English (UK) - English (UK\, Macintosh), English (UK) - English (UK\, extended WinKeys), English (UK) - English (UK\, international with dead keys), Other +keyboard-configuration keyboard-configuration/variant select ${KEYBOARD_LAYOUT} diff --git a/builder/stage2/01-sys-tweaks/00-packages b/builder/stage2/01-sys-tweaks/00-packages new file mode 100644 index 0000000..16b9350 --- /dev/null +++ b/builder/stage2/01-sys-tweaks/00-packages @@ -0,0 +1,30 @@ +ssh less fbset sudo psmisc strace ed ncdu crda +console-setup keyboard-configuration debconf-utils parted unzip +build-essential manpages-dev python bash-completion gdb pkg-config +python-rpi.gpio v4l-utils +avahi-daemon +lua5.1 +luajit +hardlink ca-certificates curl +fake-hwclock nfs-common usbutils +libraspberrypi-dev libraspberrypi-doc libfreetype6-dev +dosfstools +dphys-swapfile +raspberrypi-sys-mods +pi-bluetooth +apt-listchanges +usb-modeswitch +libpam-chksshpwd +rpi-update +libmtp-runtime +rsync +htop +man-db +policykit-1 +ssh-import-id +rng-tools +ethtool +vl805fw +ntfs-3g +pciutils +rpi-eeprom diff --git a/builder/stage2/01-sys-tweaks/00-packages-nr b/builder/stage2/01-sys-tweaks/00-packages-nr new file mode 100644 index 0000000..5acef54 --- /dev/null +++ b/builder/stage2/01-sys-tweaks/00-packages-nr @@ -0,0 +1 @@ +cifs-utils diff --git a/builder/stage2/01-sys-tweaks/00-patches/01-useradd.diff b/builder/stage2/01-sys-tweaks/00-patches/01-useradd.diff new file mode 100644 index 0000000..e81ad5a --- /dev/null +++ b/builder/stage2/01-sys-tweaks/00-patches/01-useradd.diff @@ -0,0 +1,22 @@ +Index: jessie-stage2/rootfs/etc/default/useradd +=================================================================== +--- jessie-stage2.orig/rootfs/etc/default/useradd ++++ jessie-stage2/rootfs/etc/default/useradd +@@ -5,7 +5,7 @@ + # Similar to DHSELL in adduser. However, we use "sh" here because + # useradd is a low level utility and should be as general + # as possible +-SHELL=/bin/sh ++SHELL=/bin/bash + # + # The default group for users + # 100=users on Debian systems +@@ -29,7 +29,7 @@ SHELL=/bin/sh + # The SKEL variable specifies the directory containing "skeletal" user + # files; in other words, files such as a sample .profile that will be + # copied to the new user's home directory when it is created. +-# SKEL=/etc/skel ++SKEL=/etc/skel + # + # Defines whether the mail spool should be created while + # creating the account diff --git a/builder/stage2/01-sys-tweaks/00-patches/02-swap.diff b/builder/stage2/01-sys-tweaks/00-patches/02-swap.diff new file mode 100644 index 0000000..745a344 --- /dev/null +++ b/builder/stage2/01-sys-tweaks/00-patches/02-swap.diff @@ -0,0 +1,13 @@ +Index: jessie-stage2/rootfs/etc/dphys-swapfile +=================================================================== +--- jessie-stage2.orig/rootfs/etc/dphys-swapfile ++++ jessie-stage2/rootfs/etc/dphys-swapfile +@@ -13,7 +13,7 @@ + + # set size to absolute value, leaving empty (default) then uses computed value + # you most likely don't want this, unless you have an special disk situation +-#CONF_SWAPSIZE= ++CONF_SWAPSIZE=100 + + # set size to computed value, this times RAM size, dynamically adapts, + # guarantees that there is enough swap without wasting disk space on excess diff --git a/builder/stage2/01-sys-tweaks/00-patches/04-inputrc.diff b/builder/stage2/01-sys-tweaks/00-patches/04-inputrc.diff new file mode 100644 index 0000000..c81fa62 --- /dev/null +++ b/builder/stage2/01-sys-tweaks/00-patches/04-inputrc.diff @@ -0,0 +1,12 @@ +Index: jessie-stage2/rootfs/etc/inputrc +=================================================================== +--- jessie-stage2.orig/rootfs/etc/inputrc ++++ jessie-stage2/rootfs/etc/inputrc +@@ -65,3 +65,7 @@ $endif + # "\e[F": end-of-line + + $endif ++ ++# mappings for up and down arrows search history ++# "\e[B": history-search-forward ++# "\e[A": history-search-backward diff --git a/builder/stage2/01-sys-tweaks/00-patches/05-path.diff b/builder/stage2/01-sys-tweaks/00-patches/05-path.diff new file mode 100644 index 0000000..25b80a1 --- /dev/null +++ b/builder/stage2/01-sys-tweaks/00-patches/05-path.diff @@ -0,0 +1,26 @@ +Index: jessie-stage2/rootfs/etc/login.defs +=================================================================== +--- jessie-stage2.orig/rootfs/etc/login.defs ++++ jessie-stage2/rootfs/etc/login.defs +@@ -100,7 +100,7 @@ HUSHLOGIN_FILE .hushlogin + # + # (they are minimal, add the rest in the shell startup files) + ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +-ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games ++ENV_PATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games + + # + # Terminal permissions +Index: jessie-stage2/rootfs/etc/profile +=================================================================== +--- jessie-stage2.orig/rootfs/etc/profile ++++ jessie-stage2/rootfs/etc/profile +@@ -4,7 +4,7 @@ + if [ "`id -u`" -eq 0 ]; then + PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" + else +- PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games" ++ PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games" + fi + export PATH + diff --git a/builder/stage2/01-sys-tweaks/00-patches/07-resize-init.diff b/builder/stage2/01-sys-tweaks/00-patches/07-resize-init.diff new file mode 100644 index 0000000..8c41357 --- /dev/null +++ b/builder/stage2/01-sys-tweaks/00-patches/07-resize-init.diff @@ -0,0 +1,5 @@ +--- stage2.orig/rootfs/boot/cmdline.txt ++++ stage2/rootfs/boot/cmdline.txt +@@ -1 +1 @@ +-console=serial0,115200 console=tty1 root=ROOTDEV rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait ++console=serial0,115200 console=tty1 root=ROOTDEV rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet init=/usr/lib/raspi-config/init_resize.sh diff --git a/builder/stage2/01-sys-tweaks/00-patches/series b/builder/stage2/01-sys-tweaks/00-patches/series new file mode 100644 index 0000000..aee0402 --- /dev/null +++ b/builder/stage2/01-sys-tweaks/00-patches/series @@ -0,0 +1,5 @@ +01-useradd.diff +02-swap.diff +04-inputrc.diff +05-path.diff +07-resize-init.diff diff --git a/builder/stage2/01-sys-tweaks/01-run.sh b/builder/stage2/01-sys-tweaks/01-run.sh new file mode 100755 index 0000000..8d28adc --- /dev/null +++ b/builder/stage2/01-sys-tweaks/01-run.sh @@ -0,0 +1,56 @@ +#!/bin/bash -e + +install -m 755 files/resize2fs_once "${ROOTFS_DIR}/etc/init.d/" + +install -d "${ROOTFS_DIR}/etc/systemd/system/rc-local.service.d" +install -m 644 files/ttyoutput.conf "${ROOTFS_DIR}/etc/systemd/system/rc-local.service.d/" + +install -m 644 files/50raspi "${ROOTFS_DIR}/etc/apt/apt.conf.d/" + +install -m 644 files/console-setup "${ROOTFS_DIR}/etc/default/" + +install -m 755 files/rc.local "${ROOTFS_DIR}/etc/" + +on_chroot << EOF +systemctl disable hwclock.sh +systemctl disable nfs-common +systemctl disable rpcbind +if [ "${ENABLE_SSH}" == "1" ]; then + systemctl enable ssh +else + systemctl disable ssh +fi +systemctl enable regenerate_ssh_host_keys +EOF + +if [ "${USE_QEMU}" = "1" ]; then + echo "enter QEMU mode" + install -m 644 files/90-qemu.rules "${ROOTFS_DIR}/etc/udev/rules.d/" + on_chroot << EOF +systemctl disable resize2fs_once +EOF + echo "leaving QEMU mode" +else + on_chroot << EOF +systemctl enable resize2fs_once +EOF +fi + +on_chroot <&2 + exit 3 + ;; +esac diff --git a/builder/stage2/01-sys-tweaks/files/ttyoutput.conf b/builder/stage2/01-sys-tweaks/files/ttyoutput.conf new file mode 100644 index 0000000..6a396a4 --- /dev/null +++ b/builder/stage2/01-sys-tweaks/files/ttyoutput.conf @@ -0,0 +1,2 @@ +[Service] +StandardOutput=tty diff --git a/builder/stage2/02-net-tweaks/00-packages b/builder/stage2/02-net-tweaks/00-packages new file mode 100644 index 0000000..cc4a68e --- /dev/null +++ b/builder/stage2/02-net-tweaks/00-packages @@ -0,0 +1,4 @@ +wpasupplicant wireless-tools firmware-atheros firmware-brcm80211 firmware-libertas firmware-misc-nonfree firmware-realtek +raspberrypi-net-mods +dhcpcd5 +net-tools diff --git a/builder/stage2/02-net-tweaks/01-run.sh b/builder/stage2/02-net-tweaks/01-run.sh new file mode 100755 index 0000000..154e515 --- /dev/null +++ b/builder/stage2/02-net-tweaks/01-run.sh @@ -0,0 +1,30 @@ +#!/bin/bash -e + +install -v -d "${ROOTFS_DIR}/etc/systemd/system/dhcpcd.service.d" +install -v -m 644 files/wait.conf "${ROOTFS_DIR}/etc/systemd/system/dhcpcd.service.d/" + +install -v -d "${ROOTFS_DIR}/etc/wpa_supplicant" +install -v -m 600 files/wpa_supplicant.conf "${ROOTFS_DIR}/etc/wpa_supplicant/" + +if [ -v WPA_COUNTRY ]; then + echo "country=${WPA_COUNTRY}" >> "${ROOTFS_DIR}/etc/wpa_supplicant/wpa_supplicant.conf" +fi + +if [ -v WPA_ESSID ] && [ -v WPA_PASSWORD ]; then +on_chroot <> "/etc/wpa_supplicant/wpa_supplicant.conf" +EOF +elif [ -v WPA_ESSID ]; then +cat >> "${ROOTFS_DIR}/etc/wpa_supplicant/wpa_supplicant.conf" << EOL + +network={ + ssid="${WPA_ESSID}" + key_mgmt=NONE +} +EOL +fi + +# Disable wifi on 5GHz models +mkdir -p "${ROOTFS_DIR}/var/lib/systemd/rfkill/" +echo 1 > "${ROOTFS_DIR}/var/lib/systemd/rfkill/platform-3f300000.mmc:wlan" +echo 1 > "${ROOTFS_DIR}/var/lib/systemd/rfkill/platform-fe300000.mmc:wlan" diff --git a/builder/stage2/02-net-tweaks/files/wait.conf b/builder/stage2/02-net-tweaks/files/wait.conf new file mode 100644 index 0000000..595cc2d --- /dev/null +++ b/builder/stage2/02-net-tweaks/files/wait.conf @@ -0,0 +1,3 @@ +[Service] +ExecStart= +ExecStart=/usr/lib/dhcpcd5/dhcpcd -q -w diff --git a/builder/stage2/02-net-tweaks/files/wpa_supplicant.conf b/builder/stage2/02-net-tweaks/files/wpa_supplicant.conf new file mode 100644 index 0000000..0fc335e --- /dev/null +++ b/builder/stage2/02-net-tweaks/files/wpa_supplicant.conf @@ -0,0 +1,2 @@ +ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev +update_config=1 diff --git a/builder/stage2/03-accept-mathematica-eula/00-debconf b/builder/stage2/03-accept-mathematica-eula/00-debconf new file mode 100644 index 0000000..d9743fe --- /dev/null +++ b/builder/stage2/03-accept-mathematica-eula/00-debconf @@ -0,0 +1,2 @@ +# Do you accept the Wolfram - Raspberry Pi® Bundle License Agreement? +wolfram-engine shared/accepted-wolfram-eula boolean true diff --git a/builder/stage2/03-set-timezone/02-run.sh b/builder/stage2/03-set-timezone/02-run.sh new file mode 100755 index 0000000..96b22c7 --- /dev/null +++ b/builder/stage2/03-set-timezone/02-run.sh @@ -0,0 +1,8 @@ +#!/bin/bash -e + +echo "${TIMEZONE_DEFAULT}" > "${ROOTFS_DIR}/etc/timezone" +rm "${ROOTFS_DIR}/etc/localtime" + +on_chroot << EOF +dpkg-reconfigure -f noninteractive tzdata +EOF diff --git a/builder/stage2/prerun.sh b/builder/stage2/prerun.sh new file mode 100755 index 0000000..9acd13c --- /dev/null +++ b/builder/stage2/prerun.sh @@ -0,0 +1,5 @@ +#!/bin/bash -e + +if [ ! -d "${ROOTFS_DIR}" ]; then + copy_previous +fi diff --git a/builder/stage3/00-install-packages/00-debconf b/builder/stage3/00-install-packages/00-debconf new file mode 100644 index 0000000..7dbd12e --- /dev/null +++ b/builder/stage3/00-install-packages/00-debconf @@ -0,0 +1,2 @@ +# Adobe Flash Player. Copyright 1996-2015. Adobe Systems Incorporated. All Rights Reserved. +rpi-chromium-mods rpi-chromium-mods/adobe note diff --git a/builder/stage3/00-install-packages/00-packages b/builder/stage3/00-install-packages/00-packages new file mode 100644 index 0000000..eac74ea --- /dev/null +++ b/builder/stage3/00-install-packages/00-packages @@ -0,0 +1,15 @@ +gstreamer1.0-x gstreamer1.0-omx gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-alsa gstreamer1.0-libav +qpdfview gtk2-engines alsa-utils +desktop-base +git +omxplayer +raspberrypi-artwork +policykit-1 +gvfs +rfkill +chromium-browser rpi-chromium-mods +gldriver-test +fonts-droid-fallback +fonts-liberation2 +obconf +arandr diff --git a/builder/stage3/00-install-packages/00-packages-nr b/builder/stage3/00-install-packages/00-packages-nr new file mode 100644 index 0000000..ffc324b --- /dev/null +++ b/builder/stage3/00-install-packages/00-packages-nr @@ -0,0 +1,6 @@ +xserver-xorg-video-fbdev xserver-xorg xinit xserver-xorg-video-fbturbo +mousepad +lxde lxtask menu-xdg +zenity xdg-utils +gvfs-backends gvfs-fuse +lightdm gnome-themes-standard-data gnome-icon-theme diff --git a/builder/stage3/00-install-packages/01-run.sh b/builder/stage3/00-install-packages/01-run.sh new file mode 100755 index 0000000..d768747 --- /dev/null +++ b/builder/stage3/00-install-packages/01-run.sh @@ -0,0 +1,8 @@ +#!/bin/bash -e + +on_chroot << EOF +update-alternatives --install /usr/bin/x-www-browser \ + x-www-browser /usr/bin/chromium-browser 86 +update-alternatives --install /usr/bin/gnome-www-browser \ + gnome-www-browser /usr/bin/chromium-browser 86 +EOF diff --git a/builder/stage3/01-tweaks/00-run.sh b/builder/stage3/01-tweaks/00-run.sh new file mode 100755 index 0000000..5da7c1a --- /dev/null +++ b/builder/stage3/01-tweaks/00-run.sh @@ -0,0 +1,3 @@ +#!/bin/bash -e + +rm -f "${ROOTFS_DIR}/etc/systemd/system/dhcpcd.service.d/wait.conf" diff --git a/builder/stage3/prerun.sh b/builder/stage3/prerun.sh new file mode 100755 index 0000000..9acd13c --- /dev/null +++ b/builder/stage3/prerun.sh @@ -0,0 +1,5 @@ +#!/bin/bash -e + +if [ ! -d "${ROOTFS_DIR}" ]; then + copy_previous +fi diff --git a/builder/stage4/00-install-packages/00-debconf b/builder/stage4/00-install-packages/00-debconf new file mode 100644 index 0000000..87932e2 --- /dev/null +++ b/builder/stage4/00-install-packages/00-debconf @@ -0,0 +1,2 @@ +# Enable realtime process priority? +jackd2 jackd/tweak_rt_limits boolean true diff --git a/builder/stage4/00-install-packages/00-packages b/builder/stage4/00-install-packages/00-packages new file mode 100644 index 0000000..f9f5ef4 --- /dev/null +++ b/builder/stage4/00-install-packages/00-packages @@ -0,0 +1,25 @@ +python python3-pygame python-pygame python-tk +python3 python3-tk thonny +python3-pgzero +python-serial python3-serial +python-picamera python3-picamera +debian-reference-en dillo +raspberrypi-net-mods raspberrypi-ui-mods +python-pip python3-pip +python3-numpy +pypy +alacarte rc-gui sense-hat +tree +libgl1-mesa-dri libgles1 libgles2-mesa xcompmgr +geany +piclone +wiringpi pigpio python-pigpio python3-pigpio raspi-gpio python-gpiozero python3-gpiozero python3-rpi.gpio +python-spidev python3-spidev +python-twython python3-twython +python-smbus python3-smbus +python-flask python3-flask +pprompt +piwiz +rp-prefapps +ffmpeg +vlc diff --git a/builder/stage4/00-install-packages/00-packages-nr b/builder/stage4/00-install-packages/00-packages-nr new file mode 100644 index 0000000..b904b80 --- /dev/null +++ b/builder/stage4/00-install-packages/00-packages-nr @@ -0,0 +1,2 @@ +pi-package +realvnc-vnc-server diff --git a/builder/stage4/00-install-packages/01-packages b/builder/stage4/00-install-packages/01-packages new file mode 100644 index 0000000..fdf5e73 --- /dev/null +++ b/builder/stage4/00-install-packages/01-packages @@ -0,0 +1,22 @@ +python-automationhat python3-automationhat +python-blinkt python3-blinkt +python-cap1xxx python3-cap1xxx +python-drumhat python3-drumhat +python-envirophat python3-envirophat +python-explorerhat python3-explorerhat +python-fourletterphat python3-fourletterphat +python-microdotphat python3-microdotphat +python-mote python3-mote +python-motephat python3-motephat +python-phatbeat python3-phatbeat +python-pianohat python3-pianohat +python-piglow python3-piglow +python-rainbowhat python3-rainbowhat +python-scrollphat python3-scrollphat +python-scrollphathd python3-scrollphathd +python-sn3218 python3-sn3218 +python-skywriter python3-skywriter +python-touchphat python3-touchphat +python-buttonshim python3-buttonshim +python-unicornhathd python3-unicornhathd +python-pantilthat python3-pantilthat diff --git a/builder/stage4/00-install-packages/02-packages b/builder/stage4/00-install-packages/02-packages new file mode 100644 index 0000000..fc43d17 --- /dev/null +++ b/builder/stage4/00-install-packages/02-packages @@ -0,0 +1,4 @@ +hunspell-en-gb +hyphen-en-gb +wamerican +wbritish diff --git a/builder/stage4/01-console-autologin/00-run.sh b/builder/stage4/01-console-autologin/00-run.sh new file mode 100755 index 0000000..665dcdb --- /dev/null +++ b/builder/stage4/01-console-autologin/00-run.sh @@ -0,0 +1,5 @@ +#!/bin/bash -e + +on_chroot << EOF + SUDO_USER="${FIRST_USER_NAME}" raspi-config nonint do_boot_behaviour B4 +EOF diff --git a/builder/stage4/02-extras/00-run.sh b/builder/stage4/02-extras/00-run.sh new file mode 100755 index 0000000..6a24f82 --- /dev/null +++ b/builder/stage4/02-extras/00-run.sh @@ -0,0 +1,7 @@ +#!/bin/bash -e + +#Alacarte fixes +install -v -o 1000 -g 1000 -d "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.local" +install -v -o 1000 -g 1000 -d "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.local/share" +install -v -o 1000 -g 1000 -d "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.local/share/applications" +install -v -o 1000 -g 1000 -d "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.local/share/desktop-directories" diff --git a/builder/stage4/04-enable-xcompmgr/00-run.sh b/builder/stage4/04-enable-xcompmgr/00-run.sh new file mode 100755 index 0000000..ad6298d --- /dev/null +++ b/builder/stage4/04-enable-xcompmgr/00-run.sh @@ -0,0 +1,5 @@ +#!/bin/bash -e + +on_chroot << EOF + raspi-config nonint do_xcompmgr 0 +EOF diff --git a/builder/stage4/05-pisdr-system/00-packages b/builder/stage4/05-pisdr-system/00-packages new file mode 100644 index 0000000..b51eb16 --- /dev/null +++ b/builder/stage4/05-pisdr-system/00-packages @@ -0,0 +1 @@ +gnuradio \ No newline at end of file diff --git a/builder/stage4/05-pisdr-system/00-run.sh b/builder/stage4/05-pisdr-system/00-run.sh new file mode 100755 index 0000000..ce91245 --- /dev/null +++ b/builder/stage4/05-pisdr-system/00-run.sh @@ -0,0 +1,6 @@ +#!/bin/bash -e + +on_chroot << EOF +## Turn on VNC +systemctl enable vncserver-x11-serviced.service +EOF \ No newline at end of file diff --git a/builder/stage4/06-pisdr-soapysdr/00-packages b/builder/stage4/06-pisdr-soapysdr/00-packages new file mode 100644 index 0000000..f123a42 --- /dev/null +++ b/builder/stage4/06-pisdr-soapysdr/00-packages @@ -0,0 +1,9 @@ +git +g++ +swig +cmake +avahi-daemon +libavahi-client-dev +libusb-1.0-0-dev + +python-dev python3-dev \ No newline at end of file diff --git a/builder/stage4/06-pisdr-soapysdr/01-run.sh b/builder/stage4/06-pisdr-soapysdr/01-run.sh new file mode 100755 index 0000000..76feac0 --- /dev/null +++ b/builder/stage4/06-pisdr-soapysdr/01-run.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +on_chroot << EOF +mkdir -p "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/Packages" +cd "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/Packages" + +if [ ! -d "SoapySDR" ]; then + git clone https://github.com/pothosware/SoapySDR.git +fi + +cd SoapySDR +git pull +mkdir -p build +cd build +rm -rf CMakeCache.txt +cmake ../ +make -j$(nproc) +make install +ldconfig +EOF \ No newline at end of file diff --git a/builder/stage4/06-pisdr-soapysdr/02-run.sh b/builder/stage4/06-pisdr-soapysdr/02-run.sh new file mode 100755 index 0000000..cd96595 --- /dev/null +++ b/builder/stage4/06-pisdr-soapysdr/02-run.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +on_chroot << EOF +mkdir -p "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/Packages" +cd "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/Packages" + +if [ ! -d "SoapyRemote" ]; then + git clone https://github.com/pothosware/SoapyRemote.git +fi + +cd SoapyRemote +git pull +mkdir -p build +cd build +rm -rf CMakeCache.txt +cmake ../ +make -j$(nproc) +make install +ldconfig +EOF \ No newline at end of file diff --git a/builder/stage4/07-pisdr-limesdr/00-packages b/builder/stage4/07-pisdr-limesdr/00-packages new file mode 100644 index 0000000..89b3aed --- /dev/null +++ b/builder/stage4/07-pisdr-limesdr/00-packages @@ -0,0 +1,9 @@ +git +g++ +swig +cmake +libsqlite3-dev +libi2c-dev +libusb-1.0-0-dev +libwxgtk3.0-dev +freeglut3-dev \ No newline at end of file diff --git a/builder/stage4/07-pisdr-limesdr/00-run.sh b/builder/stage4/07-pisdr-limesdr/00-run.sh new file mode 100755 index 0000000..498b8a2 --- /dev/null +++ b/builder/stage4/07-pisdr-limesdr/00-run.sh @@ -0,0 +1,23 @@ +#!/bin/bash -e + +on_chroot << EOF +mkdir -p "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/LimeSDR" +cd "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/LimeSDR" + +if [ ! -d "LimeSuite" ]; then + git clone https://github.com/myriadrf/LimeSuite.git +fi + +cd LimeSuite +git pull +mkdir -p build +cd build +rm -rf CMakeCache.txt +cmake -DENABLE_SPI=ON -DCMAKE_CXX_LINK_FLAGS="$(DCMAKE_CXX_LINK_FLAGS) -latomic" ../ +make -j$(nproc) +make install +ldconfig + +cd .. +./udev-rules/install.sh +EOF diff --git a/builder/stage4/07-pisdr-limesdr/01-run.sh b/builder/stage4/07-pisdr-limesdr/01-run.sh new file mode 100755 index 0000000..8b5139f --- /dev/null +++ b/builder/stage4/07-pisdr-limesdr/01-run.sh @@ -0,0 +1,20 @@ +#!/bin/bash -e + +on_chroot << EOF +mkdir -p "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/LimeSDR" +cd "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/LimeSDR" + +if [ ! -d "gr-limesdr" ]; then + git clone https://github.com/myriadrf/gr-limesdr.git +fi + +cd gr-limesdr +git pull +mkdir -p build +cd build +rm -rf CMakeCache.txt +cmake ../ +make -j$(nproc) +make install +ldconfig +EOF diff --git a/builder/stage4/08-pisdr-airspy/00-run.sh b/builder/stage4/08-pisdr-airspy/00-run.sh new file mode 100755 index 0000000..5dc0526 --- /dev/null +++ b/builder/stage4/08-pisdr-airspy/00-run.sh @@ -0,0 +1,20 @@ +#!/bin/bash -e + +on_chroot << EOF +mkdir -p "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/Airspy" +cd "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/Airspy" + +if [ ! -d "airspyone_host" ]; then + git clone https://github.com/airspy/airspyone_host.git +fi + +cd airspyone_host +git pull +mkdir -p build +cd build +rm -rf CMakeCache.txt +cmake ../ -DINSTALL_UDEV_RULES=ON +make -j$(nproc) +make install +ldconfig +EOF \ No newline at end of file diff --git a/builder/stage4/08-pisdr-airspy/01-run.sh b/builder/stage4/08-pisdr-airspy/01-run.sh new file mode 100755 index 0000000..81ececb --- /dev/null +++ b/builder/stage4/08-pisdr-airspy/01-run.sh @@ -0,0 +1,22 @@ +#!/bin/bash -e + +on_chroot << EOF +mkdir -p "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/Airspy" +cd "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/Airspy" + +if [ ! -d "airspyhf" ]; then + git clone https://github.com/airspy/airspyhf.git +fi + +cd airspyhf +git pull +mkdir -p build +cd build +rm -rf CMakeCache.txt +cmake ../ -DINSTALL_UDEV_RULES=ON +make -j$(nproc) +make install +ldconfig +EOF + + diff --git a/builder/stage4/08-pisdr-airspy/02-run.sh b/builder/stage4/08-pisdr-airspy/02-run.sh new file mode 100755 index 0000000..83519dc --- /dev/null +++ b/builder/stage4/08-pisdr-airspy/02-run.sh @@ -0,0 +1,22 @@ +#!/bin/bash -e + +on_chroot << EOF +mkdir -p "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/Airspy" +cd "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/Airspy" + +if [ ! -d "SoapyAirspy" ]; then + git clone https://github.com/pothosware/SoapyAirspy.git +fi + +cd SoapyAirspy +git pull +mkdir -p build +cd build +rm -rf CMakeCache.txt +cmake -DCMAKE_CXX_FLAGS=-latomic ../ +make -j$(nproc) +make install +ldconfig +EOF + + diff --git a/builder/stage4/09-pisdr-rtlsdr/00-run.sh b/builder/stage4/09-pisdr-rtlsdr/00-run.sh new file mode 100755 index 0000000..44b882c --- /dev/null +++ b/builder/stage4/09-pisdr-rtlsdr/00-run.sh @@ -0,0 +1,20 @@ +#!/bin/bash -e + +on_chroot << EOF +mkdir -p "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/RTLSDR" +cd "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/RTLSDR" + +if [ ! -d "rtl-sdr" ]; then + git clone https://github.com/osmocom/rtl-sdr +fi + +cd rtl-sdr +git pull +mkdir -p build +cd build +rm -rf CMakeCache.txt +cmake ../ -DINSTALL_UDEV_RULES=ON -DDETACH_KERNEL_DRIVER=ON +make -j$(nproc) +make install +ldconfig +EOF \ No newline at end of file diff --git a/builder/stage4/09-pisdr-rtlsdr/01-run.sh b/builder/stage4/09-pisdr-rtlsdr/01-run.sh new file mode 100755 index 0000000..dac7176 --- /dev/null +++ b/builder/stage4/09-pisdr-rtlsdr/01-run.sh @@ -0,0 +1,20 @@ +#!/bin/bash -e + +on_chroot << EOF +mkdir -p "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/RTLSDR" +cd "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/RTLSDR" + +if [ ! -d "SoapyRTLSDR" ]; then + git clone https://github.com/pothosware/SoapyRTLSDR.git +fi + +cd SoapyRTLSDR +git pull +mkdir -p build +cd build +rm -rf CMakeCache.txt +cmake -DCMAKE_CXX_FLAGS=-latomic ../ +make -j$(nproc) +make install +ldconfig +EOF \ No newline at end of file diff --git a/builder/stage4/10-pisdr-plutosdr/00-packages b/builder/stage4/10-pisdr-plutosdr/00-packages new file mode 100644 index 0000000..16ba9db --- /dev/null +++ b/builder/stage4/10-pisdr-plutosdr/00-packages @@ -0,0 +1,9 @@ +libxml2-dev +bison +flex +libcdk5-dev +cmake +libaio-dev +libusb-1.0-0-dev +libserialport-dev +libavahi-client-dev \ No newline at end of file diff --git a/builder/stage4/10-pisdr-plutosdr/00-run.sh b/builder/stage4/10-pisdr-plutosdr/00-run.sh new file mode 100755 index 0000000..3fd0232 --- /dev/null +++ b/builder/stage4/10-pisdr-plutosdr/00-run.sh @@ -0,0 +1,20 @@ +#!/bin/bash -e + +on_chroot << EOF +mkdir -p "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/PlutoSDR" +cd "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/PlutoSDR" + +if [ ! -d "libiio" ]; then + git clone https://github.com/analogdevicesinc/libiio +fi + +cd libiio +git pull +mkdir -p build +cd build +rm -rf CMakeCache.txt +cmake ../ -DINSTALL_UDEV_RULE=ON +make -j$(nproc) +make install +ldconfig +EOF \ No newline at end of file diff --git a/builder/stage4/10-pisdr-plutosdr/01-run.sh b/builder/stage4/10-pisdr-plutosdr/01-run.sh new file mode 100755 index 0000000..f117364 --- /dev/null +++ b/builder/stage4/10-pisdr-plutosdr/01-run.sh @@ -0,0 +1,20 @@ +#!/bin/bash -e + +on_chroot << EOF +mkdir -p "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/PlutoSDR" +cd "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/PlutoSDR" + +if [ ! -d "libad9361-iio" ]; then + git clone https://github.com/analogdevicesinc/libad9361-iio +fi + +cd libad9361-iio +git pull +mkdir -p build +cd build +rm -rf CMakeCache.txt +cmake ../ -DINSTALL_UDEV_RULE=ON +make -j$(nproc) +make install +ldconfig +EOF \ No newline at end of file diff --git a/builder/stage4/10-pisdr-plutosdr/02-run.sh b/builder/stage4/10-pisdr-plutosdr/02-run.sh new file mode 100755 index 0000000..85be305 --- /dev/null +++ b/builder/stage4/10-pisdr-plutosdr/02-run.sh @@ -0,0 +1,20 @@ +#!/bin/bash -e + +on_chroot << EOF +mkdir -p "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/PlutoSDR" +cd "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/PlutoSDR" + +if [ ! -d "gr-iio" ]; then + git clone https://github.com/analogdevicesinc/gr-iio +fi + +cd gr-iio +git pull +mkdir -p build +cd build +rm -rf CMakeCache.txt +cmake ../ -DINSTALL_UDEV_RULE=ON +make -j$(nproc) +make install +ldconfig +EOF \ No newline at end of file diff --git a/builder/stage4/10-pisdr-plutosdr/03-run.sh b/builder/stage4/10-pisdr-plutosdr/03-run.sh new file mode 100755 index 0000000..eab11c8 --- /dev/null +++ b/builder/stage4/10-pisdr-plutosdr/03-run.sh @@ -0,0 +1,20 @@ +#!/bin/bash -e + +on_chroot << EOF +mkdir -p "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/PlutoSDR" +cd "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/PlutoSDR" + +if [ ! -d "SoapyPlutoSDR" ]; then + git clone https://github.com/pothosware/SoapyPlutoSDR.git +fi + +cd SoapyPlutoSDR +git pull +mkdir -p build +cd build +rm -rf CMakeCache.txt +cmake -DCMAKE_CXX_FLAGS=-latomic ../ +make -j$(nproc) +make install +ldconfig +EOF \ No newline at end of file diff --git a/builder/stage4/11-pisdr-sdrangel/00-packages b/builder/stage4/11-pisdr-sdrangel/00-packages new file mode 100644 index 0000000..eeece68 --- /dev/null +++ b/builder/stage4/11-pisdr-sdrangel/00-packages @@ -0,0 +1,31 @@ +git +cmake +g++ +pkg-config +autoconf +automake +libtool +libfftw3-dev +libusb-1.0-0-dev +libusb-dev +qt5-default +qtbase5-dev +qtchooser +libqt5multimedia5-plugins +qtmultimedia5-dev +libqt5websockets5-dev +qttools5-dev +qttools5-dev-tools +libqt5opengl5-dev +qtbase5-dev +libboost-all-dev +libasound2-dev +pulseaudio +libopencv-dev +libxml2-dev +bison +flex +ffmpeg +libavcodec-dev +libavformat-dev +libopus-dev \ No newline at end of file diff --git a/builder/stage4/11-pisdr-sdrangel/00-run.sh b/builder/stage4/11-pisdr-sdrangel/00-run.sh new file mode 100755 index 0000000..8943cfc --- /dev/null +++ b/builder/stage4/11-pisdr-sdrangel/00-run.sh @@ -0,0 +1,21 @@ +#!/bin/bash -e + +on_chroot << EOF +mkdir -p "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/Software" +cd "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/Software" + +if [ ! -d "cm256cc" ]; then + git clone https://github.com/f4exb/cm256cc.git +fi + +cd cm256cc +git pull +git reset --hard f21e8bc1e9afdb0b28672743dcec111aec1d32d9 +mkdir -p build +cd build +rm -rf CMakeCache.txt +cmake ../ +make -j$(nproc) +make install +ldconfig +EOF \ No newline at end of file diff --git a/builder/stage4/11-pisdr-sdrangel/01-run.sh b/builder/stage4/11-pisdr-sdrangel/01-run.sh new file mode 100755 index 0000000..fd684f0 --- /dev/null +++ b/builder/stage4/11-pisdr-sdrangel/01-run.sh @@ -0,0 +1,21 @@ +#!/bin/bash -e + +on_chroot << EOF +mkdir -p "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/Software" +cd "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/Software" + +if [ ! -d "mbelib" ]; then + git clone https://github.com/szechyjs/mbelib.git +fi + +cd mbelib +git pull +git reset --hard 9a04ed5c78176a9965f3d43f7aa1b1f5330e771f +mkdir -p build +cd build +rm -rf CMakeCache.txt +cmake ../ +make -j$(nproc) +make install +ldconfig +EOF \ No newline at end of file diff --git a/builder/stage4/11-pisdr-sdrangel/02-run.sh b/builder/stage4/11-pisdr-sdrangel/02-run.sh new file mode 100755 index 0000000..061c2bd --- /dev/null +++ b/builder/stage4/11-pisdr-sdrangel/02-run.sh @@ -0,0 +1,21 @@ +#!/bin/bash -e + +on_chroot << EOF +mkdir -p "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/Software" +cd "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/Software" + +if [ ! -d "serialDV" ]; then + git clone https://github.com/f4exb/serialDV.git +fi + +cd serialDV +git pull +git reset --hard "v1.1.4" +mkdir -p build +cd build +rm -rf CMakeCache.txt +cmake ../ +make -j$(nproc) +make install +ldconfig +EOF \ No newline at end of file diff --git a/builder/stage4/11-pisdr-sdrangel/03-run.sh b/builder/stage4/11-pisdr-sdrangel/03-run.sh new file mode 100755 index 0000000..1d03f9e --- /dev/null +++ b/builder/stage4/11-pisdr-sdrangel/03-run.sh @@ -0,0 +1,21 @@ +#!/bin/bash -e + +on_chroot << EOF +mkdir -p "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/Software" +cd "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/Software" + +if [ ! -d "dsdcc" ]; then + git clone https://github.com/f4exb/dsdcc.git +fi + +cd dsdcc +git pull +git reset --hard "v1.8.6" +mkdir -p build +cd build +rm -rf CMakeCache.txt +cmake -DUSE_MBELIB=ON ../ +make -j$(nproc) +make install +ldconfig +EOF \ No newline at end of file diff --git a/builder/stage4/11-pisdr-sdrangel/04-run.sh b/builder/stage4/11-pisdr-sdrangel/04-run.sh new file mode 100755 index 0000000..33a726b --- /dev/null +++ b/builder/stage4/11-pisdr-sdrangel/04-run.sh @@ -0,0 +1,21 @@ +#!/bin/bash -e + +on_chroot << EOF +mkdir -p "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/Software" +cd "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/Software" + +if [ ! -d "codec2" ]; then + git clone https://github.com/drowe67/codec2.git +fi + +cd codec2 +git pull +git reset --hard 76a20416d715ee06f8b36a9953506876689a3bd2 +mkdir -p build +cd build +rm -rf CMakeCache.txt +cmake ../ +make -j$(nproc) +make install +ldconfig +EOF \ No newline at end of file diff --git a/builder/stage4/11-pisdr-sdrangel/05-run.sh b/builder/stage4/11-pisdr-sdrangel/05-run.sh new file mode 100755 index 0000000..e69de29 diff --git a/builder/stage4/EXPORT_IMAGE b/builder/stage4/EXPORT_IMAGE new file mode 100644 index 0000000..d44cc5e --- /dev/null +++ b/builder/stage4/EXPORT_IMAGE @@ -0,0 +1,4 @@ +IMG_SUFFIX="-vanilla" +if [ "${USE_QEMU}" = "1" ]; then + export IMG_SUFFIX="${IMG_SUFFIX}-qemu" +fi diff --git a/builder/stage4/prerun.sh b/builder/stage4/prerun.sh new file mode 100755 index 0000000..9acd13c --- /dev/null +++ b/builder/stage4/prerun.sh @@ -0,0 +1,5 @@ +#!/bin/bash -e + +if [ ! -d "${ROOTFS_DIR}" ]; then + copy_previous +fi diff --git a/docs/.stylelintrc.json b/docs/.stylelintrc.json new file mode 100644 index 0000000..108fc51 --- /dev/null +++ b/docs/.stylelintrc.json @@ -0,0 +1,10 @@ +{ + "ignoreFiles" : [ + "assets/css/just-the-docs.scss", + "assets/css/dark-mode-preview.scss", + "_sass/vendor/**/*.scss" + ], + "extends": [ + "stylelint-config-primer" + ] +} diff --git a/docs/404.html b/docs/404.html new file mode 100644 index 0000000..56efce4 --- /dev/null +++ b/docs/404.html @@ -0,0 +1,11 @@ +--- +layout: default +title: Page not found +permalink: /404 +nav_exclude: true +search_exclude: true +--- + +

Page not found

+ +

The page you requested could not be found. Try using the navigation {% if site.search_enabled %}or search {% endif %}to find what you're looking for or go to this site's home page.

diff --git a/docs/CNAME b/docs/CNAME new file mode 100644 index 0000000..777c786 --- /dev/null +++ b/docs/CNAME @@ -0,0 +1 @@ +pisdr.luigifreitas.me \ No newline at end of file diff --git a/docs/CODE_OF_CONDUCT.md b/docs/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..10fda59 --- /dev/null +++ b/docs/CODE_OF_CONDUCT.md @@ -0,0 +1,46 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at patrick.marsceill@gmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/4/ diff --git a/docs/Gemfile b/docs/Gemfile new file mode 100644 index 0000000..3be9c3c --- /dev/null +++ b/docs/Gemfile @@ -0,0 +1,2 @@ +source "https://rubygems.org" +gemspec diff --git a/docs/LICENSE.txt b/docs/LICENSE.txt new file mode 100644 index 0000000..9e81a6c --- /dev/null +++ b/docs/LICENSE.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Patrick Marsceill + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..1237707 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,68 @@ +

+ Gem version Build status +

+

+

+

Just the Docs

+

A modern, highly customizable, and responsive Jekyll theme for documentation with built-in search.
Easily hosted on GitHub Pages with few dependencies.

+

See it in action!

+


+

+ +![jtd](https://user-images.githubusercontent.com/896475/47384541-89053c80-d6d5-11e8-98dc-dba16e192de9.gif) + +## Installation + +Add this line to your Jekyll site's Gemfile: + +```ruby +gem "just-the-docs" +``` + +And add this line to your Jekyll site's `_config.yml`: + +```yaml +theme: just-the-docs +``` + +And then execute: + + $ bundle + +Or install it yourself as: + + $ gem install just-the-docs + +## Usage + +[View the documentation](https://pmarsceill.github.io/just-the-docs/) for usage information. + +## Contributing + +Bug reports and pull requests are welcome on GitHub at https://github.com/pmarsceill/just-the-docs. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct. + +### Submitting code changes: + +- Open a [Pull Request](https://github.com/pmarsceill/just-the-docs/pulls) +- Ensure all CI tests pass +- Await code review +- Bump the version number in `just-the-docs.gemspec` and `package.json` according to [semantic versioning](https://semver.org/). + +### Design and development principles of this theme: + +1. As few dependencies as possible +2. No build script needed +3. First class mobile experience +4. Make the content shine + +## Development + +To set up your environment to develop this theme, run `bundle install`. + +Your theme is set up just like a normal Jekyll site! To test your theme, run `bundle exec jekyll serve` and open your browser at `http://localhost:4000`. This starts a Jekyll server using your theme. Add pages, documents, data, etc. like normal to test your theme's contents. As you make modifications to your theme and to your content, your site will regenerate and you should see the changes in the browser after a refresh, just like normal. + +When the theme is released, only the files in `_layouts`, `_includes`, and `_sass` tracked with Git will be released. + +## License + +The theme is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT). diff --git a/docs/Rakefile b/docs/Rakefile new file mode 100644 index 0000000..b8b42c4 --- /dev/null +++ b/docs/Rakefile @@ -0,0 +1 @@ +Dir.glob('lib/tasks/*.rake').each {|r| import r} diff --git a/docs/_config.yml b/docs/_config.yml new file mode 100644 index 0000000..1f5093c --- /dev/null +++ b/docs/_config.yml @@ -0,0 +1,61 @@ +<<<<<<< HEAD +# Welcome to Jekyll! +# +# This config file is meant for settings that affect your whole site, values +# which you are expected to set up once and rarely edit after that. If you find +# yourself editing these this file very often, consider using Jekyll's data files +# feature for the data you need to update frequently. +# +# For technical reasons, this file is *NOT* reloaded automatically when you use +# 'jekyll serve'. If you change this file, please restart the server process. + +# Site settings +# These are used to personalize your new site. If you look in the HTML files, +# you will see them accessed via {{ site.title }}, {{ site.github_repo }}, and so on. +# You can create any custom variable you would like, and they will be accessible +# in the templates via {{ site.myvariable }}. +title: PiSDR Project +description: Official PiSDR Project Download and Documentation Page +baseurl: "/" +url: "https://pisdr.luigifreitas.me" # the base hostname & protocol for your site, e.g. http://example.com + +permalink: pretty +exclude: ["node_modules/", "*.gemspec", "*.gem", "Gemfile", "Gemfile.lock", "package.json", "package-lock.json", "script/", "LICENSE.txt", "lib/", "bin/", "README.md", "Rakefile"] + +# Set a path/url to a logo that will be displayed instead of the title +#logo: "/assets/images/just-the-docs.png" + +# Enable or disable the site search +search_enabled: true + +# Set the search token separator for hyphenated-word search: +search_tokenizer_separator: /[\s/]+/ + +# Enable or disable heading anchors +heading_anchors: true + +# Aux links for the upper right navigation +aux_links: + "PiSDR Project on GitHub": + - "//github.com/luigifreitas/pisdr-image" + +# Footer content appears at the bottom of every page's main content +footer_content: "Copyright © 2019-2019 Luigi F. Cruz. Distributed by an MIT license." + +color_scheme: nil + +ga_tracking: UA-126129402-1 + +plugins: + - jekyll-seo-tag + +compress_html: + clippings: all + comments: all + endings: all + startings: [] + blanklines: false + profile: false +======= +theme: jekyll-theme-cayman +>>>>>>> f429b03be641f7a26cadc6f92b8187dde4b423aa diff --git a/docs/_includes/head.html b/docs/_includes/head.html new file mode 100644 index 0000000..eae6a5e --- /dev/null +++ b/docs/_includes/head.html @@ -0,0 +1,40 @@ + + + + + {% if site.plugins.jekyll-seo == nil %} + {{ page.title }} - {{ site.title }} + + {% if page.description %} + + {% endif %} + {% endif %} + + + + + + {% if site.ga_tracking != nil %} + + + + {% endif %} + + {% if site.search_enabled != false %} + + {% endif %} + + + + + {% seo %} + + {% include head_custom.html %} + + diff --git a/docs/_includes/head_custom.html b/docs/_includes/head_custom.html new file mode 100644 index 0000000..e69de29 diff --git a/docs/_includes/js/custom.js b/docs/_includes/js/custom.js new file mode 100644 index 0000000..e69de29 diff --git a/docs/_includes/nav.html b/docs/_includes/nav.html new file mode 100644 index 0000000..d561a42 --- /dev/null +++ b/docs/_includes/nav.html @@ -0,0 +1,40 @@ + diff --git a/docs/_includes/title.html b/docs/_includes/title.html new file mode 100644 index 0000000..8bd3fa8 --- /dev/null +++ b/docs/_includes/title.html @@ -0,0 +1,5 @@ +{% if site.logo %} + +{% else %} + {{ site.title }} +{% endif %} diff --git a/docs/_includes/vendor/anchor_headings.html b/docs/_includes/vendor/anchor_headings.html new file mode 100755 index 0000000..25397df --- /dev/null +++ b/docs/_includes/vendor/anchor_headings.html @@ -0,0 +1,100 @@ +{% capture headingsWorkspace %} + {% comment %} + Version 1.0.3 + https://github.com/allejo/jekyll-anchor-headings + + "Be the pull request you wish to see in the world." ~Ben Balter + + Usage: + {% include anchor_headings.html html=content %} + + Parameters: + * html (string) - the HTML of compiled markdown generated by kramdown in Jekyll + + Optional Parameters: + * beforeHeading (bool) : false - Set to true if the anchor should be placed _before_ the heading's content + * anchorBody (string) : '' - The content that will be placed inside the anchor; the `%heading%` placeholder is available + * anchorClass (string) : '' - The class(es) that will be used for each anchor. Separate multiple classes with a space + * anchorTitle (string) : '' - The `title` attribute that will be used for anchors + * h_min (int) : 1 - The minimum header level to build an anchor for; any header lower than this value will be ignored + * h_max (int) : 6 - The maximum header level to build an anchor for; any header greater than this value will be ignored + * bodyPrefix (string) : '' - Anything that should be inserted inside of the heading tag _before_ its anchor and content + * bodySuffix (string) : '' - Anything that should be inserted inside of the heading tag _after_ its anchor and content + + Output: + The original HTML with the addition of anchors inside of all of the h1-h6 headings. + {% endcomment %} + + {% assign minHeader = include.h_min | default: 1 %} + {% assign maxHeader = include.h_max | default: 6 %} + {% assign beforeHeading = include.beforeHeading %} + {% assign nodes = include.html | split: ' + {% if headerLevel == 0 %} + {% if nextChar != '<' and nextChar != '' %} + {% capture node %}' | first }}>{% endcapture %} + {% assign header = _workspace[0] | replace: _hAttrToStrip, '' %} + + + {% capture anchor %}{% endcapture %} + + {% if html_id and headerLevel >= minHeader and headerLevel <= maxHeader %} + {% capture anchor %}href="#{{ html_id}}"{% endcapture %} + + {% if include.anchorClass %} + {% capture anchor %}{{ anchor }} class="{{ include.anchorClass }}"{% endcapture %} + {% endif %} + + {% if include.anchorTitle %} + {% capture anchor %}{{ anchor }} title="{{ include.anchorTitle | replace: '%heading%', header }}"{% endcapture %} + {% endif %} + + {% capture anchor %}{{ include.anchorBody | replace: '%heading%', header | default: '' }}{% endcapture %} + + + {% if beforeHeading %} + {% capture anchor %}{{ anchor }} {% endcapture %} + {% else %} + {% capture anchor %} {{ anchor }}{% endcapture %} + {% endif %} + {% endif %} + + {% capture new_heading %} + + + +{% include head.html %} + + + + Link + + + + +
+ +
+
+ +
+ {% unless page.url == "/" %} + {% if page.parent %} + + {% endif %} + {% endunless %} +
+ {% if site.heading_anchors != false %} + {% include vendor/anchor_headings.html html=content beforeHeading="true" anchorBody="" anchorClass="anchor-heading" %} + {% else %} + {{ content }} + {% endif %} + + {% if page.has_children == true and page.has_toc != false %} +
+

Table of contents

+ {% assign children_list = site.pages | sort:"nav_order" %} +
    + {% for child in children_list %} + {% if child.parent == page.title and child.title != page.title %} +
  • + {{ child.title }}{% if child.summary %} - {{ child.summary }}{% endif %} +
  • + {% endif %} + {% endfor %} +
+ {% endif %} + + {% if site.footer_content != nil %} +
+
+

{{ site.footer_content }}

+
+ {% endif %} + +
+
+
+
+ + + diff --git a/docs/_layouts/home.html b/docs/_layouts/home.html new file mode 100644 index 0000000..5e71126 --- /dev/null +++ b/docs/_layouts/home.html @@ -0,0 +1,5 @@ +--- +layout: default +--- + +{{ content }} diff --git a/docs/_layouts/page.html b/docs/_layouts/page.html new file mode 100644 index 0000000..5e71126 --- /dev/null +++ b/docs/_layouts/page.html @@ -0,0 +1,5 @@ +--- +layout: default +--- + +{{ content }} diff --git a/docs/_layouts/post.html b/docs/_layouts/post.html new file mode 100644 index 0000000..5e71126 --- /dev/null +++ b/docs/_layouts/post.html @@ -0,0 +1,5 @@ +--- +layout: default +--- + +{{ content }} diff --git a/docs/_layouts/table_wrappers.html b/docs/_layouts/table_wrappers.html new file mode 100644 index 0000000..cc6187a --- /dev/null +++ b/docs/_layouts/table_wrappers.html @@ -0,0 +1,7 @@ +--- +layout: vendor/compress +--- + +{% assign content_ = content | replace: '', '
' %} +{{ content_ }} \ No newline at end of file diff --git a/docs/_layouts/vendor/compress.html b/docs/_layouts/vendor/compress.html new file mode 100644 index 0000000..bb34487 --- /dev/null +++ b/docs/_layouts/vendor/compress.html @@ -0,0 +1,10 @@ +--- +# Jekyll layout that compresses HTML +# v3.1.0 +# http://jch.penibelst.de/ +# © 2014–2015 Anatol Broder +# MIT License +--- + +{% capture _LINE_FEED %} +{% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment or site.compress_html.ignore.envs == "all" %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "" %}{% endif %}{% unless _pre_before contains "" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " ;; ;" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %}
Step Bytes
raw {{ content | size }}{% if _profile_endings %}
endings {{ _profile_endings }}{% endif %}{% if _profile_startings %}
startings {{ _profile_startings }}{% endif %}{% if _profile_comments %}
comments {{ _profile_comments }}{% endif %}{% if _profile_collapse %}
collapse {{ _profile_collapse }}{% endif %}{% if _profile_clippings %}
clippings {{ _profile_clippings }}{% endif %}
{% endif %}{% endif %} diff --git a/docs/_sass/base.scss b/docs/_sass/base.scss new file mode 100644 index 0000000..126f608 --- /dev/null +++ b/docs/_sass/base.scss @@ -0,0 +1,111 @@ +// +// Base element style overrides +// +// stylelint-disable selector-no-type, selector-max-type + +* { + box-sizing: border-box; +} + +::selection { + color: $white; + background: $link-color; +} + +html { + @include fs-4; +} + +body { + font-family: $body-font-family; + font-size: inherit; + line-height: $body-line-height; + color: $body-text-color; + background-color: $body-background-color; +} + +p, +h1, +h2, +h3, +h4, +h5, +h6, +ol, +ul, +pre, +address, +blockquote, +dl, +div, +fieldset, +form, +hr, +noscript, +table { + margin-top: 0; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin-top: 1.2em; + margin-bottom: 0.8em; + font-weight: 500; + line-height: $body-heading-line-height; + color: $body-heading-color; +} + +p { + margin-bottom: 1em; +} + +a { + color: $link-color; + text-decoration: none; +} + +a:not([class]) { + text-decoration: none; + background-image: linear-gradient($border-color 0%, $border-color 100%); + background-repeat: repeat-x; + background-position: 0 100%; + background-size: 1px 1px; + + &:hover { + background-image: linear-gradient(rgba($link-color, 0.45) 0%, rgba($link-color, 0.45) 100%); + background-size: 1px 1px; + + } +} + +code { + font-family: $mono-font-family; + font-size: 12px; + line-height: $body-line-height; +} + +figure, +pre { + margin: 0; +} + +li { + margin: 0.25em 0; +} + +img { + max-width: 100%; + height: auto; +} + +hr { + height: 1px; + padding: 0; + margin: $sp-6 0; + background-color: $border-color; + border: 0; +} diff --git a/docs/_sass/buttons.scss b/docs/_sass/buttons.scss new file mode 100644 index 0000000..57660e0 --- /dev/null +++ b/docs/_sass/buttons.scss @@ -0,0 +1,118 @@ +// +// Buttons and things that look like buttons +// +// stylelint-disable color-named + +.btn { + display: inline-block; + box-sizing: border-box; + padding-top: 0.3em; + padding-right: 1em; + padding-bottom: 0.3em; + padding-left: 1em; + margin: 0; + font-family: inherit; + font-size: inherit; + font-weight: 500; + line-height: 1.5; + color: $link-color; + text-decoration: none; + vertical-align: baseline; + cursor: pointer; + background-color: $base-button-color; + border-width: 0; + border-radius: $border-radius; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + appearance: none; + + &:focus { + text-decoration: none; + outline: none; + box-shadow: 0 0 0 3px rgba(blue, 0.25); + } + + &:focus:hover, + &.selected:focus { + box-shadow: 0 0 0 3px rgba(blue, 0.25); + } + + &:hover, + &.zeroclipboard-is-hover { + color: darken($link-color, 2%); + } + + &:hover, + &:active, + &.zeroclipboard-is-hover, + &.zeroclipboard-is-active { + text-decoration: none; + background-color: darken($base-button-color, 1%); + } + + &:active, + &.selected, + &.zeroclipboard-is-active { + background-color: darken($base-button-color, 3%); + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); + } + + &.selected:hover { + background-color: darken(#dcdcdc, 5%); + } + + &:disabled, + &.disabled { + &, + &:hover { + color: rgba(102, 102, 102, 0.5); + cursor: default; + background-color: rgba(229, 229, 229, 0.5); + background-image: none; + box-shadow: none; + } + } +} + +.btn-outline { + color: $link-color; + background: transparent; + box-shadow: inset 0 0 0 2px $grey-lt-300; + + &:hover, + &:active, + &.zeroclipboard-is-hover, + &.zeroclipboard-is-active { + color: darken($link-color, 4%); + text-decoration: none; + background-color: transparent; + box-shadow: inset 0 0 0 3px $grey-lt-300; + } + + &:focus { + text-decoration: none; + outline: none; + box-shadow: inset 0 0 0 2px $grey-dk-100, 0 0 0 3px rgba(blue, 0.25); + } + + &:focus:hover, + &.selected:focus { + box-shadow: inset 0 0 0 2px $grey-dk-100; + } +} + +.btn-primary { + @include btn-color($white, $btn-primary-color); +} + +.btn-purple { + @include btn-color($white, $purple-100); +} + +.btn-blue { + @include btn-color($white, $blue-000); +} + +.btn-green { + @include btn-color($white, $green-100); +} diff --git a/docs/_sass/code.scss b/docs/_sass/code.scss new file mode 100644 index 0000000..31a4842 --- /dev/null +++ b/docs/_sass/code.scss @@ -0,0 +1,123 @@ +// +// Code and syntax highlighting +// +// stylelint-disable selector-no-qualifying-type, declaration-block-semicolon-newline-after,declaration-block-single-line-max-declarations, selector-no-type, selector-max-type + +code { + padding: 0.2em 0.15em; + font-weight: 400; + background-color: $code-background-color; + border: $border $border-color; + border-radius: $border-radius; +} + +pre.highlight, +figure.highlight { + padding: $sp-3; + margin-bottom: 0; + -webkit-overflow-scrolling: touch; + background-color: $code-background-color; + + code { + padding: 0; + border: 0; + } +} + +.highlighter-rouge { + margin-bottom: $sp-3; + overflow: hidden; + border-radius: $border-radius; +} + +.highlight .c { color: #586e75; } // comment // +.highlight .err { color: #93a1a1; } // error // +.highlight .g { color: #93a1a1; } // generic // +.highlight .k { color: #859900; } // keyword // +.highlight .l { color: #93a1a1; } // literal // +.highlight .n { color: #93a1a1; } // name // +.highlight .o { color: #859900; } // operator // +.highlight .x { color: #cb4b16; } // other // +.highlight .p { color: #93a1a1; } // punctuation // +.highlight .cm { color: #586e75; } // comment.multiline // +.highlight .cp { color: #859900; } // comment.preproc // +.highlight .c1 { color: #586e75; } // comment.single // +.highlight .cs { color: #859900; } // comment.special // +.highlight .gd { color: #2aa198; } // generic.deleted // +.highlight .ge { font-style: italic; color: #93a1a1; } // generic.emph // +.highlight .gr { color: #dc322f; } // generic.error // +.highlight .gh { color: #cb4b16; } // generic.heading // +.highlight .gi { color: #859900; } // generic.inserted // +.highlight .go { color: #93a1a1; } // generic.output // +.highlight .gp { color: #93a1a1; } // generic.prompt // +.highlight .gs { font-weight: bold; color: #93a1a1; } // generic.strong // +.highlight .gu { color: #cb4b16; } // generic.subheading // +.highlight .gt { color: #93a1a1; } // generic.traceback // +.highlight .kc { color: #cb4b16; } // keyword.constant // +.highlight .kd { color: #268bd2; } // keyword.declaration // +.highlight .kn { color: #859900; } // keyword.namespace // +.highlight .kp { color: #859900; } // keyword.pseudo // +.highlight .kr { color: #268bd2; } // keyword.reserved // +.highlight .kt { color: #dc322f; } // keyword.type // +.highlight .ld { color: #93a1a1; } // literal.date // +.highlight .m { color: #2aa198; } // literal.number // +.highlight .s { color: #2aa198; } // literal.string // +.highlight .na { color: #555; } // name.attribute // +.highlight .nb { color: #b58900; } // name.builtin // +.highlight .nc { color: #268bd2; } // name.class // +.highlight .no { color: #cb4b16; } // name.constant // +.highlight .nd { color: #268bd2; } // name.decorator // +.highlight .ni { color: #cb4b16; } // name.entity // +.highlight .ne { color: #cb4b16; } // name.exception // +.highlight .nf { color: #268bd2; } // name.function // +.highlight .nl { color: #555; } // name.label // +.highlight .nn { color: #93a1a1; } // name.namespace // +.highlight .nx { color: #555; } // name.other // +.highlight .py { color: #93a1a1; } // name.property // +.highlight .nt { color: #268bd2; } // name.tag // +.highlight .nv { color: #268bd2; } // name.variable // +.highlight .ow { color: #859900; } // operator.word // +.highlight .w { color: #93a1a1; } // text.whitespace // +.highlight .mf { color: #2aa198; } // literal.number.float // +.highlight .mh { color: #2aa198; } // literal.number.hex // +.highlight .mi { color: #2aa198; } // literal.number.integer // +.highlight .mo { color: #2aa198; } // literal.number.oct // +.highlight .sb { color: #586e75; } // literal.string.backtick // +.highlight .sc { color: #2aa198; } // literal.string.char // +.highlight .sd { color: #93a1a1; } // literal.string.doc // +.highlight .s2 { color: #2aa198; } // literal.string.double // +.highlight .se { color: #cb4b16; } // literal.string.escape // +.highlight .sh { color: #93a1a1; } // literal.string.heredoc // +.highlight .si { color: #2aa198; } // literal.string.interpol // +.highlight .sx { color: #2aa198; } // literal.string.other // +.highlight .sr { color: #dc322f; } // literal.string.regex // +.highlight .s1 { color: #2aa198; } // literal.string.single // +.highlight .ss { color: #2aa198; } // literal.string.symbol // +.highlight .bp { color: #268bd2; } // name.builtin.pseudo // +.highlight .vc { color: #268bd2; } // name.variable.class // +.highlight .vg { color: #268bd2; } // name.variable.global // +.highlight .vi { color: #268bd2; } // name.variable.instance // +.highlight .il { color: #2aa198; } // literal.number.integer.long // + +// +// Code examples (rendered) +// + +.code-example { + padding: $sp-3; + margin-bottom: $sp-3; + overflow: auto; + border: 1px solid $border-color; + border-radius: $border-radius; + + + .highlighter-rouge, + + figure.highlight { + position: relative; + margin-top: -$sp-4; + border-right: 1px solid $border-color; + border-bottom: 1px solid $border-color; + border-left: 1px solid $border-color; + border-top-left-radius: 0; + border-top-right-radius: 0; + } +} diff --git a/docs/_sass/color_schemes/dark.scss b/docs/_sass/color_schemes/dark.scss new file mode 100644 index 0000000..f0e6505 --- /dev/null +++ b/docs/_sass/color_schemes/dark.scss @@ -0,0 +1,17 @@ + +$body-background-color: $grey-dk-300; +$sidebar-color: $grey-dk-300; +$border-color: $grey-dk-200; + +$body-text-color: $grey-lt-300; +$body-heading-color: $grey-lt-000; +$nav-child-link-color: $grey-dk-000; +$search-result-preview-color: $grey-dk-000; + +$link-color: $blue-000; +$btn-primary-color: $blue-200; +$base-button-color: $grey-dk-250; + +$code-background-color: $grey-dk-250; +$search-background-color: $grey-dk-250; +$table-background-color: $grey-dk-250; diff --git a/docs/_sass/content.scss b/docs/_sass/content.scss new file mode 100644 index 0000000..2940286 --- /dev/null +++ b/docs/_sass/content.scss @@ -0,0 +1,160 @@ +@charset "UTF-8"; + +// +// Styles for rendered markdown in the .main-content container +// +// stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type + +.page-content { + line-height: $content-line-height; + + a { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + ul, + ol { + padding-left: 1.5em; + } + + ol { + list-style-type: none; + counter-reset: step-counter; + + > li { + position: relative; + + &::before { + position: absolute; + top: 0.2em; + left: -1.6em; + color: $grey-dk-000; + content: counter(step-counter); + counter-increment: step-counter; + @include fs-3; + + @include mq(sm) { + top: 0.11em; + } + } + + ol { + counter-reset: sub-counter; + + li { + &::before { + content: counter(sub-counter, lower-alpha); + counter-increment: sub-counter; + } + } + } + } + } + + ul { + list-style: none; + + > li { + &::before { + position: absolute; + margin-left: -1.4em; + color: $grey-dk-000; + content: "•"; + } + } + } + + .task-list { + padding-left: 0; + } + + .task-list-item { + display: flex; + align-items: center; + + &::before { + content: ""; + } + } + + .task-list-item-checkbox { + margin-right: 0.6em; + } + + hr + * { + margin-top: 0; + } + + h1:first-of-type { + margin-top: 0.5em; + } + + dl { + display: grid; + grid-template-columns: max-content 1fr; + } + + dt, + dd { + margin: 0.25em 0; + } + + dt { + text-align: right; + + &::after { + content: ":"; + } + } + + dd { + margin-left: 1em; + font-weight: 500; + } + + .anchor-heading { + position: absolute; + right: -$sp-4; + width: $sp-5; + height: 100%; + padding-right: $sp-1; + padding-left: $sp-1; + overflow: visible; + + @include mq(md) { + right: auto; + left: -$sp-5; + } + + svg { + display: inline-block; + width: 100%; + height: 100%; + fill: $link-color; + visibility: hidden; + } + } + + .anchor-heading:hover, + h1:hover > .anchor-heading, + h2:hover > .anchor-heading, + h3:hover > .anchor-heading, + h4:hover > .anchor-heading, + h5:hover > .anchor-heading, + h6:hover > .anchor-heading { + svg { + visibility: visible; + } + } + + h1, + h2, + h3, + h4, + h5, + h6 { + position: relative; + } +} diff --git a/docs/_sass/custom/custom.scss b/docs/_sass/custom/custom.scss new file mode 100644 index 0000000..9ac503b --- /dev/null +++ b/docs/_sass/custom/custom.scss @@ -0,0 +1,129 @@ +//// +//// Typography +//// + +//$body-font-family: -apple-system, BlinkMacSystemFont, "helvetica neue", helvetica, roboto, noto, "segoe ui", arial, sans-serif; +//$mono-font-family: "SFMono-Regular", Menlo, Consolas, Monospace; +//$root-font-size: 16px; // Base font-size for rems +//$body-line-height: 1.4; +//$content-line-height: 1.5; +//$body-heading-line-height: 1.15; + +//// +//// Colors +//// + +//$white: #fff; + +//$grey-dk-000: #959396; +//$grey-dk-100: #5c5962; +//$grey-dk-200: #44434d; +//$grey-dk-250: #302d36; +//$grey-dk-300: #27262b; + +//$grey-lt-000: #f5f6fa; +//$grey-lt-100: #eeebee; +//$grey-lt-200: #ecebed; +//$grey-lt-300: #e6e1e8; + +//$purple-000: #7253ed; +//$purple-100: #5e41d0; +//$purple-200: #4e26af; +//$purple-300: #381885; + +//$blue-000: #2c84fa; +//$blue-100: #2869e6; +//$blue-200: #264caf; +//$blue-300: #183385; + +//$green-000: #41d693; +//$green-100: #11b584; +//$green-200: #009c7b; +//$green-300: #026e57; + +//$yellow-000: #ffeb82; +//$yellow-100: #fadf50; +//$yellow-200: #f7d12e; +//$yellow-300: #e7af06; + +//$red-000: #f77e7e; +//$red-100: #f96e65; +//$red-200: #e94c4c; +//$red-300: #dd2e2e; + +//$body-background-color: $white; +//$sidebar-color: $grey-lt-000; +//$search-background-color: $white; +//$table-background-color: $white; +//$code-background-color: $grey-lt-000; + +//$body-text-color: $grey-dk-100; +//$body-heading-color: $grey-dk-300; +//$search-result-preview-color: $grey-dk-000; +//$nav-child-link-color: $grey-dk-100; +//$link-color: $purple-000; +//$btn-primary-color: $purple-100; +//$base-button-color: #f7f7f7; + +//// +//// Spacing +//// + +//$spacing-unit: 1rem; // 1rem == 16px + +//$spacers: ( +//sp-0: 0, +//sp-1: $spacing-unit * 0.25, +//sp-2: $spacing-unit * 0.5, +//sp-3: $spacing-unit * 0.75, +//sp-4: $spacing-unit, +//sp-5: $spacing-unit * 1.5, +//sp-6: $spacing-unit * 2, +//sp-7: $spacing-unit * 2.5, +//sp-8: $spacing-unit * 3, +//sp-9: $spacing-unit * 3.5, +//sp-10: $spacing-unit * 4 +//); + +//$sp-1: map-get($spacers, sp-1); // 0.25 rem == 4px +//$sp-2: map-get($spacers, sp-2); // 0.5 rem == 8px +//$sp-3: map-get($spacers, sp-3); // 0.75 rem == 12px +//$sp-4: map-get($spacers, sp-4); // 1 rem == 16px +//$sp-5: map-get($spacers, sp-5); // 1.5 rem == 24px +//$sp-6: map-get($spacers, sp-6); // 2 rem == 32px +//$sp-7: map-get($spacers, sp-7); // 2.5 rem == 40px +//$sp-8: map-get($spacers, sp-8); // 3 rem == 48px +//$sp-9: map-get($spacers, sp-9); // 4 rem == 48px +//$sp-10: map-get($spacers, sp-10); // 4.5 rem == 48px + +//// +//// Borders +//// + +//$border: 1px solid; +//$border-radius: 4px; +//$border-color: $grey-lt-100; + +//// +//// Grid system +//// + +//$gutter-spacing: $sp-6; +//$gutter-spacing-sm: $sp-4; +//$nav-width: 264px; +//$nav-width-md: 248px; +//$content-width: 800px; +//$header-height: 60px; +//$search-results-width: 500px; + +//// +//// Media queries in pixels +//// + +//$media-queries: ( +//xs: 320px, +//sm: 500px, +//md: $content-width, +//lg: $content-width + $nav-width, +//xl: 1400px +//); diff --git a/docs/_sass/labels.scss b/docs/_sass/labels.scss new file mode 100644 index 0000000..23cc510 --- /dev/null +++ b/docs/_sass/labels.scss @@ -0,0 +1,36 @@ +// +// Labels (not the form kind) +// + +.label, +.label-blue { + display: inline-block; + padding-top: 0.16em; + padding-right: 0.42em; + padding-bottom: 0.16em; + padding-left: 0.42em; + margin-right: $sp-1; + margin-left: $sp-1; + color: $white; + text-transform: uppercase; + vertical-align: middle; + background-color: $blue-100; + @include fs-2; +} + +.label-green { + background-color: $green-200; +} + +.label-purple { + background-color: $purple-100; +} + +.label-red { + background-color: $red-200; +} + +.label-yellow { + color: $grey-dk-200; + background-color: $yellow-200; +} diff --git a/docs/_sass/layout.scss b/docs/_sass/layout.scss new file mode 100644 index 0000000..6644dc3 --- /dev/null +++ b/docs/_sass/layout.scss @@ -0,0 +1,209 @@ +// +// The basic two column layout +// + +.page-wrap { + @include mq(md) { + position: absolute; + top: 0; + left: 0; + display: flex; + width: 100%; + height: 100%; + overflow-x: hidden; + overflow-y: hidden; + } +} + +.side-bar { + z-index: 100; + display: flex; + flex-wrap: wrap; + background-color: $sidebar-color; + + @include mq(md) { + flex-wrap: nowrap; + position: absolute; + width: $nav-width-md; + height: 100%; + flex-direction: column; + border-right: $border $border-color; + align-items: flex-end; + } + + @include mq(lg) { + width: calc((100% - #{$nav-width + $content-width}) / 2 + #{$nav-width}); + min-width: $nav-width; + } +} + +.main-content-wrap { + @include mq(md) { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + -webkit-overflow-scrolling: touch; + overflow-x: hidden; + overflow-y: scroll; + } +} + +.main-content { + @include mq(md) { + position: relative; + max-width: $content-width; + margin-left: $nav-width-md; + } + + @include mq(lg) { + margin-left: calc((100% - #{$nav-width + $content-width}) / 2 + #{$nav-width}); + } +} + +.js-main-content:focus { + outline: none; +} + +.page { + @include container; + padding-top: $gutter-spacing-sm; + padding-bottom: $gutter-spacing-sm; + + @include mq(md) { + padding-top: $gutter-spacing; + padding-bottom: $gutter-spacing; + } +} + +.page-header { + @include container; + display: none; + padding-top: $gutter-spacing-sm; + padding-bottom: $gutter-spacing-sm; + background-color: $sidebar-color; + + @include mq(md) { + display: flex; + justify-content: flex-end; + height: $header-height; + background-color: $body-background-color; + border-bottom: $border $border-color; + } + + &.nav-open { + display: block; + + @include mq(md) { + display: flex; + } + } +} + +.navigation, +.site-header, +.site-footer { + + width: 100%; + + @include mq(lg) { + width: $nav-width; + } +} + +.navigation { + @include container; + + @include mq(md) { + padding-top: $sp-8; + padding-bottom: $gutter-spacing-sm; + overflow-y: auto; + flex: 1 1 auto; + } +} + +.site-header { + display: flex; + min-height: $header-height; + align-items: center; + + @include mq(md) { + z-index: 101; + height: $header-height; + max-height: $header-height; + border-bottom: $border $border-color; + } +} + +.site-title { + @include container; + flex-grow: 1; + display: flex; + height: 100%; + align-items: center; + padding-top: $sp-3; + padding-bottom: $sp-3; + color: $body-heading-color; + @include fs-6; + + @include mq(md) { + padding-top: $sp-2; + padding-bottom: $sp-2; + } +} + +@if variable-exists(logo) { + .site-logo { + width: 100%; + height: 100%; + background-image: url($logo); + background-repeat: no-repeat; + background-position: left center; + background-size: contain; + } +} + +.menu-button { + appearance: none; + display: flex; + height: 100%; + padding: $gutter-spacing-sm; + align-items: center; + color: $link-color; + text-transform: uppercase; + background: transparent; + border: 0; + + @include mq(md) { + display: none; + } +} + +// stylelint-disable selector-max-type + +body { + position: relative; + padding-bottom: $sp-10; + + @include mq(md) { + position: static; + padding-bottom: 0; + } +} + +// stylelint-enable selector-max-type + +.site-footer { + @include container; + position: absolute; + bottom: 0; + left: 0; + padding-top: $sp-4; + padding-bottom: $sp-4; + + @include mq(md) { + position: static; + justify-self: end; + } +} diff --git a/docs/_sass/navigation.scss b/docs/_sass/navigation.scss new file mode 100644 index 0000000..c774904 --- /dev/null +++ b/docs/_sass/navigation.scss @@ -0,0 +1,120 @@ +// +// Main nav, breadcrumb, etc... +// +.navigation-list { + padding: 0; + margin-top: 0; + margin-bottom: 0; + list-style: none; +} + +.navigation-list-child-list { + padding-left: $sp-3; + list-style: none; + + .navigation-list-link { + color: $nav-child-link-color; + } + + .navigation-list-item { + position: relative; + + &::before { + position: absolute; + margin-top: 0.3em; + margin-left: -0.8em; + color: rgba($body-text-color, 0.3); + content: "- "; + } + + &.active { + &::before { + color: $body-text-color; + } + } + } +} + +.navigation-list-item { + @include fs-4; + margin: 0; + + @include mq(md) { + @include fs-3; + } + + .navigation-list-child-list { + display: none; + } + + &.active { + .navigation-list-child-list { + display: block; + } + } +} + +.navigation-list-link { + display: block; + padding-top: $sp-1; + padding-bottom: $sp-1; + + &.active { + font-weight: 600; + color: $body-heading-color; + text-decoration: none; + } +} + +// Small screen nav + +.main-nav { + display: none; + + &.nav-open { + display: block; + } + @include mq(md) { + display: block; + } +} + +.aux-nav { + align-self: center; +} + +// Breadcrumb nav +.breadcrumb-nav { + @include mq(md) { + margin-top: -$sp-4; + } +} + +.breadcrumb-nav-list { + padding-left: 0; + margin-bottom: $sp-3; + list-style: none; +} + +.breadcrumb-nav-list-item { + display: table-cell; + @include fs-2; + + &::before { + display: none; + } + + &::after { + display: inline-block; + margin-right: $sp-2; + margin-left: $sp-2; + color: $grey-dk-000; + content: "/"; + } + + &:last-child { + &::after { + content: ""; + } + } +} diff --git a/docs/_sass/overrides.scss b/docs/_sass/overrides.scss new file mode 100644 index 0000000..21e9527 --- /dev/null +++ b/docs/_sass/overrides.scss @@ -0,0 +1,3 @@ +// +// Custom overrides from a user. +// diff --git a/docs/_sass/search.scss b/docs/_sass/search.scss new file mode 100644 index 0000000..bef2df7 --- /dev/null +++ b/docs/_sass/search.scss @@ -0,0 +1,167 @@ +// +// Search input and autocomplete +// + +.search { + position: relative; + z-index: 99; + flex-grow: 1; + height: 100%; + margin-bottom: $sp-3; + + @include mq(md) { + margin-bottom: 0; + } +} + +.search-input-wrap { + display: flex; + height: 100%; + padding: $sp-2; + background-color: $search-background-color; + border-radius: $border-radius; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + + @include mq(md) { + padding-top: 0; + padding-right: 0; + padding-bottom: 0; + padding-left: 0; + background-color: $body-background-color; + border-radius: 0; + box-shadow: none; + } +} + +.search-input { + align-self: center; + width: 100%; + padding-top: $sp-1; + padding-bottom: $sp-1; + background-color: $search-background-color; + border-top: 0; + border-right: 0; + border-bottom: 0; + border-left: 0; + order: 2; + @include fs-4; + + &:focus { + outline: 0; + box-shadow: none; + + + .search-icon { + fill: $link-color; + } + } + + @include mq(md) { + background-color: $body-background-color; + @include fs-3; + } +} + +.search-icon { + align-self: center; + margin-right: $sp-2; + fill: $grey-dk-000; + order: 1; +} + +.search-results-wrap { + position: absolute; + z-index: 100; + display: none; + width: 100%; + background: $search-background-color; + border-radius: $border-radius; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + + &.active { + display: block; + } + + @include mq(md) { + width: $search-results-width; + } +} + +.search-results-list { + padding-left: 0; + margin-top: $sp-1; + margin-bottom: $sp-1; + list-style: none; + @include fs-4; + + @include mq(md) { + @include fs-3; + } +} + +.search-results-list-item { + padding: 0; + margin: 0; +} + +.search-result { + display: block; + padding-top: $sp-1; + padding-right: $sp-3; + padding-bottom: $sp-1; + padding-left: $sp-3; + + &:hover, + &.active { + background-color: $sidebar-color; + } + + @include mq(md) { + padding-right: $sp-4; + padding-left: $sp-4; + } +} + +.search-result-title { + display: block; + padding-top: $sp-2; + padding-right: $sp-4; + padding-bottom: $sp-2; + + @include mq(sm) { + display: inline-block; + width: 40%; + word-wrap: break-word; + vertical-align: top; + } +} + +.search-result-rel-url { + display: block; + overflow: hidden; + color: $search-result-preview-color; + text-overflow: ellipsis; + white-space: nowrap; + @include fs-1; +} + +.search-result-preview { + display: block; + padding-top: $sp-2; + padding-bottom: $sp-2; + padding-left: $sp-4; + color: $search-result-preview-color; + border-left: $border; + border-left-color: $border-color; + @include fs-2; + + @include mq(sm) { + display: inline-block; + width: 60%; + vertical-align: top; + } +} + +.search-result-highlight { + font-weight: bold; + color: $link-color; +} diff --git a/docs/_sass/support/_functions.scss b/docs/_sass/support/_functions.scss new file mode 100644 index 0000000..e9885f6 --- /dev/null +++ b/docs/_sass/support/_functions.scss @@ -0,0 +1,10 @@ +@function rem($size, $unit:"") { + $remSize: $size / $root-font-size; + + @if ($unit == false) { + @return #{$remSize}; + } + @else { + @return #{$remSize}rem; + } +} diff --git a/docs/_sass/support/_variables.scss b/docs/_sass/support/_variables.scss new file mode 100644 index 0000000..127c0e2 --- /dev/null +++ b/docs/_sass/support/_variables.scss @@ -0,0 +1,129 @@ +// +// Typography +// + +$body-font-family: -apple-system, BlinkMacSystemFont, "helvetica neue", helvetica, roboto, noto, "segoe ui", arial, sans-serif !default; +$mono-font-family: "SFMono-Regular", Menlo, Consolas, Monospace !default; +$root-font-size: 16px !default; // Base font-size for rems +$body-line-height: 1.4 !default; +$content-line-height: 1.5 !default; +$body-heading-line-height: 1.15 !default !default; + +// +// Colors +// + +$white: #fff !default; + +$grey-dk-000: #959396 !default; +$grey-dk-100: #5c5962 !default; +$grey-dk-200: #44434d !default; +$grey-dk-250: #302d36 !default; +$grey-dk-300: #27262b !default; + +$grey-lt-000: #f5f6fa !default; +$grey-lt-100: #eeebee !default; +$grey-lt-200: #ecebed !default; +$grey-lt-300: #e6e1e8 !default; + +$purple-000: #7253ed !default; +$purple-100: #5e41d0 !default; +$purple-200: #4e26af !default; +$purple-300: #381885 !default; + +$blue-000: #2c84fa !default; +$blue-100: #2869e6 !default; +$blue-200: #264caf !default; +$blue-300: #183385 !default; + +$green-000: #41d693 !default; +$green-100: #11b584 !default; +$green-200: #009c7b !default; +$green-300: #026e57 !default; + +$yellow-000: #ffeb82 !default; +$yellow-100: #fadf50 !default; +$yellow-200: #f7d12e !default; +$yellow-300: #e7af06 !default; + +$red-000: #f77e7e !default; +$red-100: #f96e65 !default; +$red-200: #e94c4c !default; +$red-300: #dd2e2e !default; + +$body-background-color: $white !default; +$sidebar-color: $grey-lt-000 !default; +$search-background-color: $white !default; +$table-background-color: $white !default; +$code-background-color: $grey-lt-000 !default; + +$body-text-color: $grey-dk-100 !default; +$body-heading-color: $grey-dk-300 !default; +$search-result-preview-color: $grey-dk-000 !default; +$nav-child-link-color: $grey-dk-100 !default; +$link-color: $purple-000 !default; +$btn-primary-color: $purple-100 !default; +$base-button-color: #f7f7f7 !default; + +// +// Spacing +// + +$spacing-unit: 1rem; // 1rem == 16px + +$spacers: ( + sp-0: 0, + sp-1: $spacing-unit * 0.25, + sp-2: $spacing-unit * 0.5, + sp-3: $spacing-unit * 0.75, + sp-4: $spacing-unit, + sp-5: $spacing-unit * 1.5, + sp-6: $spacing-unit * 2, + sp-7: $spacing-unit * 2.5, + sp-8: $spacing-unit * 3, + sp-9: $spacing-unit * 3.5, + sp-10: $spacing-unit * 4 +) !default; + +$sp-1: map-get($spacers, sp-1) !default; // 0.25 rem == 4px +$sp-2: map-get($spacers, sp-2) !default; // 0.5 rem == 8px +$sp-3: map-get($spacers, sp-3) !default; // 0.75 rem == 12px +$sp-4: map-get($spacers, sp-4) !default; // 1 rem == 16px +$sp-5: map-get($spacers, sp-5) !default; // 1.5 rem == 24px +$sp-6: map-get($spacers, sp-6) !default; // 2 rem == 32px +$sp-7: map-get($spacers, sp-7) !default; // 2.5 rem == 40px +$sp-8: map-get($spacers, sp-8) !default; // 3 rem == 48px +$sp-9: map-get($spacers, sp-9) !default; // 4 rem == 48px +$sp-10: map-get($spacers, sp-10) !default; // 4.5 rem == 48px + +// +// Borders +// + +$border: 1px solid !default; +$border-radius: 4px !default; +$border-color: $grey-lt-100 !default; + +// +// Grid system +// + +$gutter-spacing: $sp-6 !default; +$gutter-spacing-sm: $sp-4 !default; +$nav-width: 264px !default; +$nav-width-md: 248px !default; +$content-width: 800px !default; +$header-height: 60px !default; +$search-results-width: 500px !default; + +// +// Media queries in pixels +// + +$media-queries: ( + xs: 320px, + sm: 500px, + md: $content-width, + lg: $content-width + $nav-width, + xl: 1400px +) !default; diff --git a/docs/_sass/support/mixins/_buttons.scss b/docs/_sass/support/mixins/_buttons.scss new file mode 100644 index 0000000..e3e6c4f --- /dev/null +++ b/docs/_sass/support/mixins/_buttons.scss @@ -0,0 +1,27 @@ +// Colored button + +@mixin btn-color($fg, $bg) { + color: $fg; + background-color: darken($bg, 2%); + background-image: linear-gradient(lighten($bg, 5%), darken($bg, 2%)); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); + + &:hover, + &.zeroclipboard-is-hover { + color: $fg; + background-color: darken($bg, 4%); + background-image: linear-gradient((lighten($bg, 2%), darken($bg, 4%))); + } + + &:active, + &.selected, + &.zeroclipboard-is-active { + background-color: darken($bg, 5%); + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); + } + + &.selected:hover { + background-color: darken($bg, 10%); + } +} diff --git a/docs/_sass/support/mixins/_layout.scss b/docs/_sass/support/mixins/_layout.scss new file mode 100644 index 0000000..7e7967e --- /dev/null +++ b/docs/_sass/support/mixins/_layout.scss @@ -0,0 +1,36 @@ +// Media query + +// Media query mixin +// Usage: +// @include mq(md) { +// ..medium and up styles +// } +@mixin mq($name) { + // Retrieves the value from the key + $value: map-get($media-queries, $name); + + // If the key exists in the map + @if $value != null { + // Prints a media query based on the value + @media (min-width: rem($value)) { + @content; + } + } + + @else { + @warn "No value could be retrieved from `#{$media-query}`. " + + "Please make sure it is defined in `$media-queries` map."; + } +} + +// Responsive container + +@mixin container { + padding-right: $gutter-spacing-sm; + padding-left: $gutter-spacing-sm; + + @include mq(md) { + padding-right: $gutter-spacing; + padding-left: $gutter-spacing; + } +} diff --git a/docs/_sass/support/mixins/_typography.scss b/docs/_sass/support/mixins/_typography.scss new file mode 100644 index 0000000..e6d85be --- /dev/null +++ b/docs/_sass/support/mixins/_typography.scss @@ -0,0 +1,81 @@ +// Font size + +@mixin fs-1 { + font-size: 9px !important; + + @include mq(sm) { + font-size: 10px !important; + } +} + +@mixin fs-2 { + font-size: 11px !important; + + @include mq(sm) { + font-size: 12px !important; + } +} + +@mixin fs-3 { + font-size: 12px !important; + + @include mq(sm) { + font-size: 14px !important; + } +} + +@mixin fs-4 { + font-size: 14px !important; + + @include mq(sm) { + font-size: 16px !important; + } +} + +@mixin fs-5 { + font-size: 16px !important; + + @include mq(sm) { + font-size: 18px !important; + } +} + +@mixin fs-6 { + font-size: 18px !important; + + @include mq(sm) { + font-size: 24px !important; + } +} + +@mixin fs-7 { + font-size: 24px !important; + + @include mq(sm) { + font-size: 32px !important; + } +} + +@mixin fs-8 { + font-size: 32px !important; + + @include mq(sm) { + font-size: 36px !important; + } +} + +@mixin fs-9 { + font-size: 36px !important; + + @include mq(sm) { + font-size: 42px !important; + } +} + +@mixin fs-10 { + font-size: 42px !important; + + @include mq(sm) { + font-size: 48px !important; + } +} diff --git a/docs/_sass/support/mixins/mixins.scss b/docs/_sass/support/mixins/mixins.scss new file mode 100644 index 0000000..0506fbf --- /dev/null +++ b/docs/_sass/support/mixins/mixins.scss @@ -0,0 +1,3 @@ +@import "./layout"; +@import "./buttons"; +@import "./typography"; diff --git a/docs/_sass/support/support.scss b/docs/_sass/support/support.scss new file mode 100644 index 0000000..8131a32 --- /dev/null +++ b/docs/_sass/support/support.scss @@ -0,0 +1,3 @@ +@import "./variables"; +@import "./functions"; +@import "./mixins/mixins"; diff --git a/docs/_sass/tables.scss b/docs/_sass/tables.scss new file mode 100644 index 0000000..b2ac7cd --- /dev/null +++ b/docs/_sass/tables.scss @@ -0,0 +1,58 @@ +// +// Tables +// +// stylelint-disable max-nesting-depth, selector-no-type, selector-max-type + +.table-wrapper { + display: block; + width: 100%; + max-width: 100%; + margin-bottom: $sp-5; + overflow-x: auto; + border-radius: $border-radius; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); +} + +table { + display: table; + min-width: 100%; + border-collapse: separate; +} + +th, +td { + @include fs-3; + min-width: 120px; + padding-top: $sp-2; + padding-right: $sp-3; + padding-bottom: $sp-2; + padding-left: $sp-3; + background-color: $table-background-color; + border-bottom: $border rgba($border-color, 0.5); + border-left: $border $border-color; + + &:first-of-type { + border-left: 0; + } +} + +tbody { + tr { + &:last-of-type { + th, + td { + border-bottom: 0; + } + + td { + padding-bottom: $sp-3; + } + } + } +} + +thead { + th { + border-bottom: $border $border-color; + } +} diff --git a/docs/_sass/typography.scss b/docs/_sass/typography.scss new file mode 100644 index 0000000..ccf1604 --- /dev/null +++ b/docs/_sass/typography.scss @@ -0,0 +1,58 @@ +// +// Typography +// +// stylelint-disable primer/selector-no-utility, primer/no-override, selector-no-type, selector-max-type + +h1, +.text-alpha { + @include fs-8; + font-weight: 300; +} + +h2, +.text-beta { + @include fs-6; +} + +h3, +.text-gamma { + @include fs-5; +} + +h4, +.text-delta { + @include fs-2; + font-weight: 300; + text-transform: uppercase; + letter-spacing: 0.1em; +} + +h5, +.text-epsilon { + @include fs-3; + color: $grey-dk-200; +} + +h6, +.text-zeta { + @include fs-2; + color: $grey-dk-200; +} + +li { + .highlight { + margin-top: $sp-2; + } +} + +.text-small { + @include fs-2; +} + +.text-mono { + font-family: $mono-font-family !important; +} + +.text-center { + text-align: center !important; +} diff --git a/docs/_sass/utilities/_colors.scss b/docs/_sass/utilities/_colors.scss new file mode 100644 index 0000000..f3607ab --- /dev/null +++ b/docs/_sass/utilities/_colors.scss @@ -0,0 +1,239 @@ +// +// Utility classes for colors +// + +// Text colors + +.text-grey-dk-000 { + color: $grey-dk-000 !important; +} + +.text-grey-dk-100 { + color: $grey-dk-100 !important; +} + +.text-grey-dk-200 { + color: $grey-dk-200 !important; +} + +.text-grey-dk-250 { + color: $grey-dk-250 !important; +} + +.text-grey-dk-300 { + color: $grey-dk-300 !important; +} + +.text-grey-lt-000 { + color: $grey-lt-000 !important; +} + +.text-grey-lt-100 { + color: $grey-lt-100 !important; +} + +.text-grey-lt-200 { + color: $grey-lt-200 !important; +} + +.text-grey-lt-300 { + color: $grey-lt-300 !important; +} + +.text-blue-000 { + color: $blue-000 !important; +} + +.text-blue-100 { + color: $blue-100 !important; +} + +.text-blue-200 { + color: $blue-200 !important; +} + +.text-blue-300 { + color: $blue-300 !important; +} + +.text-green-000 { + color: $green-000 !important; +} + +.text-green-100 { + color: $green-100 !important; +} + +.text-green-200 { + color: $green-200 !important; +} + +.text-green-300 { + color: $green-300 !important; +} + +.text-purple-000 { + color: $purple-000 !important; +} + +.text-purple-100 { + color: $purple-100 !important; +} + +.text-purple-200 { + color: $purple-200 !important; +} + +.text-purple-300 { + color: $purple-300 !important; +} + +.text-yellow-000 { + color: $yellow-000 !important; +} + +.text-yellow-100 { + color: $yellow-100 !important; +} + +.text-yellow-200 { + color: $yellow-200 !important; +} + +.text-yellow-300 { + color: $yellow-300 !important; +} + +.text-red-000 { + color: $red-000 !important; +} + +.text-red-100 { + color: $red-100 !important; +} + +.text-red-200 { + color: $red-200 !important; +} + +.text-red-300 { + color: $red-300 !important; +} + +// Background colors + +.bg-grey-dk-000 { + background-color: $grey-dk-000 !important; +} + +.bg-grey-dk-100 { + background-color: $grey-dk-100 !important; +} + +.bg-grey-dk-200 { + background-color: $grey-dk-200 !important; +} + +.bg-grey-dk-250 { + background-color: $grey-dk-250 !important; +} + +.bg-grey-dk-300 { + background-color: $grey-dk-300 !important; +} + +.bg-grey-lt-000 { + background-color: $grey-lt-000 !important; +} + +.bg-grey-lt-100 { + background-color: $grey-lt-100 !important; +} + +.bg-grey-lt-200 { + background-color: $grey-lt-200 !important; +} + +.bg-grey-lt-300 { + background-color: $grey-lt-300 !important; +} + +.bg-blue-000 { + background-color: $blue-000 !important; +} + +.bg-blue-100 { + background-color: $blue-100 !important; +} + +.bg-blue-200 { + background-color: $blue-200 !important; +} + +.bg-blue-300 { + background-color: $blue-300 !important; +} + +.bg-green-000 { + background-color: $green-000 !important; +} + +.bg-green-100 { + background-color: $green-100 !important; +} + +.bg-green-200 { + background-color: $green-200 !important; +} + +.bg-green-300 { + background-color: $green-300 !important; +} + +.bg-purple-000 { + background-color: $purple-000 !important; +} + +.bg-purple-100 { + background-color: $purple-100 !important; +} + +.bg-purple-200 { + background-color: $purple-200 !important; +} + +.bg-purple-300 { + background-color: $purple-300 !important; +} + +.bg-yellow-000 { + background-color: $yellow-000 !important; +} + +.bg-yellow-100 { + background-color: $yellow-100 !important; +} + +.bg-yellow-200 { + background-color: $yellow-200 !important; +} + +.bg-yellow-300 { + background-color: $yellow-300 !important; +} + +.bg-red-000 { + background-color: $red-000 !important; +} + +.bg-red-100 { + background-color: $red-100 !important; +} + +.bg-red-200 { + background-color: $red-200 !important; +} + +.bg-red-300 { + background-color: $red-300 !important; +} diff --git a/docs/_sass/utilities/_layout.scss b/docs/_sass/utilities/_layout.scss new file mode 100644 index 0000000..7f17a4d --- /dev/null +++ b/docs/_sass/utilities/_layout.scss @@ -0,0 +1,38 @@ +// stylelint-disable primer/selector-no-utility, primer/no-override +// +// Utility classes for layout +// + +// Display + +.d-block { display: block !important; } +.d-flex { display: flex !important; } +.d-inline { display: inline !important; } +.d-inline-block { display: inline-block !important; } +.d-none { display: none !important; } + +@each $media-query in map-keys($media-queries) { + @for $i from 1 through length($spacers) { + @include mq($media-query) { + $size: #{map-get($spacers, sp-#{$i - 1})}; + $scale: #{$i - 1}; + + // .d-sm-block, .d-md-none, .d-lg-inline + .d-#{$media-query}-block { display: block !important; } + .d-#{$media-query}-flex { display: flex !important; } + .d-#{$media-query}-inline { display: inline !important; } + .d-#{$media-query}-inline-block { display: inline-block !important; } + .d-#{$media-query}-none { display: none !important; } + + } + } +} + +// Vertical alignment + +.v-align-baseline { vertical-align: baseline !important; } +.v-align-bottom { vertical-align: bottom !important; } +.v-align-middle { vertical-align: middle !important; } +.v-align-text-bottom { vertical-align: text-bottom !important; } +.v-align-text-top { vertical-align: text-top !important; } +.v-align-top { vertical-align: top !important; } diff --git a/docs/_sass/utilities/_lists.scss b/docs/_sass/utilities/_lists.scss new file mode 100644 index 0000000..c7b2293 --- /dev/null +++ b/docs/_sass/utilities/_lists.scss @@ -0,0 +1,17 @@ +// +// Utility classes for lists +// + +// stylelint-disable primer/selector-no-utility, primer/no-override, selector-max-type + +.list-style-none { + padding: 0 !important; + margin: 0 !important; + list-style: none !important; + + li { + &::before { + display: none !important; + } + } +} diff --git a/docs/_sass/utilities/_spacing.scss b/docs/_sass/utilities/_spacing.scss new file mode 100644 index 0000000..a1d8a95 --- /dev/null +++ b/docs/_sass/utilities/_spacing.scss @@ -0,0 +1,121 @@ +// +// Utility classes for margins and padding +// + +// scss-lint:disable SpaceAfterPropertyName +// stylelint-disable block-opening-brace-space-after, block-opening-brace-space-before, primer/selector-no-utility, primer/no-override + +// Margin spacer utilities + +@for $i from 1 through length($spacers) { + $size: #{map-get($spacers, sp-#{$i - 1})}; + $scale: #{$i - 1}; + + // .m-0, .m-1, .m-2... + .m-#{$scale} { margin: #{$size} !important; } + .mt-#{$scale} { margin-top: #{$size} !important; } + .mr-#{$scale} { margin-right: #{$size} !important; } + .mb-#{$scale} { margin-bottom: #{$size} !important; } + .ml-#{$scale} { margin-left: #{$size} !important; } + + .mx-#{$scale} { + margin-right: #{$size} !important; + margin-left: #{$size} !important; + } + + .my-#{$scale} { + margin-top: #{$size} !important; + margin-bottom: #{$size} !important; + } + + .mxn-#{$scale} { + margin-right: -#{$size} !important; + margin-left: -#{$size} !important; + } +} + +.mx-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +@each $media-query in map-keys($media-queries) { + @for $i from 1 through length($spacers) { + @include mq($media-query) { + $size: #{map-get($spacers, sp-#{$i - 1})}; + $scale: #{$i - 1}; + + // .m-sm-0, .m-md-1, .m-lg-2... + .m-#{$media-query}-#{$scale} { margin: #{$size} !important; } + .mt-#{$media-query}-#{$scale} { margin-top: #{$size} !important; } + .mr-#{$media-query}-#{$scale} { margin-right: #{$size} !important; } + .mb-#{$media-query}-#{$scale} { margin-bottom: #{$size} !important; } + .ml-#{$media-query}-#{$scale} { margin-left: #{$size} !important; } + + .mx-#{$media-query}-#{$scale} { + margin-right: #{$size} !important; + margin-left: #{$size} !important; + } + + .my-#{$media-query}-#{$scale} { + margin-top: #{$size} !important; + margin-bottom: #{$size} !important; + } + + .mxn-#{$media-query}-#{$scale} { + margin-right: -#{$size} !important; + margin-left: -#{$size} !important; + } + } + } +} + +// Padding spacer utilities + +@for $i from 1 through length($spacers) { + $size: #{map-get($spacers, sp-#{$i - 1})}; + $scale: #{$i - 1}; + + // .p-0, .p-1, .p-2... + .p-#{$scale} { padding: #{$size} !important; } + .pt-#{$scale} { padding-top: #{$size} !important; } + .pr-#{$scale} { padding-right: #{$size} !important; } + .pb-#{$scale} { padding-bottom: #{$size} !important; } + .pl-#{$scale} { padding-left: #{$size} !important; } + + .px-#{$scale} { + padding-right: #{$size} !important; + padding-left: #{$size} !important; + } + + .py-#{$scale} { + padding-top: #{$size} !important; + padding-bottom: #{$size} !important; + } +} + +@each $media-query in map-keys($media-queries) { + @include mq($media-query) { + @for $i from 1 through length($spacers) { + $size: #{map-get($spacers, sp-#{$i - 1})}; + $scale: #{$i - 1}; + + // .p-sm-0, .p-md-1, .p-lg-2... + .p-#{$media-query}-#{$scale} { padding: #{$size} !important; } + .pt-#{$media-query}-#{$scale} { padding-top: #{$size} !important; } + .pr-#{$media-query}-#{$scale} { padding-right: #{$size} !important; } + .pb-#{$media-query}-#{$scale} { padding-bottom: #{$size} !important; } + .pl-#{$media-query}-#{$scale} { padding-left: #{$size} !important; } + + .px-#{$media-query}-#{$scale} { + padding-right: #{$size} !important; + padding-left: #{$size} !important; + } + + .py-#{$media-query}-#{$scale} { + padding-top: #{$size} !important; + padding-bottom: #{$size} !important; + } + } + } +} diff --git a/docs/_sass/utilities/_typography.scss b/docs/_sass/utilities/_typography.scss new file mode 100644 index 0000000..2397acb --- /dev/null +++ b/docs/_sass/utilities/_typography.scss @@ -0,0 +1,91 @@ +// +// Utility classes for typography +// + +// stylelint-disable primer/selector-no-utility, primer/no-override + +.fs-1 { + @include fs-1; +} + +.fs-2 { + @include fs-2; +} + +.fs-3 { + @include fs-3; +} + +.fs-4 { + @include fs-4; +} + +.fs-5 { + @include fs-5; +} + +.fs-6 { + @include fs-6; +} + +.fs-7 { + @include fs-7; +} + +.fs-8 { + @include fs-8; +} + +.fs-9 { + @include fs-9; +} + +.fs-10 { + @include fs-10; +} + +.fw-300 { + font-weight: 300 !important; +} + +.fw-400 { + font-weight: 400 !important; +} + +.fw-500 { + font-weight: 500 !important; +} + +.fw-700 { + font-weight: 700 !important; +} + +.lh-0 { + line-height: 0 !important; +} + +.lh-default { + line-height: $body-line-height; +} + +.lh-tight { + line-height: $body-heading-line-height; +} + +.ls-5 { + letter-spacing: 0.05em !important; +} + +.ls-10 { + letter-spacing: 0.1em !important; +} + +.ls-0 { + letter-spacing: 0 !important; +} + +.text-uppercase { + text-transform: uppercase !important; +} + +// stylelint-enable primer/selector-no-utility diff --git a/docs/_sass/utilities/utilities.scss b/docs/_sass/utilities/utilities.scss new file mode 100644 index 0000000..6c25bdf --- /dev/null +++ b/docs/_sass/utilities/utilities.scss @@ -0,0 +1,5 @@ +@import "./colors"; +@import "./layout"; +@import "./typography"; +@import "./lists"; +@import "./spacing"; diff --git a/docs/_sass/vendor/normalize.scss/README.md b/docs/_sass/vendor/normalize.scss/README.md new file mode 100644 index 0000000..36cc1c6 --- /dev/null +++ b/docs/_sass/vendor/normalize.scss/README.md @@ -0,0 +1,78 @@ +# normalize.scss v0.1.0 + +Normalize.scss is the SCSS version of [normalize.css](http://necolas.github.io/normalize.css), a customisable CSS file that makes browsers render all elements more consistently and in line with modern standards. + +[View the normalize.css test file](http://necolas.github.io/normalize.css/latest/test.html) + +## Install + +* [npm](http://npmjs.org/): `npm install --save normalize.scss` +* [Component(1)](https://github.com/component/component/): `component install guerrero/normalize.scss` +* [Bower](http://bower.io/): `bower install --save normalize.scss` +* Download: Go to [this link](https://raw.githubusercontent.com/guerrero/normalize.scss/master/normalize.scss), press right-click on the page and choose "Save as..." + +No other styles should come before Normalize.scss. + +It's recommendable to modify `normalize.scss` to suit it to your project + +## What does it do? + +* Preserves useful defaults, unlike many CSS resets. +* Normalizes styles for a wide range of elements. +* Corrects bugs and common browser inconsistencies. +* Improves usability with subtle improvements. +* Explains what code does using detailed comments. + +## Browser support + +* Google Chrome (latest) +* Mozilla Firefox (latest) +* Mozilla Firefox 4 +* Opera (latest) +* Apple Safari 6+ +* Internet Explorer 8+ + +[Normalize.css v1 provides legacy browser +support](https://github.com/necolas/normalize.css/tree/v1) (IE 6+, Safari 4+), +but is no longer actively developed. + +## Extended details + +Additional detail and explanation of the esoteric parts of normalize.css. + +#### `pre, code, kbd, samp` + +The `font-family: monospace, monospace` hack fixes the inheritance and scaling +of font-size for preformated text. The duplication of `monospace` is +intentional. [Source](http://en.wikipedia.org/wiki/User:Davidgothberg/Test59). + +#### `sub, sup` + +Normally, using `sub` or `sup` affects the line-box height of text in all +browsers. [Source](http://gist.github.com/413930). + +#### `svg:not(:root)` + +Adding `overflow: hidden` fixes IE9's SVG rendering. Earlier versions of IE +don't support SVG, so we can safely use the `:not()` and `:root` selectors that +modern browsers use in the default UA stylesheets to apply this style. [SVG +Mailing List discussion](http://lists.w3.org/Archives/Public/public-svg-wg/2008JulSep/0339.html) + +#### `input[type="search"]` + +The search input is not fully stylable by default. In Chrome and Safari on +OSX/iOS you can't control `font`, `padding`, `border`, or `background`. In +Chrome and Safari on Windows you can't control `border` properly. It will apply +`border-width` but will only show a border color (which cannot be controlled) +for the outer 1px of that border. Applying `-webkit-appearance: textfield` +addresses these issues without removing the benefits of search inputs (e.g. +showing past searches). + +#### `legend` + +Adding `border: 0` corrects an IE 8–11 bug where `color` (yes, `color`) is not +inherited by `legend`. + +## Acknowledgements + +Normalize.scss is a project by [Alex Guerrero](https://github.com/guerrero) based on [normalize.css](http://necolas.github.io/normalize.css) from [Nicolas Gallagher](https://github.com/necolas), co-created with [Jonathan Neal](https://github.com/jonathantneal). diff --git a/docs/_sass/vendor/normalize.scss/normalize.scss b/docs/_sass/vendor/normalize.scss/normalize.scss new file mode 100644 index 0000000..ce38a4f --- /dev/null +++ b/docs/_sass/vendor/normalize.scss/normalize.scss @@ -0,0 +1,427 @@ +/*! normalize.scss v0.1.0 | MIT License | based on git.io/normalize */ + +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-family: sans-serif; /* 1 */ + -ms-text-size-adjust: 100%; /* 2 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/** + * Remove default margin. + */ + +body { + margin: 0; +} + +/* HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 + * and Firefox. + * Correct `block` display not defined for `main` in IE 11. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} + +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ + +audio, +canvas, +progress, +video { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. + */ + +[hidden], +template { + display: none; +} + +/* Links + ========================================================================== */ + +/** + * Remove the gray background color from active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a:active, +a:hover { + outline: 0; +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Address styling not present in IE 8/9/10/11, Safari, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +/** + * Address styling not present in Safari and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari, and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove border when inside `a` element in IE 8/9/10. + */ + +img { + border: 0; +} + +/** + * Correct overflow not hidden in IE 9/10/11. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* Grouping content + ========================================================================== */ + +/** + * Address margin not present in IE 8/9 and Safari. + */ + +figure { + margin: 1em 40px; +} + +/** + * Address differences between Firefox and other browsers. + */ + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +/** + * Contain overflow in all browsers. + */ + +pre { + overflow: auto; +} + +/** + * Address odd `em`-unit font size rendering in all browsers. + */ + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +/* Forms + ========================================================================== */ + +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ + +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. + */ + +button, +input, +optgroup, +select, +textarea { + color: inherit; /* 1 */ + font: inherit; /* 2 */ + margin: 0; /* 3 */ +} + +/** + * Address `overflow` set to `hidden` in IE 8/9/10/11. + */ + +button { + overflow: visible; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct `select` style inheritance in Firefox. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +input { + line-height: normal; +} + +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Remove default vertical scrollbar in IE 8/9/10/11. + */ + +textarea { + overflow: auto; +} + +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ + +optgroup { + font-weight: bold; +} + +/* Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; +} diff --git a/docs/_sass/vendor/normalize.scss/package.json b/docs/_sass/vendor/normalize.scss/package.json new file mode 100644 index 0000000..2d051c2 --- /dev/null +++ b/docs/_sass/vendor/normalize.scss/package.json @@ -0,0 +1,70 @@ +{ + "_args": [ + [ + "normalize.scss", + "/Users/pmarsceill/_projects/just-the-docs" + ] + ], + "_from": "normalize.scss@*", + "_id": "normalize.scss@0.1.0", + "_inCache": true, + "_installable": true, + "_location": "/normalize.scss", + "_nodeVersion": "0.10.32", + "_npmUser": { + "email": "alexguerrero1092@gmail.com", + "name": "alexguerrero" + }, + "_npmVersion": "2.0.2", + "_phantomChildren": {}, + "_requested": { + "name": "normalize.scss", + "raw": "normalize.scss", + "rawSpec": "", + "scope": null, + "spec": "*", + "type": "range" + }, + "_requiredBy": [ + "#DEV:/" + ], + "_resolved": "https://registry.npmjs.org/normalize.scss/-/normalize.scss-0.1.0.tgz", + "_shasum": "4a21dc25bd4c019c857785f829b658aba2a8f9ab", + "_shrinkwrap": null, + "_spec": "normalize.scss", + "_where": "/Users/pmarsceill/_projects/just-the-docs", + "author": "", + "bugs": { + "url": "https://github.com/guerrero/normalize.scss/issues" + }, + "dependencies": {}, + "description": "Normalize.scss as a node packaged module", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "4a21dc25bd4c019c857785f829b658aba2a8f9ab", + "tarball": "https://registry.npmjs.org/normalize.scss/-/normalize.scss-0.1.0.tgz" + }, + "files": [ + "normalize.scss" + ], + "gitHead": "d67d517e28615a873066438af1d4845c157c9baf", + "homepage": "https://github.com/guerrero/normalize.scss", + "license": "MIT", + "maintainers": [ + { + "name": "alexguerrero", + "email": "alexguerrero1092@gmail.com" + } + ], + "name": "normalize.scss", + "optionalDependencies": {}, + "readme": "ERROR: No README data found!", + "repository": { + "type": "git", + "url": "git://github.com/guerrero/normalize.scss.git" + }, + "scripts": {}, + "style": "normalize.scss", + "version": "0.1.0" +} diff --git a/docs/assets/css/dark-mode-preview.scss b/docs/assets/css/dark-mode-preview.scss new file mode 100644 index 0000000..c524e81 --- /dev/null +++ b/docs/assets/css/dark-mode-preview.scss @@ -0,0 +1,45 @@ +--- +# this ensures Jekyll reads the file to be transformed into CSS later +# only Main files contain this front matter, not partials. +--- + +{% if site.logo %} +$logo: "{{ site.logo | absolute_url }}"; +{% endif %} + +// +// Import external dependencies +// + +@import "./vendor/normalize.scss/normalize.scss"; + +// +// Import Just the Docs scss +// + +// Support +@import "./support/support"; + +// +// Import custom color scheme scss +// + +@import "./color_schemes/dark.scss"; + +// Modules +@import "./base"; +@import "./layout"; +@import "./content"; +@import "./navigation"; +@import "./typography"; +@import "./labels"; +@import "./buttons"; +@import "./search"; +@import "./tables"; +@import "./code"; +@import "./utilities/utilities"; + +// +// Import custom overrides +// +@import "./custom/custom"; diff --git a/docs/assets/css/just-the-docs.scss b/docs/assets/css/just-the-docs.scss new file mode 100644 index 0000000..199ad89 --- /dev/null +++ b/docs/assets/css/just-the-docs.scss @@ -0,0 +1,49 @@ +--- +# this ensures Jekyll reads the file to be transformed into CSS later +# only Main files contain this front matter, not partials. +--- + +{% if site.logo %} +$logo: "{{ site.logo | absolute_url }}"; +{% endif %} + +// +// Import external dependencies +// + +@import "./vendor/normalize.scss/normalize.scss"; + +// +// Import Just the Docs scss +// + +// Support +@import "./support/support"; + +// +// Import custom overrides +// + +@import "./custom/custom"; + +// +// Import custom color scheme scss +// + +{% if site.color_scheme == "dark" %} +@import "./color_schemes/dark.scss"; +{% endif %} + +// Modules +@import "./base"; +@import "./layout"; +@import "./content"; +@import "./navigation"; +@import "./typography"; +@import "./labels"; +@import "./buttons"; +@import "./search"; +@import "./tables"; +@import "./code"; +@import "./utilities/utilities"; +@import "./overrides"; diff --git a/docs/assets/images/just-the-docs.png b/docs/assets/images/just-the-docs.png new file mode 100644 index 0000000000000000000000000000000000000000..81c33065f2794814cbe1a53791d8bc4bfbb91cb1 GIT binary patch literal 20992 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/assets/images/satellite.svg b/docs/assets/images/satellite.svg new file mode 100644 index 0000000..36da52e --- /dev/null +++ b/docs/assets/images/satellite.svg @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/assets/images/search.svg b/docs/assets/images/search.svg new file mode 100644 index 0000000..421ca4d --- /dev/null +++ b/docs/assets/images/search.svg @@ -0,0 +1 @@ +Search diff --git a/docs/assets/js/dark-mode-preview.js b/docs/assets/js/dark-mode-preview.js new file mode 100644 index 0000000..b9ad81e --- /dev/null +++ b/docs/assets/js/dark-mode-preview.js @@ -0,0 +1,23 @@ +document.addEventListener("DOMContentLoaded", function(){ + + const toggleDarkMode = document.querySelector('.js-toggle-dark-mode') + const cssFile = document.querySelector('[rel="stylesheet"]') + const originalCssRef = cssFile.getAttribute('href') + const darkModeCssRef = originalCssRef.replace('just-the-docs.css', 'dark-mode-preview.css') + const buttonCopy = ['Return to the light side', 'Preview dark color scheme'] + const updateButtonText = function(toggleDarkMode) { + toggleDarkMode.textContent === buttonCopy[0] ? + toggleDarkMode.textContent = buttonCopy[1] : + toggleDarkMode.textContent = buttonCopy[0] + } + + jtd.addEvent(toggleDarkMode, 'click', function(){ + if (cssFile.getAttribute('href') === originalCssRef) { + cssFile.setAttribute('href', darkModeCssRef) + updateButtonText(toggleDarkMode) + } else { + cssFile.setAttribute('href', originalCssRef) + updateButtonText(toggleDarkMode) + } + }) +}) diff --git a/docs/assets/js/just-the-docs.js b/docs/assets/js/just-the-docs.js new file mode 100644 index 0000000..725c514 --- /dev/null +++ b/docs/assets/js/just-the-docs.js @@ -0,0 +1,312 @@ +--- +--- +(function (jtd, undefined) { + +// Event handling + +jtd.addEvent = function(el, type, handler) { + if (el.attachEvent) el.attachEvent('on'+type, handler); else el.addEventListener(type, handler); +} +jtd.removeEvent = function(el, type, handler) { + if (el.detachEvent) el.detachEvent('on'+type, handler); else el.removeEventListener(type, handler); +} +jtd.onReady = function(ready) { + // in case the document is already rendered + if (document.readyState!='loading') ready(); + // modern browsers + else if (document.addEventListener) document.addEventListener('DOMContentLoaded', ready); + // IE <= 8 + else document.attachEvent('onreadystatechange', function(){ + if (document.readyState=='complete') ready(); + }); +} + +// Show/hide mobile menu + +function initNav() { + const mainNav = document.querySelector('.js-main-nav'); + const pageHeader = document.querySelector('.js-page-header'); + const navTrigger = document.querySelector('.js-main-nav-trigger'); + + jtd.addEvent(navTrigger, 'click', function(e){ + e.preventDefault(); + var text = navTrigger.innerText; + var textToggle = navTrigger.getAttribute('data-text-toggle'); + + mainNav.classList.toggle('nav-open'); + pageHeader.classList.toggle('nav-open'); + navTrigger.classList.toggle('nav-open'); + navTrigger.innerText = textToggle; + navTrigger.setAttribute('data-text-toggle', text); + textToggle = text; + }) +} + +// Site search + +function initSearch() { + var request = new XMLHttpRequest(); + request.open('GET', '{{ "assets/js/search-data.json" | absolute_url }}', true); + + request.onload = function(){ + if (request.status >= 200 && request.status < 400) { + // Success! + var data = JSON.parse(request.responseText); + + {% if site.search_tokenizer_separator != nil %} + lunr.tokenizer.separator = {{ site.search_tokenizer_separator }} + {% else %} + lunr.tokenizer.separator = /[\s\-/]+/ + {% endif %} + + var index = lunr(function () { + this.ref('id'); + this.field('title', { boost: 200 }); + this.field('content', { boost: 2 }); + this.field('url'); + this.metadataWhitelist = ['position'] + + for (var i in data) { + this.add({ + id: i, + title: data[i].title, + content: data[i].content, + url: data[i].url + }); + } + }); + + searchResults(index, data); + } else { + // We reached our target server, but it returned an error + console.log('Error loading ajax request. Request status:' + request.status); + } + }; + + request.onerror = function(){ + // There was a connection error of some sort + console.log('There was a connection error'); + }; + + request.send(); + + function searchResults(index, data) { + var index = index; + var docs = data; + var searchInput = document.querySelector('.js-search-input'); + var searchResults = document.querySelector('.js-search-results'); + + function hideResults() { + searchResults.innerHTML = ''; + searchResults.classList.remove('active'); + } + + jtd.addEvent(searchInput, 'keydown', function(e){ + switch (e.keyCode) { + case 38: // arrow up + e.preventDefault(); + var active = document.querySelector('.search-result.active'); + if (active) { + active.classList.remove('active'); + if (active.parentElement.previousSibling) { + var previous = active.parentElement.previousSibling.querySelector('.search-result'); + previous.classList.add('active'); + } + } + return; + case 40: // arrow down + e.preventDefault(); + var active = document.querySelector('.search-result.active'); + if (active) { + if (active.parentElement.nextSibling) { + var next = active.parentElement.nextSibling.querySelector('.search-result'); + active.classList.remove('active'); + next.classList.add('active'); + } + } else { + var next = document.querySelector('.search-result'); + if (next) { + next.classList.add('active'); + } + } + return; + case 13: // enter + e.preventDefault(); + var active = document.querySelector('.search-result.active'); + if (active) { + active.click(); + } else { + var first = document.querySelector('.search-result'); + if (first) { + first.click(); + } + } + return; + } + }); + + jtd.addEvent(searchInput, 'keyup', function(e){ + switch (e.keyCode) { + case 27: // When esc key is pressed, hide the results and clear the field + hideResults(); + searchInput.value = ''; + return; + case 38: // arrow up + case 40: // arrow down + case 13: // enter + e.preventDefault(); + return; + } + + hideResults(); + + var input = this.value; + if (input === '') { + return; + } + + var results = index.query(function (query) { + var tokens = lunr.tokenizer(input) + query.term(tokens, { + boost: 10 + }); + query.term(tokens, { + wildcard: lunr.Query.wildcard.TRAILING + }); + }); + + if (results.length > 0) { + searchResults.classList.add('active'); + var resultsList = document.createElement('ul'); + resultsList.classList.add('search-results-list'); + searchResults.appendChild(resultsList); + + for (var i in results) { + var result = results[i]; + var doc = docs[result.ref]; + + var resultsListItem = document.createElement('li'); + resultsListItem.classList.add('search-results-list-item'); + resultsList.appendChild(resultsListItem); + + var resultLink = document.createElement('a'); + resultLink.classList.add('search-result'); + resultLink.setAttribute('href', doc.url); + resultsListItem.appendChild(resultLink); + + var resultTitle = document.createElement('div'); + resultTitle.classList.add('search-result-title'); + resultTitle.innerText = doc.title; + resultLink.appendChild(resultTitle); + + var resultRelUrl = document.createElement('span'); + resultRelUrl.classList.add('search-result-rel-url'); + resultRelUrl.innerText = doc.relUrl; + resultTitle.appendChild(resultRelUrl); + + var metadata = result.matchData.metadata; + var contentFound = false; + for (var j in metadata) { + if (metadata[j].title) { + var position = metadata[j].title.position[0]; + var start = position[0]; + var end = position[0] + position[1]; + resultTitle.innerHTML = doc.title.substring(0, start) + '' + doc.title.substring(start, end) + '' + doc.title.substring(end, doc.title.length)+''+doc.relUrl+''; + + } else if (metadata[j].content && !contentFound) { + contentFound = true; + + var position = metadata[j].content.position[0]; + var start = position[0]; + var end = position[0] + position[1]; + var previewStart = start; + var previewEnd = end; + var ellipsesBefore = true; + var ellipsesAfter = true; + for (var k = 0; k < 3; k++) { + var nextSpace = doc.content.lastIndexOf(' ', previewStart - 2); + var nextDot = doc.content.lastIndexOf('.', previewStart - 2); + if ((nextDot > 0) && (nextDot > nextSpace)) { + previewStart = nextDot + 1; + ellipsesBefore = false; + break; + } + if (nextSpace < 0) { + previewStart = 0; + ellipsesBefore = false; + break; + } + previewStart = nextSpace + 1; + } + for (var k = 0; k < 10; k++) { + var nextSpace = doc.content.indexOf(' ', previewEnd + 1); + var nextDot = doc.content.indexOf('.', previewEnd + 1); + if ((nextDot > 0) && (nextDot < nextSpace)) { + previewEnd = nextDot; + ellipsesAfter = false; + break; + } + if (nextSpace < 0) { + previewEnd = doc.content.length; + ellipsesAfter = false; + break; + } + previewEnd = nextSpace; + } + var preview = doc.content.substring(previewStart, start); + if (ellipsesBefore) { + preview = '... ' + preview; + } + preview += '' + doc.content.substring(start, end) + ''; + preview += doc.content.substring(end, previewEnd); + if (ellipsesAfter) { + preview += ' ...'; + } + + var resultPreview = document.createElement('div'); + resultPreview.classList.add('search-result-preview'); + resultPreview.innerHTML = preview; + resultLink.appendChild(resultPreview); + } + } + } + } + }); + + jtd.addEvent(searchInput, 'blur', function(){ + setTimeout(function(){ hideResults() }, 300); + }); + } +} + +function pageFocus() { + var mainContent = document.querySelector('.js-main-content'); + mainContent.focus(); +} + +// Set theme according to user preferences + +function setTheme() { + const cssFile = document.querySelector('[rel="stylesheet"]') + const originalCssRef = cssFile.getAttribute('href') + const darkModeCssRef = originalCssRef.replace('just-the-docs.css', 'dark-mode-preview.css') + + if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) { + cssFile.setAttribute('href', darkModeCssRef) + } +} + +// Document ready + +jtd.onReady(function(){ + initNav(); + setTheme(); + pageFocus(); + if (typeof lunr !== 'undefined') { + initSearch(); + } +}); + +})(window.jtd = window.jtd || {}); + +{% include js/custom.js %} diff --git a/docs/assets/js/search-data.json b/docs/assets/js/search-data.json new file mode 100644 index 0000000..0532f7c --- /dev/null +++ b/docs/assets/js/search-data.json @@ -0,0 +1,12 @@ +--- +--- +{ + {% assign comma = false %} + {% for page in site.html_pages %}{% if page.search_exclude != true %}{% if comma == true%},{% endif %}"{{ forloop.index0 }}": { + "title": "{{ page.title | replace: '&', '&' }}", + "content": "{{ page.content | markdownify | replace: '0){var c=e.utils.clone(r)||{};c.position=[a,l],c.index=s.length,s.push(new e.Token(i.slice(a,o),c))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+r),t.label=r,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw new Error("Cannot load unregistered function: "+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);t!=-1&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:s>e?2*n:sa?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges[a]:(o=new e.TokenSet,s.node.edges[a]=o),1==s.str.length&&(o["final"]=!0),n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(0!=s.editsRemaining){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(0==s.str.length&&(u["final"]=!0),n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&n.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),1==s.str.length&&(s.node["final"]=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}1==s.str.length&&(l["final"]=!0),n.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var c,h=s.str.charAt(0),d=s.str.charAt(1);d in s.node.edges?c=s.node.edges[d]:(c=new e.TokenSet,s.node.edges[d]=c),1==s.str.length&&(c["final"]=!0),n.push({node:c,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=0,s=t.length;n=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r["char"]]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},e.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},e.Index.prototype.search=function(t){return this.query(function(r){var i=new e.QueryParser(t,r);i.parse()})},e.Index.prototype.query=function(t){for(var r=new e.Query(this.fields),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(t,r){var i=t[this._ref],n=Object.keys(this._fields);this._documents[i]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,r;do t=this.next(),r=t.charCodeAt(0);while(r>47&&r<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var r=t.next();if(r==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(92!=r.charCodeAt(0)){if(":"==r)return e.QueryLexer.lexField;if("~"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if("^"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if("+"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if("-"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(r.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}else t.escapeCharacter()}},e.QueryParser=function(t,r){this.lexer=new e.QueryLexer(t),this.query=r,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},e.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},e.QueryParser.parseClause=function(t){var r=t.peekLexeme();if(void 0!=r)switch(r.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(i+=" with value '"+r.str+"'"),new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parsePresence=function(t){var r=t.consumeLexeme();if(void 0!=r){switch(r.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+r.str+"'";throw new e.QueryParseError(i,r.start,r.end)}var n=t.peekLexeme();if(void 0==n){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,r.start,r.end)}switch(n.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+n.type+"'";throw new e.QueryParseError(i,n.start,n.end)}}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(t.query.allFields.indexOf(r.str)==-1){var i=t.query.allFields.map(function(e){return"'"+e+"'"}).join(", "),n="unrecognised field '"+r.str+"', possible fields: "+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=[r.str];var s=t.peekLexeme();if(void 0==s){var n="expecting term, found nothing";throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n="expecting term, found '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="edit distance must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="boost must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}(); diff --git a/docs/bin/just-the-docs b/docs/bin/just-the-docs new file mode 100755 index 0000000..5a62290 --- /dev/null +++ b/docs/bin/just-the-docs @@ -0,0 +1,16 @@ +#!/usr/bin/env ruby + +gem_dir = File.expand_path("..",File.dirname(__FILE__)) +$LOAD_PATH.unshift gem_dir # Look in gem directory for resources first. +exec_type = ARGV[0] + +if exec_type == 'rake' then + require 'rake' + require 'pp' + pwd=Dir.pwd + Dir.chdir(gem_dir) # We'll load rakefile from the gem's dir. + Rake.application.init + Rake.application.load_rakefile + Dir.chdir(pwd) # Revert to original pwd for any path args passed to task. + Rake.application.invoke_task(ARGV[1]) +end diff --git a/docs/docs/computers/computers.md b/docs/docs/computers/computers.md new file mode 100644 index 0000000..49a43a0 --- /dev/null +++ b/docs/docs/computers/computers.md @@ -0,0 +1,30 @@ +--- +layout: default +title: Computers +has_children: false +nav_order: 4 +--- + +# Supported Computers +{: .no_toc } + +This is a list of Raspberry Pi versions validated to work with this image. +{: .fs-6 .fw-300 } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- + +## Vanilla Version (32-bit) +- Raspberry Pi Zero +- Raspberry Pi 1/1+ +- Raspberry Pi 2 +- Raspberry Pi 3/3+ +- Raspberry Pi 4 (since v2.2) + +## Performance Version (64-bit) +TBD \ No newline at end of file diff --git a/docs/docs/radios/airspy_hf.md b/docs/docs/radios/airspy_hf.md new file mode 100644 index 0000000..de2f530 --- /dev/null +++ b/docs/docs/radios/airspy_hf.md @@ -0,0 +1,40 @@ +--- +layout: default +title: Airspy HF+ Discovery +parent: Radios +nav_order: 1 +--- + +# Airspy HF+ Discovery +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- + +## Specifications + +| Specification | Value | +|:----------------|:----------------| +| Frequency Range (HF Mode) | 0.5 kHz - 31 MHz | +| Frequency Range (VHF Mode) | 60 to 260 MHz | +| ADC Resolution | 16-bits (scaled from 18-bits) | +| USB Speed | 2.0 | +| TX Mode | No | +| Crystal | TCXO (0.5 ppm stable) | +| Bias-T | No | + +## Firmware Sources +``` +https://github.com/airspy/airspyhf +``` + +## Supported Software +- GQRX +- SDRAngel +- GNURadio +- Soapy Remote \ No newline at end of file diff --git a/docs/docs/radios/airspy_mini.md b/docs/docs/radios/airspy_mini.md new file mode 100644 index 0000000..29ef25a --- /dev/null +++ b/docs/docs/radios/airspy_mini.md @@ -0,0 +1,46 @@ +--- +layout: default +title: Airspy Mini +parent: Radios +nav_order: 2 +--- + +# Airspy Mini +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- + +## Specifications + +| Specification | Value | +|:----------------|:----------------| +| Frequency Range | 24 - 1700 MHz | +| Bandwidth | 3, 6 or 10 Msps | +| ADC Resolution | 8-bits | +| USB Speed | 2.0 | +| TX Mode | No | +| Crystal | TCXO (0.5 ppm stable) | +| Bias-T | Yes | + +## Device Fingerprint +```bash +$ lsusb +Bus 001 Device 007: ID 1d50:60a1 OpenMoko, Inc. Airspy +``` + +## Firmware Sources +``` +https://github.com/airspy/airspyone_host +``` + +## Supported Software +- GQRX +- SDRAngel +- GNURadio +- Soapy Remote diff --git a/docs/docs/radios/airspy_r2.md b/docs/docs/radios/airspy_r2.md new file mode 100644 index 0000000..660ee1d --- /dev/null +++ b/docs/docs/radios/airspy_r2.md @@ -0,0 +1,40 @@ +--- +layout: default +title: Airspy R2 +parent: Radios +nav_order: 3 +--- + +# Airspy R2 +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- + +## Specifications + +| Specification | Value | +|:----------------|:----------------| +| Frequency Range | 24 - 1700 MHz | +| Bandwidth | Up to 10 Msps | +| ADC Resolution | 8-bits | +| USB Speed | 2.0 | +| TX Mode | No | +| Crystal | TCXO (0.5 ppm stable) | +| Bias-T | Yes | + +## Firmware Sources +``` +https://github.com/airspy/airspyone_host +``` + +## Supported Software +- GQRX +- SDRAngel +- GNURadio +- Soapy Remote \ No newline at end of file diff --git a/docs/docs/radios/limenet_micro.md b/docs/docs/radios/limenet_micro.md new file mode 100644 index 0000000..e25ef43 --- /dev/null +++ b/docs/docs/radios/limenet_micro.md @@ -0,0 +1,50 @@ +--- +layout: default +title: LimeNET Micro +parent: Radios +nav_order: 4 +--- + +# LimeNET Micro +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- + +This device is a computer based on a Raspberry Pi 3B+ Compute Module with a built-in LimeSDR Micro. The SDR specifications are almost identical with some exceptions like the addition of a more precise oscillation crystal. This radio also has an GPSDO based on the Ublox NEO-M8T. More information about this device can be found on the [Myriad Wiki](https://wiki.myriadrf.org/LimeNET_Micro). + +## Specifications + +| Specification | Value | +|:----------------|:----------------| +| Frequency Range | 10 - 3500 MHz | +| Bandwidth | Up to 10 Msps (Stable) | +| ADC Resolution | 12-bits | +| USB Speed | 2.0 (FT601) | +| TX Mode | Yes | +| Duplex | Full | +| Crystal | Rakon OCXO (+/-5 ppb) | +| Bias-T | No | + +## Firmware Sources +``` +https://github.com/myriadrf/LimeSuite +https://github.com/myriadrf/gr-limesdr +https://github.com/myriadrf/pyLMS7002Soapy +``` + +## Supported Software +- GNURadio +- GQRX +- LimeUtil +- LimeVNA +- SDRAngel +- Soapy Remote + +## Command Line Tools +- LimeQuickTest diff --git a/docs/docs/radios/limesdr_mini.md b/docs/docs/radios/limesdr_mini.md new file mode 100644 index 0000000..d338422 --- /dev/null +++ b/docs/docs/radios/limesdr_mini.md @@ -0,0 +1,56 @@ +--- +layout: default +title: LimeSDR Mini +parent: Radios +nav_order: 5 +--- + +# LimeSDR Mini +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- + +Smaller version of the LimeSDR USB with almost half the specifications. More information about this device can be found on the [Myriad Wiki](https://wiki.myriadrf.org/LimeSDR-Mini). + +## Specifications + +| Specification | Value | +|:----------------|:----------------| +| Frequency Range | 10 - 3500 MHz | +| Bandwidth | Up to 30.72 Msps (Stable) | +| ADC Resolution | 12-bits | +| USB Speed | 3.0 (FT601) | +| TX Mode | Yes | +| Duplex | Full | +| Crystal | Rakon TCXO (4.0 ppm stable) | +| Bias-T | No | + +## Device Fingerprint +```bash +$ lsusb +Bus 020 Device 009: ID 0403:601f Future Technology Devices International Limited LimeSDR Mini Serial: XXXXXXXXXXXXXX +``` + +## Firmware Sources +``` +https://github.com/myriadrf/LimeSuite +https://github.com/myriadrf/gr-limesdr +https://github.com/myriadrf/pyLMS7002Soapy +``` + +## Supported Software +- GNURadio +- GQRX +- LimeUtil +- LimeVNA +- SDRAngel +- Soapy Remote + +## Command Line Tools +- LimeQuickTest diff --git a/docs/docs/radios/limesdr_usb.md b/docs/docs/radios/limesdr_usb.md new file mode 100644 index 0000000..b1fa343 --- /dev/null +++ b/docs/docs/radios/limesdr_usb.md @@ -0,0 +1,56 @@ +--- +layout: default +title: LimeSDR USB +parent: Radios +nav_order: 6 +--- + +# LimeSDR USB +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- + +More capable version of the LimeSDR Mini with double the specifications. More information about this device can be found on the [Myriad Wiki](https://wiki.myriadrf.org/LimeSDR-USB). + +## Specifications + +| Specification | Value | +|:----------------|:----------------| +| Frequency Range | 100 kHz - 3.8 GHz | +| Bandwidth | Up to 61.44 Msps (Stable) | +| ADC Resolution | 12-bits | +| USB Speed | 3.0 (CYUSB3014) | +| TX Mode | Yes | +| Duplex | Full (2x2 MIMO) | +| Crystal | Rakon TCXO (4.0 ppm stable) | +| Bias-T | No | + +## Device Fingerprint +```bash +$ lsusb +Bus 020 Device 010: ID 1d50:6108 1d50 LimeSDR-USB Serial: XXXXXXXXXXXXXXXXX +``` + +## Firmware Sources +``` +https://github.com/myriadrf/LimeSuite +https://github.com/myriadrf/gr-limesdr +https://github.com/myriadrf/pyLMS7002Soapy +``` + +## Supported Software +- GNURadio +- GQRX +- LimeUtil +- LimeVNA +- SDRAngel +- Soapy Remote + +## Command Line Tools +- LimeQuickTest diff --git a/docs/docs/radios/plutosdr.md b/docs/docs/radios/plutosdr.md new file mode 100644 index 0000000..f0692c4 --- /dev/null +++ b/docs/docs/radios/plutosdr.md @@ -0,0 +1,53 @@ +--- +layout: default +title: PlutoSDR +parent: Radios +nav_order: 7 +--- + +# PlutoSDR +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- + +Software Defined Radio with a built-in ARM core based on the Xilinx Zync-7000 featuring the AD936x as the RF transceiver. + +## Specifications + +| Specification | Value | +|:----------------|:----------------| +| Frequency Range | 325 - 3800 MHz | +| Bandwidth | Up to 20 Msps (Stable) | +| ADC Resolution | 12-bits | +| USB Speed | 2.0 | +| TX Mode | Yes | +| Bias-T | No | + +## Device Fingerprint +```bash +$ lsusb +Bus 001 Device 005: ID 0456:b673 Analog Devices, Inc. PlutoSDR (ADALM-PLUTO) +``` + +## Firmware Sources +``` +https://github.com/analogdevicesinc/libiio +https://github.com/analogdevicesinc/libad9361-iio +https://github.com/analogdevicesinc/gr-iio +``` + +## Supported Software +- GQRX +- SDRAngel +- GNURadio +- Soapy Remote + +## Command Line Tools +- iio_readdev +- iio_info \ No newline at end of file diff --git a/docs/docs/radios/radios.md b/docs/docs/radios/radios.md new file mode 100644 index 0000000..f56fef2 --- /dev/null +++ b/docs/docs/radios/radios.md @@ -0,0 +1,15 @@ +--- +layout: default +title: Radios +has_children: true +nav_order: 2 +--- + +# Radio Support +{: .no_toc } + +This is a list of software defined radios validated to work with the current version of this image.[^1] +{: .fs-6 .fw-300 } + +--- +[^1]: _The Airspy HF+ Discovery is currently not validated since my review unit still in the mail. But it should work without problems, please, contact me on [Twitter](https://twitter.com/luigifcruz) if not._ \ No newline at end of file diff --git a/docs/docs/radios/rtlsdr.md b/docs/docs/radios/rtlsdr.md new file mode 100644 index 0000000..e27c799 --- /dev/null +++ b/docs/docs/radios/rtlsdr.md @@ -0,0 +1,61 @@ +--- +layout: default +title: RTL-SDR +parent: Radios +nav_order: 8 +--- + +# RTL-SDR +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- + +Currently, the most popular SDR device. Supported by the PiSDR with the modified library provided by the [RTL-SDR Blog](https://www.rtl-sdr.com). This library adds patches to improve performance within the L-Band, improves over-heating problems and enables the Bias-T on supported devices. + +## Specifications + +| Specification | Value | +|:----------------|:----------------| +| Frequency Range | 24 - 1766 MHz | +| Bandwidth | Up to 2.56 Msps (Stable) | +| ADC Resolution | 8-bits | +| USB Speed | 2.0 | +| TX Mode | No | +| Crystal | TCXO (0.5-1.0 ppm stable)[^1] | +| Bias-T | Yes[^1] | + +## Device Fingerprint +```bash +$ lsusb +Bus 020 Device 006: ID 0bda:2838 Realtek Semiconductor Corp. RTL2838UHIDIR Serial: 00000001 +``` + +## Firmware Sources +``` +https://github.com/osmocom/rtl-sdr +``` + +## Supported Software +- GQRX +- SDRAngel +- GNURadio +- Soapy Remote + +## Command Line Tools +- rtl_adsb +- rtl_biast +- rtl_eeprom +- rtl_fm +- rtl_power +- rtl_sdr +- rtl_tcp +- rtl_test + +--- +[^1]: _Official model from the RTL-SDR blog._ diff --git a/docs/docs/software/gnuradio.md b/docs/docs/software/gnuradio.md new file mode 100644 index 0000000..6369e63 --- /dev/null +++ b/docs/docs/software/gnuradio.md @@ -0,0 +1,38 @@ +--- +layout: default +title: GNURadio +parent: Software +nav_order: 1 +--- + +# GNURadio +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- + +Open-source software meant to facilitate the construction of signal-processing pipelines using DSP blocks. Widely used by the hobbyist and professional community. + +## Specifications +- Installed Version: 3.7 + +## Sources +``` +sudo apt install gnuradio (Vanilla Version) +https://github.com/gnuradio/gnuradio (Performance Version) +``` + +## Supported Radios +- Airspy HF+ Discovery +- Airspy Mini +- Airspy R2 +- LimeNET Micro +- LimeSDR Mini +- LimeSDR USB +- PlutoSDR +- RTL-SDR \ No newline at end of file diff --git a/docs/docs/software/gqrx.md b/docs/docs/software/gqrx.md new file mode 100644 index 0000000..17d7250 --- /dev/null +++ b/docs/docs/software/gqrx.md @@ -0,0 +1,40 @@ +--- +layout: default +title: GQRX +parent: Software +nav_order: 2 +--- + +# GQRX +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- + +Famous signal analyzer front-end software for multiple radios. Radio interface based on the gr-osmocom library. This software can only receive signals. + +## Specifications +- Installed Version: 2.11.5 + +## Sources +``` +https://github.com/csete/gqrx +``` + +## Supported Radios +- Airspy HF+ Discovery +- Airspy Mini +- Airspy R2 +- LimeNET Micro[^1] +- LimeSDR Mini[^1] +- LimeSDR USB[^1] +- PlutoSDR[^1] +- RTL-SDR + +--- +[^1]: _Supported via Soapy._ \ No newline at end of file diff --git a/docs/docs/software/limesuite.md b/docs/docs/software/limesuite.md new file mode 100644 index 0000000..edda883 --- /dev/null +++ b/docs/docs/software/limesuite.md @@ -0,0 +1,32 @@ +--- +layout: default +title: LimeSuite +parent: Software +nav_order: 3 +--- + +# LimeSuite +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- + +Software meant to control and configure LMS based devices. + +## Specifications +- Installed Version: 19.04.0 + +## Sources +``` +https://github.com/myriadrf/LimeSuite +``` + +## Supported Radios +- LimeNET Micro +- LimeSDR Mini +- LimeSDR USB \ No newline at end of file diff --git a/docs/docs/software/limevna.md b/docs/docs/software/limevna.md new file mode 100644 index 0000000..dd03613 --- /dev/null +++ b/docs/docs/software/limevna.md @@ -0,0 +1,29 @@ +--- +layout: default +title: LimeVNA +parent: Software +nav_order: 4 +--- + +# LimeVNA +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- + +Python toolkit to use an LMS based device (LimeSDR Mini or USB) as a Vector Network Analyzer. More information and instructions are provided by the [Github Repository](https://github.com/myriadrf/pyLMS7002Soapy). + +## Sources +``` +https://github.com/myriadrf/pyLMS7002Soapy +``` + +## Supported Radios +- LimeNET Micro +- LimeSDR Mini +- LimeSDR USB \ No newline at end of file diff --git a/docs/docs/software/sdrangel.md b/docs/docs/software/sdrangel.md new file mode 100644 index 0000000..32284fa --- /dev/null +++ b/docs/docs/software/sdrangel.md @@ -0,0 +1,37 @@ +--- +layout: default +title: SDRAngel +parent: Software +nav_order: 5 +--- + +# SDRAngel +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- + +Signal analyzer front-end software for multiple radios. Can handle TX and RX with MIMO. Multiple signal decoders/encoders are included, for example, SSB, FM, AM, DATV, and many more. + +## Specifications +- Installed Version: 4.12.2 + +## Sources +``` +https://github.com/f4exb/sdrangel +``` + +## Supported Radios +- Airspy HF+ Discovery +- Airspy Mini +- Airspy R2 +- LimeNET Micro +- LimeSDR Mini +- LimeSDR USB +- PlutoSDR +- RTL-SDR \ No newline at end of file diff --git a/docs/docs/software/soapy_remote.md b/docs/docs/software/soapy_remote.md new file mode 100644 index 0000000..f822e8d --- /dev/null +++ b/docs/docs/software/soapy_remote.md @@ -0,0 +1,44 @@ +--- +layout: default +title: Soapy Remote +parent: Software +nav_order: 6 +--- + +# Soapy Remote +{: .no_toc } + +## Table of contents +{: .no_toc .text-delta } + +1. TOC +{:toc} + +--- + +Software intended to share a SoapySDR compatible device with other computers through the network. More information about this program can be found on the [SoapySDR Wiki](https://github.com/pothosware/SoapyRemote/wiki). + + +## Usage Example +To start a new server accepting external IPv4 connections at port 8892: +``` bash +$ SoapySDRServer --bind="0.0.0.0:8892" +``` + +## Specifications +- Installed Version: 0.5.1 + +## Sources +``` +https://github.com/pothosware/SoapyRemote +``` + +## Supported Radios +- Airspy HF+ Discovery +- Airspy Mini +- Airspy R2 +- LimeNET Micro +- LimeSDR Mini +- LimeSDR USB +- PlutoSDR +- RTL-SDR \ No newline at end of file diff --git a/docs/docs/software/software.md b/docs/docs/software/software.md new file mode 100644 index 0000000..5a7cb54 --- /dev/null +++ b/docs/docs/software/software.md @@ -0,0 +1,12 @@ +--- +layout: default +title: Software +has_children: true +nav_order: 3 +--- + +# Software +{: .no_toc } + +This is a list with all pre-installed software on the current version. +{: .fs-6 .fw-300 } diff --git a/docs/favicon.ico b/docs/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..80885ac798b606a022240e87d75d84879783f18e GIT binary patch literal 3263 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 x0Ly^lTyL05^ewh literal 0 HcmV?d00001 diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..aa2b86b --- /dev/null +++ b/docs/index.md @@ -0,0 +1,99 @@ +--- +layout: default +title: Home +nav_order: 1 +description: "The SDR Linux Distro for Raspberry Pi. Latest Software Defined Radio software pre-installed and ready to go." +permalink: / +--- + +# The SDR Linux Distro for Raspberry Pi +{: .fs-9 } + +Modified Raspbian image with the latest SDR software pre-installed and ready to go. Compatible with every Raspberry Pi. +{: .fs-6 .fw-300 } + +[Download Latest Version](#getting-started){: .btn .btn-primary .fs-5 .mb-4 .mb-md-0 .mr-2 } [View it on GitHub](https://github.com/luigifreitas/pisdr-image){: .btn .fs-5 .mb-4 .mb-md-0 } + +--- + +The PiSDR is a Raspbian based operating system for the Raspberry Pi pre-loaded with multiple Software Defined Radio software. It was created to serve as a fast and reliable bootstrap for SDR projects. + +--- + +## Support +This is a single person project with limited time and resources to acquire expensive SDRs. Only radios validated by tests are supported by this image. This is a limitation to maintain a certain level of quality. If you are a vendor and want your SDR supported by this image, consider donating one unit to the project. + +### Software +List of pre-installed software: SDR Angel, Soapy Remote, GQRX, GNURadio, LimeUtil, and LimeVNA. +#### Learn more [Pre-Installed Software](https://pisdr.luigifreitas.me/docs/software/software/index). + +### Radios +We currently support the following SDRs: RTL-SDR, LimeSDR, PlutoSDR, Airspy, and Airspy HF. +#### Learn more [Supported Radios](https://pisdr.luigifreitas.me/docs/radios/radios/index). + +### Computers +The latest version of the PiSDR (v3.0) supports every Raspberry Pi model (Zero, 1, 2, 3 and 4). + +--- + +## Getting started + +### Download +Since the download file is quite large, we created a poll of mirrors to ensure the fastest possible download. Click in the button below to be automatically redirected to the fastest mirror for you. + +[Download Torrent (Fastest)](http://bit.ly/37E4js0){: .btn .btn-primary .fs-5 .mb-4 .mb-md-0 .mr-2 } +[Download Web](http://bit.ly/34JASmH){: .btn .fs-5 .mb-4 .mb-md-0 .mr-2 } + +#### Download Mirrors + +| Status | Server Location |Version | TAR | ZIP | +|:-------------|:----------------|:--|:---|:----| +| Official | Torrent/Web | 3.0 | [Download](http://bit.ly/37E4js0) | | +| [Collaborator](https://twitter.com/sam210723) | Edge Deployment | 3.0 | [Download](http://bit.ly/34JASmH) | [Download](http://bit.ly/2Z9ZOCu) | +| [Collaborator](https://twitter.com/F5OEOEvariste) | Europe | 3.0 | [Download](http://bit.ly/2QaL0zk) | [Download](http://bit.ly/2sR5C84) | +| [Collaborator](https://twitter.com/w4www_raker) | US-East | 3.0 | [Download](http://bit.ly/39bn4oc) | | + +### Installation +The installation process is the same as the vanilla Raspbian. You will need a MicroSD card with at least 16GB of capacity. To transfer the image file to the memory card we recommend the open-source and multi-platform [balenaEtcher](https://www.balena.io/etcher/). + +If you are feeling quite adventurous, you can copy the image to the memory card using `dd`. **Warning:** One should be extremely cautious using `dd`, as with any command of this kind it can destroy data irreversibly. +```bash +$ dd bs=4M if=pisdr_v3.0.img of=/dev/sdX conv=fsync +``` +### Usage +This image can be used as a standard Raspbian desktop environment. The HDMI Output, SSH, and Remote VNC are enabled by default. For usage information about any pre-installed software, please refer to our [Software Page](https://pisdr.luigifreitas.me/docs/software/software/index). + +**Warning: It is important to change the credentials after the first login to ensure your security.** + +#### SSH +To access the system with this option, you will need an SSH client. This is built-in inside the Command-Line of most operating systems (Linux, macOS and Windows 10). As a GUI alternative, we recommend using the PuTTY application available for Linux and Windows. + +```bash +$ ssh pi@pisdr.local +Password: raspberry +``` + +#### VNC +The remote desktop can be accessed using any VNC client. The credentials are the same from the SSH. The default screen resolution is set to 720p. This setting can be easily changed inside the `raspi-config` menu (Advanced > Resolution). _Note: The Remmina Client is known to be incompatible with this VNC Server._ + +--- + +## About the project + +PiSDR Project was created and maintained since 2019 by [Luigi F. Cruz](https://luigifreitas.me). + +### Donation + +Donations are welcome. Hit me up on [Twitter](https://twitter.com/luigifcruz) or [Email](mailto:luigifcruz@gmail.com) if you want to buy me a coffee. + +### License + +PiSDR is distributed by an [MIT license](https://raw.githubusercontent.com/luigifreitas/pisdr-image/master/LICENSE). + +### Disclaimer + +This project isn't in any way associated with the Raspberry Pi Foundation. + +### Contributing + +Everyone is very welcome to contribute to our project. Project icon made by [Smashicons](https://www.flaticon.com/authors/smashicons). diff --git a/docs/just-the-docs.gemspec b/docs/just-the-docs.gemspec new file mode 100644 index 0000000..4be9738 --- /dev/null +++ b/docs/just-the-docs.gemspec @@ -0,0 +1,21 @@ +# coding: utf-8 + +Gem::Specification.new do |spec| + spec.name = "just-the-docs" + spec.version = "0.2.7" + spec.authors = ["Patrick Marsceill"] + spec.email = ["patrick.marsceill@gmail.com"] + + spec.summary = %q{A modern, highly customizable, and responsive Jekyll theme for documention with built-in search.} + spec.homepage = "https://github.com/pmarsceill/just-the-docs" + spec.license = "MIT" + + spec.files = `git ls-files -z`.split("\x0").select { |f| f.match(%r{^(assets|bin|_layouts|_includes|lib|Rakefile|_sass|LICENSE|README)}i) } + spec.executables << 'just-the-docs' + + spec.add_runtime_dependency "jekyll", "~> 3.8.5" + spec.add_runtime_dependency "jekyll-seo-tag", "~> 2.0" + spec.add_runtime_dependency "rake", "~> 12.3.1" + + spec.add_development_dependency "bundler", "~> 2.0.1" +end diff --git a/docs/lib/tasks/search.rake b/docs/lib/tasks/search.rake new file mode 100644 index 0000000..82dcfb6 --- /dev/null +++ b/docs/lib/tasks/search.rake @@ -0,0 +1,27 @@ +namespace :search do + desc 'Generate the files needed for search functionality' + task :init do + puts 'Creating search data json file...' + mkdir_p 'assets/js' + touch 'assets/js/search-data.json' + content = %Q[{{ page.content | markdownify | replace: '=2.2.7 <3" + } + }, + "ajv": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", + "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.0.tgz", + "integrity": "sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw==", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "autoprefixer": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.0.tgz", + "integrity": "sha512-kuip9YilBqhirhHEGHaBTZKXL//xxGnzvsD0FtBQa6z+A69qZD6s/BAX9VzDF1i9VKDquTJDQaPLSEhOnL6FvQ==", + "dev": true, + "requires": { + "browserslist": "^4.6.1", + "caniuse-lite": "^1.0.30000971", + "chalk": "^2.4.2", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.16", + "postcss-value-parser": "^3.3.1" + }, + "dependencies": { + "browserslist": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.1.tgz", + "integrity": "sha512-1MC18ooMPRG2UuVFJTHFIAkk6mpByJfxCrnUyvSlu/hyQSFHMrlhM02SzNuCV+quTP4CKmqtOMAIjrifrpBJXQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000971", + "electron-to-chromium": "^1.3.137", + "node-releases": "^1.1.21" + } + }, + "caniuse-lite": { + "version": "1.0.30000974", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000974.tgz", + "integrity": "sha512-xc3rkNS/Zc3CmpMKuczWEdY2sZgx09BkAxfvkxlAEBTqcMHeL8QnPqhKse+5sRTi3nrw2pJwToD2WvKn1Uhvww==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.150", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.150.tgz", + "integrity": "sha512-5wuYlaXhXbBvavSTij5ZyidICB6sAK/1BwgZZoPCgsniid1oDgzVvDOV/Dw6J25lKV9QZ9ZdQCp8MEfF0/OIKA==", + "dev": true + }, + "node-releases": { + "version": "1.1.23", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.23.tgz", + "integrity": "sha512-uq1iL79YjfYC0WXoHbC/z28q/9pOl8kSHaXdWmAAc8No+bDwqkZbzIJz55g/MUsPgSGm9LZ7QSUbzTcH5tz47w==", + "dev": true, + "requires": { + "semver": "^5.3.0" + } + }, + "postcss": { + "version": "7.0.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", + "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + } + } + }, + "bail": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.4.tgz", + "integrity": "sha512-S8vuDB4w6YpRhICUDET3guPlQpaJl7od94tpZ0Fvnyp+MKW/HyDTcRDck+29C9g+d/qQHnddRH3+94kZdrW0Ww==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "browserslist": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.0.tgz", + "integrity": "sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000989", + "electron-to-chromium": "^1.3.247", + "node-releases": "^1.1.29" + }, + "dependencies": { + "electron-to-chromium": { + "version": "1.3.254", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.254.tgz", + "integrity": "sha512-7I5/OkgR6JKy6RFLJeru0kc0RMmmMu1UnkHBKInFKRrg1/4EQKIqOaUqITSww/SZ1LqWwp1qc/LLoIGy449eYw==", + "dev": true + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.1", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "requires": { + "callsites": "^2.0.0" + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsites": { + "version": "2.0.0", + "resolved": "http://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "camelcase-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", + "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", + "dev": true, + "requires": { + "camelcase": "^4.1.0", + "map-obj": "^2.0.0", + "quick-lru": "^1.0.0" + } + }, + "caniuse-db": { + "version": "1.0.30000963", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000963.tgz", + "integrity": "sha512-5Qk1jSsqRY3dD7BAjU018y0MsznzYb+kMTKzGknue8vSWlHkw2S345vRnd0cVEerzZ6ugUfoKaUOOVbBxWLWCA==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30000989", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz", + "integrity": "sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw==", + "dev": true + }, + "ccount": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.4.tgz", + "integrity": "sha512-fpZ81yYfzentuieinmGnphk0pLkOTMm6MZdVqwd77ROvhko6iujLNGrHH5E7utq3ygWklwfmwuG+A7P+NpqT6w==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "character-entities": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.3.tgz", + "integrity": "sha512-yB4oYSAa9yLcGyTbB4ItFwHw43QHdH129IJ5R+WvxOkWlyFnR5FAaBNnUq4mcxsTVZGh28bHoeTHMKXH1wZf3w==", + "dev": true + }, + "character-entities-html4": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.3.tgz", + "integrity": "sha512-SwnyZ7jQBCRHELk9zf2CN5AnGEc2nA+uKMZLHvcqhpPprjkYhiLn0DywMHgN5ttFZuITMATbh68M6VIVKwJbcg==", + "dev": true + }, + "character-entities-legacy": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.3.tgz", + "integrity": "sha512-YAxUpPoPwxYFsslbdKkhrGnXAtXoHNgYjlBM3WMXkWGTl5RsY3QmOyhwAgL8Nxm9l5LBThXGawxKPn68y6/fww==", + "dev": true + }, + "character-reference-invalid": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.3.tgz", + "integrity": "sha512-VOq6PRzQBam/8Jm6XBGk2fNEnHXAdGd6go0rtd4weAGECBamHDwwCQSOT12TACIYUZegUXnV6xBXqUssijtxIg==", + "dev": true + }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", + "dev": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "clone-regexp": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-1.0.1.tgz", + "integrity": "sha512-Fcij9IwRW27XedRIJnSOEupS7RVcXtObJXbcUOX93UCLqqOdRpkvzKywOOSizmEK/Is3S/RHX9dLdfo6R1Q1mw==", + "dev": true, + "requires": { + "is-regexp": "^1.0.0", + "is-supported-regexp-flag": "^1.0.0" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "collapse-white-space": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.5.tgz", + "integrity": "sha512-703bOOmytCYAX9cXYqoikYIx6twmFCXsnzRQheBcTG3nzKYBR4P/+wkYeH+Mvj7qUz8zZDtdyzbxfnEi/kYzRQ==", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-diff": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/color-diff/-/color-diff-0.1.7.tgz", + "integrity": "sha1-bbeM2UgqjkWdQIIer0tQMoPcuOI=", + "dev": true + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colorguard": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/colorguard/-/colorguard-1.2.1.tgz", + "integrity": "sha512-qYVKTg626qpDg4/eBnPXidEPXn5+krbYqHVfyyEFBWV5z3IF4p44HKY/eE2t1ohlcrlIkDgHmFJMfQ8qMLnSFw==", + "dev": true, + "requires": { + "chalk": "^1.1.1", + "color-diff": "^0.1.3", + "log-symbols": "^1.0.2", + "object-assign": "^4.0.1", + "pipetteur": "^2.0.0", + "plur": "^2.0.0", + "postcss": "^5.0.4", + "postcss-reporter": "^1.2.1", + "text-table": "^0.2.0", + "yargs": "^1.2.6" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "requires": { + "chalk": "^1.0.0" + } + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + }, + "dependencies": { + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-reporter": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-1.4.1.tgz", + "integrity": "sha1-wTbwpbFhkV83ndN2XGEHX357mvI=", + "dev": true, + "requires": { + "chalk": "^1.0.0", + "lodash": "^4.1.0", + "log-symbols": "^1.0.2", + "postcss": "^5.0.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "yargs": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-1.3.3.tgz", + "integrity": "sha1-BU3oth8i7v23IHBZ6u+da4P7kxo=", + "dev": true + } + } + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "convert-source-map": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "css-color-names": { + "version": "0.0.3", + "resolved": "http://registry.npmjs.org/css-color-names/-/css-color-names-0.0.3.tgz", + "integrity": "sha1-3gzvFvTYqoIioyDVttfpu62nufY=", + "dev": true + }, + "css-rule-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/css-rule-stream/-/css-rule-stream-1.1.0.tgz", + "integrity": "sha1-N4bnGYmD2WWibjGVfgkHjLt3BaI=", + "dev": true, + "requires": { + "css-tokenize": "^1.0.1", + "duplexer2": "0.0.2", + "ldjson-stream": "^1.2.1", + "through2": "^0.6.3" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, + "requires": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + } + } + }, + "css-tokenize": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-tokenize/-/css-tokenize-1.0.1.tgz", + "integrity": "sha1-RiXLHtohwUOFi3+B1oA8HSb8FL4=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^1.0.33" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "dev": true, + "requires": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + } + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "dir-glob": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", + "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", + "dev": true, + "requires": { + "path-type": "^3.0.0" + } + }, + "doiuse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/doiuse/-/doiuse-4.2.0.tgz", + "integrity": "sha512-FMptmRKtlEwlcP9KUQ1Vw4pdlcUchl5cWBZEfgZGDPO0WhiJ8sJf2UeuYO8FXlNmK45s3OyQvzJ7GIWzmDYEdQ==", + "dev": true, + "requires": { + "browserslist": "^4.1.1", + "caniuse-lite": "^1.0.30000887", + "css-rule-stream": "^1.1.0", + "duplexer2": "0.0.2", + "jsonfilter": "^1.1.2", + "ldjson-stream": "^1.2.1", + "multimatch": "^2.0.0", + "postcss": "^7.0.4", + "source-map": "^0.7.3", + "through2": "^2.0.3", + "yargs": "^12.0.2" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } + } + }, + "dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "dev": true, + "requires": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "dev": true, + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + }, + "duplexer": { + "version": "0.1.1", + "resolved": "http://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", + "dev": true + }, + "duplexer2": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", + "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", + "dev": true, + "requires": { + "readable-stream": "~1.1.9" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "electron-to-chromium": { + "version": "1.3.127", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.127.tgz", + "integrity": "sha512-1o25iFRf/dbgauTWalEzmD1EmRN3a2CzP/K7UVpYLEBduk96LF0FyUdCcf4Ry2mAWJ1VxyblFjC93q6qlLwA2A==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "execall": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execall/-/execall-1.0.0.tgz", + "integrity": "sha1-c9CQTjlbPKsGWLCNCewlMH8pu3M=", + "dev": true, + "requires": { + "clone-regexp": "^1.0.0" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "^2.1.0" + }, + "dependencies": { + "fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "dev": true, + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + }, + "dependencies": { + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "requires": { + "flat-cache": "^2.0.1" + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + } + }, + "flatted": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.0.tgz", + "integrity": "sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg==", + "dev": true + }, + "flatten": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", + "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=", + "dev": true + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "gather-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gather-stream/-/gather-stream-1.0.0.tgz", + "integrity": "sha1-szmUr0V6gRVwDUEPMXczy+egkEs=", + "dev": true + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "get-stdin": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz", + "integrity": "sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "requires": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + }, + "dependencies": { + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "^2.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "requires": { + "global-prefix": "^3.0.0" + } + }, + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globby": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", + "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^1.0.2", + "dir-glob": "^2.2.2", + "fast-glob": "^2.2.6", + "glob": "^7.1.3", + "ignore": "^4.0.3", + "pify": "^4.0.1", + "slash": "^2.0.0" + }, + "dependencies": { + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + } + } + }, + "globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", + "dev": true + }, + "gonzales-pe": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.2.4.tgz", + "integrity": "sha512-v0Ts/8IsSbh9n1OJRnSfa7Nlxi4AkXIsWB6vPept8FDbL4bXn3FNuxjYtO/nmBGu7GDkL9MFeGebeSu6l55EPQ==", + "dev": true, + "requires": { + "minimist": "1.1.x" + }, + "dependencies": { + "minimist": { + "version": "1.1.3", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.1.3.tgz", + "integrity": "sha1-O+39kaktOQFvz6ocaB6Pqhoe/ag=", + "dev": true + } + } + }, + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hosted-git-info": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "dev": true + }, + "html-tags": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz", + "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=", + "dev": true + }, + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "dev": true, + "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, + "ignore": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.2.tgz", + "integrity": "sha512-vdqWBp7MyzdmHkkRWV5nY+PfGRbYbahfuvsBCh277tq+w9zyNi7h5CYJCK0kmzti9kU+O/cB7sE8HvKv6aXAKQ==", + "dev": true + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, + "import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true + }, + "irregular-plurals": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-1.4.0.tgz", + "integrity": "sha1-LKmwM2UREYVUEvFr5dd8YqRYp2Y=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-alphabetical": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.3.tgz", + "integrity": "sha512-eEMa6MKpHFzw38eKm56iNNi6GJ7lf6aLLio7Kr23sJPAECscgRtZvOBYybejWDQ2bM949Y++61PY+udzj5QMLA==", + "dev": true + }, + "is-alphanumeric": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz", + "integrity": "sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ=", + "dev": true + }, + "is-alphanumerical": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.3.tgz", + "integrity": "sha512-A1IGAPO5AW9vSh7omxIlOGwIqEvpW/TA+DksVOPM5ODuxKlZS09+TEM1E3275lJqO2oJ38vDpeAL3DCIiHE6eA==", + "dev": true, + "requires": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-decimal": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.3.tgz", + "integrity": "sha512-bvLSwoDg2q6Gf+E2LEPiklHZxxiSi3XAh4Mav65mKqTfCO1HM3uBs24TjEH8iJX3bbDdLXKJXBTmGzuTUuAEjQ==", + "dev": true + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "requires": { + "is-primitive": "^2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-hexadecimal": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.3.tgz", + "integrity": "sha512-zxQ9//Q3D/34poZf8fiy3m3XVpbQc7ren15iKqrTtLPwkPD/t3Scy9Imp63FujULGxuK0ZlCwoo5xNpktFgbOA==", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-obj": { + "version": "1.0.1", + "resolved": "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-supported-regexp-flag": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.1.tgz", + "integrity": "sha512-3vcJecUUrpgCqc/ca0aWeNu64UGgxcvO60K/Fkr1N6RSvfGCTU60UKN68JDmKokgba0rFFJs12EnzOQa14ubKQ==", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-whitespace-character": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.3.tgz", + "integrity": "sha512-SNPgMLz9JzPccD3nPctcj8sZlX9DAMJSKH8bP7Z6bohCwuNgX8xbWr1eTAYXX9Vpi/aSn8Y1akL9WgM3t43YNQ==", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-word-character": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.3.tgz", + "integrity": "sha512-0wfcrFgOOOBdgRNT9H33xe6Zi6yhX/uoc4U8NBZGeQQB0ctU1dnlNTyL9JM2646bHDTpsDm1Brb3VPoCIMrd/A==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "js-base64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", + "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json5": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", + "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "jsonfilter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/jsonfilter/-/jsonfilter-1.1.2.tgz", + "integrity": "sha1-Ie987cdRk4E8dZMulqmL4gW6WhE=", + "dev": true, + "requires": { + "JSONStream": "^0.8.4", + "minimist": "^1.1.0", + "stream-combiner": "^0.2.1", + "through2": "^0.6.3" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "minimist": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, + "requires": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + } + } + }, + "jsonparse": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-0.0.5.tgz", + "integrity": "sha1-MwVCrT8KZUZlt3jz6y2an6UHrGQ=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "known-css-properties": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.14.0.tgz", + "integrity": "sha512-P+0a/gBzLgVlCnK8I7VcD0yuYJscmWn66wH9tlKsQnmVdg689tLEmziwB9PuazZYLkcm07fvWOKCJJqI55sD5Q==", + "dev": true + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "dev": true, + "requires": { + "invert-kv": "^2.0.0" + } + }, + "ldjson-stream": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ldjson-stream/-/ldjson-stream-1.2.1.tgz", + "integrity": "sha1-kb7O2lrE7SsX5kn7d356v6AYnCs=", + "dev": true, + "requires": { + "split2": "^0.2.1", + "through2": "^0.6.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, + "requires": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + } + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, + "log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2" + } + }, + "longest-streak": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.3.tgz", + "integrity": "sha512-9lz5IVdpwsKLMzQi0MQ+oD9EA0mIGcWYP7jXMTZVXP8D42PwuAk+M/HBFYQoxt1G5OR8m7aSIgb1UymfWGBWEw==", + "dev": true + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", + "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "markdown-escapes": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.3.tgz", + "integrity": "sha512-XUi5HJhhV5R74k8/0H2oCbCiYf/u4cO/rX8tnGkRvrqhsr5BRNU6Mg0yt/8UIx1iIS8220BNJsDb7XnILhLepw==", + "dev": true + }, + "markdown-table": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", + "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==", + "dev": true + }, + "math-random": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", + "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", + "dev": true + }, + "mathml-tag-names": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.0.tgz", + "integrity": "sha512-3Zs9P/0zzwTob2pdgT0CHZuMbnSUSp8MB1bddfm+HDmnFWHGT4jvEZRf+2RuPoa+cjdn/z25SEt5gFTqdhvJAg==", + "dev": true + }, + "mdast-util-compact": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-1.0.3.tgz", + "integrity": "sha512-nRiU5GpNy62rZppDKbLwhhtw5DXoFMqw9UNZFmlPsNaQCZ//WLjGKUwWMdJrUH+Se7UvtO2gXtAMe0g/N+eI5w==", + "dev": true, + "requires": { + "unist-util-visit": "^1.1.0" + } + }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + } + }, + "meow": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz", + "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", + "dev": true, + "requires": { + "camelcase-keys": "^4.0.0", + "decamelize-keys": "^1.0.0", + "loud-rejection": "^1.0.0", + "minimist-options": "^3.0.1", + "normalize-package-data": "^2.3.4", + "read-pkg-up": "^3.0.0", + "redent": "^2.0.0", + "trim-newlines": "^2.0.0", + "yargs-parser": "^10.0.0" + } + }, + "merge2": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.3.tgz", + "integrity": "sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "minimist-options": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", + "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "multimatch": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", + "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", + "dev": true, + "requires": { + "array-differ": "^1.0.0", + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "minimatch": "^3.0.0" + } + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node-releases": { + "version": "1.1.30", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.30.tgz", + "integrity": "sha512-BHcr1g6NeUH12IL+X3Flvs4IOnl1TL0JczUhEZjDE+FXXPQcVCNr8NEPb01zqGxzhTpdyJL5GXemaCW7aw6Khw==", + "dev": true, + "requires": { + "semver": "^5.3.0" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-selector": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz", + "integrity": "sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=", + "dev": true + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "requires": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onecolor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/onecolor/-/onecolor-3.1.0.tgz", + "integrity": "sha512-YZSypViXzu3ul5LMu/m6XjJ9ol8qAy9S2VjHl5E6UlhUH1KGKWabyEJifn0Jjpw23bYDzC2ucKMPGiH5kfwSGQ==", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "http://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", + "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "parse-entities": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz", + "integrity": "sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==", + "dev": true, + "requires": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "requires": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "picomatch": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.0.7.tgz", + "integrity": "sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pipetteur": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pipetteur/-/pipetteur-2.0.3.tgz", + "integrity": "sha1-GVV2CVno0aEcsqUOyD7sRwYz5J8=", + "dev": true, + "requires": { + "onecolor": "^3.0.4", + "synesthesia": "^1.0.1" + } + }, + "plur": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/plur/-/plur-2.1.2.tgz", + "integrity": "sha1-dIJFLBoPUI4+NE6uwxLJHCncZVo=", + "dev": true, + "requires": { + "irregular-plurals": "^1.0.0" + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "7.0.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.14.tgz", + "integrity": "sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-html": { + "version": "0.36.0", + "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-0.36.0.tgz", + "integrity": "sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw==", + "dev": true, + "requires": { + "htmlparser2": "^3.10.0" + } + }, + "postcss-jsx": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/postcss-jsx/-/postcss-jsx-0.36.1.tgz", + "integrity": "sha512-xaZpy01YR7ijsFUtu5rViYCFHurFIPHir+faiOQp8g/NfTfWqZCKDhKrydQZ4d8WlSAmVdXGwLjpFbsNUI26Sw==", + "dev": true, + "requires": { + "@babel/core": ">=7.2.2" + } + }, + "postcss-less": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-3.1.4.tgz", + "integrity": "sha512-7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA==", + "dev": true, + "requires": { + "postcss": "^7.0.14" + } + }, + "postcss-markdown": { + "version": "0.36.0", + "resolved": "https://registry.npmjs.org/postcss-markdown/-/postcss-markdown-0.36.0.tgz", + "integrity": "sha512-rl7fs1r/LNSB2bWRhyZ+lM/0bwKv9fhl38/06gF6mKMo/NPnp55+K1dSTosSVjFZc0e1ppBlu+WT91ba0PMBfQ==", + "dev": true, + "requires": { + "remark": "^10.0.1", + "unist-util-find-all-after": "^1.0.2" + } + }, + "postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", + "dev": true + }, + "postcss-reporter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-6.0.1.tgz", + "integrity": "sha512-LpmQjfRWyabc+fRygxZjpRxfhRf9u/fdlKf4VHG4TSPbV2XNsuISzYW1KL+1aQzx53CAppa1bKG4APIB/DOXXw==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "lodash": "^4.17.11", + "log-symbols": "^2.2.0", + "postcss": "^7.0.7" + }, + "dependencies": { + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + } + } + } + }, + "postcss-resolve-nested-selector": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", + "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=", + "dev": true + }, + "postcss-safe-parser": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz", + "integrity": "sha512-xZsFA3uX8MO3yAda03QrG3/Eg1LN3EPfjjf07vke/46HERLZyHrTsQ9E1r1w1W//fWEhtYNndo2hQplN2cVpCQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-sass": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/postcss-sass/-/postcss-sass-0.3.5.tgz", + "integrity": "sha512-B5z2Kob4xBxFjcufFnhQ2HqJQ2y/Zs/ic5EZbCywCkxKd756Q40cIQ/veRDwSrw1BF6+4wUgmpm0sBASqVi65A==", + "dev": true, + "requires": { + "gonzales-pe": "^4.2.3", + "postcss": "^7.0.1" + } + }, + "postcss-scss": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-2.0.0.tgz", + "integrity": "sha512-um9zdGKaDZirMm+kZFKKVsnKPF7zF7qBAtIfTSnZXD1jZ0JNZIxdB6TxQOjCnlSzLRInVl2v3YdBh/M881C4ug==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-selector-parser": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", + "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", + "dev": true, + "requires": { + "dot-prop": "^4.1.1", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "postcss-sorting": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-4.1.0.tgz", + "integrity": "sha512-r4T2oQd1giURJdHQ/RMb72dKZCuLOdWx2B/XhXN1Y1ZdnwXsKH896Qz6vD4tFy9xSjpKNYhlZoJmWyhH/7JUQw==", + "dev": true, + "requires": { + "lodash": "^4.17.4", + "postcss": "^7.0.0" + } + }, + "postcss-syntax": { + "version": "0.36.2", + "resolved": "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.36.2.tgz", + "integrity": "sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==", + "dev": true + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "quick-lru": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", + "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", + "dev": true + }, + "randomatic": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "dev": true, + "requires": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "read-file-stdin": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/read-file-stdin/-/read-file-stdin-0.2.1.tgz", + "integrity": "sha1-JezP86FTtoCa+ssj7hU4fbng7mE=", + "dev": true, + "requires": { + "gather-stream": "^1.0.0" + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + } + }, + "readable-stream": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "redent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", + "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", + "dev": true, + "requires": { + "indent-string": "^3.0.0", + "strip-indent": "^2.0.0" + } + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "requires": { + "is-equal-shallow": "^0.1.3" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "remark": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/remark/-/remark-10.0.1.tgz", + "integrity": "sha512-E6lMuoLIy2TyiokHprMjcWNJ5UxfGQjaMSMhV+f4idM625UjjK4j798+gPs5mfjzDE6vL0oFKVeZM6gZVSVrzQ==", + "dev": true, + "requires": { + "remark-parse": "^6.0.0", + "remark-stringify": "^6.0.0", + "unified": "^7.0.0" + } + }, + "remark-parse": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-6.0.3.tgz", + "integrity": "sha512-QbDXWN4HfKTUC0hHa4teU463KclLAnwpn/FBn87j9cKYJWWawbiLgMfP2Q4XwhxxuuuOxHlw+pSN0OKuJwyVvg==", + "dev": true, + "requires": { + "collapse-white-space": "^1.0.2", + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "is-word-character": "^1.0.0", + "markdown-escapes": "^1.0.0", + "parse-entities": "^1.1.0", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "trim": "0.0.1", + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^1.0.0", + "vfile-location": "^2.0.0", + "xtend": "^4.0.1" + } + }, + "remark-stringify": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-6.0.4.tgz", + "integrity": "sha512-eRWGdEPMVudijE/psbIDNcnJLRVx3xhfuEsTDGgH4GsFF91dVhw5nhmnBppafJ7+NWINW6C7ZwWbi30ImJzqWg==", + "dev": true, + "requires": { + "ccount": "^1.0.0", + "is-alphanumeric": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "longest-streak": "^2.0.1", + "markdown-escapes": "^1.0.0", + "markdown-table": "^1.1.0", + "mdast-util-compact": "^1.0.0", + "parse-entities": "^1.0.2", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "stringify-entities": "^1.0.1", + "unherit": "^1.0.4", + "xtend": "^4.0.1" + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", + "dev": true + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-from-string": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", + "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "resolve": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.1.tgz", + "integrity": "sha512-KuIe4mf++td/eFb6wkaPbMDnP6kObCaEtIDuHOUED6MNUo4K670KZUHuuvYPZDxNF0WVLw49n06M2m2dXphEzA==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "semver": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + } + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "dev": true, + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", + "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==", + "dev": true + }, + "specificity": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.4.1.tgz", + "integrity": "sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "split2": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/split2/-/split2-0.2.1.tgz", + "integrity": "sha1-At2smtwD7Au3jBKC7Aecpuha6QA=", + "dev": true, + "requires": { + "through2": "~0.6.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, + "requires": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + } + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "state-toggle": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.2.tgz", + "integrity": "sha512-8LpelPGR0qQM4PnfLiplOQNJcIN1/r2Gy0xKB2zKnIW2YzPMt2sR4I/+gtPjhN7Svh9kw+zqEg2SFwpBO9iNiw==", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "stream-combiner": { + "version": "0.2.2", + "resolved": "http://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", + "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", + "dev": true, + "requires": { + "duplexer": "~0.1.1", + "through": "~2.3.4" + } + }, + "string-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.1.0.tgz", + "integrity": "sha512-NrX+1dVVh+6Y9dnQ19pR0pP4FiEIlUvdTGn8pw6CKTNq5sgib2nIhmUNT5TAmhWmvKr3WcxBcP3E8nWezuipuQ==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^5.2.0" + } + }, + "string_decoder": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz", + "integrity": "sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "stringify-entities": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-1.3.2.tgz", + "integrity": "sha512-nrBAQClJAPN2p+uGCVJRPIPakKeKWZ9GtBCmormE7pWOSlHat7+x5A8gx85M7HM5Dt0BP3pP5RhVW77WdbJJ3A==", + "dev": true, + "requires": { + "character-entities-html4": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-hexadecimal": "^1.0.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "style-search": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", + "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=", + "dev": true + }, + "stylehacks": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-2.3.2.tgz", + "integrity": "sha1-ZMg+BDimjJ7fRJ6MVSp9mrYAmws=", + "dev": true, + "requires": { + "browserslist": "^1.1.3", + "chalk": "^1.1.1", + "log-symbols": "^1.0.2", + "minimist": "^1.2.0", + "plur": "^2.1.2", + "postcss": "^5.0.18", + "postcss-reporter": "^1.3.3", + "postcss-selector-parser": "^2.0.0", + "read-file-stdin": "^0.2.1", + "text-table": "^0.2.0", + "write-file-stdout": "0.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true, + "requires": { + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "requires": { + "chalk": "^1.0.0" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + }, + "dependencies": { + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-reporter": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-1.4.1.tgz", + "integrity": "sha1-wTbwpbFhkV83ndN2XGEHX357mvI=", + "dev": true, + "requires": { + "chalk": "^1.0.0", + "lodash": "^4.1.0", + "log-symbols": "^1.0.2", + "postcss": "^5.0.0" + } + }, + "postcss-selector-parser": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", + "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", + "dev": true, + "requires": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "stylelint": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-10.1.0.tgz", + "integrity": "sha512-OmlUXrgzEMLQYj1JPTpyZPR9G4bl0StidfHnGJEMpdiQ0JyTq0MPg1xkHk1/xVJ2rTPESyJCDWjG8Kbpoo7Kuw==", + "dev": true, + "requires": { + "autoprefixer": "^9.5.1", + "balanced-match": "^1.0.0", + "chalk": "^2.4.2", + "cosmiconfig": "^5.2.0", + "debug": "^4.1.1", + "execall": "^2.0.0", + "file-entry-cache": "^5.0.1", + "get-stdin": "^7.0.0", + "global-modules": "^2.0.0", + "globby": "^9.2.0", + "globjoin": "^0.1.4", + "html-tags": "^3.0.0", + "ignore": "^5.0.6", + "import-lazy": "^4.0.0", + "imurmurhash": "^0.1.4", + "known-css-properties": "^0.14.0", + "leven": "^3.1.0", + "lodash": "^4.17.11", + "log-symbols": "^3.0.0", + "mathml-tag-names": "^2.1.0", + "meow": "^5.0.0", + "micromatch": "^4.0.0", + "normalize-selector": "^0.2.0", + "pify": "^4.0.1", + "postcss": "^7.0.14", + "postcss-html": "^0.36.0", + "postcss-jsx": "^0.36.1", + "postcss-less": "^3.1.4", + "postcss-markdown": "^0.36.0", + "postcss-media-query-parser": "^0.2.3", + "postcss-reporter": "^6.0.1", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-safe-parser": "^4.0.1", + "postcss-sass": "^0.3.5", + "postcss-scss": "^2.0.0", + "postcss-selector-parser": "^3.1.0", + "postcss-syntax": "^0.36.2", + "postcss-value-parser": "^3.3.1", + "resolve-from": "^5.0.0", + "signal-exit": "^3.0.2", + "slash": "^3.0.0", + "specificity": "^0.4.1", + "string-width": "^4.1.0", + "strip-ansi": "^5.2.0", + "style-search": "^0.1.0", + "sugarss": "^2.0.0", + "svg-tags": "^1.0.0", + "table": "^5.2.3" + }, + "dependencies": { + "clone-regexp": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-2.2.0.tgz", + "integrity": "sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==", + "dev": true, + "requires": { + "is-regexp": "^2.0.0" + } + }, + "execall": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz", + "integrity": "sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==", + "dev": true, + "requires": { + "clone-regexp": "^2.1.0" + } + }, + "html-tags": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.0.0.tgz", + "integrity": "sha512-xiXEBjihaNI+VZ2mKEoI5ZPxqUsevTKM+aeeJ/W4KAg2deGE35minmCJMn51BvwJZmiHaeAxrb2LAS0yZJxuuA==", + "dev": true + }, + "is-regexp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-2.1.0.tgz", + "integrity": "sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==", + "dev": true + } + } + }, + "stylelint-config-primer": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-primer/-/stylelint-config-primer-8.0.0.tgz", + "integrity": "sha512-PRhlYe/6x1H9Lbfr/j/RFGT3vnUGmpvTATl01TVsy43tEAZVELzQRfSdgg18WuegJo3LSRkgM8rxbz0eX3Ucdw==", + "dev": true, + "requires": { + "stylelint-no-unsupported-browser-features": "^1.0.0", + "stylelint-order": "^2.0.0", + "stylelint-scss": "^3.10.0" + } + }, + "stylelint-no-unsupported-browser-features": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stylelint-no-unsupported-browser-features/-/stylelint-no-unsupported-browser-features-1.0.1.tgz", + "integrity": "sha512-6uaoXV/WA5BLKo9bbjERFE3oAOA0UY4FgGDaQWarV9x3qrDLS2o2SJqk0TaxwAIAgROwj9RhbQ2FF1QKRzZBNw==", + "dev": true, + "requires": { + "doiuse": "^4.0.0", + "lodash": "^4.17.4", + "postcss": "^6.0.1", + "stylelint": ">=5.0.0" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "stylelint-order": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-2.2.1.tgz", + "integrity": "sha512-019KBV9j8qp1MfBjJuotse6MgaZqGVtXMc91GU9MsS9Feb+jYUvUU3Z8XiClqPdqJZQ0ryXQJGg3U3PcEjXwfg==", + "dev": true, + "requires": { + "lodash": "^4.17.10", + "postcss": "^7.0.2", + "postcss-sorting": "^4.1.0" + } + }, + "stylelint-scss": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-3.10.1.tgz", + "integrity": "sha512-YnzYmcLd5DGGsjfoj44gArjo3TWhMWjS/ytfu+1HKtToZae5ditZOXHBmrgitsHvNk9mzp5WO3/PjA5IO1GpUw==", + "dev": true, + "requires": { + "lodash": "^4.17.15", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", + "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "postcss-value-parser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz", + "integrity": "sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==", + "dev": true + } + } + }, + "stylelint-selector-no-utility": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/stylelint-selector-no-utility/-/stylelint-selector-no-utility-4.0.0.tgz", + "integrity": "sha512-C3o1nTwTiRldiLwnN7H99GUJU3xjHGFY1SKc5d87Gljxr1I5EfD7V0/I6UNU/hxd5wWJg5o0XiqFEor+Rbwf1Q==", + "dev": true, + "requires": { + "stylelint": "^7.13.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "autoprefixer": { + "version": "6.7.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", + "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", + "dev": true, + "requires": { + "browserslist": "^1.7.6", + "caniuse-db": "^1.0.30000634", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^5.2.16", + "postcss-value-parser": "^3.2.3" + } + }, + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true, + "requires": { + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" + } + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + } + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "cosmiconfig": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", + "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", + "dev": true, + "requires": { + "is-directory": "^0.3.1", + "js-yaml": "^3.4.3", + "minimist": "^1.2.0", + "object-assign": "^4.1.0", + "os-homedir": "^1.0.1", + "parse-json": "^2.2.0", + "require-from-string": "^1.1.0" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "doiuse": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/doiuse/-/doiuse-2.6.0.tgz", + "integrity": "sha1-GJLRC2Gpo1at2/K2FJM+gfi7ODQ=", + "dev": true, + "requires": { + "browserslist": "^1.1.1", + "caniuse-db": "^1.0.30000187", + "css-rule-stream": "^1.1.0", + "duplexer2": "0.0.2", + "jsonfilter": "^1.1.2", + "ldjson-stream": "^1.2.1", + "lodash": "^4.0.0", + "multimatch": "^2.0.0", + "postcss": "^5.0.8", + "source-map": "^0.4.2", + "through2": "^0.6.3", + "yargs": "^3.5.4" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "requires": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "flat-cache": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", + "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", + "dev": true, + "requires": { + "circular-json": "^0.3.1", + "graceful-fs": "^4.1.2", + "rimraf": "~2.6.2", + "write": "^0.2.1" + } + }, + "get-stdin": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", + "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=", + "dev": true + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "known-css-properties": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.2.0.tgz", + "integrity": "sha512-UTCzU28rRI9wkb8qSGoZa9pgWvxr4LjP2MEhi9XHb/1XMOJy0uTnIxaxzj8My/PORG+kQG6VzAcGvRw66eIOfA==", + "dev": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "requires": { + "chalk": "^1.0.0" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "requires": { + "lcid": "^1.0.0" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + } + } + }, + "postcss-less": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-0.14.0.tgz", + "integrity": "sha1-xjGwicbM5CK5oQ86lY0r7dOBkyQ=", + "dev": true, + "requires": { + "postcss": "^5.0.21" + } + }, + "postcss-reporter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-3.0.0.tgz", + "integrity": "sha1-CeoPN6RExWk4eGBuCbAY6+/3z48=", + "dev": true, + "requires": { + "chalk": "^1.0.0", + "lodash": "^4.1.0", + "log-symbols": "^1.0.2", + "postcss": "^5.0.0" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "postcss-scss": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-0.4.1.tgz", + "integrity": "sha1-rXcbgfD3L19IRdCKpg+TVXZT1Uw=", + "dev": true, + "requires": { + "postcss": "^5.2.13" + } + }, + "postcss-selector-parser": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", + "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", + "dev": true, + "requires": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + } + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "specificity": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.3.2.tgz", + "integrity": "sha512-Nc/QN/A425Qog7j9aHmwOrlwX2e7pNI47ciwxwy4jOlvbbMHkNNJchit+FX+UjF3IAdiaaV5BKeWuDUnws6G1A==", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + }, + "dependencies": { + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + } + } + }, + "stylelint": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-7.13.0.tgz", + "integrity": "sha1-ER+Xttpy53XICADWu29fhpmXeF0=", + "dev": true, + "requires": { + "autoprefixer": "^6.0.0", + "balanced-match": "^0.4.0", + "chalk": "^2.0.1", + "colorguard": "^1.2.0", + "cosmiconfig": "^2.1.1", + "debug": "^2.6.0", + "doiuse": "^2.4.1", + "execall": "^1.0.0", + "file-entry-cache": "^2.0.0", + "get-stdin": "^5.0.0", + "globby": "^6.0.0", + "globjoin": "^0.1.4", + "html-tags": "^2.0.0", + "ignore": "^3.2.0", + "imurmurhash": "^0.1.4", + "known-css-properties": "^0.2.0", + "lodash": "^4.17.4", + "log-symbols": "^1.0.2", + "mathml-tag-names": "^2.0.0", + "meow": "^3.3.0", + "micromatch": "^2.3.11", + "normalize-selector": "^0.2.0", + "pify": "^2.3.0", + "postcss": "^5.0.20", + "postcss-less": "^0.14.0", + "postcss-media-query-parser": "^0.2.0", + "postcss-reporter": "^3.0.0", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-scss": "^0.4.0", + "postcss-selector-parser": "^2.1.1", + "postcss-value-parser": "^3.1.1", + "resolve-from": "^3.0.0", + "specificity": "^0.3.0", + "string-width": "^2.0.0", + "style-search": "^0.1.0", + "stylehacks": "^2.3.2", + "sugarss": "^0.2.0", + "svg-tags": "^1.0.0", + "table": "^4.0.1" + } + }, + "sugarss": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-0.2.0.tgz", + "integrity": "sha1-rDQjdWMyfG/4l7ZHQr9q7BkK054=", + "dev": true, + "requires": { + "postcss": "^5.2.4" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + }, + "table": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.3.tgz", + "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==", + "dev": true, + "requires": { + "ajv": "^6.0.1", + "ajv-keywords": "^3.0.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", + "slice-ansi": "1.0.0", + "string-width": "^2.1.1" + } + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, + "requires": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yargs": { + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", + "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", + "dev": true, + "requires": { + "camelcase": "^2.0.1", + "cliui": "^3.0.3", + "decamelize": "^1.1.1", + "os-locale": "^1.4.0", + "string-width": "^1.0.1", + "window-size": "^0.1.4", + "y18n": "^3.2.0" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + } + } + }, + "sugarss": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-2.0.0.tgz", + "integrity": "sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ==", + "dev": true, + "requires": { + "postcss": "^7.0.2" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", + "dev": true + }, + "synesthesia": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/synesthesia/-/synesthesia-1.0.1.tgz", + "integrity": "sha1-XvlepUjA1cbm+btLDQcx3/hkp3c=", + "dev": true, + "requires": { + "css-color-names": "0.0.3" + } + }, + "table": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.0.tgz", + "integrity": "sha512-nHFDrxmbrkU7JAFKqKbDJXfzrX2UBsWmrieXFTGxiI5e4ncg3VqsZeI4EzNmX0ncp4XNGVeoxIWJXfCIXwrsvw==", + "dev": true, + "requires": { + "ajv": "^6.9.1", + "lodash": "^4.17.11", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "trim": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", + "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=", + "dev": true + }, + "trim-newlines": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", + "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "trim-trailing-lines": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.2.tgz", + "integrity": "sha512-MUjYItdrqqj2zpcHFTkMa9WAv4JHTI6gnRQGPFLrt5L9a6tRMiDnIqYl8JBvu2d2Tc3lWJKQwlGCp0K8AvCM+Q==", + "dev": true + }, + "trough": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.4.tgz", + "integrity": "sha512-tdzBRDGWcI1OpPVmChbdSKhvSVurznZ8X36AYURAcl+0o2ldlCY2XPzyXNNxwJwwyIU+rIglTCG4kxtNKBQH7Q==", + "dev": true + }, + "unherit": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.2.tgz", + "integrity": "sha512-W3tMnpaMG7ZY6xe/moK04U9fBhi6wEiCYHUW5Mop/wQHf12+79EQGwxYejNdhEz2mkqkBlGwm7pxmgBKMVUj0w==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "xtend": "^4.0.1" + } + }, + "unified": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-7.1.0.tgz", + "integrity": "sha512-lbk82UOIGuCEsZhPj8rNAkXSDXd6p0QLzIuSsCdxrqnqU56St4eyOB+AlXsVgVeRmetPTYydIuvFfpDIed8mqw==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "@types/vfile": "^3.0.0", + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^1.1.0", + "trough": "^1.0.0", + "vfile": "^3.0.0", + "x-is-string": "^0.1.0" + } + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" + } + } + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "unist-util-find-all-after": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-1.0.4.tgz", + "integrity": "sha512-CaxvMjTd+yF93BKLJvZnEfqdM7fgEACsIpQqz8vIj9CJnUb9VpyymFS3tg6TCtgrF7vfCJBF5jbT2Ox9CBRYRQ==", + "dev": true, + "requires": { + "unist-util-is": "^3.0.0" + } + }, + "unist-util-is": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", + "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==", + "dev": true + }, + "unist-util-remove-position": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.3.tgz", + "integrity": "sha512-CtszTlOjP2sBGYc2zcKA/CvNdTdEs3ozbiJ63IPBxh8iZg42SCCb8m04f8z2+V1aSk5a7BxbZKEdoDjadmBkWA==", + "dev": true, + "requires": { + "unist-util-visit": "^1.1.0" + } + }, + "unist-util-stringify-position": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz", + "integrity": "sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==", + "dev": true + }, + "unist-util-visit": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", + "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", + "dev": true, + "requires": { + "unist-util-visit-parents": "^2.0.0" + } + }, + "unist-util-visit-parents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", + "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", + "dev": true, + "requires": { + "unist-util-is": "^3.0.0" + } + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-3.0.1.tgz", + "integrity": "sha512-y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ==", + "dev": true, + "requires": { + "is-buffer": "^2.0.0", + "replace-ext": "1.0.0", + "unist-util-stringify-position": "^1.0.0", + "vfile-message": "^1.0.0" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", + "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==", + "dev": true + } + } + }, + "vfile-location": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.5.tgz", + "integrity": "sha512-Pa1ey0OzYBkLPxPZI3d9E+S4BmvfVwNAAXrrqGbwTVXWaX2p9kM1zZ+n35UtVM06shmWKH4RPRN8KI80qE3wNQ==", + "dev": true + }, + "vfile-message": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz", + "integrity": "sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==", + "dev": true, + "requires": { + "unist-util-stringify-position": "^1.1.1" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "window-size": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", + "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=", + "dev": true + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, + "write-file-stdout": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/write-file-stdout/-/write-file-stdout-0.0.2.tgz", + "integrity": "sha1-wlLXx8WxtAKJdjDjRTx7/mkNnKE=", + "dev": true + }, + "x-is-string": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz", + "integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=", + "dev": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", + "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "yargs-parser": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", + "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", + "dev": true, + "requires": { + "camelcase": "^4.1.0" + } + } + } +} diff --git a/docs/package.json b/docs/package.json new file mode 100644 index 0000000..ddf8111 --- /dev/null +++ b/docs/package.json @@ -0,0 +1,19 @@ +{ + "name": "just-the-docs", + "version": "0.2.7", + "description": "A modern Jekyll theme for documentation", + "repository": "pmarsceill/just-the-docs", + "license": "MIT", + "bugs": "https://github.com/pmarsceill/just-the-docs/issues", + "devDependencies": { + "stylelint": "^10.0.1", + "stylelint-config-primer": "^8.0.0", + "stylelint-selector-no-utility": "^4.0.0" + }, + "dependencies": { + "@primer/css": "^12.7.0" + }, + "scripts": { + "test": "stylelint '**/*.scss'" + } +} diff --git a/docs/script/build b/docs/script/build new file mode 100755 index 0000000..1198533 --- /dev/null +++ b/docs/script/build @@ -0,0 +1,8 @@ +#!/bin/sh + +echo "Packaging gem... \n" +gem build just-the-docs.gemspec + +echo "Cleaning up... \n" +git add *.gem +git commit -m 'Bump just-the-docs gem package'