From 2278843b06978e29efa91cd5523385eb5b895abd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrea=20Sz=C3=B6ll=C3=B6ssi?= Date: Fri, 5 Apr 2019 18:35:57 +0100 Subject: [PATCH] Move content across from alphagov/tdt-documentation --- docs/.ruby-version | 1 + docs/Gemfile | 14 ++ docs/LICENSE | 21 ++ docs/README.md | 72 +++++++ docs/config.rb | 18 ++ docs/config/tech-docs.yml | 42 ++++ docs/manifest.yml | 8 + docs/source/api_ref.html.md.erb | 6 + docs/source/architecture/multipage.md | 194 ++++++++++++++++++ docs/source/architecture/single_page.md | 53 +++++ docs/source/collapsible_nav.html.md.erb | 6 + .../configuration-options.html.md.erb} | 18 +- docs/source/content.html.md.erb | 6 + docs/source/content_example/content.md | 113 ++++++++++ docs/source/create_new_project.html.md.erb | 6 + docs/source/diagrams/Basic multipage.svg | 1 + docs/source/diagrams/Basic_multipage.svg | 1 + docs/source/diagrams/Nested multipage.svg | 1 + docs/source/diagrams/Nested_multipage.svg | 1 + docs/source/diagrams/Single_page.svg | 1 + docs/source/diagrams/index.md | 1 + .../frontmatter.html.md.erb} | 14 +- docs/source/functionality/api_reference.md | 37 ++++ docs/source/functionality/collapsible_nav.md | 12 ++ docs/source/functionality/search.md | 13 ++ docs/source/functionality/update_gem.md | 49 +++++ docs/source/functionality/warning.md | 25 +++ docs/source/getting_started/install_macs.md | 55 +++++ .../images}/core-layout-without-sidebar.png | Bin docs/{ => source/images}/core-layout.png | Bin docs/{ => source/images}/expired-page.png | Bin docs/source/images/last-reviewed-only.png | Bin 0 -> 87584 bytes docs/source/images/last-reviewed-only.svg | 1 + docs/{ => source/images}/layout-layout.png | Bin docs/{ => source/images}/not-expired-page.png | Bin docs/source/index.html.md.erb | 6 + docs/source/install_macs.html.md.erb | 6 + docs/source/introduction/introduction.md | 21 ++ docs/source/javascripts/application.js | 1 + .../manage_project/create_new_project.md | 22 ++ docs/source/middleman.html.md.erb | 16 ++ docs/source/multipage.html.md.erb | 6 + .../page-expiry.html.md.erb} | 28 ++- docs/source/preview/temp_version.md | 80 ++++++++ docs/source/publish/push_repo.md | 129 ++++++++++++ docs/source/publish_docs.html.md.erb | 6 + docs/source/review/review.md | 13 ++ docs/source/search.html.md.erb | 6 + docs/source/single_page.html.md.erb | 6 + docs/source/stylesheets/print.css.scss | 3 + .../source/stylesheets/screen-old-ie.css.scss | 4 + docs/source/stylesheets/screen.css.scss | 35 ++++ docs/source/support/support.md | 37 ++++ docs/source/support_info.html.md.erb | 8 + docs/source/update_gem.html.md.erb | 6 + docs/source/warning.html.md.erb | 6 + 56 files changed, 1225 insertions(+), 10 deletions(-) create mode 100644 docs/.ruby-version create mode 100644 docs/Gemfile create mode 100644 docs/LICENSE create mode 100644 docs/README.md create mode 100644 docs/config.rb create mode 100644 docs/config/tech-docs.yml create mode 100644 docs/manifest.yml create mode 100644 docs/source/api_ref.html.md.erb create mode 100644 docs/source/architecture/multipage.md create mode 100644 docs/source/architecture/single_page.md create mode 100644 docs/source/collapsible_nav.html.md.erb rename docs/{configuration.md => source/configuration-options.html.md.erb} (86%) create mode 100644 docs/source/content.html.md.erb create mode 100644 docs/source/content_example/content.md create mode 100644 docs/source/create_new_project.html.md.erb create mode 100644 docs/source/diagrams/Basic multipage.svg create mode 100644 docs/source/diagrams/Basic_multipage.svg create mode 100644 docs/source/diagrams/Nested multipage.svg create mode 100644 docs/source/diagrams/Nested_multipage.svg create mode 100644 docs/source/diagrams/Single_page.svg create mode 100644 docs/source/diagrams/index.md rename docs/{frontmatter.md => source/frontmatter.html.md.erb} (90%) create mode 100644 docs/source/functionality/api_reference.md create mode 100644 docs/source/functionality/collapsible_nav.md create mode 100644 docs/source/functionality/search.md create mode 100644 docs/source/functionality/update_gem.md create mode 100644 docs/source/functionality/warning.md create mode 100644 docs/source/getting_started/install_macs.md rename docs/{ => source/images}/core-layout-without-sidebar.png (100%) rename docs/{ => source/images}/core-layout.png (100%) rename docs/{ => source/images}/expired-page.png (100%) create mode 100644 docs/source/images/last-reviewed-only.png create mode 100644 docs/source/images/last-reviewed-only.svg rename docs/{ => source/images}/layout-layout.png (100%) rename docs/{ => source/images}/not-expired-page.png (100%) create mode 100644 docs/source/index.html.md.erb create mode 100644 docs/source/install_macs.html.md.erb create mode 100644 docs/source/introduction/introduction.md create mode 100644 docs/source/javascripts/application.js create mode 100644 docs/source/manage_project/create_new_project.md create mode 100644 docs/source/middleman.html.md.erb create mode 100644 docs/source/multipage.html.md.erb rename docs/{page-expiry.md => source/page-expiry.html.md.erb} (57%) create mode 100644 docs/source/preview/temp_version.md create mode 100644 docs/source/publish/push_repo.md create mode 100644 docs/source/publish_docs.html.md.erb create mode 100644 docs/source/review/review.md create mode 100644 docs/source/search.html.md.erb create mode 100644 docs/source/single_page.html.md.erb create mode 100644 docs/source/stylesheets/print.css.scss create mode 100644 docs/source/stylesheets/screen-old-ie.css.scss create mode 100644 docs/source/stylesheets/screen.css.scss create mode 100644 docs/source/support/support.md create mode 100644 docs/source/support_info.html.md.erb create mode 100644 docs/source/update_gem.html.md.erb create mode 100644 docs/source/warning.html.md.erb diff --git a/docs/.ruby-version b/docs/.ruby-version new file mode 100644 index 00000000..aedc15bb --- /dev/null +++ b/docs/.ruby-version @@ -0,0 +1 @@ +2.5.3 diff --git a/docs/Gemfile b/docs/Gemfile new file mode 100644 index 00000000..e956ef40 --- /dev/null +++ b/docs/Gemfile @@ -0,0 +1,14 @@ +source 'https://rubygems.org' + +# For faster file watcher updates on Windows: +gem 'wdm', '~> 0.1.0', platforms: [:mswin, :mingw] + +# Windows does not come with time zone data +gem 'tzinfo-data', platforms: [:mswin, :mingw, :jruby] + +gem 'govuk_tech_docs', '~> 1.8.0' + +gem 'therubyracer' + +gem 'middleman-gh-pages' + diff --git a/docs/LICENSE b/docs/LICENSE new file mode 100644 index 00000000..f820aa44 --- /dev/null +++ b/docs/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Crown Copyright (Government Digital Service) + +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 00000000..97f8c056 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,72 @@ +# Tech Docs Template Documentation + +[![Build Status](https://travis-ci.org/alphagov/tdt-documentation.svg?branch=master)](https://travis-ci.org/alphagov/tdt-documentation) + +This repository is used to generate the [documentation website for the Tech Docs Template][tdt-docs] and uses the template itself. + +The Tech Docs Template is a [middleman template][mmt] that +you can use to build technical documentation websites using a GOV.UK style. + +## Before you start + +To use the Tech Docs Template you need: + +- [Ruby][install-ruby] +- [Middleman][install-middleman] + +## Making changes + +To make changes to the documentation for the Tech Docs Template website, edit files in the `source` folder of this repository. + +You can add content by editing the `.html.md.erb` files. These files support content in: + +- Markdown +- HTML +- Ruby + +šŸ‘‰ You can use Markdown and HTML to [generate different content types][example-content] and [Ruby partials to manage content][partials]. + +šŸ‘‰ Learn more about [producing more complex page structures][multipage] for your website. + +## Preview your changes locally + +To preview your new website locally, navigate to your project folder and run: + +```sh +bundle exec middleman server +``` + +šŸ‘‰ See the generated website on `http://localhost:4567` in your browser. Any content changes you make to your website will be updated in real time. + +To shut down the Middleman instance running on your machine, use `ctrl+C`. + +If you make changes to the `config/tech-docs.yml` configuration file, you need to restart Middleman to see the changes. + +## Publishing changes + +Travis CI automatically publishes changes merged into the master branch of this repository. + +## Troubleshooting + +Run `bundle exec middleman build --verbose` to get detailed error messages to help with finding the problem. + +## Code of conduct + +Please refer to the `alphagov` [code of conduct](https://github.com/alphagov/code-of-conduct). + +## Licence + +Unless stated otherwise, the codebase is released under the [MIT License](LICENSE). This covers both the codebase and any sample code in the documentation. +The documentation is [Ā© Crown copyright](http://www.nationalarchives.gov.uk/information-management/re-using-public-sector-information/copyright-and-re-use/crown-copyright/) and available under the terms of the [Open Government 3.0 licence](https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/). + +[mmt]: https://middlemanapp.com/advanced/project_templates/ +[tdt-docs]: https://tdt-documentation.london.cloudapps.digital + +[config]: https://tdt-documentation.london.cloudapps.digital/configuration-options.html#configuration-options +[frontmatter]: https://tdt-documentation.london.cloudapps.digital/frontmatter.html#frontmatter +[multipage]: https://tdt-documentation.london.cloudapps.digital/multipage.html#build-a-multipage-site +[example-content]: https://tdt-documentation.london.cloudapps.digital/content.html#content-examples +[partials]: https://tdt-documentation.london.cloudapps.digital/single_page.html#add-partial-lines +[contribute]: https://github.com/alphagov/tech-docs-gem/blob/master/CONTRIBUTING.md +[install-ruby]: https://tdt-documentation.london.cloudapps.digital/install_macs.html#install-ruby +[install-middleman]: https://tdt-documentation.london.cloudapps.digital/install_macs.html#install-middleman diff --git a/docs/config.rb b/docs/config.rb new file mode 100644 index 00000000..ebdbabda --- /dev/null +++ b/docs/config.rb @@ -0,0 +1,18 @@ +require 'govuk_tech_docs' + +GovukTechDocs.configure(self, livereload: { js_host: "localhost" }) + +DOCS_LOCATION_IN_GEM = Bundler.rubygems.find_name('govuk_tech_docs').first.full_gem_path + "/docs" + +files.watch :source, path: DOCS_LOCATION_IN_GEM + +helpers do + def gem_docs(filename) + raw_markdown = File.read(DOCS_LOCATION_IN_GEM + "/#{filename}") + + # Strip the h1 header from the original markdown file + markdown = raw_markdown.lines[1..-1].join + + markdown + end +end diff --git a/docs/config/tech-docs.yml b/docs/config/tech-docs.yml new file mode 100644 index 00000000..47538099 --- /dev/null +++ b/docs/config/tech-docs.yml @@ -0,0 +1,42 @@ +# Host to use for canonical URL generation (without trailing slash) +host: https://tdt-documentation.london.cloudapps.digital/ + +# Header-related options +show_govuk_logo: true +service_name: Tech docs template +service_link: +phase: Beta + +# Links to show on right-hand-side of header +header_links: + About: https://sites.google.com/a/digital.cabinet-office.gov.uk/gds/communities-of-practice/content/technical-writing + Documentation: / + Support: / + +# Table of contents depth ā€“ how many levels to include in the table of contents. +# If your ToC is too long, reduce this number and we'll only show higher-level +# headings. +max_toc_heading_level: 2 + +# Tracking ID from Google Analytics (e.g. UA-XXXX-Y) +ga_tracking_id: UA-86101042-3 + +google_site_verification: "IJ5HOXpZrISM6la-YO_iX0rBUC5YFftpexygcKLsNs4" + +# Multi-page options +multipage_nav: true +collapsible_nav: true + +# Show links to contribute on GitHub +show_contribution_banner: true +github_repo: alphagov/tdt-documentation + +# Enable search +enable_search: true + +# Ownership for page reviews +default_owner_slack: '#docs-repos' +owner_slack_workspace: gds + +# Enable GOV.UK crown logo +show_govuk_logo: false diff --git a/docs/manifest.yml b/docs/manifest.yml new file mode 100644 index 00000000..8edbb9f1 --- /dev/null +++ b/docs/manifest.yml @@ -0,0 +1,8 @@ +--- +applications: +- name: tdt-documentation + memory: 64M + instances: 2 + buildpack: staticfile_buildpack + routes: + - route: tdt-documentation.london.cloudapps.digital diff --git a/docs/source/api_ref.html.md.erb b/docs/source/api_ref.html.md.erb new file mode 100644 index 00000000..d895c905 --- /dev/null +++ b/docs/source/api_ref.html.md.erb @@ -0,0 +1,6 @@ +--- +title: "API reference" +weight: 80 +--- + +<%= partial 'functionality/api_reference' %> diff --git a/docs/source/architecture/multipage.md b/docs/source/architecture/multipage.md new file mode 100644 index 00000000..f444acb1 --- /dev/null +++ b/docs/source/architecture/multipage.md @@ -0,0 +1,194 @@ +# Build a multipage site + +You can create a technical documentation site that splits its content across multiple pages. + +This is suitable for documentation sites that have too much content for the single page format. + +You should use the search feature [link] with multipage documentation sites. + +## Basic multipage + +You can split the content into multiple individual pages. An example is the [GOV.UK PaaS technical documentation](https://docs.cloud.service.gov.uk/). + +### Amend the tech-docs.yml file + +Add this to your projectā€™s `tech-docs.yml` file, or set it to true if it is already there: + +``` +# Enable multipage navigation in the sidebar +multipage_nav: true +``` + +### Repo folder structure + +A typical single page documentation repo has this folder structure: + +

+![](/diagrams/Single_page.svg) +

+ +A basic multipage documentation repo can have this structure: + +

+![](/diagrams/Basic_multipage.svg) +

+ +You must amend the documentation repo folder structure to reflect this structure. + +### Create multiple .html.md.erb files + +Basic multipage requires multiple `.html.md.erb` files in the tech docs repo __source__ folder. + +Each `.html.md.erb` file relates to one separate page within the tech docs, and references the markdown files in the associated folder. + +Additionally, the tech doc repo must have at least one `.html.md.erb` file in the __source__ folder named `index.html.md.erb`. + +The .html.md.erb files must not have the same name as the folders that the .html.md.erb files use partials refer to. + +For example, you cannot have a support.html.md.erb file that contains the partial `<%= partial 'support/contact_us' %>`. + +### Amend the multiple .html.md.erb files + +1. Add a weight argument and value to the title of each .html.md.erb file. This builds the structure of the multipage documentation. + + For example: + + ```bash + --- + title: "Product Technical Documentation" + --- + ``` + + becomes + + ```bash + --- + title: "Product Technical Documentation" + weight: 10 + --- + ``` + + Higher weights mean that the content is lower down in the documentation hierarchy. An easy way to remember this is to think ā€œheavier pages sink to the bottomā€. + + For example, a single `.html.md.erb` file becomes multiple `.html.md.erb` files: + +
 
