Compare commits

...

163 Commits

Author SHA1 Message Date
1604a4f453 Fixed some spelling mistakes in the various terms and conditions 2020-09-15 18:31:33 +01:00
c17eda92b5 Added more spacing
Some checks failed
continuous-integration/drone/pr Build is failing
2020-08-06 17:21:01 +01:00
0b5e27e0c1 Added footer links
Some checks failed
continuous-integration/drone/pr Build is failing
2020-08-06 17:08:52 +01:00
77d85db350 Add terms of service
Some checks failed
continuous-integration/drone/pr Build is failing
2020-07-02 13:29:14 +01:00
43a19d64c8 Added GDPR privacy notice 2020-07-02 13:29:00 +01:00
7a53515307 Added terms of service 2020-07-02 13:11:56 +01:00
c700c414ff Added website privacy policy 2020-07-02 13:11:05 +01:00
b3bed6d48e Ignore the nojekyll file too
All checks were successful
continuous-integration/drone/push Build is passing
Follows https://github.com/keybase/keybase-issues/issues/366#issuecomment-39060720.
2020-06-28 21:31:59 +02:00
3ae5a6e803 Added .nojekyll file
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-28 00:20:26 +01:00
74949d9595 Added pip3 instead of pip to CONTRIBUTING.md
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-28 00:05:11 +01:00
a5fe6f88a5 Added folder directory for well-known in _config.yml
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-27 23:57:18 +01:00
8037032778 Formatting improvement
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-27 23:41:03 +01:00
bc2e8759b2 Include .well-known
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-27 23:32:22 +01:00
a5f62f6bdc Deleted typo directory
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-27 23:19:43 +01:00
c20ca831c6 Fix spicy well-known directory typo
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-27 23:02:47 +01:00
b1217dcbcd Added Matrix well-know file
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-27 22:54:23 +01:00
e9d0088195 Migrating to swarm setup
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-24 15:20:24 +02:00
6c169e26d0 Drop the bumping, just deploy same tag
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-12 16:07:37 +02:00
b6ad82d86f Use valid name
All checks were successful
continuous-integration/drone/push Build is passing
2020-05-16 17:44:21 +02:00
f19aa81657 Fix path
Some checks failed
continuous-integration/drone/push Build is failing
2020-05-16 17:42:38 +02:00
3fded72105 Slim down compose configs
Some checks failed
continuous-integration/drone/push Build is failing
2020-05-16 17:41:19 +02:00
a5740aea02 Fix stack name 2020-05-16 17:39:58 +02:00
2a72bac756 Revert "Reset to dokku deploy for now"
This reverts commit 9f42ecaa77.