+ + |Single page|Multipage| + |:---|:---| + |---
weight: 10
title: "Product Technical Documentation"
---

<%= partial 'documentation/index' %>|---
weight: 10
title: "Product Technical Documentation"
---

<%= partial 'documentation/index' %>| + ||---
weight: 10
title: "Product Technical Documentation"
---

<%= partial 'documentation/index' %>| + ||---
weight: 20
title: "Product Technical Documentation"
---

<%= partial 'documentation/start' %>| + ||---
weight: 30
title: "Product Technical Documentation"
---

<%= partial 'documentation/users' %>| + +
 
+ +### Add H1 heading if required + +Add an H1 heading to either the `.html.md.erb` file or at the start of the first markdown file for each individual content page. + +If there is an H1 heading in both, you will see two H1s when the documentation site builds and renders in your internet browser. + +## Nested multipage + +You can split the content into multiple individual pages, and can have pages "nested" within one another. Two examples: + +- [GOV.UK PaaS technical documentation - Deploying services](https://docs.cloud.service.gov.uk/deploying_services/) +- [GOV.UK Pay technical documentation - Switching to live](https://docs.payments.service.gov.uk/switching_to_live/#switching-to-live) + +### Amend the tech-docs.yml file + +Add this to your projectā€™s `tech-docs.yml` file, or set it to true if it is already there: + +``` +# Enable multipage navigation in the sidebar +multipage_nav: true +``` + +### Repo folder structure + +A typical single page documentation repo has this folder structure: + +

+![](/diagrams/Single_page.svg) +

+ +A nested multipage documentation repo can have this structure: + +

+![](/diagrams/Nested_multipage.svg) +

+ +You must amend the documentation repo folder structure to reflect this structure. + +### Create multiple .html.md.erb files + +Basic multipage requires multiple `.html.md.erb` files in the tech docs repo __source__ folder. + +Each `.html.md.erb` file relates to one separate page within the tech docs, and references the markdown files in the associated folder. + +Additionally, the tech doc repo must have at least one `.html.md.erb` file in the __source__ folder named `index.html.md.erb`. + +### Amend the multiple .html.md.erb files + +1. Add a weight argument and value to the title of each .html.md.erb file. This builds the structure of the multipage documentation. + + For example: + + ```bash + --- + title: "Product Technical Documentation" + --- + ``` + + becomes + + ```bash + --- + title: "Product Technical Documentation" + weight: 10 + --- + ``` + + Higher weights mean that the content is lower down in the documentation hierarchy. An easy way to remember this is to think ā€œheavier pages sink to the bottomā€. + + For example, a single `.html.md.erb` file becomes multiple `.html.md.erb` files: + +
 
+ + |Single page|Multipage| + |:---|:---| + |---
weight: 10
title: "Product Technical Documentation"
---

<%= partial 'documentation/index' %>|---
weight: 10
title: "Product Technical Documentation"
---

<%= partial 'documentation/index' %>| + ||---
weight: 10
title: "Product Technical Documentation"
---

<%= partial 'documentation/index' %>| + ||---
weight: 20
title: "Product Technical Documentation"
---

<%= partial 'documentation/start' %>| + ||---
weight: 30
title: "Product Technical Documentation"
---

<%= partial 'documentation/users' %>| + +
 
+ +### Add H1 heading if required + +Add an H1 heading to either the `.html.md.erb` file or at the start of the first markdown file for each individual content page. + +If there is an H1 heading in both, you will see two H1s when the documentation site builds and renders in your internet browser. + +### Create folder for nested content .html.md.erb files + +Refer to the GOV.UK PaaS technical documentation repo [nested content folder](https://github.com/alphagov/paas-tech-docs/tree/master/source/deploying_services) as an example. + +1. Create a folder within the __source__ folder. This is where the `.html.md.erb` files for your nested content must live. + +1. Create an `index.html.md.erb` file within the nested content folder. This will be the "wrapper" for the nested content. It can refer to another content file through partials or have the content in itself. + + Note that each `.html.md.erb` must have a weight value that preserves the overall hierarchy both within the nested content and compared to the other non-nested content. + +1. Create sub-folders for each nested page under the "wrapper". + +1. Create an `index.html.md.erb` file within each sub-folder. Each `.html.md.erb` file can refer to another content file through partials or have the content in itself. + + Note that each `.html.md.erb` file must have a weight value that preserves the overall hierarchy both within the nested content and compared to the other non-nested content. + +### Add H1 heading if required + +Add an H1 heading to either the `.html.md.erb` file or at the start of the first markdown file for each individual content page. + +If there is an H1 heading in both, you will see two H1s when the documentation site builds and renders in your internet browser. diff --git a/docs/source/architecture/single_page.md b/docs/source/architecture/single_page.md new file mode 100644 index 00000000..5c9e725d --- /dev/null +++ b/docs/source/architecture/single_page.md @@ -0,0 +1,53 @@ +# Build a single page site + +You can create a technical documentation site that contains all of its content in a single page. + +This is suitable for documentation sites that have do not have a lot of content, and do not need to have topics split into individual pages. + +## Organise content files + +1. [Create](create_new_project.html#create-a-new-project) the content files for your documentation site. + +1. Amend [link] your content files to ready them for your documentation site. + +1. Save your content files inside your documentation repo in your desired hierarchy. + +## Build your documentation site's structure + +1. Go to the __source__ folder in your documentation repo. + +1. Select the `index.html.md.erb` file. + +1. Amend the `index.html.md.erb` file. + + You can either [add a `<%= partial` line](single_page.html#add-partial-lines) that references each content file that makes up your overall documentation site, or add the content into the `index.html.md.erb` file directly. + + The .html.md.erb files must not have the same name as the folders that the .html.md.erb files use partials refer to. + + For example, you cannot have a support.html.md.erb file that contains the partial `<%= partial 'support/contact_us' %>`. + +### Add partial lines + +In this example, you have three content files: + +- an introduction named `index.md` in the `documentation` folder +- a "Who is this documentation for?" section named `who-docs.md` in the `documentation/introduction` folder +- a "Set up the API client" section named `set_up_client` in the `documentation/introduction` folder + +The `index.html.md.erb` file would look like this: + +```bash +--- +title: "GOV.UK Technical Documentation" +--- + +<%= partial 'documentation/index' %> +<%= partial 'documentation/introduction/who_docs' %> +<%= partial 'documentation/introduction/set_up_client' %> +``` + +This `index.html.md.erb` will build a documentation site with the following structure: + +- Introducution +- Who is this documentation for? +- Set up the client diff --git a/docs/source/collapsible_nav.html.md.erb b/docs/source/collapsible_nav.html.md.erb new file mode 100644 index 00000000..4e648f1a --- /dev/null +++ b/docs/source/collapsible_nav.html.md.erb @@ -0,0 +1,6 @@ +--- +title: "Collapsible navigation" +weight: 70 +--- + +<%= partial 'functionality/collapsible_nav' %> diff --git a/docs/configuration.md b/docs/source/configuration-options.html.md.erb similarity index 86% rename from docs/configuration.md rename to docs/source/configuration-options.html.md.erb index dd9acfa6..6f9a8cd9 100644 --- a/docs/configuration.md +++ b/docs/source/configuration-options.html.md.erb @@ -1,4 +1,8 @@ -# Configuration +--- +title: "Global configuration options" +--- + +# Global configuration options You can configure the site using `config/tech-docs.yml`. [See the PaaS tech docs for an example](https://github.com/alphagov/paas-tech-docs/blob/master/config/tech-docs.yml). @@ -192,4 +196,14 @@ api_path: ./source/pets.yml These attributes are used to specify the owner of a page. See the separate [documentation for page expiry][expiry] for more details. -[expiry]: https://alphagov.github.io/tech-docs-manual/#page-expiry-and-review-notices +## `show_expiry` + +Decides whether or not to show a red banner when the page needs to be reviewed. + +If not present or set to `true`, the red banner will appear when the page needs to be reviewed. This is the default behaviour. + +If set to `false`, the red banner will not appear when the page needs to be reviewed. + +See the separate [documentation for page expiry][expiry] for more details. + +[expiry]: https://tdt-documentation.london.cloudapps.digital/page-expiry.html#page-expiry-and-review diff --git a/docs/source/content.html.md.erb b/docs/source/content.html.md.erb new file mode 100644 index 00000000..b2ff1b5a --- /dev/null +++ b/docs/source/content.html.md.erb @@ -0,0 +1,6 @@ +--- +title: "Content examples" +weight: 51 +--- + +<%= partial 'content_example/content' %> diff --git a/docs/source/content_example/content.md b/docs/source/content_example/content.md new file mode 100644 index 00000000..32e6ba11 --- /dev/null +++ b/docs/source/content_example/content.md @@ -0,0 +1,113 @@ +# Content examples + +This page provides examples of different content types. + +## Headings + +```bash +# H1 +## H2 +### H3 +#### H4 +##### H5 +###### H6 +``` + +## Ordered list + +```bash +1. list item 1 +1. list item 2 +1. list item 3 +... +1. list item N +``` + +## Unordered list + +```bash +- list item 1 +- list item 2 +- list item 3 +... +- list item N +``` + +## Tables + +You can create tables using either markdown or HTML. + +Use markdown when there are no specific formatting requirements. + +Use HTML when there are specific formatting requirements, for example to ensure that text in cells do not wrap. + +### Create table using markdown + +Use markdown when there are no specific formatting requirements. + +This example is a left-aligned table. + +You should include `
 
` before and after each table. + +```bash +
 
+``` +```bash +|Column header|Column header| +|:---|:---| +|content|content| +|content|content| +``` +```bash +
 
+``` + +You can change the alignment of the text: + +- Centre: `|:---:|` +- Right: `|---:|` + +Add more columns and rows as needed. + +### Create table using HTML + +You should create tables using HTML when there are specific formatting requirements. + +The following code is an example of a 2 column 2 row table with no text wrapping. + +```bash +
+ + + + + + + + + +
Header 1Header 2
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin et enim quis arcu pharetra aliquet. Maecenas posuere tellus arcu, a suscipit dui posuere eu. Nunc vestibulum ligula sit amet eros euismod accumsan. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin et enim quis arcu pharetra aliquet. Maecenas posuere tellus arcu, a suscipit dui posuere eu. Nunc vestibulum ligula sit amet eros euismod accumsan.
+
+``` + +## Links + +```bash +[LINK TEXT](LINK ADDRESS) +``` + +For example: + +```bash +[The Google home page](http://www.google.co.uk) +``` + +You can write the link in HTML with a `target="blank"` element to make the link open in a new internet browser tab by default: + +```bash +LINK TEXT +``` + +## Images + +`!``[]``(LOCATION_OF_IMAGE)` diff --git a/docs/source/create_new_project.html.md.erb b/docs/source/create_new_project.html.md.erb new file mode 100644 index 00000000..8263329a --- /dev/null +++ b/docs/source/create_new_project.html.md.erb @@ -0,0 +1,6 @@ +--- +title: "Create a new project" +weight: 30 +--- + +<%= partial 'manage_project/create_new_project' %> diff --git a/docs/source/diagrams/Basic multipage.svg b/docs/source/diagrams/Basic multipage.svg new file mode 100644 index 00000000..078ddfc2 --- /dev/null +++ b/docs/source/diagrams/Basic multipage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/source/diagrams/Basic_multipage.svg b/docs/source/diagrams/Basic_multipage.svg new file mode 100644 index 00000000..078ddfc2 --- /dev/null +++ b/docs/source/diagrams/Basic_multipage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/source/diagrams/Nested multipage.svg b/docs/source/diagrams/Nested multipage.svg new file mode 100644 index 00000000..f6b366dc --- /dev/null +++ b/docs/source/diagrams/Nested multipage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/source/diagrams/Nested_multipage.svg b/docs/source/diagrams/Nested_multipage.svg new file mode 100644 index 00000000..f6b366dc --- /dev/null +++ b/docs/source/diagrams/Nested_multipage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/source/diagrams/Single_page.svg b/docs/source/diagrams/Single_page.svg new file mode 100644 index 00000000..bb76caf0 --- /dev/null +++ b/docs/source/diagrams/Single_page.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/source/diagrams/index.md b/docs/source/diagrams/index.md new file mode 100644 index 00000000..3c006c64 --- /dev/null +++ b/docs/source/diagrams/index.md @@ -0,0 +1 @@ +This folder is for diagrams. diff --git a/docs/frontmatter.md b/docs/source/frontmatter.html.md.erb similarity index 90% rename from docs/frontmatter.md rename to docs/source/frontmatter.html.md.erb index c5bf2c51..2b708c07 100644 --- a/docs/frontmatter.md +++ b/docs/source/frontmatter.html.md.erb @@ -1,3 +1,9 @@ +--- +title: "Frontmatter" +--- + +# Frontmatter + # Available frontmatter "Frontmatter" allows page-specific variables to be included at the top of a template using YAML. For a general introduction on frontmatter, see the [Middleman frontmatter docs][mm]. @@ -7,7 +13,7 @@ These attributes determine the date when the page needs to be reviewed next. See the separate [documentation for page expiry][expiry] for more details. -[expiry]: https://alphagov.github.io/tech-docs-manual/#page-expiry-and-review-notices +[expiry]: https://tdt-documentation.london.cloudapps.digital/page-expiry.html#page-expiry-and-review Example: @@ -45,7 +51,7 @@ layout: layout Will generate a page with the headings from the content in the sidebar. -![](layout-layout.png) +![](images/layout-layout.png) ### `core` layout @@ -63,7 +69,7 @@ layout: core This page has a configurable sidebar that is independent of the content. ``` -![](core-layout.png) +![](images/core-layout.png) If you do not specify a sidebar, you will get a simple one-column layout without one. @@ -75,7 +81,7 @@ layout: core This page does not have a sidebar. ``` -![](core-layout-without-sidebar.png) +![](images/core-layout-without-sidebar.png) ## `old_paths` diff --git a/docs/source/functionality/api_reference.md b/docs/source/functionality/api_reference.md new file mode 100644 index 00000000..6bc29022 --- /dev/null +++ b/docs/source/functionality/api_reference.md @@ -0,0 +1,37 @@ +# Enable API reference + +This feature extracts endpoint information from an Open API v3 yaml file that describes an API. + +## Amend the tech-docs.yml file + +Add the following to your tech-docs.yml file: + +``` +api_path: path/to/file.yaml +``` + +This can be a relative path to a file in your tech docs repo folder, for example: + +``` +api_path: ./source/pets.yaml +``` + +This can also be a URL to a file hosted elsewhere, for example: + +``` +api_path: https://raw.githubusercontent.com/OAI/OpenAPI-Specification/master/examples/v3.0/petstore.yaml +``` + +## Amend the content file + +Add the following line to the content file that you want to output the API information to: + +``` +api> +``` + +You can specify individual endpoints to be outputted rather than all API information, for example:: + +``` +api> /pets +``` diff --git a/docs/source/functionality/collapsible_nav.md b/docs/source/functionality/collapsible_nav.md new file mode 100644 index 00000000..331ec81c --- /dev/null +++ b/docs/source/functionality/collapsible_nav.md @@ -0,0 +1,12 @@ +# Enable collapsible navigation + +This enables the left hand navigation to expand and collapse. + +## Amend the tech-docs.yml file + +Add the following to your project's `tech-docs.yml` file, or set it to true if it is already there: + +``` +# Enable collapsible navigation in the sidebar +collapsible_nav: true +``` diff --git a/docs/source/functionality/search.md b/docs/source/functionality/search.md new file mode 100644 index 00000000..ec45abc2 --- /dev/null +++ b/docs/source/functionality/search.md @@ -0,0 +1,13 @@ +# Enable search + +The search function is especially useful for multipage documentation. + +## Amend the tech-docs.yml file + +Add the following to your projectā€™s `tech-docs.yml` file, or set it to true if it is already there: + +``` +# Enable search +enable_search: true +``` + diff --git a/docs/source/functionality/update_gem.md b/docs/source/functionality/update_gem.md new file mode 100644 index 00000000..46739ca7 --- /dev/null +++ b/docs/source/functionality/update_gem.md @@ -0,0 +1,49 @@ +# Update docs to use latest tech-docs-gem + +## Clone the remote documentation repo + +1. Open your internet browser and go to your remote documentation repo on GitHub. + +1. Select the __Clone or download__ button. + +1. Select either __Use HTTPS__ or __Use SSH__. + +1. Select the copy button. + +1. In the command line, clone the remote repo to a local directory: + + ``` + git clone [repo address] + ``` + +## Update the ruby gems in the documentation repo + +1. Update all ruby gems in the cloned local documentation repo: + + ``` + bundle update + ``` + + This updates all the ruby gems that your repo uses, including the `tech-docs-gem`. + + You should get the message `Bundle updated!` once the update is finished. + +1. Add all changes to the next commit: + + ``` + git add . + ``` + +1. Commit the changes: + + ``` + git commit -m "[commit message]" + ``` + where `COMMIT_MESSAGE` is the description of the commit. + +1. Push the new branch to the remote documentation repo on GitHub: + + ``` + git push -u origin [BRANCH NAME] + ``` +1. Review, approve and merge the changes in line with your service team processes. diff --git a/docs/source/functionality/warning.md b/docs/source/functionality/warning.md new file mode 100644 index 00000000..23699a1e --- /dev/null +++ b/docs/source/functionality/warning.md @@ -0,0 +1,25 @@ +# Insert a warning + +Use the warning text component when you need to warn users about something important, such as legal consequences of an action, or lack of action, that they might take. + +This warning text format is taken from the [GOV.UK Design System warning text](https://design-system.service.gov.uk/components/warning-text/). + +Insert the following HTML code into your content file: + +```bash + + +
+ + +Warning +

INSERT-WARNING-TEXT-HERE

+
+``` + +If you have multiple warnings in one content file, you only need to insert the `` text once. + +You can then insert the `
...
` once for each separate warning. + diff --git a/docs/source/getting_started/install_macs.md b/docs/source/getting_started/install_macs.md new file mode 100644 index 00000000..a5dcfc02 --- /dev/null +++ b/docs/source/getting_started/install_macs.md @@ -0,0 +1,55 @@ +# Prerequisites for Macs + +You must have the following set up on your mac laptop: + +- administrator rights on your laptop +- [Xcode](https://developer.apple.com/xcode/) command line interface tools +- [Ruby](https://www.ruby-lang.org/en/) +- [Middleman](https://middlemanapp.com/) static site generator + +## Administrator rights on your laptop + +Email [sd-community@digital.cabinet-office.gov.uk](mailto:sd-community@digital.cabinet-office.gov.uk) to request administrator rights on your laptop. + +You must be a Government Digital Service employee to do this. + +## Install Xcode command line interface tools + +These instructions assume that you are the Managed Software Centre on your Mac. + +1. Go to the Managed Software Centre on your Mac. +1. Select Updates. +1. Install all required updates. +1. Search for xcode in the search field in Updates. +1. Install Xcode x.x.x or update if necessary. + +OR + +1. Go to [Apple Developer Downloads](https://developer.apple.com/download/more). +1. Search for "xcode". +1. Select the appropriate __Command Line Tools (macOS x.x) for Xcode x.x__ and download the file. +1. Install the file. + +## Install Ruby + +[Ruby](https://www.ruby-lang.org/en/) is installed globally. This means that you can run the install command from any location on your local machine rather than from within a specific folder. + +You can install Ruby in multiple ways, for example using [Ruby Version Manager](https://rvm.io/) (RVM) or [rbenv](https://github.com/rbenv/rbenv). These instructions assume you are using RVM. + +1. Run the following in the command line interface to install the ruby version manager: + + ``` + `\curl -sSL https://get.rvm.io | bash -s stable --ruby` + ``` + +1. Run `rvm install ruby-x.x.x` to install the latest version of [Ruby](https://www.ruby-lang.org/en/). The current x.x.x is `2.6.1`. + +## Install Middleman + +[Middleman](https://middlemanapp.com/) is installed globally. This means that you can run the install command from any location on your local machine rather than from within a specific folder. + +Run the following in the command line interface to install Middleman: + +``` +gem install middleman +``` diff --git a/docs/core-layout-without-sidebar.png b/docs/source/images/core-layout-without-sidebar.png similarity index 100% rename from docs/core-layout-without-sidebar.png rename to docs/source/images/core-layout-without-sidebar.png diff --git a/docs/core-layout.png b/docs/source/images/core-layout.png similarity index 100% rename from docs/core-layout.png rename to docs/source/images/core-layout.png diff --git a/docs/expired-page.png b/docs/source/images/expired-page.png similarity index 100% rename from docs/expired-page.png rename to docs/source/images/expired-page.png diff --git a/docs/source/images/last-reviewed-only.png b/docs/source/images/last-reviewed-only.png new file mode 100644 index 0000000000000000000000000000000000000000..a31a0f5a1b890f7b580ba0175d530d027f67d8b7 GIT binary patch literal 87584 zcmc$_Wl$Z@*EN~|L4v!J;10pv-QAsoyGyX(?gw{wIk>yqfdqGl;O=ty{pGp!e7(2c zdaLF`&rDCx^z`1{Yp=aJTv1*E@hjffPoF*^N=b?;fBFO|{pk~gKP>de70Un}hEJb< zeUcItQuSCq>HOlNI{f_p{_N}b^X=O_$C-50=GmFz>RKeGWjvO9voN(?ZzMJ{(jc7t zcQP_!aqs$!xszuBcl702FAniq@PTI*OXyuD8IQZ!*_!8CnrHU=r2uTe_y3y*N$h*R zaPU`58r4$8ypKXsO|Cba)6GWZi-P(a_WxY|r{LXtC2;++8!7e2OX%sNf`R&*fco2@ zbXo^V?*D26th(+6dqDmkoAjPYDffO$P8R-r;phL~es0r}C}h8F93&ULkLgHltHqF{Oj;G%{Lj2_+fv);^)Vp^mN{V46NOjUK9NHU6cV03hC_1#a-LMXSxdM_oREF zRhZ>E<>a>iHXc?Z3mgM&1Dn5``}xJFeY_!(qSvI|}=?D-5V(Ve0mquOjtin~OFy$QC_ z(BdVu`7}nnSxfb=-w7Y&OevU^pzRy-oCf7LaU9ii6h}8c zil#CM1urkoC!oZ&P`$&h5P|B?bZNAWtJBg@_B~9ykcr`GilnW*6NK2!pNDLo^izCt zzmz5FMF0IFgJ>#TBh?ZT26il_oZ5k|Xp!>ehu98_-*Fdr^k6XgcRiK#Yi4pZyJ}H< zMz|n|&u?nQQDs2X(Jf`$?{1xALkqjo;F6UB}kyOKDK?OM+WF-D#KEd*D7Obymzg@Uo zQqVTO|0G-G`^A;@Vo2FYuu~PE|+_isM!vYB??g_A3pKVv*F}U0U;@b?Zk_{>%LTaS7?2 zZ3IP%jiEj~W?!WQ&fbzWGttBDWM@?FLJ5PulXP~J%h~3rRrI}fdx@ZV!F*BgK$ES# z)(xh*HkMtI?8{SKm^ELn5RI>hZ-50^seifHhual_Nu_1^>Jm_&oNYNJgUxcte=TyM zoN5FK-D46e|1K2W8Bl24w9q&3M_~rj9KIckSll$+#yqe~c{w3jLofWQsKPP5inY(f znPO`*T3)9tcIJEs#ZjUD*V<)(hO;C)w@gvi7_b^%Tx7;KW2_Zu^zQo@n6e@^w1T6u#k<3;Md*pywKcP0WStzaK%O#LP@B)e#AR zaVIrtZmfe}X_gnFHRo4C6WU(=n&^&w^V|+He^*-d%((wzK%m5om#b0{mz3szbK_EI zP8CI0atYpv$ zePlz95g}`0;&3}@@;-S~F)#dHh8T|v5*l8n&A8P|hDa-Z+gYZCmu9oBQAp4Q>N&>{ zY1?(AR;S&n6!+bDK7lO5M2Vfn7POl4fb%?l_ z6pCeZgv$x0r_1%YSeXib(rXB>$*5R z?C256E=T;x0aeT!Z?vAF3h}g%heJuxtEk7)L(Y!z*_Z1jF6~lgG*oocrKTCj^SC@S z<^m-WQl_t9`_S!?n2lN&;`U;#dXUH8nnlM=47;Gtft5lRDz=b54GToP(%)6yMAj*? za#Nw60aw2KZNG93pyZR{qd2yVT5il?*(e zGejx|rw4waT>yZ?$6M}svCe<1*<=a~UjD`+55$X@h011+V&)UU#5>yyfUvx*xi}oM zBv@=qp0j5+o6PRdw(mB&kH2nt<%Dn?O;fZ)9MlXx*wscf6{ktq-XOW+vfine0GVGy zS8CP4Ixpd*bD5(iSFeTXNla}o2bzZ&f(sie(K=uOot5T0tgm{!Bt+|dtpaXa%}J3z zyv}SUv^vm^MPj!5)+obdC5>K7nb%6}H$=5oNtNt3i1o_o``F&DJ?)7$2KNB%Aj?VR zi3~pYdb7#F-$~u1yNhBf?VWPcfP3g>FaN?1*oRhRuL6v?ATLzY>udRBozIGuH~5G~ zr3j=kmbIWU&dwYjlFCw?lYlar)rowpbg<;GL$OUnA#Zm7?wHB0=(6IM+1BOKu|RF6JIuqMe=MI==-LuHuO zYhhE&Mb#W`Kh{a#lEjRpq>7M6!nv3nbH03x&=)VA`lsc-PH)|v zrVwUe_uWgt{Ac;vB)wsiU2% zW)e|ksK%Yq%;Hoj;UP5sI)7sSdI15R3x4e0Gvl_S?pNS)ezk0^mvUC{ZpsO6of}Qt ze9b2fowL=g&>a;z_g@-GO*kOKZwwoqL3;2Zx$2e?%43Kp*?$l**9ezdCN@H*N@r4T zR|bFRa@Ao8+*U>ka_D69C-*OPb9dp_!?rW<3n3)lKtOKdv|?t-7E*woub!A}(m9Aa zwP%HXr8u9l_)~(3?qw6Weij%fcBR&xQB`+Kvr7F`>Qay5!lU}LzIm1=m&#wuMf2#e zKn?QPAJK(WDtV68d>$sMd^Y`#m*VQ5wbZ${Zo}%!cL|ZU^z%4pxD!Pxdf-$ggULtH zTGhxew0(oVW)xbUUv0)|ll8@S8(N=izq6Fs;3F3Kh(gLt^2vTJ&Z85W(+e$>-<`m# zJs6qL)#uQYn&h17LUwBCiMb?CMNpZN{O!Ym3Y&OOMqxi|yx4KgZXQ@|0-ca`Am~LJ zA$H24!}tp-TJ%IPLl6h84vbY`wY}G&r!1!Um^q#XhAZ!epQBP?rp;*}z`PefJVM7( zF-iS4AKV%Jn}oC41H)|Tcr@NMF+MMmlh*D?PSV^Zb}mJFbA-{+h86G#Sjn$zUY%7J zCbqT~O3U}@0?MITyY@D`y2tgvF>ZubtZ%-Z^-`IWGFhXeX7s3ug@Vwh%M;K|5(0)J z1x?_auTFp1jT?kb(GhAfA2p76IDZ>fj}fgGtVYTguFk@5CXpoYQS2NivuVA7I0q)9 z3j^Hf&ImF?l6{d-GT!<83A%2d0HeXpio4B@>_)O}ehBdGYQG2-fD-Y}Vhw;R2LU#N zo}dXz&gLfMfRiE=?~7|R4|U5hq`=Tz$6V)LTiVTKbqI-W=tCZ7WIOR9l9gqnf}0(D8hk&?gQxlIyR4$Y-R|bsseLVE)1O z%7Al~0-?a01q~2D{2Qyuj;g+)!Tw!=ilV0~EW$6!MC!aHFef{XzuIs%X@3OOo<)+R zhsRgzVRvykgW*+n+QT;4Q;L9zPMWTaTD;-&P9ePKl?Kw-kE#9x-J^vmuLr5ykPF%1 zzOg7XAB-KgpYk(5P?!&5k&|ZF7ZYFIkhs9c36Wu72#kGeXULmCeUlqDHV7*BSaJP| zT4X>cO098}O_&yV=kF9IqiulC0kpp-eG5~>+7ax8hGUEc7>lF`Q&0uNB@)6_?}jVom}z+@A~^?`4vP-Iv`N|Xk zuJfr3Pf*H<7Ntm}6=xL_gnN?x?kL_mUr_rp%R)w7Rps%|)D{*hkz%Zw_-S!e^b2f9 z5fyCEOW&1JK5L)?aO~yUQ|t^tysO`shH^e&pwwD-Lu}d7=*RGL{^nOzLm?QdnlMwb z75$!sI3PSY>3OzPWdAtw!N=HK)v?(W+?5}za@N|rF!Uu{Iffm6Mx$x#fXH?0STg`b z>MGKx{|9vXm2&x~w$^`U8nS%VfIf=um_08;m6ow9IXy=)YKg#`k)2fSmApfP4sU}9 zW)0x^56C>JL2ob3Rm`Fehi!Cg9-%ALTgU0FJP6Fxa7PWeguuL>FY^3YWy z38`{|8PUW34qxbgi(-D4CV#EGsu}{EM@A*&fSHf-!dk=E{w#l=o>FFx(8Z1?^v1vI z@2h8ww_^wok?rVcgWKS62#p?j(U0%x6sMFGxFWf~ztIY7>qwHSpxiaC&%q2c`nHI+ zQPb+*Ov6GqQphy+|<=~Zw^ODhR&%Es)o9tt%33ZFk{GiQ~w@jZh$Hl?!!p7 z4&OV$FPk9kT~m8GW>U7F>$&JfnZDKx%?LdF_XX*va`pHlYi;zMPF>oy93IM zFgGU{M|4$Iv%1i~W)bmt)Rt`QhzDA)yH(exiVh)wRE+M{5Wx9I6MKP^11e5>rJ|)S{YO_l#dx%wcYDySH3+IIFA7py3nk8 zm=5n(#rash_E6dr+lOHX+%(E^_q1>T<8S(@dz{|}o7+!$rF&+8R%w%+$S26;?XeYE zlfm^qf6LQNYx5;>VIBciqBe*;ko35-vls@s-FSke6{L=r*W%KO5Ji%vfhAhlrfwA^ zMewRb-58yM7IlQO|DZ6?DObiftY93vAi0EIA;)n=(bnkv2+n?^j!I`9JNt~GHu1W~ zE(HW9c)dmI$j-ZFqc-^Kq!fOU7sLipInU)@kv|(^Ed#UYctF{DYH6Sel+_X5YpRsL zt8K2ITOGkSo`17d5M z%c4(hQyacMx?^)LnC3Vh!u?j=-_9SXCzW9;1Tliy|8%^W?95FqVOA3nIk>wA7i19_ z$LIE#!*)~c38K3r;#0bdo4UV&NE4R&XC~p-O_vrgZ~a3n&}~e-Plun@yU^McR)X=B zaHo~KU;@7Xi_RgDHVtB4e1^(1?q@%oH~;i>Zxb1k1i5KMx&Ka>N5G)wH!x^Z-+VQQ zM$QL3w*zR2@MOc$CzA1eoBh@X3scQ2zPr*K7Va4g!!fnllb*wr4&x(*7AMnL); z{ln^=)+CvXS{5WK723d&@}rx0<0u6M?Ld%~5QG4uSwa?B_5Lju%ld zwR{NEg19v-g5mr+M2o9U#%a@m8k}6+Y#la5af{sjlQq2Mv-Xih1tmtk$$E=^S9HQ6 z;H`&sL`~je9lKgcRE3T44yDcmn$?4Rc}y8#YO3VP=B@_nTt(ThUYZDVs)Z-J!kG%T54J(i3LOjR$5GtX4TAc8*;nk=>FuawK=3?HJvGJwGM#Yj zS6=)1w1#Kalh{G?0$CwgIx1P<;;xq2IrRIO>vY|?U=$t?D*AAY;Q7>~65j|6!>Sct zj-+I#Vl!AbGmKTI@%aPi{m4RYaCY&ppvtbD+!w|i@kiU-QNY^9ta zo@es{b8-m^I9^7VRKb<@WU;}vs_C+KoT!WobYGkqWI~-;;o2Hn8`F7kiw}(wbJnfP zm7rmxxW$4G?9j^()ExwXRm!sxFP*{uhjHd`%4grE_hJLlauzt}9J|L;MX-8-@O}pVB4@|vOjGY}%8)D_naZDL zSY1t;`Gw-kD{F_xG)$6<#MPwQA4W<{d)#8$8lLnA=ubWJ1PEp)6V-` z11T;#VxTE1YE!wYZgZR<&45CdB- zKoq(&i581RCA|u@1m_u$iDMJwf8+i-f_3Y^(ToxyMO!NoWuv+ z&_VZV#bQ2D>14dzT{vsB+&Yr#xZyAX6%B$5O-V-fj#wd5G46af+3%G4rk0PCCSStQ z68Z7LG!_Cs$>n)HB3+W8wN>;P=ex!*MD;d8zr5lR_h=10@2}=bd&werS}bSZQHzDc zOKu-xMlI8O8P47mX*OGbi^*)W_}W@E?R=ky`qYxKIGptd^uR;%fw&6R9vV5Xc~Pb1 zy7>Pb$76cIgkm8Jk_u$=qkHA{_B?VD#Ur`OSAVz2XEYu!OfEjv!bMyF~d^AF;Z%hM3NEaE(RvP=oYyqCnbdP&Cr zGB4pUlwRPbIv&{=u1170x&)a^PO|H${T|%Dn&QHluc8c@(v2l;?u(DRmz~DH%7$C* zu8f`wzpu5Q`ZRmn)a<=Q3M)FC!@gssi}luO1Gz2iXAaKz&N&j49IwJ>od?d;YavQA z{yJV|4iE(Io%}Z2ydA7c{awV~ar&qsN-s7FdwMJYG8Sb4?&0z{owptGxMNp~k%>Is zzh*y2O@_e^7JpDFe}>nMPk`|cd3@H_GBf)LQvbGg)m$nNBliLxjx*g?yw0T~#TcxJ zMfg;0aPqy3&YALObVeM0UTmcgdiW!7v0~v~iu4d0ZR`^~fm8UgXSdZ4JW)*yrkj&E z;bWYNNKo=$96p}z9cBLcr#tBGqKpgTxqnB?#}ksQ-(ni{M3Xo1_Rx9tGYk6f`8r67 zAR`qcm6sJ}ER_cqR|}OL?OG~^er%o~h<|r`(&&~z0SuK_=V7$ehMN9m4~=xkJAQTW-In-=nU0W7$;`( zJm?dQ^Qf`066niNaK|RDfw;-=#_+f6Wzt0{t4puqFiT#Y6ewoo*)x80iEP?jP?L@N zFDf`fh-vR#Jlz`KxH&~xaJM&Owra*J3C7NE2Z~93cNAP&USo0< zq0%R->zX}!PYdhzqrhzp>#9Rf)Oqfew^}!^jQ%;<`!+m!;{5nT2U9*Gvv{Rq{lKH$ z)M?$hp6W$LfJ=cp`<=!Gor3i`Bx}H_Xok22(O1(83H7l6X&)b-Yng17rvn!9=x4t= z-2)x1G)YSNArpYou50fYaE6;_Y}-tz!lMyfQMH#=z%1X$WZ3(eSBfQ;VPxoMav#uJ zt!PrN!-~%~6$vhdW3vQlZ<7i;O|KayJyt*PPYuguv;6_t*7Cm8p>8j#)Ah6VZpcp& z?41izican>ri>Vv=ly>gF9csNl#1rRalDY=EN3Jf#^x;`^;c#bx)7tVj7AsKDb2 zW*^z=lL5>)XlLzC!lnZycmmD#o%|zps`T^^kTuq6Y1R)mS8wv)Gb!2Xy`o6AcVEJe zo#6UZAnzAM1qzq9S{1svM!S|DYms!rY|&+;Jp2CQim<&=BotpozgC4lxcsw3^kp37 z<}UuqE*f>IE#E3dYVqN~w&TYf2cgzdjzfinKj6E<#O&(WCSPXu1{xCcwNyM}Vtbe7 za~~a?-RFF=+IxxDEuBl*(GBGEpis^i8PY#ik*#s<8rGpp*b&syPZ+#>?F1hN1*Vbg zJjxyJtB_R1tmQVJ7>KOEpYBfBW9RaBR%>|v3!DE?Jyf6pilC6eS5juV7iUY+Sz|;JSo==r~Qp$JL$`=F-!60UEbrNcJItK zUNDi|504q#4ke2?fJdZEdvSiz;DN)+>`SUkbzf`g1cW+DOHxh6;-xc;ei^lo5?Y?k zvC;z@>)6qF&V7YQN|Wr6d+$_SdSrMHrd%lFV3`Ik)t&do2s!+`aMgtHQRiAJOD((Z z37HvS1QSuBYQT{~dg=VV>x%ep@-#BtF8Mxpx|x2cru)~3?6HoOYt8$>)p@H$LNX%^ zov76HR|za+5lH)S5J1BR1&aVyL|F(xNl9exOBk8#kAww~*xkVV(_|oFlN{2t@sX+f zSbbGlmC%;ka{vB@Jti){)sp0Y=JWQLLXb?OLVTrCVitTnBT{dwJK(B)=2r~FVdjx| zn70V#2OI!i{p(w_ z*l7w6dl%J9C7SsrI~vG=>|MJ8e*JkK(KXZ&$+%eMGv%m_}*&FH0zu5F{2jR z^G^>iJmv{9=4Ubnv0qdCjdmps`yfuI+-)+o-~7UkrHeFS}A|N9rG6|36YNX2fBxcMTU#3 z4$uY(bjI>%Ol?|>U{$8E;+$5b1XqcwwonZQ8^1oVU(_Eed|pkD89GX=Nj=1H5IUk< z3)VDVSiA(CLx(V4!RO?Z4exs0|fxG+H*fx4)^e=S0RE$MI0~q9E zz4bKd_ZdNK&x~7+st~^g%xJ}!uBraA7(3W%c|9z`!bj~7h&7B=)$kE?Rus(jlxcch zFlRg5(g#<$7Z*0C(-jVM4kbQgJ6arTPvmf;2DZ5i{#j1iI@p74jV4e|!$1okkoGO# zjz~aZP}AN@nPxq%5MBbcbi4DGFKI`}Nr{feJ;0V6G<;AB6Fd~6%3LN+_-d!c63upD*G!AvM(t?rz-djfyaSV{%M_5Qve(1)O`uArk*4=UQBmeDPOefR3GoxxnLfXN-0e7% z&kNPf*)-m5`Iof(;AICe6tx#c*q}PehE_xZ(-miOtPPZVq_d&yavOM{NoO>;K?y;= z1~(APlzwGV7ucY12e5nR=B3qZWt<$S>l=THT#8m`V81O#CBj5kn;} z18}`KOe)q=tz||Ym%wD@5N5bLyw320nHou2(p zh@G6Zp|*D zLNyrqCgVu@BFr|~!Q|(^idfw9XqOAwxQD9MKrzc=Hl?RV$$Y3ezzfI$#fnR(x=*tF zrgtJPR1)m&$n|7XILzPIdV2k%Lr?CZeMyKRQE&nd)e8$ADu85Pvkrrt&ug6?SNoeC z))k3xk*_n#)ptZ`Jt6GGU(Vffg0$~_V$?hH?6POtkLb~aAF*W}oQ5$5#`K5A>>oZj zKP(|GT$wzoJ^Ol3G`w9q3j(AupXWy?z&Rc~D3d@1>{~B@{z=alsquGtyJi+c1K9Fp z_50#zRr;ptRAT}vMYoF-H*;)$xF_iVHNKeMx5-03At8Hbwg#ZsT}fDIY=l}=$|@=a z5qp%y^j>^aAD%#Sh2<7qil9?=kr<{thy?)gthP}(ewIT!BO1&^@{N;u7|?{SX?y)4 zz>1XCM&e>-8J55Rz2K%GhMrv|E8M-0({RLS0&Js_+S>TZ>f4#7G*XzVXT0c0cdi15 zbfrKlefu;qIFphl>G?vbj!^YQ0^eDwPNMPb59-wq$Z~r%AnO)qoj26ck1f=UoZ!k? z^gnK^fc(Pe=f~`q6JFn}Ma(&G0{*KsLu%=euma5|ACYy;qRs3-pw}rL6U-KDmSnz~ zq5QO*z`=27XC>*@hR*^`jQ8O~G1$wm4RF{67@kV#aQ|j?zG4=Q8R!C?OsU}=jl7tu zy!fCTALYmb^8G%49jLu7j}}@XBCcvlOh*e#_^TU7L1=GxIxuT@t2nh#mJ(p_UhMI@xx z0Fr&C|6zPPsZg6wCZX8wsA>Op%}bS?JrF@WC$JRp+e=B>&-ZJ0OyzKWzDX#Jp5M?^ z?Tx(#a8|*=W5#eDliadMKehAPH~WJFBXq`G@iR-(PK4Y9O+Kfs+}~p8Vu zJ~V9MXyLy(sHKZ7En~38Zc~M zJjJQs$;=?de6!D@ z>_``|)ge}FR{7$S2|$WNZeuw4&e8o-Kmk7_BcokkYDhL#-st4HR7&}V(RTK;Bn_Ra z53xBgM#3D^SDbnWSH6ZQNE#_w2*KtfWAreIoHxR7$|5a>O)e)&#r`t=X$lL1^w+>T zCjVZAuV@b2@UJp_hj=(sw_Q)0v_+^hH?+tkq<8j$+B+v0#-=E?m8A}u2BvU zK$`>V8mio(k`Fc#iB|*~-+B}6EJRiUd}NnAs@0ll&dkH<^+;N3j5%Arfw6Im6E&lP zWw=!7c(~F5K|r5f#hVYr4AHB9%8!7LZAdx~Flf?~$n4W*RVHmf9j-MN1*lY4^yROY z^|=9l=A`pp(FRQ{!TVzJ@B7*ZGSMP!xn(9y{iFT*7{i;>@ZZmj>Vf)!HezV{1_J(s zGJZoBMD&Wy+G0?TZJ4#>BA?RC$q_hFhABD+Ei%xmsC*3Fi=WDWqoerV;xy4`2Nb|6;QR^xU zXwi;>BwqbcBb=bm*f`}}4~oKtH#<7GnLlVjWuWx8<7VvU#0V-6N!+ASa44WC+Znxg zFu-oZo!S~S()zA@exnY~!XFPG+&fL28M=2C?YtJOM;&+Irm2s^j3zMQl6E9#cboWIaBOh|i5FhQcoi@}A|p?Tyg#jrjThYPv#Lj1 z^%jmf9h+^WU&92ndoYYP#yXbg=KpB9Sh_1C2h8V zyG@=ajB@l#C7L!SIdweworw$9$je}ALIu;L^dMob#11!wKK3d2!6_+A zY;PCCSsd9}&$ux&Tnvs~herM)oPg>_K$JAG)=s1C`#Haj7 z6UUKOyel{|2Ebjag};dWS#VW?|;KiuJijFM6Y@}R&m$T7^H#mW8vQ-`RoZuCPtt_1fa ziE(99Ns9!5F??VZ6lZhfeMCzHKT6#5c{O+?Wxk=erB}t_NvD%V)iZxwo_Aqcaq1|- z583TMYrnl1u!YJl;-Q2S#0F)aGjJ99%)Y-5twhEws zvztzI4eNKd8aiEKAD=yWJ@a-*4)K*F`OQ}2y{dcTnjIWE2G!;xISrCaCGqa zVS=S&BkF);7h`$A;_*d1=LG`$plMTzGlNnZ+-YdV+4pttqA>1;d1o2*z$Mx2$BTsN& zL6lk1<`}5~IWH^xW4ccyG=;Hlc<-B;Btj=R7C_EFv7xSmpcw%wNc0j_!v@q#@4I3j zYanqOUPs&x7d=EaRGAJ(VXpM)GWT#C9FlX*NxjpSvw=AjD-+{EIK z(G~p+c$<+3)3~4O>Y_^WpRM5vVR%MYkb@Xr7{)8)69`W# z(7xV9+eYJG5Uk>_$u zNeEXK^;I&Cy%hkPhRS9$_Gg}u@ouo8ycv)4ibHrYs%D^kHKmS7 z_~2j*h?c??98C1hfzFqrA0QsIe<&9;OeSKaWI*avm+xq=BJdzX-@FNz6)^2EHkco& zyvjmAq=w2IzNZCcm(T2UPdh$hZL^*9a>APIau@QE-PpY-Uq`PXD(x~>GS&k=z)Bo6 z`NxVekbWK;X^A@qTt27$5TyW(X7O(nhOLo8vl}TFl5M&!VxH*mAr=fz366A%mR1r0 zSp<_DkVE%f#XRBDPz6u4;iB83dQyqzw#=-TN=$e8OV^x<-VhW5L(Yq71c5E1oicm# zIGtx?M4}yH5yEhd>M&Il_*$}8#yJMVU8bZnWIZvIs$A{e0Xl%)5FN=0#xny^;37&y zTacUpdtgoAKt33X-BhXOfN_!N3CDh&I`=IX>|{7y9(T!rwB9ftC-zg_ltc-}*ESyy(s_n$9ue%f&ERykkT57C) zS?S3f*z%!?Y8SG9sk!_9>_g!L|@YW5{(L>n7hEs(!1L$Ic*0~9~J()JT@yoj|HNx_$n z-Hl+ZU~+_<)8UrOSS6`=4f1g~M!x@voe3IT{jK+?Z0CpPUj|)R1v5ahYWRQV9eLoQ zC_4`-^1Ymp4~L~)HF6$C)0Dr(tUa`^fH$gpc1KUef;|c$df;IxEN_=1!g%`^A-dgB zxIJa0HDCD9sf)6y53<}?jLy#f9rc#aiB#NitLt=)Hg~BB%+z0Zw-3v~QnURvBQ;R%0FJD~2eF{cX` zIO$ef@Iw`{djAR_8xJ3);Vk9xXLyf$l4c~Kw&zQiB*>yN)8`fdmwGeo$=(&)ZlaJJj=E~`2O%bGl9kpo-vbqn}YTbQ9J zYu0=FDNlU;o-kt1HwJm$tE(kf#}Z#=dtx36KaRT{SPvE5R0 z{^aWi)N`l}L#D_X_3-@3kluC`T#hAZbKoycA8LGe6b-x7j?c3|-&4pxiDI+oEqJEm zZVuIe6S)EI7QA}q02^dbIVLs~nse4SV3)UydQvv6-hBh9B6(4AJV2?57nQ4_>>eOe z@-X1mK#?fv_sRL=$Ybglo-}<(rqgX-KlC zRK}n4((x4xU{5v|9AJ|}#EB=p$2E!bZ|*&ecMNEn{dwP4JV8l4-%rvBAasm&%f~$u zi=Hn!=2Otf-R8;<@fZ23&}mwiE@Bp#g_#DJxd?Q5w=}B1(x_DjeKJtsbn>Av^`Uqv z0rMW+4OG4&$Hkd;Syf0#FEY{LY9i~qy$Er%fQS>u-n32)-=$l-8PTwC3U^dKVu_1a z;n7eZ8)-aS+b`l&!7@qusa>yF#`RZOqvIYy0$2#bw#eD_E)eWyd=y)7+%2K3|lRtW{?sb-=KizfD+{|z+0zKNPHgUGMv8d;TYiUj%Fp# zHJ!$bMVHvW1J`C^X)eVQK8cY{np$kQuaZ>b6c{HmN@V*HBR5}0u!ZDLFoMhk2>bDE zneGd)wSWjC(jLF6AS-%=Na&n=zIfl7qT_^Hn>M`eDTr1e4wlv+;o937+HTM|Y)`HX z$bBb^s~as@4av|Q|GsskD2W1*w~F7`MlWcgn{DFjnm-`-n^n@+m&h7=PC`qfY)1uR@x#wnO*6;C*B<&I8u7}D6!|m-`dqa z2#2e6Dgbs^h=@8VD>LNs3x|f1Xql!MY`DsgiFWUe8X5noZS#s+tgOX{&bcN= z|Bw6jPvCaH7r0b(VCnWD&(-s7cfn7F<6buIofHrp7Clfz@dRFrZNDr>*57qFxHq;Z z9QYkisL0ZT*z`Lv#)EBHJ9bo652M5W~asi9`0GI-Qz1XAVT_A>alz zKO8fQY&-NCz!O1LxARQD~@Bp*$IB#51;^ta{Lm@Z{( zd$uyz{2Q4rO!BI2`f6LeNOoPH$b^;AF)~q;^FVDrv+aS36JvWACaXUePrvbQ%Jv5F zr~Aqgq-+hr6tr$=^&IUGOec^To6m^%@o&D#uWS)$?x#<59i4tqkx#6`aT)ZY0SPwm zMz+MDK#fzP)V5b*=4%EriIfZ$OBWHwYzrr2PIZewri^oMhqvL>SFC%a3Grb=Y{`k> z)X`cWLuUj7pD*?pkLsS45oi@DVLF(J7#_v_FD!*fzNH&pc*1srLZi*BkK|(E)}(rP z`g*G|mTO0(J$s~2vS+aG#iX^no9K~JjnqsIR-D2d^5P{&{0>wxba2jJuS7Re~*8 z$vdHP#bQlFrHhp?LlZf{Z?|K0;k#a1Xg@5kC0>QB9a*SzOni&-O}_S4Ymof4q-uJZ zB}5#1?g<|!R~@)m69yp?@CGV&&V7VUwSNJLK&+C3oxM~}6~1|h{_98%@B2uk3>6*K zg*McQ_D8NH?>6pn(d!zquF`b`8;kr;kVZ!M;)(?5r>yxb?E#_$zSPXKtQEX@&Q<9j zM>4FFt`H4sb^VZ9FO`fd2<#?#k(?pSP1A@5^@{=R??!$r;BRlf`W+R7Mcw&iAvz9X zsx=1azGq0h2UwFeYe?0;uG5~|c$pp-^RvSpY(@*!5$(Z&GF=iGHKoyP?e!b%!3ZA|f>8{+CH4l|H9bhNiDmCcRwf4aV8%#I$lA)gJ%Zx73T| zR5pOYx|K5`&AiCn+Q;%8XAZAnu(s99kxyBTS&F8b>Q&ExjXAO3(e>Q>WxCVU&c}yu z^JHXB#&T$l`1dp^`LuER8oI#lit;Vdcx8!dC-5?l!^>*Rn z`YSr>*~X}vK+0zE;Ada6ux-PU0O3lt7zqnKk%B_iz$TX3=J^&Zz7FNX{Bf+Q#)fYT z`CbKP(fzeBpX#W+!}Eoe?8ydJWBHeY%2<4YQ`_%JVa~zi_T%vrQ=b{KSGhutN;itJ zhv-*=;lb$fMe_&Ip7Y6COf5~$G};fBnb#;|TS_IAW`urUzJOP}?INd-GkAVw}9><5a<{Hy;lV`3`RA^cQMe~?g(>_Fsrd#!`22CLal-@+QM z8@uu!TsFH5tY$W~p`p$Uh3{4khk<3ZDS)>^{?dKJXWT2QrCj5CDNUlfZxtm-f)&fU zuLRELI$O`jDgE;^gzKM^6l*3wO{{uAARGUYi~kI7XAJ2D>>SwRgJ-I<2B=aWKx$C( zjL06i2DO?$n7BE(+>06BCLcbJi)Z@c1kNtPaCV(hx>#$Xc2(cig6_p$^CBI7&}I7t z|IQ!P$~bPAF0GHxVr;c$PgzWsIUC!vXYLyMNZCj8ek7+Br^a_u@Lf@${{pL*v6xws<|~>F#k`%mB#t?F53oltvY;Zh>C^L{LS3luExX z&j4cgAr{lq9js!J)#HxMoXD>Ph;@DHxjLlR-E**VD>waP5?r-MdYKr!O9B4T_*%0? zmMdqP7b#o)jNd!aEZtM`+6TcL!q?{^hLa-J2AaB5=7_3k9~;rVkYLyudS}0dUZfOo$W*yKoh$521&zNgw(ssv>zKv~x zs(wjiR`L0xg5vp1cW0{^R0asmWz^UxmUBK{X(3;B{Tsa{Fx7X&SK@fBh6eoD=IGoj z8$J}6$W!b6goALjPDG!S5-Ylt?;V-8Aj2( zqVGF`@s4&;yzfJ!$3O#qaJa0dxcwEaKHQhb9E<0$LVP3w+U%cuP?mDxcoEaXtQ2M{ zQ_0mc0?zD9SSrPoYu2p-Zr)QH_GG-HC~2%NoEPreK3y!sSZH#>ri$1LKFL_h5t|M& zoyn!u@|wqL`w-n%+jnTYv0@c4P*8K8!y&hJv2Fp+3CG9MLZZc0L%4;M>fCqc>VD2L zx>PSueuanDh{lT4rk$#9Z=L2yc!N;C5;7cVt>Hs+&qWfY+A#GkGt)=iISMq~O#;Yu zmf+09uM)HhQag4x=v>&>sM?~i?)ZXnXX(Tk*v0~E?Tu`ko~%)2t7+zth=v1_8-R=@((QLxHCPsd=1hUlRA=(PM7HdGZ(#YZvHsW;B zcHWEf>Y+B63zOsa*ndlgu90Qt@YPdo!86;Rjsts~iKM?DIu6jPuU`A>Az#Xf-D3Hz zKybuBy5k4idmy64p{>qZ8>+~1?I)v}_CsDTIOG+X&-LY3qD6KUDGOjBXj)o;i=C^` z+$dhKufWm|Xae_0f`(6NQLnHGM5lDwnHWW%IyDoAN6eGQKDlNs)V zgZ02tJsv)nMR=4zFbLv@#O?7!yOwW~mI;@ikUhf9-%^QFQV`keb82GvRP{kpF;NfQ z?OjHH}P;BvP6`7(qSS0I5j zhlQ_Gh8t+2P)eiHiTb(q9BNXh`3==P3_0FkVD-z_oG+}Hrtz9Thaj}lNMU^Ho3UJU z_s?o-APn^rt4eITwRPh-DuMNJ?Ry5}Nvgq>Ws?lG_m1`Oba_)pHZ<9gHMN7QzGQwZ z)~cxzp`7;qcZVfkyni?x4l^UJ5UipIE?+g_n_k1P!EvUleW_g;x3}@)_&sQ6@9^6y zM`cI865d(?>C|P@OI>-%U7!2j=(u9GP|l_{LAs`@TTr=dQn-Li!}Evb2%z#t@pTtk zM&QtG<*x{t)89(2Id+WSDuvLLwP%~0eA~bA;$PFXw$va@yU+U;lo{($L_1-eF9&k{RN2L>(q3%K_ZD)BPc)+Db3WQb zf^Pl&SKi2jGwN&IkLP2WSQ;Rk=QL(xPCT{rx*^Ff&H3G4#hsafGa{i7!r@JNXI>i0 z*_{|vj^Wm~J0`rM{r#UmB_-UXSJLB!>FJN=8PJB;J7()x+FRIB-o zviP<5aH`If0j-TeBJ;0X*(BnvM=(xXTVYNm>X4}jZ#LkN z)PVmt%{}E+EKb8N391RK&nJ3Bo?nmaWxvb3W{dt+OyLipX2T%;Vofhytj=BMMyQo! z&n&K_ow?#n#*^M!@?$GNAI!=S#pTQNzYW`$6RV<}q(3!F;=A^tcp;D$*0@PWTqlz` z`};(1*SpYHlk_*R3S<(Y+5BN%k3u+)!$+9=pJKOjB6>4=>?a#ME!b`55anK&$|l{r zl?Xk`bIT;xdGVrczYdS@EoVn+k~H*vU(^OasHzRx13dwas1U8f8Z1e-OGK_`#4ejl zDv-*0x#@f>;9#~qv^atOhw%LcEIhohfdQ(Y|L_l`go8rW3V@aqu@Cr?Yim!R88s=! z3NJD9@9BmJ5h|}`T7IF$R7_4_U<#Hq+omOJwmje~|4~)unY{O# z%tuQfy$XN%lE9nO?q~h1G{TgXf8X&}9h!fap!uIvl==7FuK>*ddxaawi^(ZNXGt@9 zohRRQ3a{#td|*8$ouV|jL1_h!n2Z7n_5>B3qS4(?WM%cQzw5_&K{(WpBMxo_)6e!D zw}R`JD?Ft&bAlGf_RVWYb@NmKsA1@0p{T;JqyebHz#JO1e^4~in3VsZV8udnME`1q z&87jy|AQh8_~$j!f8Ce;&%Uoc{^my`{mS$ooXP&C!qEQ+dcCIjAFP0Xw<^Z}tH=K* ztuQJ7#Xd*$pG;o|_+Lc+J&ylt?f*5l|M^_~SFQg0Q2#Z2;eTsCrEDsptqX|tTQM;C z`tH4_CvIwL&)g!)CSG3QivqEfHobY+6e>|%WbsXKMME7s8FeQ*RpRHL7B(*p4a;*X z(G1@7$;(jW6=g)nznOkNKBz_Lih04H$08`M=GmlK41I%`pzzI0Za35l=8Z2;s3-?e zcvEw`iheA}$Fd?M{A&TjrcQ0Bj!hXAe1@+@G^n`{*a}9wBQ(jT3qVWpJQ~f{xYjMb zKXR{y?70~uXJOl$5Q??0V-}3XSCo{Icgx5pZ0?X7>*}AD#qx`)QJvBxwhF-R8#gmj zeD{p6z<(;7`l|ne{R;e`9HX!&Z{c8+Z{`E$@9I0;)&u;>C)zo`FbAPMnx_a_J9mT3 zIiFvgH*|k3s@VQ*W`F%0>3t?I)eV8qK3xkKazV70k^)()3+HZ@K?*mK>pl{=`DuAS zE?b;t4sUDYO5y=H`6%3?=UK=U7-_EWF=N6===A|;&M+R_SA2Tr`hsL@Y7M;$d0|>o z%*2kc9}Y5F3A==?uyLDcm`y=zY`3Ecl3o3fv{VqPL~nkP19JRA&UxAbAH70VJ7Ea- zM=u)bj)vq~_P(v|aqj_lp~6mvD%gZsj>57M5i3WmAsJRwLuU+U{u z`U^l1zdRH*Y|1;3CLs@MWBWG=i{+$Q!1Hhpg}G_DgfR$vswNybKVls7*8_x^_tHsG z-_%8Ppx+isyrn?eRMeK{UGZ7YC@IhM_}H{$R3be|U?k$ocD@rgvD{aZ*350hb!kE? zE_h+g?pBnCzTrFd@GA4#Qb08>!ODyPN<#MO=BnUj<;xAx$}E?kkpoZaNx0IfD$8hu zUqc%n;`M3Q#0pwFoS3PpckOXvu}-hcQqPJa$t|Ls!7*`!%B0hy5JukVtmxC^Sv42V zH9_Y@H}P7`V&Q=u-jB9AJXM}^SUYFGx)ivp+%1+mUkgR_umckLZEXUJm`w{fWqW2( zYM8Fke$knt59IVFchp!2_eV5~bPwFC|nIY1!0VR=O6CNBW2ikc61tUbG26e}b z`eF8soA}qtOL!4CGx8H0i=qu+X;8}H-+Pa3?_0JSwi6g(lYQO5RnWF4}CXgf*mMiI@d?vs(lron8(SQ?tUwXW=2!wUHe@BixNwY@T{pWw%eppu>XG@%sYdE3FwM)xFu0+z%OzR_yLr_nUq# zRQOJ!p)U=W(GsStel4_#6*@`01PUBk(_%Sx$Y zVT%?OCWJ%+iR_o?=_>Q-C%f>fPx0EV$L}ophC?-Z4&aRpoWaa0IAd|1^*lKpUm2A; zGi97YXsr|Fnh)WXLCqjU7$ohGvd4K)(TXsG@~n@S;bq+LTrX66{YQMKq?=D-SMwuH zmjLH3{*jap!o#Tj9=5u7WjRwzt)jT)B;i>>BR&@}STwY>pQXG2zs9wFc3LVrNt@sq zqet(w>8jDZ6e9LZ2XW8tTkgKkf09k@cq5~3Gk_P&5T6eZj3x0ATz^5_DWlV%6P%7P z6Ef-^XREZVKu+g9EFBB$*1axDZa(5}Jv;!aC-}2WZ!I+2p>4lLP^a>SD_uh0&D`ku z87bAdjK^(hC!hssTTmJFF1RW#XT#hZ=Xm$=@Vu7UVpy|%7vz;997G9cE+GPhU#U3p zi&d$>-GaU}0X@{>C0CRN5|q;xTJC?#yZME`J;1#+MXWlK#)&j-!ra+yEUl4O>bKJo z(POz&16yo{`ZWJBmjyPzz**RF^4&-p7fH?TSXV37;djqvq;ug7ZCaT>CtNno)8YxR zSopVqqwMp(#T7x_n}e2Gu>39z;waGu9%k^!R8X+}!JJ#J=4sDWmbk%YJx1eK18AA) zH12jIG;w6y_p@nLg)u{QGo*de@7Z7?{d7!t5aI~9>vfUIKScGI7p-hz^vq$;(cd(BHu)vz{*$bH|FGCP_B7ADkG-X5q}t4?>**g=B8aDey|dfoxPC= zOjc>&R3lq+VE&3s6im4+w)~LD!Zp>m$!Lem_Jwukv_GdfO=#0OWGZRzT#p%1w-ryq z;k2uF1T_i8#&_lJGcJQO6mpZCu;`L;4yJ_@A-)9jW_~6#!>AniX-1xbNbrsSZicX= z{dGSdiANxizRq@W0gkwwv(es=k?J=)=4JGU@3OMZhvCy8ilMgUnugL9 zEDV#z7OkzDDh^yBjjQXyH}UngIZgSfpj#)rqgSH}oSHLvKKpebwqm zHO|nAQ3bzDVUkwn0|G$_=$3IE|Cl-y^kI_Mz^NRHxbG9mbXg zce^$o+kis%MGvQBnb~JmCkE@XBmc}SkMMKp54`~1uGPhN^TF7w8~^6SD`co#JkUYROibV7ZjcL?vH>r6Y`rtmV)uKU z6S6qsBVHH|??I_7N?`eKTg0?%==ml1ZOWz3?wcABnw1zyBS)Lt2GAlIY}{TDR)#IQ z$(7MNwS1V(i)x!QFf-`}{4)6BK>!zTwg1%Q@p-$b4fe**lQJZ z`>Z?>lGFCKa!|+afAkyvS~`TS_?8G)pI!bDCUJ=#V0PqCy5b4n?2H6HJpdnR0N~cW zFF3?Ug%H;dcxMtRdUmF;8PZvCit$Z)8&iZ|ewiJqWJJ@}#DjZTiFf2yKK=dj7FxX7 zure)1$7r(9(x_mF?z_x4nre)}<@x$9pHZ>vhP=5FWlW;27O{d8O?~%Ttm4&NO4suX zD>heAPx$e1@U45lXOtdBEt=ALQ2zn9PRcD&J7LA!-CFec;h_Xlp)TT<0dHSsYGQH8 z)wtW#+6MLH!Qz7wF*J^bkvVZ^Mnp`r#bGBs5ilY-Ci zu`v3)Z)Q5g!b)7%42o&wFpXy< zid$qiObHaG+T8c@a+n=qUY#)}@fShzY}0tgmhMR=M%5BpaiA+!u|+RnZZ?OX45}q1fjfz8m?y$mdJukNHK=j;z23m@JPc z1gCI2<7zvOpW)73Cvf^kJ}Y9q>~lZ(hjFNPQTh}CZ=L06g;VY6e*EvQi=$V<>2)m|!kRKz6@MUxEq{)AS1-YD=RUL{t zZ(ediBy50ho>a}Tl8SF1ND>+e%D3m0E;;N2sFAaE!z@$Z^uW3j_0Dk#x!EMu%GNZ! zy|2>aW-Sm3V&aDpnl!14j5Nh2qG*vY>vO&`w{Cd{IarH@28|O&rn#e3zri!AuCX84aGBfeBf=13ufqL zL47?wrP*7SIh_EsA3K%9bO_f|=&f^9GvSwIxx$1BRvAb9G!af+SbbnzL8A{NY=;36 zv!r~zsLS4Xp@Y&U8%$$$L#bLb@y4Vx5E|^KJAr;C)EtU-k`&Odg@z525e?6`CsNRc zE5(Ycnf|aX2#RU^*fsO(pIq*zPbdHK)?SZi&^XXsOr#DqrIzN7H)Zo?wq{~(g{oHy z8N=%Vn>>lo*UF6u|3bEM`&8iUyz!d5#2#tBTz8=Eu({FgoO>?v9?Hg>AE8-OSgks; zYJ1xGZ14_=`%<#WNQ3VIqxEs0aPO#mKdGpg|q za7~H{v#u}6hwyP=doYOy8;JQG{%N?9_ti5{F5aCRR6eNCTi54#{xtrGs;C~d!lL`r za}{A-ZZ%+9-GRiTKAigIGx&>*2Ztn_^HiYauh#_9qhLXy!7VjA#?&mQqMSN-O;YvB z!k6ge+F@wuYZS^KZA>_mL5D2W>$rt`1w$u`O?7r3AEMV_FLQ#%C_Rn~M_>mio1Ss` zA5q^OrZ%S>y~K?YZhLokp686MJPs^U^-tgwU_XbTAw+#FtVi344pG8_R}ug#fzX2@ zQ^MsWD!M!S-)9dt6`FcHQ2p6n0L&hflOWHo9`}l+G#S(_7ef2s$i8=0%<&wx4!_U8 zw_~Q9cbz#p2bAT}p6KzzUhn&#Pmdo=$P|kx+XD;|Ii!+PlRCQi zMCN|TPK!b8YCvkE4DRi(v^(3Me%8Z`G3!Xv>FZ?Do`HLXUFE}(w{og|ENXY}vJe;G zJM!`4gR*)Wo!9!-gP8(`4kVVIvF2jVsutH49@;qR%6nHJF;@7=R2 zT1nxxv?g@)Ls*7o78-!i=H?caPODm_YHGdRK+kijtft1;1+n;e?@y5pW&h9@u zitRVjzc9ArwGntljus|}O2r?tIUo=c5bGrrF-mroVXbdIg55XumHiMajBw{KjXVH` zq-sTizb%W4=@d2U5yK87KpCqmq|(wtkjI#u)#CgD{UTFZk>XvD>;WI{<@ms0dA`F_ z13R;oEXGUyh68ulbPiYs#Nw4+NibH2a#%VP;Wt)I0&sbFd*}SfkgH#HxQdC?IKvKk zM!rfgBW-MSKouXE74O8zneho)GVEV5q!vJkZd*hi4YN4c`wc8ltHgI6 z&y;t8f#m$H7G$Vs2_dZyUuW{xdarKRx^NJfy0{ohm+kJ6R*6SCS_NEQ-&>2M(xZ+v z;j>*=(SqGvGE806SA+FGa^l366`CZZLZ)`#b9L{>&|?_pWLkx)KDBq=7Gu+xm5OQR zkaEi7hs4nEa8u!_@0Ikgv3zym&q64OTjFcv3=T`fe( zinjXQI7qAF_3XKT=l2&uySXz7ml5;5v#ic@mVST!v`1uH{vwg1;)|FyoqWEkkPIfn zoz*otkn59lS_wQ~N9t0_;Kr0uj}M?hN^jha;Vr2SpkaK`51TSt_E*mjgiNuLO4~Q% zeZkxxZ_dD~W!E>K! zyyR`Oq&jH;rt1ko@OVec(_@H|Cr4PUWu@a6eGefcA;RgBiG`W_MSKFFx@J`I*tpu` zr+BCCrcII%C3gY%Erv>COK(zr98?Vt?-Fw}M59d?Qz|b)c8m|LVTy@(j|FIXLHXh; z398?#>hL13>k1j&lF2l6sqjYW*9dNt!Kp|&7!$yV)fBBAc6j^St zTzY!G*qP9Xt{FU+Z+Dj!E7CFk2#T5$;C_%G=Ol&c5_FpAa3Ow(NvJm0CXm^5S3-X3 z*o$_3Jni}%AC9);*J>r!6wVS->~VmsFUKLqqVYhx_Tt1-4%7b;zyp0>*P#@zr9G*V zh7xUr0N6Opsyy?_D zz>_bG=xX>8Z_87SUnZOm?{RD7aXJq0DnWY}R~?fU7e=H0-cyODLk7)yngHkqnK9;H@{8%$|M+^ziH4w0f7(geD%y#2U2eBliS9 zy{kj`YKwyYgmnU)M(~);Zbm~@q~qfaBB!hIE}^OWLB zpG~*L6{4g{YlpD{-dcgi<$fUJCxw;*`&KsB;>86=^g%G5tC5H%GH4hN!xbJ8`-CG2 zDlg&0zi7Nkzm_+=OrON%vH5T!t{!s9OaP+NW&uyI{4`4;Wg&gPhzAGD-r^G(*WTAa zj=kAvLTs)TAgh+!b$jB(kjnd3d3(-i+_#6j)}1{5YxF>8MSGX28C&pyR=f%H)>@P+ zu7De_S{6%y@+S(iAHti*rtt3tlpCqkesVUL7SW2vCed22*90k;4_N%uwb|p5wu)Rl zYilC0NE$tK`8x5tPoumLHn8s!U_V6hn_mH~r2_i*e)*?8qc1}+;U`4BsWRsHYT_}L~nn+1YT zENb%52WifmPG5eY=IE14TbWu|2pfkXj9Gu{sm&@ds5jMit%Fx%(DrFEWOeUv*(M2@ zns;f~eIu)^5qQnVQE79_X{o5^V^))BG^}d#g)78qITaYU>yL2w)o3LkMRBDT!Tt8Q z?}V`=yV{VL3W)&vo&a2E_QVw)>(W-2hujBt;;z#}p7u_OY8p<+E^US%P8tMd|3=oi zpiev=x;+$=($drP_cJ9(U#Y~c$sg_Q#-h{6tHr!D8SUgx5SX}@mavlHEB3CTd5hFn zWXoNPN)7{muGI>k#va|nUXN|O-|;z~E-VJiI!eSs-C&Yctk8PJ59z>MgU6fcSJBBp z+jlbddO>6Nvz@1N<1A2eogMVHdYNBXH~L8016%%xa?jhgH(%yM0p=xQUZqG;<(a{> z)7YO}FXfLGTM+oTN`!&dyi^K$KF8wch4I9e^cfbeF}BT~P<-=6pT)$mEELJX7x@ZC#GZMp6Y4F4bv7fMRemi6N&;%{`4c3{jd_U=c5h(mEVa z_lW9*(~u~Ujn-dogV=s_t3;9N4a2+d`c^wbRjDXP2`2_fzcf)`Q^T zyd~`eU?w&!{i-r|ZXFJv7|&>rNw(3pe{c016NYV(&Krgn+9Z`5l>C#}FL^GIhZuo{ zc2DXXbD|({X|g5f44JeIN&P9?C(9&C*D@py*cQeEA=5CG#Y4zTss%9i=tKCU)#;?q zT#S9AH6(cZ;)H~ISxG%Kq(y6?{SloZ{R(`21u``Yxh3L-BU09>1 ziaKaKS{;1CsfJCqH%59S1d3|>HRo-2Dl<@1aA70>a=Yh7mYgbZeG|;Q667dJCw<8G zAcH>Wvm6ZGi=c$GNa}lzapYU?v{OeoBQ9 zPWD$_Ivea{MN~f|7TBP)3rjAFa_H1f_Vg(Se=n-~kh=6*>x2{6%=j9`>B6FjS~C5qX_Ry;n>c}2&#W7(UtIz6JrTyq;%FdSxtYZQR>IA700xs$l_#XOBMigDrbn=z zP_FeK=w#RwNylNvRcl&mF?@VN;`hcz+&)T5nvz0cIj&oG$?=pTcg1=rN@J|TVk?iz zos0KgR!swkNhch1%*XsuN-7-naBsh5j;n;lPMP!D(I;Frqqa>|v|&5@hvmcGA6ZETvvUltFL4K-kgJ&M>z#Z%x*0fcRH2TRi!NEbN*yuW05dR zOQfyrJ}+X875Bs%pD_QkzBe%eewTf0^W6GX$*-lU zU9)(B@IsY{mYLltw$y{>qi5>lkOf6mrm;{hpox2um-Xj1(~?$U-u?ooa&D{xAmu}? z=z%f-n?ugZG_I{d=Vs0Nu=J?#@^jNrl--m@9s68%bM?{Yxmw7Um8I)J!VoeL-#4bF zZi8YdNqRu(qVkj&Prt|u+DWUYj$Q$G1SjRpPSdUlbMDP z2%LmPxboXvJl5d;iivHeNp}2PlP8){2H{hqzXq8N0Fn~JPm>%R%a1`MT=1ZZZ-O$) z1SFqi{#X=YQ(4CDw!+WaP0Z3ieh~&}%grBmz2JE36pjcd--8Ni>3-Hf>D7ECQi;c6 z@gB2e(5WG5_+8z+>KpwRi2MiT-B$SQ3Fd9JCK?zlxslwnBUyNnj>o6_Mzn({uv){N zUj{7~={dpgfLXwF*u}&GE#^ohL;5#L_X__$$NxN`JgD|KT~{uu6;;rBw@{TXUte0O zqQ$B~u3i7rLh2vE=zl@q|0g*2KcL(H|G@MA7?A%zY4u<6^#6OL{(l6U{|i+Auc-r= zc|sjDb+z@Mmw6LGxIuq@$uEAnm})=TGIFju^0S+;PRlur{?UT_tK*~mC7k6y6#3ui zwIBb{JEs>T>_3!eYWwH3{8`R_iTT4UY3-kr@~44b`tKR~YdZcr?GpXZDf{0v__vgx z*XPUdpZe$Y<~jeHlZ#mB--_Y>(dEC>r@#lI3mj;XD;}KCo_a9%MZBrDxY0G5J%52| zK>Kb_HfTGtLVa&DrC{bhJ%_ek2*=Or)?>n^?pb*l(BZA8RMR;@zo|G6?xUvn&Z=@z z>w*<%SOo0}(zjB+NJKXXJ~z+dlQY45zON>DDCO*|p?}`q$~E+Dmv~<(K2OjyM*z7O zI&wie8{?!NX(JBk8#q3T5>Bep0fo%ZS^+NNh357o467R_)xYSwU>f4($x z>gm}8S0(v>x9!5xFTvkv!g^8fNDJC)T1K*)f6wyx4QWk{-6gkTeZe%kYWICr7X^GO zcFcmqFisqM=~+~);PZuxZjJ{E&}(J!O(|PQK)x%c(>}D(B$(QxsXVPp6Xe6iwE(K6 z>F8H17J}is_6M963J7W%-R-`#zwVtsd-$bDGH&H9S1brU9jWGDq+5=7%<#Zu$#`!FZp!gbzN;J6j^ty{7InU|X_vBY5A0u4{de z(k2 z9^IlpsA(2-v#{g*`i$2|^o{mG;6uLPxrTc`Tvo9|j5qMP##2wRK`vM`05_Tis1^|^ z=F)!jB4n~14qWbAD4p?EeBSaTR;-Z<1Zxmm_MNs%8DN+GxBw9(Mu{}=pZ#EGy7+zk z<NXMg$+BGYOmbdy%uO9!LZ|x6m1})gGVm!?~d)tbcWsrZ>_(e*?3Vq1_{069%9gTw-dA>$P z&A=)pV(SIRVCgxbExVRihS zjeJ{n+JF@5D$E!bJHu(<&WJeKlabKm$^$Fa;PfE;Fr%`U|2^_#Q=>5f z4D{lHi@{u4}EFya^@!u(vj$W zQe?Ql9@U9Pt4^I(py}xv1p?;{!OT=B>XDuRgR&UQ&|iF7&)ldwh}7#Er3){%mU=*d zNJkA?Be61+{o_a3g&6?ncv*daCEK%NGbA*IkKwFd+T?yV5!ajVZ6Ymnqv5vysXDngmj)Jh;d&z7tAE>J^{XAgl`Y4f>3VOvHJ~kxYX!fN%n#}`ruj6#o>Me0qm5N2Rf?lC(-zOpb zDNB{5_mNMRMVkvZO^!E8f0!F;Sb+y}TGG5mofDnZD{69f|Iv~aW8e!$G&Aqn2~RBa!tRv_EsGbN=&x2%ur`S#P~q-h7HB3_O>;Qr(FOq zDDDLBjLBToOOMo=kLuGh1!g#MvQU-BE+vNyVhbVsb=n$k_GVCCLr>*Sy->f+L94ph z8ft}&UFR3w$z5y!w<$jIEQ0l&bz96)@kC9DsQZ9_)v@)*d~2@$%Z%$6vDUR+({D%D zw0sfg&CML*dT@POL|h(VZ`$vLkE5f=cVZ1j{CUl)V=WNv>!{`|Am_k*@cT+B!trgZ zj9W*V)a?1ULY5f2Q^nIad)X5JFB|LXfh%p0qTp!&3Ks7n&hD(XHX)!+=BZ??DW~G$ z$E}Ct?qG0>PSsf=cLQVZ9Uhe7Sl*jL?rn04gRGD#Y4X;#S+r>fVNrrfZUb!OI+>F@ zv$#QjV;gU68-K96f7L?}bAHyDe{s75iZr{^%0*xADz-~m+T%>7a$G+*<`VKCO9;bf zX&@~_OV|_>isc2puYx3h;_<=50E%a8!T$R)7EE79am`VRm(+SA_2AzN*8CG zDIwW72jUQyywzTai3hj{)pqV~y!R!txU>csy)HewR;E41d665|}V6Df= zU5_8$%&AZ|z}F6n@DpBf`6&Grw;bccZ~$TY{B7rM2@=UYQ+xLQhtW>MMprSTNj>G? zs=r~{+tx{fg~K;D(0mv9nxi7$3JRh}Tuutd6AH6{j3o4h$ZdSoXJyZ$QUTBP)x*xZ zYfwE7MxX>WSY1-Xzf9CH^a`3MDq!&|7!O_QQEh;g3OBu>)0iLM#Y_QbQ7ii;4xwm8 zC5e^7gu)=lfl_)9Q|N%I^CK@xKCx8eMr?$|vt}itY(Q8(xB+tRSIqOZF`m4n5jS5i zh2>mfK<*S#BlP9$Q9RG^1&fcA_%?bNQRFnglZp(%t-Yv`bSOnE%Z< zeapcRPbb6kEGF4Q<{dzsS*)H=e4H7J%ahfBSQBt`xzBhgf0oe^Iq7p^T8`aw6uPyQ2fw{#j%M~7}KTt%lgGQjU9 zF6Szh8(VA~UDOz>bAk_nlQgB#kRZ%V8}YpLo6oINvr&df^W72TGE|TY_Ggf%C?`|e z1E>*o21lioMTZM7bFitg&>~zNi?{zeVN_n@mkw;!83oM|XTQ5}s%jg&!6`u$(6IU? zy%kLmHO|vfVqXxs=)?gR>Q|>AKLJj}6N~K3({DO@#Azu%We@Bq{p$X8(be&angRAW zLJG`;o<(w8|GwVqCanIwGNK52zkeg^4^b5zQw}Zj(KKQUXMh zkjnxs!G*0Dq=E$x@UzKAqCT&6@OC#(9XznGs;6~6OIDU5ZVv~rnKOMsjZ^bOdxk%?+@>sDj4=NkLYBbq)jm8wUnwcKbUu)V~4 zc#6-nwS5#%W;7Oro9^2J@o3%3LTX8V#|_mF8a3lbrxXw;KtdN+`g>h1bx2c@5PPzEu0?GdN02748Yr{`QgirP0_zHLC~feF<}%; zuciUZgE-VFpxL5X8I83Y>CK=bza(gS`}EX4fr!37aOaU6Zd8LPKLF>cAHlZ~rOK&k z3n%aM0G4SjE@Xa0^3?xXr}jxO;z*cfzpCV`_iMeZ*UAeIZlPd!9i_``BNzR629{@W zvh>&*+kkeT+{;SYSC!>9x)0g==U=c%TrVvZ6Fbt66^U#P~`F8d304J|n} zAj6&~iuH2Ax(-xPYqmY=x`|?fH92g($qr zvO%Xjbz|q4C1>~~8^r8lFa*cU(3S*Mk%JG#-MFQDo{6I}!m``~Ln%g^T&?tgkdJWF zt42;shksc|bRL(FA)a;BbwTj-F)mVxIus%ptPIS(U< zZE`0hQl@jtim3ad^e+0zB>4Atk3ItB=q7{sdit+Aa6L@{(m*DdAL=sRJXmq?sxq?m zBVwXXq~&|}pkHA12%&uhtP)vKRSr^WKC~@Nq_fyC9`RKfe|K{x`St4_2jK34(V8Ma z%C{srceQnQhL%}3N>fkv3x}UUs($1r6O>l^fJ2+Zqso~d@RY_JA%lbcsk(;U3;_q1 zUB}x}cr+MPC5c$JoH=geUJZ?64yZn=vZK^;|%*w-JSy3*&kC z_W+dS=w828Q@|A^n$$fY^zJg68x&${<7aA9wYLk%Y1_q$JnR3;C)3`&Q2OlBZ#BfoB< zrwXZBG)NzI(RRJS#sh zm?ym*NR~A{lIp_cqoRgv9P;MIvi_ zlneP$10MWIV&CgdO?c~@>dHD|cxgMjK(Jnf2k}HwID#t?chUnOGQ4NGtR#may7GzD zgijX}(rY}9$drar@Yv0D$I8+-^Ybd`2J=`vZ)ln~rq6zTS6uiS6&y%^BvL_>1id0PYL#%89N!?Y2a5DX~ATGrjTW zO-k|n2(_*Fg@ZM~bRBRxfOx(LLvq!Nf5_h0`!x*gAglnE_i*BVV?q{gJ5TlIN##@@ z5Adl1gR~J>)kphR`yTyRxcZD0i$*QI^9iVhUN+7kHJ*8U8s$CT^06z;n}Hm$EbREs zZc6kah_g+=x4zpxutHlB;(RV)dfQf5$8foD3Z!5dz#{)MDRPj@JbG{ozNn(l*((n( zNGCMVOqjSFcLj$M1F;bk+CP_UPxIdBTQe|8$O{)zW0c*9tM6Z$>u@A!6F#3;^3!mH z;(l!>7TSb#eTu}}+NIz#GXse=n5Xe8nh%(7#8^E#6PJLJ9+3wl;Hlh%RzW3XZ=+5go&`x7L~M9t%!nM;7&;aOZM#+-m&kGM45N}(#WdpO`8Gu2yWK{9E> zoaQ+soQu?NI3)gq%d+QOVj``jmJ##w$&kpgl6R|NvCfP`!|>UTz3?_+Qp>{-&nc}Z z(s?CRJuT#Eg1PD)^(g@$bI8^nskV(xNRnvN{QRDxzwqx`C7B9 zchV@ox`e5E3+L(lYtmLyVkn~ny|}bEU7~ejxg;*6C!>90v{+2ml!D5dtA}1mD9mY1 zk*(_xzQb!jV`eQ}cNxRgA`K(435T4C5;~kqMq7noGp_BqF-Dc~f%F|leafcls}I7r z>@H`nFms7R+C9ZNfFF|piwr+7G24Gv@~wBbImOg5M2Umd{sO%1N8}bJbu=8Nq$%Q2 zx*5I&?6b8)>7E!R@_a5X#(N-!>nuuEa=8lz_2L_~b_~Dg6Q=Zy=s`52w}NK762f>t zFoKRt&@x2veSkcNg7NU8XRwfLp$SH?)V=OoxzT5C0_Armr>Kbf7JlQk9$?md#B$;; z-0$XLYfHY|7(hucb?}=vK5wK%KdZpMgjg<6f8Cnkk!fYhH4QT3^xI;qe5%BIrlWvd z`WqS&tHR0@yg^*G>+rJo@Fv5>F$@RoqWNW8j7~h-eq`#!>RDvN#OS?iD`)UTkv(&s zJX!k&57rad37dj9@*rJv7ZiU$B*pD0yKIA`pVE#EMrPihAx8#J2`c~ARYuQ)4-lsY zU3(#1q3-CZu#2x_d~Rfj>Khp⋐2N+2NzG9hx2VC203QOUd~NCw`)qcJ@!QnC{@ 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 Ddnw@m literal 0 HcmV?d00001 diff --git a/docs/source/images/last-reviewed-only.svg b/docs/source/images/last-reviewed-only.svg new file mode 100644 index 00000000..e950b27a --- /dev/null +++ b/docs/source/images/last-reviewed-only.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/layout-layout.png b/docs/source/images/layout-layout.png similarity index 100% rename from docs/layout-layout.png rename to docs/source/images/layout-layout.png diff --git a/docs/not-expired-page.png b/docs/source/images/not-expired-page.png similarity index 100% rename from docs/not-expired-page.png rename to docs/source/images/not-expired-page.png diff --git a/docs/source/index.html.md.erb b/docs/source/index.html.md.erb new file mode 100644 index 00000000..96817277 --- /dev/null +++ b/docs/source/index.html.md.erb @@ -0,0 +1,6 @@ +--- +title: "Tech Docs Template" +weight: 10 +--- + +<%= partial 'introduction/introduction' %> diff --git a/docs/source/install_macs.html.md.erb b/docs/source/install_macs.html.md.erb new file mode 100644 index 00000000..fe8d6b4c --- /dev/null +++ b/docs/source/install_macs.html.md.erb @@ -0,0 +1,6 @@ +--- +title: "Prerequisites for Macs" +weight: 20 +--- + +<%= partial 'getting_started/install_macs' %> diff --git a/docs/source/introduction/introduction.md b/docs/source/introduction/introduction.md new file mode 100644 index 00000000..247541b7 --- /dev/null +++ b/docs/source/introduction/introduction.md @@ -0,0 +1,21 @@ +# Tech Docs Template + +## What you can use this tool for + +This tool is a template for technical and developer documentation. + +It uses the [Middleman static site generator](https://middlemanapp.com/) to convert markdown files into HTML-based documentation that looks consistent with the GOV.UK and GDS style and format. + +It is suitable for multiple styles of documentation, including API documentation. + +## Why you should use this tool + +It promotes consistency on technical documentation which should reassure end users. + +It helps technical writers manage their technical content using the [ā€˜docs as codeā€™](https://gdstechnology.blog.gov.uk/2017/08/25/why-we-use-a-docs-as-code-approach-for-technical-documentation/) approach. + +This documentation is currently under construction. + +## Who should use this tool + +The Tech Docs Template is intended for internal use by the GDS and government community. diff --git a/docs/source/javascripts/application.js b/docs/source/javascripts/application.js new file mode 100644 index 00000000..8a5d80b8 --- /dev/null +++ b/docs/source/javascripts/application.js @@ -0,0 +1 @@ +//= require govuk_tech_docs diff --git a/docs/source/manage_project/create_new_project.md b/docs/source/manage_project/create_new_project.md new file mode 100644 index 00000000..687b90e0 --- /dev/null +++ b/docs/source/manage_project/create_new_project.md @@ -0,0 +1,22 @@ +# Create a new project + +1. Open the command line interface. + +1. Navigate to your documents folder. + +1. Run the following in the command line: + + ``` + middleman init PROJECT_NAME -T alphagov/tech-docs-template + ``` + where `PROJECT_NAME` is the name of your project. + +1. Answer the installation questions. + +1. Project creation is complete when you see `Bundle complete!`. + +## View your new project + +Navigate to the created documentation repo folder. + +The folder will have multiple pre-populated files. You will only need to amend the `/source` folder and the `config/tech-docs.yml` file. diff --git a/docs/source/middleman.html.md.erb b/docs/source/middleman.html.md.erb new file mode 100644 index 00000000..ea54cc63 --- /dev/null +++ b/docs/source/middleman.html.md.erb @@ -0,0 +1,16 @@ +--- +title: "Middleman options" +weight: 87 +--- + +# Middleman options + +The Tech Docs Template is built with +[Middleman](https://middlemanapp.com/), so it offers all the same +functionality. Much of this is not specific to the tool itself. + +For example, you can read Middleman's own documentation about: + +* how to set up [redirects](https://middlemanapp.com/basics/redirects/) +* the development cycle, and [how to run a local version of your site](https://middlemanapp.com/basics/development-cycle/) +* how to [build your site](https://middlemanapp.com/basics/build-and-deploy/) diff --git a/docs/source/multipage.html.md.erb b/docs/source/multipage.html.md.erb new file mode 100644 index 00000000..07e18442 --- /dev/null +++ b/docs/source/multipage.html.md.erb @@ -0,0 +1,6 @@ +--- +title: "Multipage" +weight: 50 +--- + +<%= partial 'architecture/multipage' %> diff --git a/docs/page-expiry.md b/docs/source/page-expiry.html.md.erb similarity index 57% rename from docs/page-expiry.md rename to docs/source/page-expiry.html.md.erb index 7ca857b9..eb4c660a 100644 --- a/docs/page-expiry.md +++ b/docs/source/page-expiry.html.md.erb @@ -1,21 +1,41 @@ -# Page Expiry and Review Notices +--- +title: "Page expiry and review notices" +--- + +# Page expiry and review notices It's possible to include frontmatter configuration for a page to set an -expiration date for a piece of content. +expiration date for a piece of content. The expiration date is calculated using the `last_reviewed_on` and `review_in` frontmatter configuration parameters. + +The `show_expiry` parameter in the global configuration file decides if the banners at the bottom of the page say that the page is expired or not. + +For `show_expiry: true`, the banner at the bottom turns red if it's past the expiration date. If the page doesn't need to be reviewed, we show a blue box with the last-reviewed date, when it needs review again, and the owner. -![](not-expired-page.png) +![](images/not-expired-page.png) If the page needs to be reviewed, we show a red box saying the page might not be accurate. -![](expired-page.png) +![](images/expired-page.png) + +Setting `show_expiry: false` generates a blue banner with the last reviewed date. This banner stays the same whether the page needs to be reviewed or not. The banner does not mention when the page needs to be reviewed next or who the owner is. + +![](images/last-reviewed-only.png) This feature relies on JavaScript being enabled on the user's browser to display the relevant notices. +If you want to disable the banners, but keep the review dates in the frontmatter, add the following to `source/javascripts/application.js` + +```js +// Disable page expiry banner +window.GOVUK.Modules.PageExpiry = null; +``` + +For example if you do not want any page expiry banner at the bottom of the page, but want to have the review dates in the frontmatter for Daniel the Manual Spaniel to pick up. ## Frontmatter configuration diff --git a/docs/source/preview/temp_version.md b/docs/source/preview/temp_version.md new file mode 100644 index 00000000..6d7f42b1 --- /dev/null +++ b/docs/source/preview/temp_version.md @@ -0,0 +1,80 @@ +# Push a temporary documentation site to the GOV.UK PaaS + +You can preview your documentation on a temporary documentation website on the GOV.UK PaaS. + +## Download the Autopilot plugin + +Autopilot is a Cloud Foundry plugin for zero-downtime app deployment. + +1. Go to `https://github.com/contraband/autopilot/releases` and download the latest `autopilot-darwin` file. + +1. Open your command line interface and go to the folder containing the `autopilot-darwin` file. + +1. Run `chmod +x autopilot-darwin` in the command line to make the `autopilot-darwin` file executable. + +1. Run `cf install-plugin autopilot-darwin` to install the plugin. + +## Sign in to the GOV.UK PaaS + +1. Run the following in the command line: + + ``` + cf login -a api.cloud.service.gov.uk -u @digital.cabinet-office.gov.uk + ``` + +1. [Target](https://docs.cloud.service.gov.uk/deploying_apps.html#set-a-target) the org and space by running: + + ``` + cf target -o ORG_ NAME -s SPACE_NAME + ``` + + where ORG_NAME is the name of the org, and SPACE_NAME is the name of the space. + +1. Run `cf apps` to check what apps are running in the targeted space. + +## Push the documentation site to the GOV.UK PaaS + +1. Create the following manifest file in your tech docs repo: + + ``` + applications: + - name: NAME + memory: 64M + path: ./build + buildpack: staticfile_buildpack + instances: 2 + ``` + +1. In your command line, go to the folder containing the manifest file. + +1. Run the following in the command line to push the site to a temporary site: + + ``` + cf zero-downtime-push NEW_APP_NAME_TO_BE_DEPLOYED -f MANIFEST_PATH_AND_NAME + ``` + + You can run this command from a folder that does not contain the manifest file by adding `-p YOUR_FILE_PATH`, for example: + + ``` + cf zero-downtime-push NEW_APP_NAME_TO_BE_DEPLOYED -f MANIFEST_PATH_AND_NAME -p YOUR_FILE_PATH + ``` + >Include example for cf push if not using autopilot? + +1. Run `cf apps` to check your new app appears in the targeted org and space. + +1. Check your app has deployed by going to ` NEW_APP_NAME_TO_BE_DEPLOYED.cloudapps.digital`. + +# Preview from your local machine + +You can preview your documentation from your local machine. + +Run the following from the documentation repo folder on your local machine: + +``` +bundle exec middleman server +``` + +Go to your internet browser and navigate to `http://localhost:4567/` to preview your documentation. + +You can change your content files and see the documentation update immediately. + diff --git a/docs/source/publish/push_repo.md b/docs/source/publish/push_repo.md new file mode 100644 index 00000000..6449d246 --- /dev/null +++ b/docs/source/publish/push_repo.md @@ -0,0 +1,129 @@ +# Publish your documentation + +To publish your documentation, you must: + +- push your documentation to the remote GitHub repo +- deploy your site + +## Push documentation to GitHub + +These instructions assume that you have documentation changes ready to push to GitHub. + +To push your documentation changes to GitHub for the first time, you must: + +- create local and remote GitHub repos +- commit all changes in the local repo +- link the local repo to the remote repo +- push the staged commit to the remote repo + +### Create local and remote GitHub repos + +1. [Create a remote empty repo](https://help.github.com/articles/create-a-repo/) in your organisation on GitHub. + +1. [Create a new local documentation repo](/create_new_project.html#create-a-new-project) if required. + +### Commit all changes in the local repo + +1. Go to the local repo directory in the command line. + +1. Make the created local repo into a Git repo: + + ``` + git init + ``` + +1. If applicable, add all files in the local repo and stage them for commit: + + ``` + git add . + ``` + +1. Commit the staged files: + + ``` + git commit -m "COMMIT-MESSAGE"` + ``` + + where `COMMIT-MESSAGE` is the message describing the commit. + +### Link the local repo to the remote repo + +1. Go to the remote repo in GitHub. + +1. Select the __Clone or download__ button. + +1. Select either __Use HTTPS__ or __Use SSH__. + +1. Select the copy button. + +1. In the command line, link the local repo to the remote repo: + + ``` + git remote add origin REMOTE-REPO-URL + ``` + +1. Verify the remote repo: + + ``` + git remote -v + ``` + +### Push the staged commit to the remote repo + +Push the changes in your local repo to the remote repo: + +``` +git push -u origin master +``` + +You have now created a remote documentation repo on GitHub. + +For more information, refer to [Adding an existing project to GitHub](https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/). + +## Deploy your site + +The Tech Docs Template is built on Middleman, which is a static +site generator. You can therefore deploy your site anywhere that supports +static sites. + +### Use the GOV.UK PaaS + +We recommend that government services use the [GOV.UK +PaaS](https://www.cloud.service.gov.uk/) to deploy documentation sites built +with the Tech Docs Template. This is also free of charge for +government services. + +### GitHub Pages + +With some modification, you can also deploy your site with [GitHub +Pages](https://pages.github.com/), but we do not support this. To do this, you +could for example use the [`middleman-gh-pages`] +tool](https://github.com/edgecase/middleman-gh-pages), which we do not +support. We also cannot guarantee that all features of the tool will work if +you deploy your site with GitHub Pages. + +### Add basic authentication + +There are many ways to add basic authentication to your documentation site. + +The following instructions apply if you want to deploy your documentation site on the GOV.UK PaaS or another platform using the [Cloud Foundry open source cloud application platform](https://www.cloudfoundry.org/). + +This method relies on adding a `Staticfile.auth` file to the `build` folder because building the documentation doesn't automatically add the `Staticfile.auth` file. If you added `Staticfile.auth` once and run the build command again, the file will disappear. You need to add `Staticfile.auth` again to enable basic authentication for the new build. + +1. In the command line, navigate to your local documentation repo. + +1. If required, run `bundle exec middleman build` to create a `build` folder. + +1. Create a new `Staticfile.auth` file in the `build` folder. + +1. Go to the [Htpasswd Generator](http://www.htaccesstools.com/htpasswd-generator). + +1. Complete the __Username__ and __Password__ fields, and select __Create .htpasswd file__. + +1. Copy the generated username and password hash into the `Staticfile.auth` file and save. + +1. Deploy your documentation site in line with your normal process. + +## Continuous integration + +The GOV.UK PaaS documentation explains how to set up continuous integration (CI) with [Travis and Jenkins](https://docs.cloud.service.gov.uk/using_ci.html#using-the-travis-ci-tool). We recommend this method for documentation sites built using the Tech Docs Template. diff --git a/docs/source/publish_docs.html.md.erb b/docs/source/publish_docs.html.md.erb new file mode 100644 index 00000000..19f907a5 --- /dev/null +++ b/docs/source/publish_docs.html.md.erb @@ -0,0 +1,6 @@ +--- +title: "Publish your documentation" +weight: 85 +--- + +<%= partial 'publish/push_repo' %> diff --git a/docs/source/review/review.md b/docs/source/review/review.md new file mode 100644 index 00000000..e21622ab --- /dev/null +++ b/docs/source/review/review.md @@ -0,0 +1,13 @@ +# Review your documentation + +## Governance + +The [technical documentation change governance framework](https://docs.google.com/document/d/1bP07wFS2zhUPRzOVLl36VP9V8RrfF_VdAqC28WjJE0Y) (requires permission to access) is a set of guidelines for technical writers to follow when making changes to technical documentation. + +You should follow these guidelines when changing technical documentation. It includes advice on how documentation changes should be reviewed by the documentation subject matter experts. + +## 2i review + +The 2i process is a peer review and critique of technical documentation to ensure that all documentation meets the required standards. + +Refer to the [GDS technical writing 2i training](https://drive.google.com/drive/u/0/folders/1V4TT2GGFw-JS3gVhMLUo6nw6BXxmb7jt) (requires permission to access) to ensure that your documentation meets all required standards. diff --git a/docs/source/search.html.md.erb b/docs/source/search.html.md.erb new file mode 100644 index 00000000..e0cd6ec3 --- /dev/null +++ b/docs/source/search.html.md.erb @@ -0,0 +1,6 @@ +--- +title: "Search" +weight: 60 +--- + +<%= partial 'functionality/search' %> diff --git a/docs/source/single_page.html.md.erb b/docs/source/single_page.html.md.erb new file mode 100644 index 00000000..d28a68fa --- /dev/null +++ b/docs/source/single_page.html.md.erb @@ -0,0 +1,6 @@ +--- +title: "Single Page" +weight: 40 +--- + +<%= partial 'architecture/single_page' %> diff --git a/docs/source/stylesheets/print.css.scss b/docs/source/stylesheets/print.css.scss new file mode 100644 index 00000000..82b181c0 --- /dev/null +++ b/docs/source/stylesheets/print.css.scss @@ -0,0 +1,3 @@ +$is-print: true; + +@import "govuk_tech_docs"; diff --git a/docs/source/stylesheets/screen-old-ie.css.scss b/docs/source/stylesheets/screen-old-ie.css.scss new file mode 100644 index 00000000..da90cca5 --- /dev/null +++ b/docs/source/stylesheets/screen-old-ie.css.scss @@ -0,0 +1,4 @@ +$is-ie: true; +$ie-version: 8; + +@import "govuk_tech_docs"; diff --git a/docs/source/stylesheets/screen.css.scss b/docs/source/stylesheets/screen.css.scss new file mode 100644 index 00000000..7087e4d1 --- /dev/null +++ b/docs/source/stylesheets/screen.css.scss @@ -0,0 +1,35 @@ +@import "govuk_tech_docs"; + +.visually-hidden { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} + +.notice { + background-color: $grey-4; + border-bottom: 1px solid $border-colour; + border-top: 1px solid $border-colour; + padding: 0 16px; + margin-top: 24px; + + .container { + margin-bottom: 0; + } + + p { + @include core-16; + + margin: 0; + padding: ($gutter / 2) 0; + } +} + +.technical-documentation h1:first-of-type { + margin-top: 0 !important; +} \ No newline at end of file diff --git a/docs/source/support/support.md b/docs/source/support/support.md new file mode 100644 index 00000000..9f250baa --- /dev/null +++ b/docs/source/support/support.md @@ -0,0 +1,37 @@ +# Support + +## Report issues + +Report any problems or issues by: + +- contacting the GDS technical writing community on [email](mailto:technical-writers@digital.cabinet-office.gov.uk) or [slack](https://gds.slack.com/messages/CAD579Y1X/) +- posting in the [tech docs format](https://gds.slack.com/messages/CADK8N58B/) slack channel +- opening an issue on the [tech docs template repo](https://github.com/alphagov/tech-docs-template/issues) + +## Github repos + +The repos are: + +- the [tech-docs-template](https://github.com/alphagov/tech-docs-template) +- the [tech-docs-gem](https://github.com/alphagov/tech-docs-gem) + +## Current documentation + +
 