Actually, while moving to the swarm setup, we can't go back so easily.
Sooooo, reverting this and waiting for the migration to go ahead.
2020-05-16 17:39:03 +02:00
78ea06871a Rename to follow ecosystem
Some checks failed
continuous-integration/drone/push Build is failing
2020-05-16 17:32:55 +02:00
9f42ecaa77 Reset to dokku deploy for now 2020-05-16 16:57:49 +02:00
9a8bcdc66c Merge pull request 'Configure Renovate' (#30) from renovate/configure into master
All checks were successful
continuous-integration/drone/push Build is passing
2020-05-07 12:04:44 +02:00
27a36aeaaa Exclude PRs for now
All checks were successful
continuous-integration/drone/push Build is passing
2020-05-07 12:03:00 +02:00
0f2a7a6df1 Add renovate.json
Some checks failed
continuous-integration/drone/pr Build is failing
2020-05-07 10:02:12 +00:00
558b71934d Add notes on bump
All checks were successful
continuous-integration/drone/push Build is passing
2020-05-02 18:35:50 +02:00
15c9d4a153 Build the tag
All checks were successful
continuous-integration/drone/push Build is passing
2020-05-02 18:31:46 +02:00
fd54672540 Fix version
[ci skip]
2020-05-02 18:30:00 +02:00
3667ee109c Resolving dev/prod final issues
All checks were successful
continuous-integration/drone/push Build is passing
2020-05-01 13:47:02 +02:00
ff4617f318 Centralise the docker image 2020-05-01 13:41:07 +02:00
333f000fcf Build and deploy image
All checks were successful
continuous-integration/drone/push Build is passing
2020-05-01 13:39:33 +02:00
b529e2f2e8 Point to deploy docs
All checks were successful
continuous-integration/drone/push Build is passing
2020-05-01 13:31:52 +02:00
e9a1b2e369 Fix stack name 2020-05-01 13:31:28 +02:00
351251f54f Unleash the CI 2020-05-01 13:31:06 +02:00
16339ecc2e Zomg get it finally working for production 2020-05-01 13:30:54 +02:00
d6a8259e08 Use only the single URL 2020-05-01 12:52:13 +02:00
803bf41e61 Disable CI for now 2020-05-01 12:51:35 +02:00
fa6a2e120e Absolutely blowing things up on the way to docker-compose setup 2020-05-01 12:47:10 +02:00
20ed2d29b1 Fix typo 2020-05-01 12:41:54 +02:00
188b461c58 Trying to get the volume work in prod 2020-05-01 12:41:54 +02:00
b87d648a7d Use local mount and drop commands onto new lines 2020-05-01 12:41:54 +02:00
b72febc4c8 Just try watch too 2020-05-01 12:41:54 +02:00
076a6954f4 Build and trace 2020-05-01 12:41:54 +02:00
a85b656af8 Use port only 2020-05-01 12:41:54 +02:00
cc3066bb1d Fix the labels 2020-05-01 12:41:54 +02:00
886fb51ed6 Use the exposed port 2020-05-01 12:41:54 +02:00
5b7ee79c5d Move to a docker-compose setup 2020-05-01 12:41:54 +02:00
34aca195ce Merge pull request 'Added rss feed icon to footer' (#29) from rss-icon into master
All checks were successful
continuous-integration/drone/push Build is passing
One issue that I have caused, is there is a lot of inline styling going on with the footer icons. I'll need to clean that up later on but it isn't the end of the world for now. The next time we touch it though, might be worth just adding some css to handle the issues.
2020-04-30 19:47:46 +02:00
87b6978506 Added rss feed icon to footer 2020-04-30 01:39:01 +01:00
5a6986db29 Fix URL
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-25 14:03:23 +02:00
6f9bf2d4db Grammar, typos and a link to git.autonomic.zone
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-25 13:59:44 +02:00
a303c4eaec Merge pull request 'Add datpy post' (#27) from add-datpy-post into master
All checks were successful
continuous-integration/drone/push Build is passing
Looks great to me!
2020-04-25 13:51:01 +02:00
1eb1a0ef8c Add datpy post 2020-04-23 16:53:19 +02:00
68a8df1fb1 Build first before serving
[ci skip]
2020-04-23 13:48:24 +02:00
c7579b87b5 Remove unused variables
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-23 13:37:54 +02:00
9b7b8e289d Run make build only once 2020-04-23 13:37:36 +02:00
06e53cd9bc Merge pull request 'Revert "Add freenode URL"' (#26) from revert-freenode-addition into master
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-23 12:31:53 +02:00
a60aef66b0 Revert "Add freenode URL"
This reverts commit 3cbc9adc49.

See #23 (comment).
2020-04-23 12:30:12 +02:00
5ff502bc72 Merge pull request 'Add freenode URL' (#23) from add-free-node-logo into master
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-23 12:10:29 +02:00
3cbc9adc49 Add freenode URL
Closes #21.
2020-04-23 10:00:43 +02:00
55c8859f07 Merge pull request 'Add make stop and allow --incremental' (#20) from stop-and-incremental into master
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-18 19:47:14 +02:00
9f1dd6284b Add make stop and allow --incremental
[ci skip]
2020-04-18 19:45:22 +02:00
8463aa2342 Merge pull request 'Added RSS feed for blog section' (#19) from rss-feed into master
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-18 17:30:07 +02:00
6211ec5cb4 Added plugin to generate RSS feed at /feed.xml 2020-04-18 17:29:12 +02:00
a006517b8e Disable force pushing
We assume we have our builds setup right now.

[ci skip]
2020-04-18 17:28:38 +02:00
1c980536a2 Merge pull request 'Added Gitea logo to footer' (#18) from gitea-logo into master
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-18 17:27:52 +02:00
e0007eca54 Added gitea logo to the footer and added titles to all logos
The svg is a lil bit of a hack. The svg is the proper svg logo, edited
manually. The middle transparency is actually just the background of the
current footer.

THIS NEEDS TO BE CHANGED IF THE COLOUR SCHEME CHANGES
2020-04-18 17:26:47 +02:00
27c81db722 Exclude PRs once more
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-18 17:26:32 +02:00
e5faea080e Remove indentation and top-level this stanza
[ci skip]
2020-04-18 17:25:26 +02:00
8094625dbc Try include/exclude events
[ci skip]
2020-04-18 17:20:48 +02:00
8868ae08bf Try master / push combinator once again :sigh:
[ci skip]
2020-04-18 17:18:59 +02:00
7e854e1616 Try refs trigger
[ci skip]
2020-04-18 17:16:16 +02:00
99bf5a891f Match master with push for triggers
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-18 17:05:14 +02:00
7a5c2d613b Turn on force pushing
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-18 16:56:16 +02:00
3645e21236 Remove new line and run formatter
Some checks failed
continuous-integration/drone/push Build is failing
2020-04-18 16:52:07 +02:00
6623973388 Added exclusion of pull requests to drone builds
Some checks failed
continuous-integration/drone/push Build is failing
2020-04-18 15:37:16 +01:00
80af40e8ff Add a friendlier intro
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-14 15:20:31 +02:00
8ec940fac5 Move to clearer config
Some checks failed
continuous-integration/drone/push Build is failing
2020-04-14 12:44:58 +02:00
789cc39c10 Inline this link
Some checks failed
continuous-integration/drone/push Build is failing
2020-04-14 11:14:18 +02:00
2df37af10d Remove old format cruft
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-13 20:00:49 +02:00
6ebcab155e Move to v2 format
Some checks failed
continuous-integration/drone/push Build is failing
2020-04-13 19:40:29 +02:00
9105acf97c Point to git.coop URL
[ci skip]
2020-04-09 08:36:21 +02:00
af8ca3ca38 Merge pull request 'text-tweaks' (#14) from text-tweaks into master
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-08 19:12:25 +02:00
49f3d4ed71 Merge pull request 'pgp-key-update' (#15) from pgp-key-update into master
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-08 19:11:56 +02:00
850da933e8 Merge pull request 'covid-blog-post' (#13) from covid-blog-post into master
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-08 19:08:59 +02:00
07367a85a9 Touch PGP key so that commit is signed
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2020-04-08 18:01:21 +01:00
da3a3a989c Use triggers syntax
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-08 18:40:20 +02:00
dcb3ada610 Don't fuck with DNS for now
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-08 18:36:17 +02:00
489315eb60 Only build things on master 2020-04-08 18:36:07 +02:00
704a678de5 Added reference to infrastructure
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2020-04-08 17:28:33 +01:00
5a8abd8d2b Upgrade role requirements 2020-04-08 18:27:31 +02:00
9b906cff1a Re-enable DNS entry tasks 2020-04-08 18:27:24 +02:00
0afce645e0 Remove notification
Some checks failed
continuous-integration/drone/push Build is failing
2020-04-08 18:18:12 +02:00
abe8840d2a Removed bold from coop name line.
Some checks failed
continuous-integration/drone/push Build is failing
2020-04-08 16:47:54 +01:00
1c1e51f5d6 Added bold emphasis. Reorganised PGP key section. 2020-04-08 16:44:57 +01:00
7bd00564f4 Added FCA coop details 2020-04-08 16:32:44 +01:00
39d17a1e0b Added email to services section 2020-04-08 15:14:03 +01:00
deeecb22b9 Tweaker footer 2020-04-08 15:13:44 +01:00
177cc16dde Removed CC logo and repeated title 2020-04-08 15:04:23 +01:00
cf2c8639b1 Changed post description
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2020-04-08 14:56:18 +01:00
e34352df6e Updated 3rd draft 2020-04-08 14:52:44 +01:00
e9d996b061 Added image 2020-04-08 14:48:43 +01:00
1ef6084a27 Updated 2nd draft 2020-04-08 14:42:14 +01:00
05527f444a Inital blogpost draft 2020-04-08 14:22:07 +01:00
4b31a9364d Fix site URL
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-06 16:41:20 +02:00
20c1d5bf0b Disable DNS tasks for now
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-06 16:38:56 +02:00
9348b5066e Fix for new domain
Some checks failed
continuous-integration/drone/push Build is failing
2020-04-06 16:35:38 +02:00
4bef557301 Add note about envs
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-06 14:56:38 +02:00
0dc1ffadb4 Revise README with new links
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-06 14:50:25 +02:00
9cfda4aa24 Add deploy guide here too
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-06 14:34:26 +02:00
8776572f3d Rinse the contributing docs and mount the dev volume
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-06 14:31:04 +02:00
a444219ef8 Add dokku drone deploys
Some checks failed
continuous-integration/drone/push Build is failing
2020-04-06 14:17:09 +02:00
7eeb732aca JEKYLL_ENV comes in from the container
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-06 14:11:17 +02:00
cb9d863f66 Disable port binding for now
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-06 14:04:08 +02:00
dc531455ee Be verbose on the server
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-06 13:57:58 +02:00
3aac13abd7 Use the production env 2020-04-06 13:57:50 +02:00
469906c790 Fix wrong URL in wrong config (doh)
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-06 13:48:05 +02:00
06b82858f9 Use different configs for different envs
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-06 13:45:40 +02:00
3da45feb42 Try to set URL for the site
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-06 13:35:35 +02:00
6748e69a51 Add docker helpers
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-06 13:23:24 +02:00
93b3c55221 Remove TLS vars for now (again again)
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-06 13:18:00 +02:00
2b489c6025 Broaden network interface to catch outside the container 2020-04-06 13:17:50 +02:00
6323b4c2c9 Revert "Drop the host flag"
This reverts commit 8bdfe16249.

Going to need that to open up the network space outside of the
container. See https://github.com/moby/moby/issues/28121.
2020-04-06 13:16:51 +02:00
da6b4a1c02 Drop back to usual order for ports setting
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-06 13:10:45 +02:00
72b39ad07e Drop CHECKS down 2020-04-06 13:08:17 +02:00
f8e52a7381 Drop TLS stuff for now
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-06 13:07:59 +02:00
8bdfe16249 Drop the host flag 2020-04-06 13:07:42 +02:00
3873d54494 Run under bundler
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-06 13:04:30 +02:00
bcaf9601e9 Try to run with LE mounting on post-deploy
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-06 11:50:09 +02:00
b9cdae9857 Spec out a conditional TLS inclusion patch 2020-04-06 11:46:59 +02:00
caa1e521ad Experiment with full pre-deploy setup
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-06 10:58:55 +02:00
741df0045b Use the entrypoint setup to run jekyll
All checks were successful
continuous-integration/drone/push Build is passing
2020-03-31 14:37:09 +02:00
d00d763645 Update to sub-domain for testing for now
All checks were successful
continuous-integration/drone/push Build is passing
2020-03-31 13:57:28 +02:00
46732e1708 Should be working when DNS is fixed
All checks were successful
continuous-integration/drone/push Build is passing
2020-03-31 13:52:29 +02:00
d88ecbcc1a Just check root
All checks were successful
continuous-integration/drone/push Build is passing
2020-03-31 13:13:53 +02:00
eb5af2854f Add TODO 2020-03-31 13:07:00 +02:00
544cd47114 Remove git command since .git is not always there 2020-03-31 13:05:30 +02:00
476df063b4 Disable DNS task for now... 2020-03-31 13:03:23 +02:00
0e62b9e045 Add missing secret 2020-03-31 13:01:49 +02:00
9ce17b0026 Use new style 2020-03-31 13:01:44 +02:00
ff73beef10 Add expected interpreter
All checks were successful
continuous-integration/drone/push Build is passing
2020-03-30 19:34:14 +02:00
5924375117 Update deploy steps
All checks were successful
continuous-integration/drone/push Build is passing
2020-03-30 17:37:30 +02:00
a3fee0493b Add Gemfile.lock for deployments
All checks were successful
continuous-integration/drone/push Build is passing
2020-03-30 17:36:42 +02:00
a892ecf5b4 Put badge and only build for now
Some checks failed
continuous-integration/drone/push Build is failing
2020-03-30 17:35:39 +02:00
909554e58d Add drone config and envrc sample
Some checks failed
continuous-integration/drone/push Build is failing
2020-03-30 17:29:47 +02:00
50959f27ac Add dokku specific configurations 2020-03-30 17:24:33 +02:00
fee2ffd1e1 Merge pull request 'WIP Enable docker builds for the site' (#1) from docker-builds into master 2020-03-30 17:18:16 +02:00
97857a8c27 Enable docker builds for the site 2020-03-30 17:17:50 +02:00
eb38c9514a Got rid of inconsistent full stop in footer 2020-03-05 19:07:41 +00:00
39eef16f9e Merge branch 'services_change' into 'master'
Updated "Services we offer" section inline with #63

See merge request autonomic-cooperative/autonomic-cooperative.gitlab.io!24
2020-02-28 15:09:25 +00:00
04c7d20a56 Merge branch 'footer-text-reup' into 'master'
Tweaked footer text

See merge request autonomic-cooperative/autonomic-cooperative.gitlab.io!25
2020-02-28 15:09:15 +00:00
a2f5a6cbac Tweaked footer text 2020-02-26 18:22:40 +00:00
d3ea095d2b Updated services we offer to be better written 2020-02-26 16:35:17 +00:00
8cdacd0901 Added flex-wrap to footer 2020-02-24 11:13:10 +00:00
48e654008e Fixed linting errors 2020-02-24 11:12:42 +00:00
d72cc7389c Redesigned footer to be more compact 2020-02-05 20:51:34 +00:00
ef18228bee added rel=me for mastodon verification 2020-02-05 17:45:22 +00:00
13622fd105 Added svg files and mastodon link 2020-02-05 17:42:25 +00:00
ea3afbb4e1 Fixed useless code in footer and move foot-scripts to correct file. 2020-02-05 16:31:50 +00:00
13357d685a Removed blog from frontpage 2020-02-05 16:23:12 +00:00
39 changed files with 751 additions and 341 deletions

31
.drone.yml Normal file
View File

@ -0,0 +1,31 @@
---
kind: pipeline
name: deploy to swarm.autonomic.zone
steps:
- name: bundle static
image: plugins/docker
settings:
username:
from_secret: docker_reg_username
password:
from_secret: docker_reg_passwd
repo: decentral1se/autonomic.zone
tags: v2.0.0
- name: deployment
image: decentral1se/drone-stack:19.03.8
settings:
compose: docker-compose.prod.yml
host: tcp://swarm.autonomic.zone:2376
stack_name: jekyll
tlsverify: true
environment:
PLUGIN_CACERT:
from_secret: docker_cacert
PLUGIN_CERT:
from_secret: docker_cert
PLUGIN_KEY:
from_secret: docker_key
trigger:
branch:
- master

2
.envrc.sample Normal file
View File

@ -0,0 +1,2 @@
# The path to our pass credentials store
export PASSWORD_STORE_DIR=$(pwd)/../infrastructure/credentials/password-store

1
.gitignore vendored
View File

@ -3,5 +3,4 @@ dist/
.jekyll-metadata .jekyll-metadata
.jekyll-cache .jekyll-cache
.DS_Store .DS_Store
Gemfile.lock
*.gem *.gem

View File

@ -1,19 +0,0 @@
stages:
- deploy
variables:
GIT_DEPTH: 1
pages:
image: jekyll/jekyll:4
stage: deploy
script:
- jekyll build -d public
- apk add gzip --update-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing/ --allow-untrusted
- gzip -v -k -6 $(find public -name '*.js' -o -name '*.html' -o -name '*.css')
artifacts:
paths:
- public
only:
- master

View File

@ -3,12 +3,17 @@
All notable changes to this project will be documented in this file. The format All notable changes to this project will be documented in this file. The format
is based on [Keep a Changelog] and this project adheres to [Semantic Versioning]. is based on [Keep a Changelog] and this project adheres to [Semantic Versioning].
[Keep a Changelog]: http://keepachangelog.com/en/1.0.0/ [keep a changelog]: http://keepachangelog.com/en/1.0.0/
[Semantic Versioning]: http://semver.org/spec/v2.0.0.html [semantic versioning]: http://semver.org/spec/v2.0.0.html
## [2.0.0] - 2020-03-30
- Moved website deployment to [git.autonomic.zone](https://git.autonomic.zone).
## [1.0.2] - 2017-11-05 ## [1.0.2] - 2017-11-05
## Added ## Added
- [#18]: Add shared account email. - [#18]: Add shared account email.
[#18]: https://gitlab.com/autonomic-cooperative/autonomic-cooperative.gitlab.io/merge_requests/18 [#18]: https://gitlab.com/autonomic-cooperative/autonomic-cooperative.gitlab.io/merge_requests/18
@ -16,9 +21,11 @@ is based on [Keep a Changelog] and this project adheres to [Semantic Versioning]
## [1.0.1] - 2017-10-14 ## [1.0.1] - 2017-10-14
## Added ## Added
- [#17]: Added automated Gitlab CI production builds. - [#17]: Added automated Gitlab CI production builds.
[#17]: https://gitlab.com/autonomic-cooperative/autonomic-cooperative.gitlab.io/merge_requests/17 [#17]: https://gitlab.com/autonomic-cooperative/autonomic-cooperative.gitlab.io/merge_requests/17
## [1.0.0] - 2017-10-04 ## [1.0.0] - 2017-10-04
- Initial Release - Initial Release

View File

@ -1,65 +1,53 @@
# Contributing # Contributing
### Not that these instructions may be out of date. If you find any quirks that aren't described in this file, please make patches. ## What Is Jekyll
# What Is Jekyll
For those unfamiliar with how Jekyll works, check out [jekyll.rb] for all the For those unfamiliar with how Jekyll works, check out [jekyll.rb] for all the
details, or read up on the basics of [front matter], [writing posts] and details, or read up on the basics of [front matter], [writing posts] and
[creating pages]. [creating pages]. Alternatively, just dive in and start editing! After all, the
majority of this site is configuration is just flat text, so it's easy to work
with.
[jekyll.rb]: https://jekyllrb.com/ [jekyll.rb]: https://jekyllrb.com/
[front matter]: https://jekyllrb.com/docs/frontmatter/ [front matter]: https://jekyllrb.com/docs/frontmatter/
[writing posts]: https://jekyllrb.com/docs/posts/ [writing posts]: https://jekyllrb.com/docs/posts/
[creating pages]: https://jekyllrb.com/docs/pages/ [creating pages]: https://jekyllrb.com/docs/pages/
# Using RVM to Manage Ruby ## Development
In order to not blow up your computer handling a system wide Ruby installation, it is The prerequisites are [Docker](https://www.docker.com/) and [Docker-compose](https://docs.docker.com/compose/).
advised that you use [RVM](https://rvm.io/rvm/install).
Once you've got that installed and configured, get the latest version of Ruby with: If you're on Debian, installing is easy.
Install Docker.
```bash ```bash
$ rvm install 2.6.5 $ curl -fsSL https://get.docker.com -o get-docker.sh # have a look if you want
$ CHANNEL=stable sh get-docker.sh
``` ```
Select that version and then create an isolated [gemset](https://rvm.io/gemsets/basics) with: Install Docker-compose.
```bash ```bash
$ rvm use 2.6.5 $ cd autonomic.zone
$ rvm gemset create autonomic $ python3 -m venv .venv
$ rvm gemset use autonomic $ pip3 install -r requirements.txt
``` ```
# Install Dependencies Then fire up the container with the following.
Then you can install your Ruby dependencies with: ```bash
$ docker-compose up
``` bash
$ gem install jekyll bundler
$ bundle install
``` ```
# Serve Website Then visit the locally running website.
And serve the website locally with: > http://localhost:4000
``` bash Then you can edit the files as normal and reload the page.
$ make devserver
To stop the container when you're done, you can run:
```bash
$ docker-compose stop
``` ```
# Editing Content
Edit content in the `.md` files under `src` and `src/_posts`.
# Next time
When you're hacking later on (or in a new shell), you'll need to run:
``` bash
$ rvm use 2.6.5
$ rvm gemset use autonomic
```
And then you'll have access to the environment.

17
Dockerfile Normal file
View File

@ -0,0 +1,17 @@
FROM ruby:2.7.1-alpine
EXPOSE 4000
RUN apk --no-cache add \
bash \
curl \
g++ \
git \
make
RUN gem install bundler -v 2.1.4
RUN gem install jekyll -v 4.0.0
COPY . ${WORKDIR}
RUN bundle install

View File

@ -1,3 +1,7 @@
source "https://rubygems.org" source "https://rubygems.org"
ruby '2.6.5'
ruby "2.7.1"
gemspec gemspec
gem "jekyll-feed"

80
Gemfile.lock Normal file
View File

@ -0,0 +1,80 @@
PATH
remote: .
specs:
autonomic (0.0.0)
GEM
remote: https://rubygems.org/
specs:
addressable (2.7.0)
public_suffix (>= 2.0.2, < 5.0)
colorator (1.1.0)
concurrent-ruby (1.1.6)
em-websocket (0.5.1)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0)
eventmachine (1.2.7)
ffi (1.12.2)
forwardable-extended (2.6.0)
http_parser.rb (0.6.0)
i18n (1.8.2)
concurrent-ruby (~> 1.0)
jekyll (4.0.0)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
i18n (>= 0.9.5, < 2)
jekyll-sass-converter (~> 2.0)
jekyll-watch (~> 2.0)
kramdown (~> 2.1)
kramdown-parser-gfm (~> 1.0)
liquid (~> 4.0)
mercenary (~> 0.3.3)
pathutil (~> 0.9)
rouge (~> 3.0)
safe_yaml (~> 1.0)
terminal-table (~> 1.8)
jekyll-feed (0.13.0)
jekyll (>= 3.7, < 5.0)
jekyll-sass-converter (2.1.0)
sassc (> 2.0.1, < 3.0)
jekyll-watch (2.2.1)
listen (~> 3.0)
kramdown (2.2.1)
rexml
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
liquid (4.0.3)
listen (3.2.1)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.3.6)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
public_suffix (4.0.4)
rb-fsevent (0.10.4)
rb-inotify (0.10.1)
ffi (~> 1.0)
rexml (3.2.3)
rouge (3.18.0)
safe_yaml (1.0.5)
sassc (2.3.0)
ffi (~> 1.9)
terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
unicode-display_width (1.7.0)
PLATFORMS
ruby
DEPENDENCIES
autonomic!
bundler (>= 2.1.4)
jekyll (>= 4)
jekyll-feed
RUBY VERSION
ruby 2.7.1p83
BUNDLED WITH
2.1.4

View File

@ -1,6 +0,0 @@
DEV_DIST_DIR:=dist
devserver:
@echo "Serving development site from $(DEV_DIST_DIR)"
@jekyll serve --watch --incremental --destination $(DEV_DIST_DIR)
.PHONY: devserver

View File

@ -1,29 +1,14 @@
[![pipeline status](https://gitlab.com/autonomic-cooperative/autonomic-cooperative.gitlab.io/badges/master/pipeline.svg)](https://gitlab.com/autonomic-cooperative/autonomic-cooperative.gitlab.io/commits/master)
# autonomic.zone # autonomic.zone
[![Build Status](https://drone.autonomic.zone/api/badges/autonomic-cooperative/autonomic.zone/status.svg)](https://drone.autonomic.zone/autonomic-cooperative/autonomic.zone)
> https://autonomic.zone
A [Jekyll] based site for the Autonomic Cooperative. The site is based on the [spectral-jekyll-theme] template. A [Jekyll] based site for the Autonomic Cooperative. The site is based on the [spectral-jekyll-theme] template.
master is served up to [autonomic.zone] and [autonomic-cooperative.gitlab.io]. [jekyll]: https://jekyllrb.com/
[Jekyll]: https://jekyllrb.com/
[spectral-jekyll-theme]: https://github.com/andrewbanchich/spectral-jekyll-theme [spectral-jekyll-theme]: https://github.com/andrewbanchich/spectral-jekyll-theme
[autonomic.zone]: https://autonomic.zone/
[autonomic-cooperative.gitlab.io]: http://autonomic-cooperative.gitlab.io/
# Make a change
Work on features in branches. If you commit to master, open a merge request from your branch unless it is a tiny change. Our [pages] CI stage will push any changes on master branch to [autonomic.zone].
[deploy]: https://gitlab.com/autonomic-cooperative/autonomic-cooperative.gitlab.io/blob/d16aec42bd2ddd7449f55d9f06b03499cc660b22/.gitlab-ci.yml#L17
Watch the [CI/CD pipeline] to see that it builds successfully.
[CI/CD pipeline]: https://gitlab.com/autonomic-cooperative/autonomic-cooperative.gitlab.io/pipelines
# Contribute # Contribute
Please see [CONTRIBUTING.md] for the juicy details. It may need to be updated, so please submit patches if you discover some quirk! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for the juicy details.
[CONTRIBUTING.md]: https://gitlab.com/autonomic-cooperative/autonomic-cooperative.gitlab.io/blob/master/CONTRIBUTING.md

View File

@ -1,16 +1,18 @@
---
title: Autonomic Co-operative title: Autonomic Co-operative
email: helo@autonomic.zone email: helo@autonomic.zone
description: Sustainability, Transparency, Privacy description: Sustainability, Transparency, Privacy
baseurl: "" baseurl: ""
url: "" url: "https://autonomic.zone"
source: src source: src
destination: dist destination: dist
sass: sass:
sass_dir: ./assets/styles sass_dir: ./assets/styles
featured-image-source: featured-image-source:
500px_url: include: ["src/.well-known", "src/.nojekyll"]
github_url: mastodon_url: https://sunbeam.city/@autonomic
twitter_url: https://twitter.com/autonomiccoop twitter_url: https://twitter.com/autonomiccoop
gitea_url: https://git.autonomic.zone/autonomic-cooperative/
markdown: kramdown markdown: kramdown
permalink: pretty permalink: pretty
collections: collections:
@ -23,3 +25,5 @@ exclude:
- vendor - vendor
- Gemfile - Gemfile
- Gemfile.lock - Gemfile.lock
plugins:
- jekyll-feed

View File

@ -2,14 +2,14 @@
Gem::Specification.new do |spec| Gem::Specification.new do |spec|
spec.name = "autonomic" spec.name = "autonomic"
spec.version = '0.0.0' spec.version = "0.0.0"
spec.date = '2017-09-24' spec.date = "2017-09-24"
spec.summary = "" spec.summary = ""
spec.description = "" spec.description = ""
spec.authors = ['autonomic co-operative'] spec.authors = ["autonomic co-operative"]
spec.email = 'autonomic.posteo.net' spec.email = "autonomic.posteo.net"
spec.files = `git ls-files -z`.split("\x0").select { |f| f.match(%r{^(assets|_layouts|_includes|_sass|LICENSE|README)}i) } spec.files = "README.md"
spec.add_development_dependency "jekyll", ">= 4" spec.add_development_dependency "jekyll", ">= 4"
spec.add_development_dependency "bundler", ">= 1.12" spec.add_development_dependency "bundler", ">= 2.1.4"
end end

31
docker-compose.prod.yml Normal file
View File

@ -0,0 +1,31 @@
---
version: "3.8"
services:
jekyll:
image: decentral1se/autonomic.zone:v2.0.0
command: bundle exec jekyll serve --host 0.0.0.0 --trace
environment:
JEKYLL_ENV: production
networks:
- proxy
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:4000"]
interval: 15s
timeout: 10s
retries: 10
start_period: 20s
deploy:
update_config:
failure_action: rollback
order: start-first
labels:
- "traefik.enable=true"
- "traefik.http.services.jekyll.loadbalancer.server.port=4000"
- "traefik.http.routers.jekyll.rule=Host(`autonomic.zone`)"
- "traefik.http.routers.jekyll.entrypoints=web-secure"
- "traefik.http.routers.jekyll.tls.certresolver=production"
networks:
proxy:
external: true

11
docker-compose.yml Normal file
View File

@ -0,0 +1,11 @@
---
version: "3.7"
services:
jekyll:
image: "jekyll/jekyll:4"
command: jekyll serve --watch --force_polling --trace
volumes:
- ".:/srv/jekyll"
ports:
- "4000:4000"

1
requirements.txt Normal file
View File

@ -0,0 +1 @@
docker-compose==1.25.5

0
src/.nojekyll Normal file
View File

View File

@ -0,0 +1,3 @@
{
"m.server": "matrix.autonomic.zone:443"
}

View File

@ -1,18 +0,0 @@
<section id="two" class="wrapper alt style2">
{% assign posts = site.categories.values | concat: site.categories.howto | sort:"date" | reverse %}
{% for post in posts %}
<section class="spotlight">
<div class="image">
{% if post.image %}
<img src="{% if site.featured-image-source %}{{ post.image | prepend: site.featured-image-source | absolute_url }}{% else %}{{ "" | absolute_url }}/assets/images/{{ post.image }}{% endif %}" alt="" loading="lazy">
{% endif %}
</div>
<div class="content">
<h2><a href="{{ post.url | relative_url }}" class="link">{{ post.title }}</a></h2>
<p class="h5">{{ post.date | date: '%B %d, %Y' }}</p>
<p>{{ post.description }}</p>
</div>
</section>
{% endfor %}
</section>

View File

@ -1,5 +1,5 @@
<a class="named-anchor" name="contact"></a>
<section id="contact" class="wrapper style5 special"> <section id="contact" class="wrapper style5 special">
<a class="named-anchor" name="contact">
<header class="major"> <header class="major">
<h2>Get in Touch</h2> <h2>Get in Touch</h2>
<p>Contact us to discuss your project's needs and arrange a consultation.</p> <p>Contact us to discuss your project's needs and arrange a consultation.</p>
@ -9,4 +9,5 @@
Our key fingerprint is: <br/><code id="fingerprint">82FC 87C5 1A71 902F DC10 2CF5 4F90 D55B B24B 1147</code> Our key fingerprint is: <br/><code id="fingerprint">82FC 87C5 1A71 902F DC10 2CF5 4F90 D55B B24B 1147</code>
</p> </p>
</header> </header>
</a>
</section> </section>

View File

@ -0,0 +1,7 @@
<!-- Scripts -->
<script src="{{ "/assets/js/jquery-3.4.1.min.js" | absolute_url }}"></script>
<script src="{{ "/assets/js/jquery.scrollex.min.js" | absolute_url }}"></script>
<script src="{{ "/assets/js/skel.min.js" | absolute_url }}"></script>
<script src="{{ "/assets/js/util.js" | absolute_url }}"></script>
<script src="{{ "/assets/js/particles.min.js" | absolute_url }}""></script>
<script src="{{ "/assets/js/main.js" | absolute_url }}"></script>

View File

@ -1,37 +1,64 @@
<!-- Footer --> <!-- Footer -->
<footer id="footer"> <footer id="footer">
<ul class="icons"> <div class="row">
<div class="column">
<a class="named-anchor" name="contact"></a>
<h3>Get in Touch</h3>
Contact us to discuss your project's needs and arrange a consultation:</br>
<b><a href="mailto:helo@autonomic.zone">helo@autonomic.zone</a></b></br></br>
<b><a href="{{ '/assets/pgp/autonomic-key.asc' | relative_url }}">Download PGP key</a></b></br>
<a href= "https://git.autonomic.zone/autonomic-cooperative/autonomic.zone/src/branch/master/src/assets/pgp"> Verify fingerprint:</a><code id="fingerprint">82FC 87C5 1A71 902F DC10 2CF5 4F90 D55B B24B 1147</code>
<ul class="icons" style="margin-bottom: 0; padding-top: 1em">
<li> <li>
<a rel="noopener" href="{{ site.twitter_url }}" style="border-bottom: none"> <a title="RSS Feed" rel="me" href="{{ '/feed.xml' | absolute_url }}" style="border-bottom: none">
<svg style="height: 2rem;" viewBox="0 0 1792 1792"> <!-- This SVG needs to be changed if you change the colour scheme as it is a massive hack. -->
<title>Twitter</title> <img alt="rss" style="height: 2rem;color: #fff" src="{{ '/assets/svg/rss-square-solid.svg' | absolute_url }}">
<path fill="#fff" d="M1684 408q-67 98-162 167l1 42q0 130-38 260t-115 248-185 211-258 146-323 54q-271 0-496-145 35 4 78 4 225 0 401-138-105-2-188-64t-114-160q33 5 61 5 43 0 85-11-112-23-185-111t-74-206v-4q68 38 146 41-66-44-105-115t-39-154q0-88 44-163 121 149 295 239t371 99q-8-38-8-74 0-134 95-228t228-95q140 0 236 102 109-21 205-78-37 115-142 178 93-10 186-50z"/> </a>
</svg> </li>
<li>
<a title="Twitter" rel="noopener" href="{{ site.twitter_url }}" style="border-bottom: none">
<img alt="twitter" style="height: 2rem;" src="{{ '/assets/svg/twitter-brands.svg' | absolute_url }}">
</a>
</li>
<li>
<a title="Mastodon" rel="me" href="{{ site.mastodon_url }}" style="border-bottom: none">
<img alt="mastodon" style="height: 2rem;" src="{{ '/assets/svg/mastodon-brands.svg' | absolute_url }}">
</a>
</li>
<li>
<a title="Gitea" rel="me" href="{{ site.gitea_url }}" style="border-bottom: none">
<!-- This SVG needs to be changed if you change the colour scheme as it is a massive hack. -->
<img alt="gitea" style="height: 2.3rem;" src="{{ '/assets/svg/Gitea_Logo.svg' | absolute_url }}">
</a> </a>
</li> </li>
</ul> </ul>
<ul class="copyright">
<svg style="height: 1rem; fill: rgba(255, 255, 255, 0.7); vertical-align: text-bottom;" viewBox="0 0 1792 1792"><path d="M605 1233q153 0 257-104 14-18 3-36l-45-82q-6-13-24-17-16-2-27 11l-4 3-11 10-18 14q-11 8-23 14t-29 13-33 10-38 3q-76 0-125-50t-49-127q0-76 48-125t122-50q37 0 72 14t50 28l16 14q11 11 26 10 16-2 24-14l53-78q13-20-2-39l-11-12q-8-8-30-23t-48-28-68-23-86-10q-148 0-246 97t-98 240q0 146 97 242t247 95zm630 0q153 0 257-104 14-18 4-36l-45-82q-8-14-25-17-16-2-27 11l-4 3-11 10-18 14q-11 8-23 14t-29 13-33 10-38 3q-76 0-125-50t-49-127q0-76 48-125t122-50q37 0 72 14t50 28l16 14q11 11 26 10 16-2 24-14l53-78q13-20-2-39l-11-12q-8-8-30-23t-48-28-68-23-86-10q-147 0-245 97t-99 240q0 146 97 242t247 95zM896 160q-150 0-286 59T376 376 219 610t-59 286 59 286 157 235 234 157 286 58 286-58 235-157 157-235 58-286-58-286-157-234-235-157-286-59zm0-160q182 0 348 71t286 191 191 286 71 348-71 348-191 286-286 191-348 71-348-71-286-191-191-286T0 896t71-348 191-286T548 71 896 0z"/></svg>&nbsp;
{{ site.title }}</li>
</ul>
</div>
<div class="column">
<div class="copyright">
</div>
<div class="cotech-box">
<a href="https://www.coops.tech/">
<img class="cotech-logo" src="{{ '/assets/images/CoTech-white-logo.png' | relative_url }}" alt="CoTech"/>
<b><span class="cotech-text">Member of the Cotech Network</span></b>
</a>
</div>
<div style="vertical-align: bottom;">
<address> <address>
Autonomic Co-operative</br> Autonomic Co-operative Limited</br>
1539 Pershore Road </br> 1539 Pershore Road</br>
Stirchley</br> Birmingham</br>
B30 2JH B30 2JH</br>
</address> United Kingdom</br>
</address></br>
We are a Co-operative Society registered with the <a href="https://mutuals.fca.org.uk/Search/Society/30380">FCA</a>.
<b>Registration Number: 4597 </b>
</br></br>
</div>
<div style="vertical-align: bottom;">
<a href="{{ '/privacy/index.html' | absolute_url }}">Privacy Policy</a> - <a href="{{ '/terms/index.html' | absolute_url }}">Terms of Service</a> - <a href="{{ '/gdpr/index.html' | absolute_url }}">GDPR</a>
</div>
</div>
</div>
</footer> </footer>
</div>
<!-- Scripts -->
<script src="{{ "/assets/js/jquery-3.4.1.min.js" | absolute_url }}"></script>
<script src="{{ "/assets/js/jquery.scrollex.min.js" | absolute_url }}"></script>
<script src="{{ "/assets/js/skel.min.js" | absolute_url }}"></script>
<script src="{{ "/assets/js/util.js" | absolute_url }}"></script>
<script src="{{ "/assets/js/particles.min.js" | absolute_url }}""></script>
<script src="{{ "/assets/js/main.js" | absolute_url }}"></script>
</body>
</html>

View File

@ -2,22 +2,23 @@
<section id="three" class="wrapper style6 special"> <section id="three" class="wrapper style6 special">
<div class="inner"> <div class="inner">
<header class="major"> <header class="major">
<h2>Services we offer</h2> <h2>Cooperative Cloud Infrastructure</h2>
<p> <p>
This isn't an exhaustive list - if you don't see what you need, please contact us anyway. This isn't an exhaustive list. If you don't see what you need, please contact us anyway for a consultation:
</p> </p>
<h3><a href="mailto:helo@autonomic.zone">helo@autonomic.zone</a></h3>
</header> </header>
<ul class="features"> <ul class="features">
<li class="features-item"> <li class="features-item">
<svg class="features-icon" viewBox="0 0 1792 1792"><path d="M127 896q0-163 67-313l367 1005q-196-95-315-281T127 896zm1288-39l-2 39q-2 20-10 49t-12 44-17 59-18 58l-76 256-278-826q46-3 88-8 19-2 26-18t-2-31-29-14l-205 10q-75-1-202-10-12-1-20 5t-12 15-1 19 9 16 19 8l80 8 120 328-168 504-280-832q46-3 88-8 19-2 26-18t-2-31-29-14l-205 10h-23l-26-1q105-160 275-253t367-94q147 0 281 53t238 149h-10q-55 0-92 41t-37 95l2 24 4 22q2 10 8 23t9 21 12 22 13 21 14 24 14 23q63 107 63 212zM909 963l237 647q1 6 5 11-126 44-255 44-112 0-217-32zm661-436q95 174 95 369 0 209-104 386t-279 278l235-678q59-169 59-276 0-42-6-79zM896 0q182 0 348 71t286 191 191 286 71 348-71 348-191 286-286 191-348 71-348-71-286-191-191-286T0 896t71-348 191-286T548 71 896 0zm0 1751q173 0 332-68t273-182 182-273 68-332-68-331-182-273-273-183-332-68-331 68-273 183-183 273-68 331 68 332 183 273 273 182 331 68z"/></svg> <svg class="features-icon" viewBox="0 0 1792 1792"><path d="M127 896q0-163 67-313l367 1005q-196-95-315-281T127 896zm1288-39l-2 39q-2 20-10 49t-12 44-17 59-18 58l-76 256-278-826q46-3 88-8 19-2 26-18t-2-31-29-14l-205 10q-75-1-202-10-12-1-20 5t-12 15-1 19 9 16 19 8l80 8 120 328-168 504-280-832q46-3 88-8 19-2 26-18t-2-31-29-14l-205 10h-23l-26-1q105-160 275-253t367-94q147 0 281 53t238 149h-10q-55 0-92 41t-37 95l2 24 4 22q2 10 8 23t9 21 12 22 13 21 14 24 14 23q63 107 63 212zM909 963l237 647q1 6 5 11-126 44-255 44-112 0-217-32zm661-436q95 174 95 369 0 209-104 386t-279 278l235-678q59-169 59-276 0-42-6-79zM896 0q182 0 348 71t286 191 191 286 71 348-71 348-191 286-286 191-348 71-348-71-286-191-191-286T0 896t71-348 191-286T548 71 896 0zm0 1751q173 0 332-68t273-182 182-273 68-332-68-331-182-273-273-183-332-68-331 68-273 183-183 273-68 331 68 332 183 273 273 182 331 68z"/></svg>
<div> <div>
<h3>Wordpress websites</h3> <h3>Websites</h3>
<p> <p>
We will build and host your website, using Wordpress, which is free software and very user-friendly so you can add and edit your own content if you want to. We offer <a href="https://wordpress.com/">Wordpress</a> and static sites. Either managed or unmanaged with frictionless tools for editing and publishing that empower users. <a href="https://matomo.org/">Matamo</a> provides ethical analytics to measure impact.
</p> </p>
</div> </div>
</li> </li>
<li class="features-item"> <!-- <li class="features-item">
<svg class="features-icon" viewBox="0 0 1792 1792"><path d="M1703 478q40 57 18 129l-275 906q-19 64-76 108t-123 43H324q-77 0-148-53T76 1479q-24-67-2-127l3-27 4-37q1-8-3-21t-3-20q2-11 8-21t17-23 16-24q23-38 45-91t30-92q3-10 1-30t-1-28q3-11 17-28t17-23q21-36 42-92t25-90q1-9-2-32t0-28q4-13 22-30t22-23q19-26 43-84t27-97q1-8-3-25t-2-27q2-8 9-18t18-23 17-21q8-12 17-30t15-35 16-36 19-32 27-24 36-11 47 5l-1 3q38-9 51-9h761q74 0 114 56t18 130l-274 906q-36 119-71 154t-129 34H220q-27 0-38 15-11 16-1 43 24 70 144 70h923q29 0 56-15t35-42l300-987q7-22 5-57 38 15 59 43zm-1064 2q-4 13 2 23t20 9h608q13 0 26-9t16-23l21-64q4-13-2-22t-20-10H702q-13 0-25 10t-17 22zm-83 256q-4 13 2 23t20 9h608q13 0 26-9t16-23l21-64q4-13-2-22t-20-10H619q-13 0-25 10t-17 22z"/></svg> <svg class="features-icon" viewBox="0 0 1792 1792"><path d="M1703 478q40 57 18 129l-275 906q-19 64-76 108t-123 43H324q-77 0-148-53T76 1479q-24-67-2-127l3-27 4-37q1-8-3-21t-3-20q2-11 8-21t17-23 16-24q23-38 45-91t30-92q3-10 1-30t-1-28q3-11 17-28t17-23q21-36 42-92t25-90q1-9-2-32t0-28q4-13 22-30t22-23q19-26 43-84t27-97q1-8-3-25t-2-27q2-8 9-18t18-23 17-21q8-12 17-30t15-35 16-36 19-32 27-24 36-11 47 5l-1 3q38-9 51-9h761q74 0 114 56t18 130l-274 906q-36 119-71 154t-129 34H220q-27 0-38 15-11 16-1 43 24 70 144 70h923q29 0 56-15t35-42l300-987q7-22 5-57 38 15 59 43zm-1064 2q-4 13 2 23t20 9h608q13 0 26-9t16-23l21-64q4-13-2-22t-20-10H702q-13 0-25 10t-17 22zm-83 256q-4 13 2 23t20 9h608q13 0 26-9t16-23l21-64q4-13-2-22t-20-10H619q-13 0-25 10t-17 22z"/></svg>
<div> <div>
<h3>CRM and Case Management</h3> <h3>CRM and Case Management</h3>
@ -25,8 +26,8 @@
For case work (e.g. housing or asylum support) we offer our own system, OpenCase. It's simple and user-friendly, perfect for small, volunteer-led groups. We will also consider CiviCRM depending on requirements. For case work (e.g. housing or asylum support) we offer our own system, OpenCase. It's simple and user-friendly, perfect for small, volunteer-led groups. We will also consider CiviCRM depending on requirements.
</p> </p>
</div> </div>
</li> </li> -->
<li class="features-item"> <!-- <li class="features-item">
<svg class="features-icon" viewBox="0 0 1792 1792"><path d="M1764 11q33 24 27 64l-256 1536q-5 29-32 45-14 8-31 8-11 0-24-5l-527-215-298 327q-18 21-47 21-14 0-23-4-19-7-30-23t-11-37v-452L40 1083q-37-14-40-55-3-39 32-59L1696 9q35-21 68 2zm-342 1499l221-1323-1434 827 336 137 863-639-478 797z"/></svg> <svg class="features-icon" viewBox="0 0 1792 1792"><path d="M1764 11q33 24 27 64l-256 1536q-5 29-32 45-14 8-31 8-11 0-24-5l-527-215-298 327q-18 21-47 21-14 0-23-4-19-7-30-23t-11-37v-452L40 1083q-37-14-40-55-3-39 32-59L1696 9q35-21 68 2zm-342 1499l221-1323-1434 827 336 137 863-639-478 797z"/></svg>
<div> <div>
<h3>Encrypted Email</h3> <h3>Encrypted Email</h3>
@ -36,11 +37,11 @@
encrypted mailbox storage. encrypted mailbox storage.
</p> </p>
</div> </div>
</li> </li> -->
<li class="features-item"> <li class="features-item">
<svg class="features-icon" viewBox="0 0 1024 901"><g fill-rule="nonzero"><path d="M898 350zM308 38c32 18 62 40 87 64 41-7 84-11 127-11 128 0 250 34 343 95 48 32 86 70 113 112a279 279 0 010 305c-27 42-65 80-113 111-93 62-215 95-343 95-43 0-86-3-127-11-25 25-55 47-87 65-168 84-308 2-308 2s130-111 109-208c-58-59-90-131-90-207 0-75 32-147 90-207C130 146 0 36 0 36s140-82 308 2zM208 618c16 52 6 111-29 176l-5 10c30-3 61-11 92-27 24-13 46-30 65-48l36-34c48 13 101 20 157 20 225 0 408-118 408-265 0-146-183-264-408-264-226 0-409 118-409 264 0 64 35 123 93 168z"/><path d="M328 509a60 60 0 110-120 60 60 0 010 120zm194 0a60 60 0 110-120 60 60 0 010 120zm194 0a60 60 0 11-1-120 60 60 0 011 120z"/></g></svg> <svg class="features-icon" viewBox="0 0 1024 901"><g fill-rule="nonzero"><path d="M898 350zM308 38c32 18 62 40 87 64 41-7 84-11 127-11 128 0 250 34 343 95 48 32 86 70 113 112a279 279 0 010 305c-27 42-65 80-113 111-93 62-215 95-343 95-43 0-86-3-127-11-25 25-55 47-87 65-168 84-308 2-308 2s130-111 109-208c-58-59-90-131-90-207 0-75 32-147 90-207C130 146 0 36 0 36s140-82 308 2zM208 618c16 52 6 111-29 176l-5 10c30-3 61-11 92-27 24-13 46-30 65-48l36-34c48 13 101 20 157 20 225 0 408-118 408-265 0-146-183-264-408-264-226 0-409 118-409 264 0 64 35 123 93 168z"/><path d="M328 509a60 60 0 110-120 60 60 0 010 120zm194 0a60 60 0 110-120 60 60 0 010 120zm194 0a60 60 0 11-1-120 60 60 0 011 120z"/></g></svg>
<div> <div>
<h3>Text and Video Chat</h3> <h3>Team Chat</h3>
<p> <p>
Mobile friendly multi-channel team chat using <a href="https://rocket.chat/">Rocket.Chat</a>, Mobile friendly multi-channel team chat using <a href="https://rocket.chat/">Rocket.Chat</a>,
with no artificial limits on features. Vital for remote project coordination. with no artificial limits on features. Vital for remote project coordination.
@ -52,14 +53,11 @@
<div> <div>
<h3>Cloud Storage and Collaboration</h3> <h3>Cloud Storage and Collaboration</h3>
<p> <p>
<a href="https://cloudron.io/">Cloudron</a> is a personal "cloud <a href="https://nextcloud.com/">Nextcloud</a> for file-storage, collaborative document editing, calendars. We also host <a href="https://github.com/hackmdio/codimd">CodiMD</a>, <a href="https://etherpad.org/">Etherpad</a>, <a href="https://gitea.io">Gitea</a> and <a href="https://wekan.github.io/">Wekan</a> instances.
in a box" , designed with the utmost security in mind. It allows you to
deploy apps for file-storage, collaborative document editing,
calendars, to-do lists and much more.
</p> </p>
</div> </div>
</li> </li>
<li class="features-item"> <!-- <li class="features-item">
<svg class="features-icon" viewBox="0 0 1792 1792"><path d="M1728 886q0 166-60 314l-20 49-185 33q-22 83-90 137t-157 53v32q0 14-9 23t-23 9h-64q-14 0-23-9t-9-23V928q0-14 9-23t23-9h64q14 0 23 9t9 23v32q71 0 130 36t93 95l68-12q29-95 29-193 0-148-88-279t-236-209-316-78-315 78-237 209-88 279q0 98 29 193l68 12q34-60 93-95t130-36v-32q0-14 9-23t23-9h64q14 0 23 9t9 23v576q0 14-9 23t-23 9h-64q-14 0-23-9t-9-23v-32q-88 0-156-53t-91-137l-185-33-20-49q-60-148-60-314 0-151 67-291t179-242 266-164 320-61 320 61 266 164 179 242 67 291z"/></svg> <svg class="features-icon" viewBox="0 0 1792 1792"><path d="M1728 886q0 166-60 314l-20 49-185 33q-22 83-90 137t-157 53v32q0 14-9 23t-23 9h-64q-14 0-23-9t-9-23V928q0-14 9-23t23-9h64q14 0 23 9t9 23v32q71 0 130 36t93 95l68-12q29-95 29-193 0-148-88-279t-236-209-316-78-315 78-237 209-88 279q0 98 29 193l68 12q34-60 93-95t130-36v-32q0-14 9-23t23-9h64q14 0 23 9t9 23v576q0 14-9 23t-23 9h-64q-14 0-23-9t-9-23v-32q-88 0-156-53t-91-137l-185-33-20-49q-60-148-60-314 0-151 67-291t179-242 266-164 320-61 320 61 266 164 179 242 67 291z"/></svg>
<div> <div>
<h3>Voice Conferencing</h3> <h3>Voice Conferencing</h3>
@ -68,7 +66,7 @@
Perfect for meetings, even with large groups, on mobile, or with low bandwidth. Perfect for meetings, even with large groups, on mobile, or with low bandwidth.
</p> </p>
</div> </div>
</li> </li> -->
<li class="features-item"> <li class="features-item">
<svg class="features-icon" viewBox="0 0 1792 1792"><path d="M704 384q-153 0-286 52T207 577t-79 191q0 82 53 158t149 132l97 56-35 84q34-20 62-39l44-31 53 10q78 14 153 14 153 0 286-52t212-141 78-191-78-191-212-141-286-52zm0-128q191 0 354 69t256 186 94 257-94 257-256 187-354 68q-86 0-176-16-124 88-278 128-36 9-86 16h-3q-11 0-20-8t-12-21l-1-6 1-7 2-6 2-5 4-5 4-5 4-5 4-5 23-25 26-29 23-29q15-19 25-39t20-44q-124-72-195-177T0 768q0-139 94-257t257-186 353-69zm822 1169q10 24 21 44t25 39 22 29 26 29 23 25l4 5 5 5 4 5 3 5 3 5 2 6v7l-1 6q-3 14-13 22t-22 7q-50-7-86-16-154-40-278-128-90 16-176 16-271 0-472-132 58 4 88 4 161 0 309-45t264-129q125-92 192-212t67-254q0-77-23-152 129 71 204 178t75 230q0 120-71 225t-195 176z"/></svg> <svg class="features-icon" viewBox="0 0 1792 1792"><path d="M704 384q-153 0-286 52T207 577t-79 191q0 82 53 158t149 132l97 56-35 84q34-20 62-39l44-31 53 10q78 14 153 14 153 0 286-52t212-141 78-191-78-191-212-141-286-52zm0-128q191 0 354 69t256 186 94 257-94 257-256 187-354 68q-86 0-176-16-124 88-278 128-36 9-86 16h-3q-11 0-20-8t-12-21l-1-6 1-7 2-6 2-5 4-5 4-5 4-5 4-5 23-25 26-29 23-29q15-19 25-39t20-44q-124-72-195-177T0 768q0-139 94-257t257-186 353-69zm822 1169q10 24 21 44t25 39 22 29 26 29 23 25l4 5 5 5 4 5 3 5 3 5 2 6v7l-1 6q-3 14-13 22t-22 7q-50-7-86-16-154-40-278-128-90 16-176 16-271 0-472-132 58 4 88 4 161 0 309-45t264-129q125-92 192-212t67-254q0-77-23-152 129 71 204 178t75 230q0 120-71 225t-195 176z"/></svg>
<div> <div>
@ -80,7 +78,7 @@
</p> </p>
</div> </div>
</li> </li>
<li class="features-item"> <!-- <li class="features-item">
<svg class="features-icon" viewBox="0 0 2048 1792"><path d="M2020 11q28 20 28 53v1408q0 20-11 36t-29 23l-640 256q-24 11-48 0l-616-246-616 246q-10 5-24 5-19 0-36-11-28-20-28-53V320q0-20 11-36t29-23L680 5q24-11 48 0l616 246L1960 5q32-13 60 6zM736 146v1270l576 230V376zM128 363v1270l544-217V146zm1792 1066V159l-544 217v1270z"/></svg> <svg class="features-icon" viewBox="0 0 2048 1792"><path d="M2020 11q28 20 28 53v1408q0 20-11 36t-29 23l-640 256q-24 11-48 0l-616-246-616 246q-10 5-24 5-19 0-36-11-28-20-28-53V320q0-20 11-36t29-23L680 5q24-11 48 0l616 246L1960 5q32-13 60 6zM736 146v1270l576 230V376zM128 363v1270l544-217V146zm1792 1066V159l-544 217v1270z"/></svg>
<div> <div>
<h3>Interactive Data and Mapping</h3> <h3>Interactive Data and Mapping</h3>
@ -91,14 +89,13 @@
data by presenting it in a bespoke web app. data by presenting it in a bespoke web app.
</p> </p>
</div> </div>
</li> </li> -->
<li class="features-item"> <li class="features-item">
<svg class="features-icon" viewBox="0 0 2048 1792"><path d="M681 1399l-50 50q-10 10-23 10t-23-10L119 983q-10-10-10-23t10-23l466-466q10-10 23-10t23 10l50 50q10 10 10 23t-10 23L288 960l393 393q10 10 10 23t-10 23zm591-1067L899 1623q-4 13-15 20t-24 2l-62-17q-13-4-19-15t-3-25l373-1291q4-13 16-19t23-3l62 17q13 4 20 16t2 24zm657 651l-466 466q-10 10-23 10t-23-10l-50-50q-10-10-10-23t10-23l393-393-393-393q-10-10-10-23t10-23l50-50q10-10 23-10t23 10l466 466q10 10 10 23t-10 23z"/></svg> <svg class="features-icon" viewBox="0 0 2048 1792"><path d="M681 1399l-50 50q-10 10-23 10t-23-10L119 983q-10-10-10-23t10-23l466-466q10-10 23-10t23 10l50 50q10 10 10 23t-10 23L288 960l393 393q10 10 10 23t-10 23zm591-1067L899 1623q-4 13-15 20t-24 2l-62-17q-13-4-19-15t-3-25l373-1291q4-13 16-19t23-3l62 17q13 4 20 16t2 24zm657 651l-466 466q-10 10-23 10t-23-10l-50-50q-10-10-10-23t10-23l393-393-393-393q-10-10-10-23t10-23l50-50q10-10 23-10t23 10l466 466q10 10 10 23t-10 23z"/></svg>
<div> <div>
<h3>Bespoke Development</h3> <h3>Bespoke Development</h3>
<p> <p>
For some problems, there may not be a pre-existing free software solution. Let For some problems, there may not be a pre-existing solution. Let us guide you through the full development cycle to deliver your bespoke solution.
us guide you through the full development cycle to deliver your bespoke solution.
</p> </p>
</div> </div>
</li> </li>

View File

@ -6,10 +6,7 @@
{% include banner.html %} {% include banner.html %}
{% include core-values.html %} {% include core-values.html %}
{% include services.html %} {% include services.html %}
{% include contact.html %}
{% include blog.html %}
{% include footer.html %} {% include footer.html %}
{% include membership-footer.html %}
{% include foot-scripts.html %} {% include foot-scripts.html %}
</body> </body>
</html> </html>

View File

@ -0,0 +1,24 @@
---
layout: post
title: Autonomic in times of pandemic
description: Life under lockdown
image: 2020-04-02_autonomic_garden.jpg
category: updates
date: 2020-04-02
---
# Autonomic in times of pandemic
Just though we'd let everyone know that we are all doing ok during these extraordinary times. Autonomic already carries out all our work remotely so we don't have to change the way we work at all. Business as normal for us in the work realm but we know this isn't the case for many.
Most of us are involved in local mutual aid projects and we really recommend for everyone is able to get involved in their area (UK lists [here](https://covidmutualaid.org/local-groups/) and [here](https://freedomnews.org.uk/covid-19-uk-mutual-aid-groups-a-list/)). We need to stick together now more than ever. This is especially important for all those with tech skills. We have to help our communities. Tech help will be so appreciated by your local communities and help others to support those in need.
We are also concerned at the rising use of potentially authoritarian surveillance technologies. It is inevitable that under current conditions we would see these technologies deployed in a civil rather than military context. A moment of crisis is the perfect opportunity for those that seek to erode our civil liberties. As hackers, it is our responsibility to fight against repressive technologies wherever we find them for the sake of those less technical than ourselves.
If you are an organisation or collective that needs help with tech infrastructure, please reach out and we will help to the best of our abilities. This is a time for building cooperation, mutual aid and democratic structures, not only for the duration of the current crisis but also for struggles to come. There is no time to waste.
Love and solidarity
*Autonomic Co-operative*

View File

@ -0,0 +1,52 @@
---
layout: post
title: Hyperpy, the punk-to-punk protocol in Python
description: A new Python implementation of the Hypercore protocol is cooking at Autonomic
image: 2020-04-23-dat-protocol.png
category: technology, peer-to-peer, hypercore-protocol
date: 2020-04-23
---
# Hyperpy, the punk-to-punk protocol in Python
We're quite excited by the new wave of community-developed peer-to-peer
technology. [Scuttlebutt], [Cabal], [Mapeo] and [Beaker browser] are inspiring
examples of software which show that technology can be built to operate without
running on centralised commercially-owned infrastructure (e.g. WhatsApp).
One of the underlying innovations for these technologies is the [Hypercore
protocol], which is a way of describing how two computers can send information
to each other directly.
Today, the reference implementation of the Hypercore protocol is written in
Javascript. The Javascript ecosystem has proved to be remarkably flexible for
advancing this next generation of tools. Simple methods of publishing (npm
publish), well-established distribution channels (the browser) and a
[philosophy of modularity] have enabled so many to get started with building
peer-to-peer technology.
However, there is a great need for other languages and ecosystems to benefit
from the tools and concepts that are being developed based on the reference
implementation. People from all walks of life need a working implementation in
their preferred language of choice. In response to this, we are seeing projects
like [Datrs] and [Datcxx] emerge (please note, the Hypercore protocol was once
called the Dat protocol, see [this blog post] for more information).
Alongside these efforts, a member of Autonomic has begun to work on Hyperpy, a
Python-based implementation of the Hypercore protocol. The project proposes a
roadmap but offers no deadlines and receives no funding at current status.
However slowly, things are moving along. Further progress updates will be
posted on this blog as they come in. All development is taking place on
[git.autonomic.zone/hyperpy].
[scuttlebutt]: https://scuttlebutt.nz/
[cabal]: https://cabal.chat/
[mapeo]: https://www.digital-democracy.org/mapeo/
[beaker browser]: https://beakerbrowser.com/
[hypercore protocol]: https://hypercore-protocol.org/
[philosophy of modularity]: https://mafinto.sh/blog/pragmatic-modularity.html
[datrs]: https://github.com/datrs/
[datcxx]: https://datcxx.github.io/
[git.autonomic.zone/hyperpy]: https://git.autonomic.zone/hyperpy/
[this blog post]: https://blog.datproject.org/2020/05/15/dat-protocol-renamed-hypercore-protocol/

Binary file not shown.

After

Width:  |  Height:  |  Size: 917 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

View File

@ -12,19 +12,19 @@ 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
@ -37,157 +37,158 @@ IO+EGhTtR0EooVY63Y59KZVr9jwEikKMpGbfvSCHiXysKAzkV+PGQ5Z178y7U8dK
6Q3MWczmlrnyQVQ6xXlNxLfvcn3IUj+ADaW8LkQyVrJM0EcbBk4cw0Ri4tOyHYl1 6Q3MWczmlrnyQVQ6xXlNxLfvcn3IUj+ADaW8LkQyVrJM0EcbBk4cw0Ri4tOyHYl1
f5Bx/zCbpCkTf4uDfTE+cdt41FYiyvx0Amu7plZ3ibGUlhbswk8MdzofBK2DixTS f5Bx/zCbpCkTf4uDfTE+cdt41FYiyvx0Amu7plZ3ibGUlhbswk8MdzofBK2DixTS
4voMlbDE4zeSBNHU5wPW1HeIRgQTEQIABgUCWoxPHAAKCRC1UnX7y+g4PH8dAJwJ 4voMlbDE4zeSBNHU5wPW1HeIRgQTEQIABgUCWoxPHAAKCRC1UnX7y+g4PH8dAJwJ
e2Gas1fDwoYesuHCNOP33mj5WwCeNBat5nVVRbP9rTbSjcP+gnWQXA2JAlcEEwEI e2Gas1fDwoYesuHCNOP33mj5WwCeNBat5nVVRbP9rTbSjcP+gnWQXA2JAlQEEwEI
AEECGyMFCwkIBwIGFQgJCgsCBBYCAwECHgECF4AFCQtW2zUWIQSC/IfFGnGQL9wQ AD4WIQSC/IfFGnGQL9wQLPVPkNVbsksRRwUCWf3BugIbIwUJAi0RlAULCQgHAgYV
LPVPkNVbsksRRwUCW+DdWAIZAQAKCRBPkNVbsksRR2SJEACJA9GtC67i+tP7cWTY CAkKCwIEFgIDAQIeAQIXgAAKCRBPkNVbsksRR/11D/9PjT5I4kLqb7aqeb2CVtla
La9iRUI14fLZrAnry+bN+B/f2IDpvv2eZXlkdTdUo7PF5/+1ug8oTV3NkkfhQ59v hX/UJ3xFEduFCOtJ2yn/9qESsP07PksZ0OEeIreMBDf2SW9OeqoNl8MwMDF28Mxa
rNp3XEhqkG3fIwSVYXyAj3flxS7Oa5PHUKfEIzR/hGX6k8YGxb/ILHr4vqEcLnrf /8rmO/wtVE1RYOWaPxQve9V+1ok5pOFJgHntSBZyHxu5Kygn4CqPazQBqzV/nfP4
Nz0F6p6wD+XoNUqJv/xogwWj8McnNg5594ksIfFfkJixoAOQTEzN722+90nVguN6 7lJ5/hUAB430nWkMs5Z8EbyVwJW/f7ATbomxGwaSevD4N/FuuipkPcywrTxsU8t5
/h2EG2iMKhDwxgS54MDLN0MySOSiKmAqD1oPzH9mLUXI1Wl4SI9GPiaiKR8ATgGw SwHymaBAVT963kCqDR2/qj7POHdQzl0xVOSyO1Z5rp0P4vrh6llJTrk243RWB45Z
w/+apBi5G38LQo7wZatCXiiht1tOE5Daxrs7Y6dKk8tbFzANxztIyXJl8Vcavk2s CYLoLQpSyJcBeScPgSMU0ACQrt0hX3ADsqZv0PNdKiWaFoTpKOW3cPqCH7rYQRqq
9mMnTxlYu+6qu1tuhuo5MLMyQ5AVb+cfa3C83djMT8q5EOHSCBZ/eRKrd52XxQMM 7WDlRh+MEBeycJ8WNdNZIlMpEjsuCXJqksAg4aLC/hSTyPYmWxKMMOCBc90ibafb
gHD7mrM4LwXk6YdpJsthg/XkrpbbRhhV8yiLgjL7c75gmdzY9rWOxnVH7xHM/p9G rwivTQk2VNnDdhI8N6c6vLF5ptayMK6tF0W80PloqSUUncVLCvqhbLUZ9mR8dBoV
PsTFPmuvgsz2Hq6tSzqOdr166kKb957FExC/Z7U9ExtToPOVDW5wLFC81VHg8F6I ihRObIEGbGOMb8GV2ZgxFE6w84Tq8TT1cOFTa9unpkupd1shhP1tJvCw/xfYKf/b
bAdy7JUDdGm7Gcw+RZfSS248fsmPtCK8AY6SFgYKQjviscRSprzis7fwOzE+pLgw FPgmLXOG4m2i5IDuh8N2SvJvjRHfxL07V94ExxfMgHBg0POKUE7BJH21lZ1oTtyq
mBqYC7QVqhEvnykeXkQkRzzl9Wa3zrikYniPk8tphQrvU2AQWB9wbPk2EVNaEPXE fiIv4KHzTju03YclgnbA+/LVUt3N32bSKGJIc8twh21WWHmfiWd/DxlEjVdKg4d9
HzaRLV1CDEL7bX1xjHs7cOM5x4kCVAQTAQgAPgIbIwULCQgHAgYVCAkKCwIEFgID CrZiePweE7ztfih5tIo5YokCVAQTAQgAPgIbIwULCQgHAgYVCAkKCwIEFgIDAQIe
AQIeAQIXgBYhBIL8h8UacZAv3BAs9U+Q1VuySxFHBQJbor05BQkLVts1AAoJEE+Q AQIXgBYhBIL8h8UacZAv3BAs9U+Q1VuySxFHBQJbor05BQkLVts1AAoJEE+Q1Vuy
1VuySxFHKcQP/joTOsDKjVkjZmYtoFixIBPgIfHcDFKN4UyVg/79Ue3xNaaUAze9 SxFHKcQP/joTOsDKjVkjZmYtoFixIBPgIfHcDFKN4UyVg/79Ue3xNaaUAze99NSL
9NSLD8SBYbmI4y26H61u19WW2EyXs77jqgu6h00wKt0Ka+mFOHIhsd4gj5S2DXaz D8SBYbmI4y26H61u19WW2EyXs77jqgu6h00wKt0Ka+mFOHIhsd4gj5S2DXaz+XJp
+XJpllUm3n+LlU7Usi7MXkfwmKW0HmKRlJgqN9UCNczj5ldkcByuWd+h9NsDN8Q5 llUm3n+LlU7Usi7MXkfwmKW0HmKRlJgqN9UCNczj5ldkcByuWd+h9NsDN8Q5RADU
RADU+/wOaH47rcg8hNRJUtoBhz8qtU/5whlGMmV+Mi585eHlUXKHtsTtLfjzxBjx +/wOaH47rcg8hNRJUtoBhz8qtU/5whlGMmV+Mi585eHlUXKHtsTtLfjzxBjxDvnD
DvnD8gcvFYUnFALW/qM6uZMcfjt3pEcetQ3Jj9dWl6QZujawtATf7jG79LVe9v3c 8gcvFYUnFALW/qM6uZMcfjt3pEcetQ3Jj9dWl6QZujawtATf7jG79LVe9v3cTy1F
Ty1F+dQ59HuzkLLsq4TLjgIafABpaZNUezVhpeREW0ucOyA66Jgm4eIpTLlk0MoU +dQ59HuzkLLsq4TLjgIafABpaZNUezVhpeREW0ucOyA66Jgm4eIpTLlk0MoUvzsY
vzsY2jlQ13EUtFaL42xW44nYzeJm+PJNL7+hlh8GjlA4SjeF8vOpmIEOqn2cNhzp 2jlQ13EUtFaL42xW44nYzeJm+PJNL7+hlh8GjlA4SjeF8vOpmIEOqn2cNhzpBn8N
Bn8NXcfI/kLvYknvuTvhlIRG22eCOD89Y4QEoK0L51FSHdpHKs20gEdftpZWG513 XcfI/kLvYknvuTvhlIRG22eCOD89Y4QEoK0L51FSHdpHKs20gEdftpZWG513dHCN
dHCNnXCp6+aQ1v6lkREQUYzNX11pRVJC6Yojs5rs4MN779adSMpF29VjE8yM0D6X nXCp6+aQ1v6lkREQUYzNX11pRVJC6Yojs5rs4MN779adSMpF29VjE8yM0D6XlPIp
lPIpYyiOCeG7b5aln4+Sn4JYJ8usIlCrPTm0uDcHrnISVn7LeIvbMn3t1KqhF4BT YyiOCeG7b5aln4+Sn4JYJ8usIlCrPTm0uDcHrnISVn7LeIvbMn3t1KqhF4BTkJyH
kJyHVUn3+oNSTQVUhtd4lXO3UcZc4zddYkbLeF2QeY+6yVMFyiB7izRTtCxBdXRv VUn3+oNSTQVUhtd4lXO3UcZc4zddYkbLeF2QeY+6yVMFyiB7izRTiQJXBBMBCABB
bm9taWMgQ29vcGVyYXRpdmUgPGF1dG9ub21pY0Bwb3N0ZW8ubmV0PokCVAQTAQgA AhsjBQsJCAcCBhUICQoLAgQWAgMBAh4BAheABQkLVts1FiEEgvyHxRpxkC/cECz1
PgIbIwULCQgHAgYVCAkKCwIEFgIDAQIeAQIXgBYhBIL8h8UacZAv3BAs9U+Q1Vuy T5DVW7JLEUcFAlvg3VgCGQEACgkQT5DVW7JLEUdkiRAAiQPRrQuu4vrT+3Fk2C2v
SxFHBQJZ/cGYBQkCLRGUAAoJEE+Q1VuySxFHwOEP/j2uPM+FUM84X5DzPdJ20mUA YkVCNeHy2awJ68vmzfgf39iA6b79nmV5ZHU3VKOzxef/tboPKE1dzZJH4UOfb6za
1omWmBMgttW/S5VY7+ACpJWa2MP6qjGmjl/mmgGKTq31lLbvDHDD796fouZUGXqf d1xIapBt3yMElWF8gI935cUuzmuTx1CnxCM0f4Rl+pPGBsW/yCx6+L6hHC563zc9
8spPyF4VVcreqJilBFrGpDEkL10B3K/WfpS/k5p87IH6JudNNIM0lUyAG1KR5q8l BeqesA/l6DVKib/8aIMFo/DHJzYOefeJLCHxX5CYsaADkExMze9tvvdJ1YLjev4d
MhEQeXz4RWE+ZIF9mAmrGRLb1OIaNYpKVSQliBh3F6jiyQ3uiUx//6x/tSFOfxqR hBtojCoQ8MYEueDAyzdDMkjkoipgKg9aD8x/Zi1FyNVpeEiPRj4moikfAE4BsMP/
M1tdcb8gDKs6u3zFB+uM5BywGzRNTIcF8Ie2smavrQ0qSgQzacQmIWFpu0V2L4QX mqQYuRt/C0KO8GWrQl4oobdbThOQ2sa7O2OnSpPLWxcwDcc7SMlyZfFXGr5NrPZj
kJRQiUkVeRkhDV+fWcR+49BuFQgU2K8YB8n2JLalG5l7gBSfQ4FUOUhxmDMquVIJ J08ZWLvuqrtbbobqOTCzMkOQFW/nH2twvN3YzE/KuRDh0ggWf3kSq3edl8UDDIBw
yS7nLsMBBYtl7SrFe776uYaxNE+hYofv3mRRz/dApRxLc7jCI9dg0PtZjAaCrahg +5qzOC8F5OmHaSbLYYP15K6W20YYVfMoi4Iy+3O+YJnc2Pa1jsZ1R+8RzP6fRj7E
FPHmXLZi0jg+Ijbpx8TI2MUf0P20iYeL6cRFKh0M774H0XwYLi/JFol+5bgscBF6 xT5rr4LM9h6urUs6jna9eupCm/eexRMQv2e1PRMbU6DzlQ1ucCxQvNVR4PBeiGwH
UwyL0gwiO+eamXi6VCNAn/4RJtdwsOSK+M62ZXl78cb7UrK7I7fDOuZFWS4p57CM cuyVA3RpuxnMPkWX0ktuPH7Jj7QivAGOkhYGCkI74rHEUqa84rO38DsxPqS4MJga
ZgS5W9RQDEmPJUCBTEfByGBLs/YFiDUrNlt53UhzSe1xIQs8CM0Vg4wtE6ipT0UL mAu0FaoRL58pHl5EJEc85fVmt864pGJ4j5PLaYUK71NgEFgfcGz5NhFTWhD1xB82
lE79DwrgI1CaKOyL8RQf43oQ3kYz+HgY3YMqTYGrpDRbJNl1oeYFsHf/v5rd+4Nb kS1dQgxC+219cYx7O3DjOce0LEF1dG9ub21pYyBDb29wZXJhdGl2ZSA8YXV0b25v
CnXGswAnQId7eFmd4cX/iQIzBBMBCAAdFiEE70ujcLPqlBi+AFx24UxUHrwFfywF bWljQHBvc3Rlby5uZXQ+iQJUBBMBCAA+AhsjBQsJCAcCBhUICQoLAgQWAgMBAh4B
AlnKafIACgkQ4UxUHrwFfyybixAAiim4L86loIMD9wfXmmrOnp7V7Z8Xuwo3hZTb AheAFiEEgvyHxRpxkC/cECz1T5DVW7JLEUcFAluivT0FCQtW2zUACgkQT5DVW7JL
0qtYXdCilkSYbnQthUiHiGaE0c3BMFBUX7yQdTIewmRc6CGkyWNNcyNC0y7HA/B7 EUeGAw/+PO2Bw+NYp9qG9g3cSCQsMDhTLmzWxOsLXlgvnfZ17q1K0jItvFGJwhQF
HiGZHlymxDTdrB39AoLv6Bg76pkNIWcUGKkNKHETZSnB/MV2fPg7eQNvLD3qhdNl 72ItINVccxlv+hErcl0VAdPNIQ1Egl9cBiFDUWnfkE6qRETBe5ZCPzrDyIO8Kwdw
ZCTXaT2y9VIPc+acE21C1WyCLtp6F/SDlLlR5F2oDSEX81jLupzBHXsHe/WVkyLV mTXKfHMmyuF7t58IzrtsxvdNVDbb9PT4uUg6ocZzmYxVnMymsOldeUrCL6b2e3Pn
yCepI/iNDbeVYVkY/ZmKoY+XW7UkT9mQboKmRNoz0aQFFsTL9Xl6Dlo6K3nbGvKV 1ciPArlJztTCrGL45eYKCRwHE0LArEk3UevW4IXSZVCpCa/JykFl90ytTwKvyis1
wyVwiipwdl2CkFDfi2qpsDUGqXSpvjgMvfaIBNreAzQgDFafqG/UWkkL3Sy7XQkn 9QgvTR2x7Zphv8kuk4pTBY3hPzocZR7MykHEJ8Ly0VyxudAnZk4mpUj/bM8HdTM/
1+4Yb5CEzz7JwpD/5ah2tE8KmN8JpxeRaVoQAZ9i7G8Wd/8XtAsifOAdLqnnUvZc OYNdwhMb5TkJFGet4q5lwa0mK9kEQRgFW+v2aq5ASp0HSNa2fmXfdQ/TaIiS2ZhJ
N7CeEcJCba0Gg03zl17bjHQIVbCfjqVGtxeSHyRdbJ6ilrdBRq0AdoCZ46JZsWIM mObl9d3m9y/Qvmd4kNmT4xD/2FgJlvMj0eo5khdhekDt/FNCMjqcjnqNNwY7YSWv
U3Nvk+Ei16Ie5vO2TOd7WDRohI/H4yFU+hHfX7+P93xYBe8md2YMPCzf/10gU+fD +V2IlGi+3om4h9n/hFBvu2rkA9pa6y7QYCz39lM9Sb+uWNcd2/zy8lD/eB5eoUXJ
MCV3M8E9nnnJF2uYyalzayqgFuun7TfRQ1rC02CWZMiaTiAvoZNrLhn7Z+Nm+pPP sYc0z/UfLe+/0o25Ba4TDzE6ZPOTpc6UoQjsDyI0slnrwWgvDQQkJ99/NeZw9aHK
b7Anb2R5w1Kb/cngTZ7NvBw5qlvA9a+dXpgSsiE7kV4Npe+zTCU0gxD+u28FX+Ad 8GlIdOjTKzPTri/Q/d7ZO+1WlawATt5zi/6tJE8WehVfK6flpZpzbTVBH0Dbqx/z
nXzO38+JAjMEEwEIAB0WIQTa+pyoTP1I9fzqzqrt6Tlin1waagUCWf3B5AAKCRDt +ddQG2GudPYA/QPGBIiPsclROy4PA4wYCv50l3gT7hyfFvhRKImJAjMEEwEIAB0W
6Tlin1waaqs/D/45TzZcqmiJMEmzvxiN6MZU2NiUEioLSzSlXk8mqw6xmpSjR7r1 IQTvS6Nws+qUGL4AXHbhTFQevAV/LAUCWcpp8gAKCRDhTFQevAV/LJuLEACKKbgv
6mdngkCn1dbvriTF4DBqSVspdEV5B5O9m/Q/RMAw8iKxF6oL/bQ8iiEQcK4GTkL4 zqWggwP3B9eaas6entXtnxe7CjeFlNvSq1hd0KKWRJhudC2FSIeIZoTRzcEwUFRf
+li5ruoNOmiboUy4Ivtx5htlogkcFFfyTw3omEjJ0OMWBSWti+hIJbvv49BuLDw6 vJB1Mh7CZFzoIaTJY01zI0LTLscD8HseIZkeXKbENN2sHf0Cgu/oGDvqmQ0hZxQY
4pNcmFW2zeT8RKaX/e56g4+aXEK3SV6Ii0XXRk23UBnlQ+EXImNMUcIkke4I1c7H qQ0ocRNlKcH8xXZ8+Dt5A28sPeqF02VkJNdpPbL1Ug9z5pwTbULVbIIu2noX9IOU
UHFL7PW9RTlZEHeAosbTL16rrz03uT6P4dGdQNnS00qMD0UZTIw7oGHhDgfnM00V uVHkXagNIRfzWMu6nMEdewd79ZWTItXIJ6kj+I0Nt5VhWRj9mYqhj5dbtSRP2ZBu
pKp4E3Mn02c77r2CMitovCdWYkITqHWuuyAjFN817FHyIPs3lxyNNC5EsRerQmg9 gqZE2jPRpAUWxMv1eXoOWjoredsa8pXDJXCKKnB2XYKQUN+LaqmwNQapdKm+OAy9
S9brNrDi56Lg1Bu9lidMfCuEWXCmJlCAmmfKH+Rs01a+LEdPaKz+1JfPkVnfJN4B 9ogE2t4DNCAMVp+ob9RaSQvdLLtdCSfX7hhvkITPPsnCkP/lqHa0TwqY3wmnF5Fp
mpxa2w7EsHifxOGcVOTIKb3ctqqHfLlkzBLIlZSThIBG0Yr+6/xjOTDO6+eXvvCW WhABn2LsbxZ3/xe0CyJ84B0uqedS9lw3sJ4RwkJtrQaDTfOXXtuMdAhVsJ+OpUa3
/BEDVZIzup1oiBD5+3Jgin+vXnwGhciqJu2qKLGy5pJIoki8l1S7bB6J71VeUuhi F5IfJF1snqKWt0FGrQB2gJnjolmxYgxTc2+T4SLXoh7m87ZM53tYNGiEj8fjIVT6
fHo4UbftBWghLgQ+mInY+vgxrE8HFt9HSUbbTwslI+Ok7zjQ4TNY0JHgf1qfClk6 Ed9fv4/3fFgF7yZ3Zgw8LN//XSBT58MwJXczwT2eeckXa5jJqXNrKqAW66ftN9FD
MOCtvgSVhxYHJXbbZrzhRgT4Ugu87QhbHcB+d4G5TljUrj4slQbREs9qnIhGBBMR WsLTYJZkyJpOIC+hk2suGftn42b6k89vsCdvZHnDUpv9yeBNns28HDmqW8D1r51e
AgAGBQJajE8cAAoJELVSdfvL6Dg86YwAnjRvy4sZj3h0mc9vxtE3SeZyoeFrAJ9M mBKyITuRXg2l77NMJTSDEP67bwVf4B2dfM7fz4kCMwQTAQgAHRYhBNr6nKhM/Uj1
2MoFJZBu0Tgu2GrGWZAW/zzGVIkCVAQTAQgAPhYhBIL8h8UacZAv3BAs9U+Q1Vuy /OrOqu3pOWKfXBpqBQJZ/cHkAAoJEO3pOWKfXBpqqz8P/jlPNlyqaIkwSbO/GI3o
SxFHBQJZseOEAhsjBQkFo5qABQsJCAcCBhUICQoLAgQWAgMBAh4BAheAAAoJEE+Q xlTY2JQSKgtLNKVeTyarDrGalKNHuvXqZ2eCQKfV1u+uJMXgMGpJWyl0RXkHk72b
1VuySxFHKYQP/1HyBo0KM55ywKGQvjvQzH2JO/V+yg+SYwr1S63sQNEkDF8o06FD 9D9EwDDyIrEXqgv9tDyKIRBwrgZOQvj6WLmu6g06aJuhTLgi+3HmG2WiCRwUV/JP
pJw+axCFFzmn6Kfbv6vx0J9LgEhhraFgBlSDv91ZsmMfaYxsR6/f2ru/kTmrOdww DeiYSMnQ4xYFJa2L6Eglu+/j0G4sPDrik1yYVbbN5PxEppf97nqDj5pcQrdJXoiL
TDm562y+sJGSd4b+yWa5sOdr4u4HusTmZlNbPm2s+YM2GCN4fv1JmQJ0UCuJs/Hc RddGTbdQGeVD4RciY0xRwiSR7gjVzsdQcUvs9b1FOVkQd4CixtMvXquvPTe5Po/h
FGCPNCrpMcId/0HsDt+9onPivzXzpTEx6eS2e52Fn3JJvOy00A7kxz5Lxa6dqzIu 0Z1A2dLTSowPRRlMjDugYeEOB+czTRWkqngTcyfTZzvuvYIyK2i8J1ZiQhOoda67
krdU2CFa/dsFlx3Ai3O1TQTczKYVkv9poiNI0evRudxaUzBqDrdJqtblo2q2xgUQ ICMU3zXsUfIg+zeXHI00LkSxF6tCaD1L1us2sOLnouDUG72WJ0x8K4RZcKYmUICa
DbgEH4uxY1cdHOJg98hn6Qg50hYeVZ9Qauqbxrvxi2oykitfvGWW4W6HT7CbXYSH Z8of5GzTVr4sR09orP7Ul8+RWd8k3gGanFrbDsSweJ/E4ZxU5Mgpvdy2qod8uWTM
VZxq/hUb+D25annGxoifTtnH8dkNnYZyct1rF/IVjOk1a6yfpye3GgpQ+tq0Bi6b EsiVlJOEgEbRiv7r/GM5MM7r55e+8Jb8EQNVkjO6nWiIEPn7cmCKf69efAaFyKom
dePq35jrUuTmbY1idlDhTT1AZVoEJQo0UkaZkaw2K2F+B5poGVgXYTGdCIZzgBmx 7aoosbLmkkiiSLyXVLtsHonvVV5S6GJ8ejhRt+0FaCEuBD6Yidj6+DGsTwcW30dJ
wddw48JsnvonbnOY4qobFG4xmUy4teRDUcFa5cYgqFwaXFmD8OxtkLBSLyfRzpDT RttPCyUj46TvONDhM1jQkeB/Wp8KWTow4K2+BJWHFgcldttmvOFGBPhSC7ztCFsd
5tHQFGMvAkvy21G6j6R82bCvIdPZZlRzmIkF3pEpoClcuSM4qh5MYmF0FO5zcxOo wH53gblOWNSuPiyVBtESz2qciEYEExECAAYFAlqMTxwACgkQtVJ1+8voODzpjACe
0+4KUOry1BIVmY7Pe+xk8D2IP3lTKACD9T0N+VpFageLvDEWQTUQkMJjiQJUBBMB NG/LixmPeHSZz2/G0TdJ5nKh4WsAn0zYygUlkG7ROC7YasZZkBb/PMZUiQJUBBMB
CAA+AhsjBQsJCAcCBhUICQoLAgQWAgMBAh4BAheAFiEEgvyHxRpxkC/cECz1T5DV CAA+AhsjBQsJCAcCBhUICQoLAgQWAgMBAh4BAheAFiEEgvyHxRpxkC/cECz1T5DV
W7JLEUcFAluivT0FCQtW2zUACgkQT5DVW7JLEUeGAw/+PO2Bw+NYp9qG9g3cSCQs W7JLEUcFAln9wZgFCQItEZQACgkQT5DVW7JLEUfA4Q/+Pa48z4VQzzhfkPM90nbS
MDhTLmzWxOsLXlgvnfZ17q1K0jItvFGJwhQF72ItINVccxlv+hErcl0VAdPNIQ1E ZQDWiZaYEyC21b9LlVjv4AKklZrYw/qqMaaOX+aaAYpOrfWUtu8McMPv3p+i5lQZ
gl9cBiFDUWnfkE6qRETBe5ZCPzrDyIO8KwdwmTXKfHMmyuF7t58IzrtsxvdNVDbb ep/yyk/IXhVVyt6omKUEWsakMSQvXQHcr9Z+lL+Tmnzsgfom5000gzSVTIAbUpHm
9PT4uUg6ocZzmYxVnMymsOldeUrCL6b2e3Pn1ciPArlJztTCrGL45eYKCRwHE0LA ryUyERB5fPhFYT5kgX2YCasZEtvU4ho1ikpVJCWIGHcXqOLJDe6JTH//rH+1IU5/
rEk3UevW4IXSZVCpCa/JykFl90ytTwKvyis19QgvTR2x7Zphv8kuk4pTBY3hPzoc GpEzW11xvyAMqzq7fMUH64zkHLAbNE1MhwXwh7ayZq+tDSpKBDNpxCYhYWm7RXYv
ZR7MykHEJ8Ly0VyxudAnZk4mpUj/bM8HdTM/OYNdwhMb5TkJFGet4q5lwa0mK9kE hBeQlFCJSRV5GSENX59ZxH7j0G4VCBTYrxgHyfYktqUbmXuAFJ9DgVQ5SHGYMyq5
QRgFW+v2aq5ASp0HSNa2fmXfdQ/TaIiS2ZhJmObl9d3m9y/Qvmd4kNmT4xD/2FgJ UgnJLucuwwEFi2XtKsV7vvq5hrE0T6Fih+/eZFHP90ClHEtzuMIj12DQ+1mMBoKt
lvMj0eo5khdhekDt/FNCMjqcjnqNNwY7YSWv+V2IlGi+3om4h9n/hFBvu2rkA9pa qGAU8eZctmLSOD4iNunHxMjYxR/Q/bSJh4vpxEUqHQzvvgfRfBguL8kWiX7luCxw
6y7QYCz39lM9Sb+uWNcd2/zy8lD/eB5eoUXJsYc0z/UfLe+/0o25Ba4TDzE6ZPOT EXpTDIvSDCI755qZeLpUI0Cf/hEm13Cw5Ir4zrZleXvxxvtSsrsjt8M65kVZLinn
pc6UoQjsDyI0slnrwWgvDQQkJ99/NeZw9aHK8GlIdOjTKzPTri/Q/d7ZO+1WlawA sIxmBLlb1FAMSY8lQIFMR8HIYEuz9gWINSs2W3ndSHNJ7XEhCzwIzRWDjC0TqKlP
Tt5zi/6tJE8WehVfK6flpZpzbTVBH0Dbqx/z+ddQG2GudPYA/QPGBIiPsclROy4P RQuUTv0PCuAjUJoo7IvxFB/jehDeRjP4eBjdgypNgaukNFsk2XWh5gWwd/+/mt37
A4wYCv50l3gT7hyfFvhRKIm0LEF1dG9ub21pYyBDb8O2cGVyYXRpdmUgPGhlbG9A g1sKdcazACdAh3t4WZ3hxf+JAlQEEwEIAD4WIQSC/IfFGnGQL9wQLPVPkNVbsksR
RwUCWbHjhAIbIwUJBaOagAULCQgHAgYVCAkKCwIEFgIDAQIeAQIXgAAKCRBPkNVb
sksRRymED/9R8gaNCjOecsChkL470Mx9iTv1fsoPkmMK9Uut7EDRJAxfKNOhQ6Sc
PmsQhRc5p+in27+r8dCfS4BIYa2hYAZUg7/dWbJjH2mMbEev39q7v5E5qzncMEw5
uetsvrCRkneG/slmubDna+LuB7rE5mZTWz5trPmDNhgjeH79SZkCdFAribPx3BRg
jzQq6THCHf9B7A7fvaJz4r8186UxMenktnudhZ9ySbzstNAO5Mc+S8WunasyLpK3
VNghWv3bBZcdwItztU0E3MymFZL/aaIjSNHr0bncWlMwag63SarW5aNqtsYFEA24
BB+LsWNXHRziYPfIZ+kIOdIWHlWfUGrqm8a78YtqMpIrX7xlluFuh0+wm12Eh1Wc
av4VG/g9uWp5xsaIn07Zx/HZDZ2GcnLdaxfyFYzpNWusn6cntxoKUPratAYum3Xj
6t+Y61Lk5m2NYnZQ4U09QGVaBCUKNFJGmZGsNithfgeaaBlYF2ExnQiGc4AZscHX
cOPCbJ76J25zmOKqGxRuMZlMuLXkQ1HBWuXGIKhcGlxZg/DsbZCwUi8n0c6Q0+bR
0BRjLwJL8ttRuo+kfNmwryHT2WZUc5iJBd6RKaApXLkjOKoeTGJhdBTuc3MTqNPu
ClDq8tQSFZmOz3vsZPA9iD95UygAg/U9DflaRWoHi7wxFkE1EJDCY7QsQXV0b25v
bWljIENvw7ZwZXJhdGl2ZSA8aGVsb0BhdXRvbm9taWMuem9uZT6JAlcEEwEIAEEC
GyMFCQtW2zUFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AWIQSC/IfFGnGQL9wQLPVP
kNVbsksRRwUCXPu5fAIZAQAKCRBPkNVbsksRRzEXEACNKMUtuX1L+pQlHJIKKGBY
WgqLZbV+s0xUtLqMdB6YimUPtKwTKpsSfwqaN9cpOvXi+JXYbNk2k+OQ+qN2fVNa
gk8Ov15y+hFz9iarxobCJYdmHEri48IVJT/9TFiE928Hd82A6Ye79+ZjHyRT7s67
1g5XcOs88MBcOq3v4t4NpcsyRYrGlw2KZIiCUOej1UTpbD8FMmXaQVe8Dg59nero
nki/Jd80ReDIX0FnyI5JOl9iMPjHQZ4G/SJAQXkfnfM3NpnYSlSL04AJ2/ny5fL4
y+mdKJ7OWalL3a9Z2Z8VJGZgMR+HTrqsKYLYqVPqdukiQJ1It1eCECYsYN5WO1OQ
5VCIVSL+NEnwCZxEtr9a32LQyxY3C6N/iHr6Uzlt1N09eeQWORie7pjhkQOVmI37
TLzvWAMUNg+/4BCCjMoW2Rss3MfrB8QNlXX+UVzA43FyN2cDsb+ZFe97VhN9RJ1i
hJsQkTi7krgIWOF7rtTHwrM4WmdXMRHT2xmcLos3zqEvTgdkUTt+ClG+NCYCC9Sw
DGeCR5Y9OpUP15lmIMiMWftAxEhWzFUKR1cqQ+5XOtWPFQXazU+oApRRc1U0Vtgb
tJ2bhHok0Gw/PSo2rmTqfqkTWqaYC2Itxh7xXZ1V46cd1r95TVbnJ6G5YXgnKjOk
R13d9DMHjG8HwBDkDJHIV7QtQXV0b25vbWljIENvw7ZwZXJhdGl2ZSA8aGVsbG9A
YXV0b25vbWljLnpvbmU+iQJUBBMBCAA+FiEEgvyHxRpxkC/cECz1T5DVW7JLEUcF YXV0b25vbWljLnpvbmU+iQJUBBMBCAA+FiEEgvyHxRpxkC/cECz1T5DVW7JLEUcF
Alzp2D4CGyMFCQtW2zUFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AACgkQT5DVW7JL Alzp2FECGyMFCQtW2zUFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AACgkQT5DVW7JL
EUdPbA/+MnnGkOXo7iHJMPnHklJrYodnuTB2AqDTHM6M5/ugR5GxDrJIoVbNKHDN EUfakxAAh7C5tirVEy+NqmtIfpT4SZCBPyJChPhHC4KEPLiejGO0oco3g4jtyJx2
x+EFNIl5+2ddUMTVmU8UFncA73oBgtf7bOqKSnC/4+9+F+pxrgiU894WRxCQSAif ipzRM3VwsGadwAxFuxS0+3Ql1i4xVRu/bKiEMl31UlD4qthFXUc1v0Pa2r/A96UR
TZpcEMm4woef1A3a8OzHGLBr3q+n8PfDr/YSHbV7HuQBtlEbh4OncXiS70Yrcg49 2OyQqtBKUrp8D1rWJQ4ovAA4jy9fyuQ3urvH/AfQ9N+xTFXDGvQA+YdfWX1Tb66d
GU5tswODn53F3Z+ff+GzAcb1112gnu/+pwIF1N9VqmLVeE3z/6jDRzYiBT7xWLqI J+RJZeqi+ubAH7MPWfrnp7wVID7I3iUlLJ98IiVZdJ2QEtp1GW0hE/8LbpqeEj+A
vGeVuDryxObZcSPWmeALnwlJUAXuSLVDhVsDZc+odNRAIQFGT9s2KarIrfQ5CIw2 z7E5dJdeWi5BxeCp1pyZ+B4hN9WWFtKNino/dxGFXKqXosnw5q6JSMz/z+WdQapy
Yml28jTrirtYKrFmbY16iZLj7S6elPUctnCTu3rmVHhZfEQg8okxVOr4Y0n9d81K p4Wcc02n2tljwDTMClyxZngxSrzAySvCl8oIe/MrsNEsiT8K3f+30JX1ZNwvkJSn
wk44WsoDOXw42TcW+4/kOc15Uts+jCNVrj5l1PUqNW717J2RtjJf/kzV8HLdEO/W 9bdjjTOo09YTILTBEDbA1hU5n8c1ey9YEtDdt+KgsKz99K5YdpJdl6ZxG3x4B8Uu
IQkU/8JzYNbNs5HnCEGxwWj2lKZ/fsCHTYDplAzpQxMYT4lYCS1fTrXlAWXam4lb Jn+KIqXTAL2wXYd9NbWyTbXnedsn01n9wUDuytbf0jvI0jfitPZTINUdX7SqHS2L
kaSkq/4/TsEGg4dYrx+39JhpbDnv0edsxf0NFANuvkeUIsRpWAJa6czz1Cztltnk ld9bPqPlYY8JETfRK8cTlOVQt+xRK0JnfzusiN6FBhCDwaRHTgqRmQtWacW8Yr+R
fA66yPnOHWKky33LmIZUyzVU03sXNlBT+wEMsz6PECw7wVAu9KXqEryg7nrwyyVi Hj8F+Z/s6DMNocQEMaHVGTYfFog8YfdFnvN74E1z32hhmD1K6cahGIz4k9sGWb0g
ZTHlNRn6jNe+qZ+oT1gRAkUbKTI2M3J2DjV1y3o0JhtwJezC6fC0LUF1dG9ub21p PD+MfwbxK91PuxBpMomILjN1AVvhqw05onvrPclZi5ZVC74vuOS5Ag0EWbHjhAEQ
YyBDb8O2cGVyYXRpdmUgPGhlbGxvQGF1dG9ub21pYy56b25lPokCVAQTAQgAPhYh ALRFCmSZVxj09672/oWDa1o6dUJWEHo3+ZiruiUynRJljatTliRsAzmRSgXU4Rx9
BIL8h8UacZAv3BAs9U+Q1VuySxFHBQJc6dhRAhsjBQkLVts1BQsJCAcCBhUKCQgL HBB7dnZ/a+T0kBZm1/hofnFQnLZR6FqcudQuCqwxN3mqEJB/l9sHKV5ht/sqO42b
AgQWAgMBAh4BAheAAAoJEE+Q1VuySxFH2pMQAIewubYq1RMvjaprSH6U+EmQgT8i 29LOpnfCoHBdhbFbhZn5DVknKwWfYJU3gh/fibAWXyfRC1Z8E1+sYU4uVCdPJyQ0
QoT4RwuChDy4noxjtKHKN4OI7cicdoqc0TN1cLBmncAMRbsUtPt0JdYuMVUbv2yo CrLuw7rBJc9WAMedgBV75kQr9F/1wkZjvbmPvEcpAApkvsMd8ZXdKIa92Cgpdokw
hDJd9VJQ+KrYRV1HNb9D2tq/wPelEdjskKrQSlK6fA9a1iUOKLwAOI8vX8rkN7q7 +vRDd4Zm839OmuLQ0AzPB/CODOVxsV3wyfD2Ep+Erk0foNC+LV3FO5Yb4m6lQtRW
x/wH0PTfsUxVwxr0APmHX1l9U2+unSfkSWXqovrmwB+zD1n656e8FSA+yN4lJSyf S5Dptn/KOybWiWR+n3Q1VuOHlQeNWGmAnbxydRkrpXxRbyxgrVMcTurOIawYv5l/
fCIlWXSdkBLadRltIRP/C26anhI/gM+xOXSXXlouQcXgqdacmfgeITfVlhbSjYp6 OvQgwvy1m7l1NG9UOzsoTIbmH/ENX3nTt0DT5j4kQ8WHg3KgQQ5lB7mKUduiU2qX
P3cRhVyql6LJ8OauiUjM/8/lnUGqcqeFnHNNp9rZY8A0zApcsWZ4MUq8wMkrwpfK cJDGMHupIiL6rn0O73OdAUfdhraXAirQsID0ogZ5Un+iEgsIzMzSc/QR426JVnRM
CHvzK7DRLIk/Ct3/t9CV9WTcL5CUp/W3Y40zqNPWEyC0wRA2wNYVOZ/HNXsvWBLQ rQGeA++gbsO4YOSSV+2P1WccuMhEfg9zFQ9KHrT/dIRAnSkj56qICM3w0Zi1F8v8
3bfioLCs/fSuWHaSXZemcRt8eAfFLiZ/iiKl0wC9sF2HfTW1sk2153nbJ9NZ/cFA gNZKNjQsW5teeWG1SSNZKKX4kUpedUuTQMDbwzGE4kx6Sk9rS01MLFjp5CVazBCf
7srW39I7yNI34rT2UyDVHV+0qh0ti5XfWz6j5WGPCRE30SvHE5TlULfsUStCZ387 cRNl3bkk8IUAhPMltB9RulGXbjC+xtuGHkC1wopnWQJFABEBAAGJAjwEGAEIACYC
rIjehQYQg8GkR04KkZkLVmnFvGK/kR4/Bfmf7OgzDaHEBDGh1Rk2HxaIPGH3RZ7z GwwWIQSC/IfFGnGQL9wQLPVPkNVbsksRRwUCW6K9PQUJC1bbOQAKCRBPkNVbsksR
e+BNc99oYZg9SunGoRiM+JPbBlm9IDw/jH8G8SvdT7sQaTKJiC4zdQFb4asNOaJ7 R+IsEACAYYovlNtt8Av0bDaljvb9E9ZC3nYjcEZzocknCuDv+ZVlHryTM0XwtQTa
6z3JWYuWVQu+L7jkuQINBFmx44QBEAC0RQpkmVcY9Peu9v6Fg2taOnVCVhB6N/mY FnC7vrtHRi1yjhgQAhZcR4Ukc1Q4jfbW9eOGFIRLx9U9jZUgY4Mk6R7+zAw5dpSD
q7olMp0SZY2rU5YkbAM5kUoF1OEcfRwQe3Z2f2vk9JAWZtf4aH5xUJy2UehanLnU OtEoXryXnuKYhbqdvTNrNBiBCXST7RghyWzgBwFXq2LO38nvlrOKlkiJwoyDKfo9
LgqsMTd5qhCQf5fbByleYbf7KjuNm9vSzqZ3wqBwXYWxW4WZ+Q1ZJysFn2CVN4If peVWBoaIGEYc3LFMVeQf/CYZa9RsmziewjknfmUbYSajrvwxLDvLjUXF7ddzBLR7
34mwFl8n0QtWfBNfrGFOLlQnTyckNAqy7sO6wSXPVgDHnYAVe+ZEK/Rf9cJGY725 R3WMS5aIL8bbEjauwLzYWFBXROaToCHzvMlrSpUmEvpzUNofyp2lKLYUH2XWiYTi
j7xHKQAKZL7DHfGV3SiGvdgoKXaJMPr0Q3eGZvN/Tpri0NAMzwfwjgzlcbFd8Mnw N/3h6bkLlpFwNgDjiZ9FsajIfNaF33Yvhd5oNDcPxgNphhsqh4DiZ24ZV1M3vb+P
9hKfhK5NH6DQvi1dxTuWG+JupULUVkuQ6bZ/yjsm1olkfp90NVbjh5UHjVhpgJ28 rfgvy0tV4yEaVN9iXVsmrl/e/CVxgqW4qRoKHOroRp2ssNoCL6Jt2jhinsoTdaFP
cnUZK6V8UW8sYK1THE7qziGsGL+Zfzr0IML8tZu5dTRvVDs7KEyG5h/xDV9507dA VLhTRlG9sBf59gOcglkcH9RyVI+UNF0WdtNaciqCCBmat2lRide/yWAVRM7r/4EN
0+Y+JEPFh4NyoEEOZQe5ilHbolNql3CQxjB7qSIi+q59Du9znQFH3Ya2lwIq0LCA VYDnYpGlbcrORM0FzY0b4qNhlVhQ+gITJ8zSKfX2KynIZziOG4TboGB5cR6QF7nG
9KIGeVJ/ohILCMzM0nP0EeNuiVZ0TK0BngPvoG7DuGDkklftj9VnHLjIRH4PcxUP DEOSiNz8jGnBnxvFyb6z4XTpJsT/e4lcm0J1NNlVznU46EHg88s0aD4a47beMyZ1
Sh60/3SEQJ0pI+eqiAjN8NGYtRfL/IDWSjY0LFubXnlhtUkjWSil+JFKXnVLk0DA XoIO4DVYN9Qn2H771xVi6oZ0rJJ4c4FYxl/4AhF2loFrCEnlZw==
28MxhOJMekpPa0tNTCxY6eQlWswQn3ETZd25JPCFAITzJbQfUbpRl24wvsbbhh5A =jgXl
tcKKZ1kCRQARAQABiQI8BBgBCAAmAhsMFiEEgvyHxRpxkC/cECz1T5DVW7JLEUcF
Aln9wZgFCQItEZQACgkQT5DVW7JLEUfqWw//Z86vEQ66bPsv/yh+iIr07FxhrsXZ
zuRBpdqURFOGDfcz6mfs0KrHvln4vgTqrIOJt2W5tJfZKH5XjLT0q21ZkJhUsjvy
WS9SSvQocsecYsvJdR5EemqyDwJOkj+0SWt2D/uBFwy6ZPwecFh6UW5WvClrRjb1
BFKOrpqBp7HtarxH3qWBzvBFtNI0QvI6QxKOqzBlE58Ihr2e/ewC74CysfOefC6E
//UfNB76VcawU/gE76Xusxx+Bd/XebGLK1AaC4xpBPgQpDWpQTjJcoInadFHxJgq
ixTqmh83yQFAPomNdorLi7yMbWMjohl+cVcXemHXoaSMREg2FaJ/Z5mjJ5GbvOhd
ScYG6emEhnFqoS2zTUMA79ajn8IZQ47LtRSvnDuZliCEdjCPWfAeimTR27X3v4Ts
g8soHDUh5ctD/vNDbgRFeVMH9nV5RPHxJKaxVrNNX2u7Nt68Unw1Qs+6e1zCHUjj
kjzXbDfU4aE1/yiO/WaeoIhS9jzZe4ADRrQZk3qLCM/HhUPsD4LZTdOLRP8XYN+x
70+7LO1fkD+QytMnpy3szmSCDyuqjkh2KB7JrqH/pEOrSZYVKiusQoKR4WVrsisW
2k1roTsSMiHDvLQ6tUG0lXG4dgkbNoP3Bwz9aR8hk6R1Vd3vpJPFvqk3EtpGKkaJ
KDrIwzOXOcXBllWJAjwEGAEIACYCGwwWIQSC/IfFGnGQL9wQLPVPkNVbsksRRwUC
W6K9PQUJC1bbOQAKCRBPkNVbsksRR+IsEACAYYovlNtt8Av0bDaljvb9E9ZC3nYj
cEZzocknCuDv+ZVlHryTM0XwtQTaFnC7vrtHRi1yjhgQAhZcR4Ukc1Q4jfbW9eOG
FIRLx9U9jZUgY4Mk6R7+zAw5dpSDOtEoXryXnuKYhbqdvTNrNBiBCXST7RghyWzg
BwFXq2LO38nvlrOKlkiJwoyDKfo9peVWBoaIGEYc3LFMVeQf/CYZa9Rsmziewjkn
fmUbYSajrvwxLDvLjUXF7ddzBLR7R3WMS5aIL8bbEjauwLzYWFBXROaToCHzvMlr
SpUmEvpzUNofyp2lKLYUH2XWiYTiN/3h6bkLlpFwNgDjiZ9FsajIfNaF33Yvhd5o
NDcPxgNphhsqh4DiZ24ZV1M3vb+Prfgvy0tV4yEaVN9iXVsmrl/e/CVxgqW4qRoK
HOroRp2ssNoCL6Jt2jhinsoTdaFPVLhTRlG9sBf59gOcglkcH9RyVI+UNF0WdtNa
ciqCCBmat2lRide/yWAVRM7r/4ENVYDnYpGlbcrORM0FzY0b4qNhlVhQ+gITJ8zS
KfX2KynIZziOG4TboGB5cR6QF7nGDEOSiNz8jGnBnxvFyb6z4XTpJsT/e4lcm0J1
NNlVznU46EHg88s0aD4a47beMyZ1XoIO4DVYN9Qn2H771xVi6oZ0rJJ4c4FYxl/4
AhF2loFrCEnlZw==
=u0eg
-----END PGP PUBLIC KEY BLOCK----- -----END PGP PUBLIC KEY BLOCK-----

View File

@ -142,12 +142,17 @@ body.is-mobile {
} }
} }
.copyright { .copyright, .cotech-text {
font-size: 0.8em; font-size: 0.8em;
letter-spacing: _size(letter-spacing-alt); letter-spacing: _size(letter-spacing-alt);
list-style: none;
padding: 0;
text-transform: uppercase; text-transform: uppercase;
}
.copyright {
list-style: none;
padding: 0.25em 0;
li { li {
border-left: solid 1px _palette(fg-light); border-left: solid 1px _palette(fg-light);
@ -179,16 +184,42 @@ body.is-mobile {
} }
} }
} }
.row {
display: flex;
margin: 0 10%;
flex-wrap: wrap;
justify-content: space-evenly;
}
.column {
flex: 50%;
}
.cotech-box {
padding-bottom: 1em;
}
.cotech-text {
vertical-align: middle;
}
.cotech-logo {
height: 1em;
vertical-align: text-bottom;
}
@include breakpoint(medium) { @include breakpoint(medium) {
@include padding(4em, 3em); @include padding(4em, 0em);
} }
@include breakpoint(small) { @include breakpoint(small) {
@include padding(3em, 2em); @include padding(3em, 0em);
} }
} }
/* Landing */ /* Landing */
body.landing { body.landing {

View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="512" height="512" viewBox="0 0 135.46667 135.46667" version="1.1" id="svg8" sodipodi:docname="logo.svg" inkscape:version="0.92.1 r15371" inkscape:export-filename="" inkscape:export-xdpi="48.000004" inkscape:export-ydpi="48.000004">
<defs id="defs2"/>
<sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:zoom="0.70710678" inkscape:cx="418.13805" inkscape:cy="177.57445" inkscape:document-units="mm" inkscape:current-layer="layer2" showgrid="false" units="px" width="256px" showguides="false" inkscape:window-width="1920" inkscape:window-height="1137" inkscape:window-x="1912" inkscape:window-y="-8" inkscape:window-maximized="1" inkscape:pagecheckerboard="false" inkscape:measure-start="283.373,243.952" inkscape:measure-end="290.267,236.527">
<sodipodi:guide position="0,0" orientation="0,512" id="guide3699" inkscape:locked="false"/>
<sodipodi:guide position="135.46667,0" orientation="-512,0" id="guide3701" inkscape:locked="false"/>
<sodipodi:guide position="135.46667,135.46667" orientation="0,-512" id="guide3703" inkscape:locked="false"/>
<sodipodi:guide position="0,135.46667" orientation="512,0" id="guide3705" inkscape:locked="false"/>
</sodipodi:namedview>
<metadata id="metadata5">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:title/>
</cc:Work>
</rdf:RDF>
</metadata>
<g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-161.53334)" style="display:inline">
<path style="fill:#ffffff;fill-opacity:1;stroke:#428f29;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" d="m 27.709937,195.15095 c -9.546573,-0.0272 -22.3392732,6.79805 -21.6317552,23.90397 1.105534,26.72889 25.4565952,29.20839 35.1916502,29.42301 1.068023,5.01357 12.521798,22.30563 21.001818,23.21667 h 37.15277 c 22.27763,-1.66785 38.9607,-75.75671 26.59321,-76.03825 -46.781583,2.47691 -49.995146,2.13838 -88.599758,0 -2.495053,-0.0266 -5.972321,-0.49474 -9.707935,-0.5054 z m 2.491319,9.45886 c 1.351378,13.69267 3.555849,21.70359 8.018216,33.94345 -11.382872,-1.50473 -21.069822,-5.22443 -22.851515,-19.10984 -0.950962,-7.4112 2.390428,-15.16769 14.833299,-14.83361 z" id="path3722" inkscape:connector-curvature="0" sodipodi:nodetypes="sscccccsccsc"/>
</g>
<g inkscape:groupmode="layer" id="layer2" inkscape:label="Layer 2" style="display:inline">
<rect style="display:inline;fill:#1d2442;fill-opacity:1;stroke:none;stroke-width:0.24757317;stroke-opacity:1" id="rect4599" width="34.762054" height="34.762054" x="87.508659" y="18.291576" transform="rotate(25.914715)" ry="5.4825778"/>
<path style="display:inline;fill:#1d2442;fill-opacity:1;stroke:none;stroke-width:0.26644793px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 79.804947,57.359056 3.241146,1.609954 V 35.255731 h -3.262698 z" id="path4525" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/>
</g>
<g inkscape:groupmode="layer" id="layer3" inkscape:label="Layer 3" style="display:inline">
<g style="display:inline" id="g4539">
<circle transform="rotate(-19.796137)" r="3.4745038" cy="90.077766" cx="49.064713" id="path4606" style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332;stroke-opacity:1"/>
<circle transform="rotate(-19.796137)" r="3.4745038" cy="102.1049" cx="36.810425" id="path4606-3" style="fill:#ffffff6;fill-opacity:1;stroke:none;stroke-width:0.26458332;stroke-opacity:1"/>
<circle transform="rotate(-19.796137)" r="3.4745038" cy="111.43928" cx="46.484283" id="path4606-1" style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332;stroke-opacity:1"/>
<rect transform="rotate(26.024158)" y="18.061695" x="97.333458" height="27.261492" width="2.6726954" id="rect4629-8" style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.27444693;stroke-opacity:1"/>
<path sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path4514" d="m 76.558096,68.116343 c 12.97589,6.395378 13.012989,4.101862 4.890858,20.907244" style="fill:none;stroke:#ffffff;stroke-width:2.68000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.8 KiB

View File

@ -0,0 +1 @@
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="creative-commons" class="svg-inline--fa fa-creative-commons fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path fill="rgba(255,255,255,0.9)" d="M245.83 214.87l-33.22 17.28c-9.43-19.58-25.24-19.93-27.46-19.93-22.13 0-33.22 14.61-33.22 43.84 0 23.57 9.21 43.84 33.22 43.84 14.47 0 24.65-7.09 30.57-21.26l30.55 15.5c-6.17 11.51-25.69 38.98-65.1 38.98-22.6 0-73.96-10.32-73.96-77.05 0-58.69 43-77.06 72.63-77.06 30.72-.01 52.7 11.95 65.99 35.86zm143.05 0l-32.78 17.28c-9.5-19.77-25.72-19.93-27.9-19.93-22.14 0-33.22 14.61-33.22 43.84 0 23.55 9.23 43.84 33.22 43.84 14.45 0 24.65-7.09 30.54-21.26l31 15.5c-2.1 3.75-21.39 38.98-65.09 38.98-22.69 0-73.96-9.87-73.96-77.05 0-58.67 42.97-77.06 72.63-77.06 30.71-.01 52.58 11.95 65.56 35.86zM247.56 8.05C104.74 8.05 0 123.11 0 256.05c0 138.49 113.6 248 247.56 248 129.93 0 248.44-100.87 248.44-248 0-137.87-106.62-248-248.44-248zm.87 450.81c-112.54 0-203.7-93.04-203.7-202.81 0-105.42 85.43-203.27 203.72-203.27 112.53 0 202.82 89.46 202.82 203.26-.01 121.69-99.68 202.82-202.84 202.82z"></path></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1 @@
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="mastodon" class="svg-inline--fa fa-mastodon fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="#fff" d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"></path></svg>

After

Width:  |  Height:  |  Size: 843 B

View File

@ -0,0 +1 @@
<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="rss-square" class="svg-inline--fa fa-rss-square fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="#ffffff" d="M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z"></path></svg>

After

Width:  |  Height:  |  Size: 943 B

View File

@ -0,0 +1 @@
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="twitter" class="svg-inline--fa fa-twitter fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="#fff" d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"></path></svg>

After

Width:  |  Height:  |  Size: 1017 B

29
src/gdpr.md Normal file
View File

@ -0,0 +1,29 @@
---
layout: default
title: Privacy Policy
description: Privacy policy for Autonomic Co-operative Limited.
meta_description: This is the privacy policy for Autonomic Co-operative Limited.
---
# Autonomic Cooperative Limited General Data Protection Regulation 2016 (GDPR) Privacy Notice.
Our purpose is to provide secure services for socially responsible and progressive groups and individuals.
To get in touch with Autonomic Cooperative Limited about any GPDR related issues please email [helo@autonomic.zone](helo@autonomic.zone). Our Secretary will act as contact for these matters. We do not have or believe we require a Data Protection Officer, as we do not process sensitive data, nor do our core activities require large scale systemic tracking of individuals. See the [ICO guidance](https://ico.org.uk/for-organisations/guide-to-the-general-data-protection-regulation-gdpr/accountability-and-governance/data-protection-officers/) on this.
If you use our services, we may act as data processor for you. We provide information about how our systems and procedures allow you to use our service securely in our information security policy.
We process data to provide Internet services. We collect names, addresses, email addresses, phone numbers of our customers so we can charge them for services and communicate with them information regarding the availability and status of their services. This processing is necessary for the performance of our contracts with them.
This data is processed by our staff and only stored in the EU. We do not share data with 3rd parties unless this is required for the implementation of a specific service. For example to a Domain Name Registrar to complete the whois information for a domain name. The requirement to share with 3rd parties will be clearly communicated to you, and only done with explicit consent.
We are required under UK tax law to keep your basic personal data (name, address, contact details) for a minimum of 6 years after which time it will be destroyed.
If at any point you believe the information we process on you is incorrect you request to see this information and even have it corrected or deleted. If you wish to raise a complaint on how we have handled your personal data, you can contact our Secretary [helo@autonomic.zone](helo@autonomic.zone) who will investigate the matter.
See also our website privacy policy.
We use servers hosted by [Webarchitects](https://www.webarch.net/privacy-notice), [Hetzner](https://www.hetzner.com/rechtliches/datenschutz) and [Digital Ocean](https://www.digitalocean.com/legal/gdpr/) and [Gandi](https://contract.gandi.net/v5/contracts/36637/Privacy_Policy_SAS_1.1_en.pdf) for Domain names, DNS and Email, so their Data Processing Agreements also apply.
If you are not satisfied with our response or believe we are processing your personal data not in accordance with the law you can complain to the Information Commissioners Office (ICO).

16
src/privacy.md Normal file
View File

@ -0,0 +1,16 @@
---
layout: default
title: Website Privacy Policy
description: Privacy policy for autonomic.zone.
meta_description: This is the privacy policy for the website of Autonomic co-operative.
---
# Website Privacy Policy
The Autonomic Co-operative Limited website privacy policy.
Our Privacy Notice contains information regarding our General Data Protection Regulation 2016 (GDPR) compliance.
This site does not set cookies. The source code for this website can be [found here](https://git.autonomic.zone/autonomic-cooperative/autonomic.zone).
This site is configured to collect statistics including IP addresses via web server log files as is standard practice. The log files are kept for 28 days or less and are then deleted. We recommend you use [Tor Browser](https://torproject.org/) if you require great anonymity. Our website is still functional without JavaScript enabled.

68
src/terms.md Normal file
View File

@ -0,0 +1,68 @@
---
layout: default
title: Terms of Service
description: Terms of Service for autonomic.zone.
meta_description: This is the Terms of Service for Autonomic Co-operative Limited.
---
# Terms of service
This document describes what activities are allowed, under what conditions we may terminate your account, and asserts our limited liability. It applies to all interactions with Autonomic Cooperative Limited. Your use of Autonomic Cooperative Limited services constitutes your agreement to these Terms of Service.
## Summary
If you do anything truly evil, we will terminate your account. We are not liable for any damages related to the use of this service. You agree to hold patience in your heart for the hard work we do.
## Privacy policies
We ask that you review our Privacy Policy, so that you are aware of how we collect and use your information.
## Ownership of and responsibility for content
All Content, whether publicly posted or privately transmitted, is the sole responsibility of the person who originated such Content. We may not monitor or control the Content posted via the Services and we cannot take responsibility for such Content. Any use or reliance on any Content or materials posted via the Services or obtained by you through the Services is at your own risk. You are responsible for your use of the Services, for any Content you provide, and for any consequences thereof.
### Refraining from certain activities
You may not engage in the following activities through the services provided by Autonomic Cooperative Limited:
- Harassing or abusing others by engaging in threats, stalking or sending spam. This includes usernames, aliases or using any of our resources for this purpose.
- Misuse of services by distributing viruses or malware, engaging in a denial of service attack, or attempting to gain unauthorized access to any computer system, including this one.
- Contributing to the abuse of others by distributing material where the production process created violence or sexual assault against persons.
## Account Termination
Autonomic Cooperative Limited may terminate your service at any time for any reason. Typically, however, accounts are destroyed because of one of the following conditions:
- The account has been found to be sending Spam (excessive amounts of unsolicited email).
- The account has engaged one or more of the banned activities listed above.
Limitation on Liability
You agree that Autonomic Cooperative Limited is not liable to you or to any other party for any direct, indirect, incidental, special, consequential or exemplary damages, including but not limited to, damages for loss of profits, goodwill, use, data, or other intangible losses, regardless of whether we were advised of the possibility of such damage. In the case that applicable law may not allow the limitation or exclusion of liability or incidental or consequential damages, the above limitation or exclusion may not apply to you, although our liability will be limited to the fullest extent permitted by applicable law.
### Choice of Forum and Law
You agree that these Terms of Service and your use of Autonomic Cooperative Limited is governed by the law of United Kingdom.
### Policy regarding copyright infringement - DMCA
Autonomic Cooperative Limited complies with the Digital Millennium Copyright Acts notice and take-down procedures. DMCA complaints should be addressed to:
Autonomic Cooperative Limited
1539 Pershore Road
Birmingham
B30 2JH
United Kingdom
[mailto:helo@autonomic.zone](helo@autonomic.zone)
Please note that it is Autonomic Cooperative Limiteds policy to take reasonable steps, within our power, to terminate the accounts of users who are repeat infringers in appropriate circumstances.
### No Warranty
You understand and agree that Autonomic Cooperative Limited provides online services “as is” and without any warranty, express, implied, or statutory. We specifically disclaim any implied warranties of title, merchantability, fitness for a particularly purpose and infringement. We make no warranty as to the reliability, accessibility, or quality of our services. You agree that the use of our services is at your sole and exclusive risk.
### Changes to this policy
We reserve the right to change this policy. If we make major changes, we will notify our users in a clear and prominent manner.