+ +||Documentation|Github repo| +|:---|:---|:---| +|GDS Way|[https://gds-way.cloudapps.digital](https://gds-way.cloudapps.digital)|[https://github.com/alphagov/gds-way](https://github.com/alphagov/gds-way)| +|GOV.UK Content API|[https://content-api.publishing.service.gov.uk](https://content-api.publishing.service.gov.uk)|[https://github.com/alphagov/govuk-content-api-docs](https://github.com/alphagov/govuk-content-api-docs)| +|GOV.UK Developer docs|[https://docs.publishing.service.gov.uk](https://docs.publishing.service.gov.uk)|[https://github.com/alphagov/govuk-developer-docs](https://github.com/alphagov/govuk-developer-docs)| +|GOV.UK Pay|[https://docs.payments.service.gov.uk](https://docs.payments.service.gov.uk)|[https://github.com/alphagov/pay-tech-docs](https://github.com/alphagov/pay-tech-docs)| +|GOV.UK Platform as a Service|[https://docs.cloud.service.gov.uk](https://docs.cloud.service.gov.uk)|[https://github.com/alphagov/paas-tech-docs](https://github.com/alphagov/paas-tech-docs)| +|GOV.UK Registers|[https://registers-docs.cloudapps.digital](https://registers-docs.cloudapps.digital)|[https://github.com/alphagov/registers-tech-docs](https://github.com/alphagov/registers-tech-docs)| +|GOV.UK Notify|[https://www.notifications.service.gov.uk/documentation](https://www.notifications.service.gov.uk/documentation)|[Python](https://github.com/alphagov/notifications-python-client)
[Java](https://github.com/alphagov/notifications-java-client)
[Ruby](https://github.com/alphagov/notifications-ruby-client)
[Node.js](https://github.com/alphagov/notifications-node-client)
[PHP](https://github.com/alphagov/notifications-php-client)
[NET](https://github.com/alphagov/notifications-net-client)| +|Reliability Engineering|[https://reliability-engineering.cloudapps.digital](https://reliability-engineering.cloudapps.digital)|[https://github.com/alphagov/reliability-engineering](https://github.com/alphagov/reliability-engineering)| + +
 
+ +In development: + +- GOV.UK Verify - github repo TBC diff --git a/docs/source/support_info.html.md.erb b/docs/source/support_info.html.md.erb new file mode 100644 index 00000000..df2bf49a --- /dev/null +++ b/docs/source/support_info.html.md.erb @@ -0,0 +1,8 @@ +--- +title: "Support" +weight: 90 +last_reviewed_on: 2018-11-25 +review_in: 1 day +--- + +<%= partial 'support/support' %> diff --git a/docs/source/update_gem.html.md.erb b/docs/source/update_gem.html.md.erb new file mode 100644 index 00000000..aa78eea0 --- /dev/null +++ b/docs/source/update_gem.html.md.erb @@ -0,0 +1,6 @@ +--- +title: "Update ruby gems" +weight: 55 +--- + +<%= partial 'functionality/update_gem' %> diff --git a/docs/source/warning.html.md.erb b/docs/source/warning.html.md.erb new file mode 100644 index 00000000..710e01cb --- /dev/null +++ b/docs/source/warning.html.md.erb @@ -0,0 +1,6 @@ +--- +title: "Warning" +weight: 71 +--- + +<%= partial 'functionality/warning' %>