From 5a8416fcdf76cc1448ac3a8cd3edf679b538acd3 Mon Sep 17 00:00:00 2001 From: Tobias Manske Date: Fri, 5 May 2023 22:44:28 +0200 Subject: [PATCH] Refactor --- coreos-config/.gitignore | 2 + coreos-config/Makefile | 18 - .../host_vars/host.nc.chaoswg.org/vault.yaml | 844 +++++++++--------- coreos-config/inventory.yaml | 2 + .../services}/ba-gitlab-runner/.env | 0 .../ba-gitlab-runner/docker-compose.yaml | 0 .../templates => plays/services}/blog/.env | 0 .../services}/blog/docker-compose.yaml | 0 .../templates => plays/services}/caddy/.env | 0 .../services}/caddy/Caddyfile | 0 .../services}/caddy/docker-compose.yaml | 0 .../templates => plays/services}/diun/.env | 0 .../services}/diun/diun.yml | 0 .../services}/diun/docker-compose.yaml | 0 .../services}/diun/watch.yml | 0 .../services}/gitea-runner/.env | 0 .../gitea-runner/docker-compose.yaml | 0 .../templates => plays/services}/gitea/.env | 0 .../services}/gitea/docker-compose.yaml | 0 .../services}/hedgedoc/.env | 0 .../services}/hedgedoc/docker-compose.yaml | 0 .../services}/keycloak/.env | 0 .../services}/keycloak/docker-compose.yaml | 0 .../templates => plays/services}/kuma/.env | 0 .../services}/kuma/docker-compose.yaml | 0 .../services}/linktree/.env | 0 .../services}/linktree/docker-compose.yaml | 0 .../templates => plays/services}/matrix/.env | 0 .../services}/matrix/Caddyfile | 0 .../services}/matrix/cinny-config.json | 0 .../services}/matrix/docker-compose.yaml | 0 .../matrix/mautrix-signal/config.yaml | 0 .../matrix/mautrix-signal/registration.yaml | 0 .../matrix/mautrix-slack/config.yaml | 0 .../matrix/mautrix-slack/registration.yaml | 0 .../matrix/mautrix-telegram/config.yaml | 0 .../matrix/mautrix-telegram/registration.yaml | 0 .../matrix/synapse-config/homeserver.yaml | 0 .../synapse-config/tobiasmanske.de.log.config | 0 .../tobiasmanske.de.signing.key | 0 coreos-config/plays/services/maubot/.env | 1 + .../plays/services/maubot/docker-compose.yaml | 11 + .../services}/miniflux/.env | 0 .../services}/miniflux/docker-compose.yaml | 0 .../templates => plays/services}/minio/.env | 0 .../services}/minio/docker-compose.yaml | 0 .../services}/nextcloud/.env | 0 .../services}/nextcloud/config.php | 0 .../services}/nextcloud/docker-compose.yaml | 0 .../services}/pantalaimon/.env | 0 .../services}/pantalaimon/docker-compose.yaml | 0 .../services}/pantalaimon/pantalaimon.conf | 0 .../services}/prometheus/.env | 0 .../services}/prometheus/alertmanager.yml | 0 .../services}/prometheus/docker-compose.yaml | 0 .../services}/prometheus/grafana-ds.yml | 0 .../services}/prometheus/prometheus.yml | 0 .../services}/prometheus/rules/cadvisor.yaml | 0 .../services}/prometheus/rules/node.yaml | 0 .../prometheus/rules/prometheus.yaml | 0 .../services}/radicale/.env | 0 .../services}/radicale/config | 0 .../services}/radicale/docker-compose.yaml | 0 .../services}/radicale/users | 0 .../services}/registry/.env | 0 .../services}/registry/config.yaml | 0 .../services}/registry/docker-compose.yaml | 0 .../services}/registry/htpasswd | 0 .../services}/repo_proxy/.env | 0 .../services}/repo_proxy/Caddyfile | 0 .../services}/repo_proxy/docker-compose.yaml | 0 .../services}/repo_proxy/www/index.html | 0 .../templates => plays/services}/search/.env | 0 .../services}/search/docker-compose.yaml | 0 .../services}/search/settings.yml | 0 .../services}/search/uwsgi.ini | 0 .../services}/syncthing/.env | 0 .../services}/syncthing/config/cert.pem | 0 .../services}/syncthing/config/config.xml | 0 .../services}/syncthing/config/key.pem | 0 .../services}/syncthing/docker-compose.yaml | 0 .../services}/thelounge/.env | 0 .../services}/thelounge/docker-compose.yaml | 0 .../templates => plays/services}/traefik/.env | 0 .../services}/traefik/docker-compose.yaml | 0 .../services}/traefik/dynamic.yaml | 0 .../services}/traefik/traefik.yaml | 0 .../services}/tubearchivist/.env | 0 .../tubearchivist/docker-compose.yaml | 0 .../services}/watchtower/.env | 0 .../services}/watchtower/docker-compose.yaml | 0 .../services}/wireguard/.env | 0 .../services}/wireguard/docker-compose.yaml | 0 .../services}/wireguard/wg0.conf | 0 .../templates => plays/services}/wkd/.env | 0 .../services}/wkd/Caddyfile | 0 .../dizb37aqa5h4skgu7jf1xjr4q71w4paq | Bin .../nfse4krpjzrwtbwmo7m9hujznmf79t15 | Bin .../services}/wkd/docker-compose.yaml | 0 .../services}/youtrack/.env | 0 .../services}/youtrack/docker-compose.yaml | 0 coreos-config/plays/vps.yaml | 11 +- coreos-config/requirements.yaml | 5 + coreos-config/roles/compose_project/README.md | 38 - .../roles/compose_project/defaults/main.yml | 6 - .../roles/compose_project/handlers/main.yml | 2 - .../roles/compose_project/meta/main.yml | 52 -- .../roles/compose_project/tasks/create.yml | 68 -- .../roles/compose_project/tasks/main.yml | 18 - .../roles/compose_project/tasks/remove.yml | 18 - .../roles/compose_project/tests/inventory | 2 - .../roles/compose_project/tests/test.yml | 5 - .../roles/compose_project/vars/main.yml | 2 - 113 files changed, 456 insertions(+), 649 deletions(-) delete mode 100644 coreos-config/Makefile rename coreos-config/{roles/compose_project/templates => plays/services}/ba-gitlab-runner/.env (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/ba-gitlab-runner/docker-compose.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/blog/.env (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/blog/docker-compose.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/caddy/.env (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/caddy/Caddyfile (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/caddy/docker-compose.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/diun/.env (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/diun/diun.yml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/diun/docker-compose.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/diun/watch.yml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/gitea-runner/.env (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/gitea-runner/docker-compose.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/gitea/.env (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/gitea/docker-compose.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/hedgedoc/.env (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/hedgedoc/docker-compose.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/keycloak/.env (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/keycloak/docker-compose.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/kuma/.env (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/kuma/docker-compose.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/linktree/.env (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/linktree/docker-compose.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/matrix/.env (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/matrix/Caddyfile (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/matrix/cinny-config.json (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/matrix/docker-compose.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/matrix/mautrix-signal/config.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/matrix/mautrix-signal/registration.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/matrix/mautrix-slack/config.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/matrix/mautrix-slack/registration.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/matrix/mautrix-telegram/config.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/matrix/mautrix-telegram/registration.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/matrix/synapse-config/homeserver.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/matrix/synapse-config/tobiasmanske.de.log.config (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/matrix/synapse-config/tobiasmanske.de.signing.key (100%) create mode 100644 coreos-config/plays/services/maubot/.env create mode 100644 coreos-config/plays/services/maubot/docker-compose.yaml rename coreos-config/{roles/compose_project/templates => plays/services}/miniflux/.env (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/miniflux/docker-compose.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/minio/.env (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/minio/docker-compose.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/nextcloud/.env (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/nextcloud/config.php (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/nextcloud/docker-compose.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/pantalaimon/.env (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/pantalaimon/docker-compose.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/pantalaimon/pantalaimon.conf (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/prometheus/.env (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/prometheus/alertmanager.yml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/prometheus/docker-compose.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/prometheus/grafana-ds.yml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/prometheus/prometheus.yml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/prometheus/rules/cadvisor.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/prometheus/rules/node.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/prometheus/rules/prometheus.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/radicale/.env (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/radicale/config (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/radicale/docker-compose.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/radicale/users (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/registry/.env (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/registry/config.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/registry/docker-compose.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/registry/htpasswd (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/repo_proxy/.env (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/repo_proxy/Caddyfile (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/repo_proxy/docker-compose.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/repo_proxy/www/index.html (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/search/.env (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/search/docker-compose.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/search/settings.yml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/search/uwsgi.ini (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/syncthing/.env (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/syncthing/config/cert.pem (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/syncthing/config/config.xml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/syncthing/config/key.pem (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/syncthing/docker-compose.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/thelounge/.env (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/thelounge/docker-compose.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/traefik/.env (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/traefik/docker-compose.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/traefik/dynamic.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/traefik/traefik.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/tubearchivist/.env (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/tubearchivist/docker-compose.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/watchtower/.env (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/watchtower/docker-compose.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/wireguard/.env (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/wireguard/docker-compose.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/wireguard/wg0.conf (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/wkd/.env (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/wkd/Caddyfile (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/wkd/data/tobiasmanske.de/dizb37aqa5h4skgu7jf1xjr4q71w4paq (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/wkd/data/tobiasmanske.de/nfse4krpjzrwtbwmo7m9hujznmf79t15 (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/wkd/docker-compose.yaml (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/youtrack/.env (100%) rename coreos-config/{roles/compose_project/templates => plays/services}/youtrack/docker-compose.yaml (100%) delete mode 100644 coreos-config/roles/compose_project/README.md delete mode 100644 coreos-config/roles/compose_project/defaults/main.yml delete mode 100644 coreos-config/roles/compose_project/handlers/main.yml delete mode 100644 coreos-config/roles/compose_project/meta/main.yml delete mode 100644 coreos-config/roles/compose_project/tasks/create.yml delete mode 100644 coreos-config/roles/compose_project/tasks/main.yml delete mode 100644 coreos-config/roles/compose_project/tasks/remove.yml delete mode 100644 coreos-config/roles/compose_project/tests/inventory delete mode 100644 coreos-config/roles/compose_project/tests/test.yml delete mode 100644 coreos-config/roles/compose_project/vars/main.yml diff --git a/coreos-config/.gitignore b/coreos-config/.gitignore index 63a4ce1..4389b59 100644 --- a/coreos-config/.gitignore +++ b/coreos-config/.gitignore @@ -126,3 +126,5 @@ backups/* render/ borgbackup borgbackup.pub +roles/* + diff --git a/coreos-config/Makefile b/coreos-config/Makefile deleted file mode 100644 index a9c97a6..0000000 --- a/coreos-config/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -provision: - vagrant provision - -down: - vagrant destroy -f - -clean: down up - -up: vagrant.ign - vagrant up - -vagrant.ign: vagrant_INSECURE.ign setup.ign - butane --pretty --strict -d . vagrant.bu > vagrant.ign - -setup.ign: setup.bu - butane --pretty --strict -d . setup.bu > setup.ign - -.PHONY: provision down up clean diff --git a/coreos-config/host_vars/host.nc.chaoswg.org/vault.yaml b/coreos-config/host_vars/host.nc.chaoswg.org/vault.yaml index 172073f..740df5b 100644 --- a/coreos-config/host_vars/host.nc.chaoswg.org/vault.yaml +++ b/coreos-config/host_vars/host.nc.chaoswg.org/vault.yaml @@ -1,420 +1,426 @@ $ANSIBLE_VAULT;1.2;AES256;secrets -61346162373763666239636333323436616565333332393939313136326531393362323135633237 -3532633233343538353932313033373964336334303631650a633131663032363231343434393164 -65303538393332373463653664643463626431623666343739616635633236643439373964373964 -3031386164636666380a393330316636306135396238616232616232616437613535623234376464 -39356135633866653864663063326637376263393039653436646664613762343931336531366431 -35343733396561306563633663373135376531316632353262616333636462636535356332666566 -31623936393664633233373162666636313332653037663831633363323735396462613463323561 -65636531666163646330303961333835343362363433303861373233333532363730393063633130 -66316662386634396137646561383331356438646566623035303339373237373030656632666438 -36373664356435323766366365376432363162373832656330663633666631663235366130306666 -62313361386239633032653435646365636134363635626366616631323133663633643264346236 -66346638656135623032643534356262353166326439623362636366326534336362623263313738 -36336332316538303261343361626439316533623332356163303066616438633533376565333437 -37623262303930663762313266373234373931633762306563366166313232653961326531636263 -37383833373637613065373830303964333163626463666461643937653538353431663965623332 -32616334633436353737643332356336623465616437616231373539353063653165313566323637 -62303966333362646530616563316464663034353163386461336462636566303464306261363838 -36343339383333663130636139383064303765393366643162613765363438396634636336313936 -66613939353838663333333234396266346663386161643062393639613365376534646431386666 -66353734613731316562303962323564393230303663373863383931633932653738323833336366 -36363735396431303232306538336337336430646162636233386233393333656235373566336139 -65393931653135386132373738363830353266356335643031396662306139366534373266343432 -31653537666639663034656139353637646563633663623538666530616562653638333639363732 -37353337303832373932376566643466323135383836646636353965666666396433346334326538 -34663164346636336536393637363235663939613561393733653566663434633331383338656331 -34303832343830383462613837353034653339323130663937396465353934616239396365383463 -35666435333531663261346639323866323430343463623762323933656562636366366130613637 -61626436363364363563343462393136356263653733613239373964346662663163316139313566 -30643435363031656330373331653238393465623530333834663864333739333137646665333635 -66383431663934626637356533393166393936623161373631306562376230376233396462613836 -38373532346133626434616665393236663861393563363164353065643563356630373436653865 -34386432393566356262343235393532393832663865376662363535643736323737383132306331 -35393132393530616138366365366338343633663933396236643930663732393030316238653061 -62313063363531333433613563656662663730363539353432663063326434646637366430363263 -30343233353761376466353138613764306435636634643132313662383466313230326436313961 -31356666616638303563313735353339343532366634373366333362386335373431633432643961 -37313439303530663937663339616237316435356362616364363435343362373437356237363633 -36393065626665623634366230656330343633383835313861323466666331636535366335663230 -63306636303865663462323164616566663061306436366333646631346132643335633339393237 -36653534383938343332363734353230653062366132323162636161643932393936613939393932 -31303137373439366237373863353634343061333837663961663264383336383239306366623163 -35313134373237323337623032396366303230373535666439383561383933646633613030373137 -36356235313032646339653830333438396361346439636137646661316363313431636438383266 -37393132373331383065663564396236313631656233363530373339303737633462353366333631 -66366265633030383062363730353162336663303965653666636163353133323463663162656561 -63316665326163313165623439316334363236633035333232633363633534656538616234613563 -37313566623863623634623736636637363830383130306461383239346531333933376139373262 -65353239306162646464336261346636623535663163353538363836303363636139363634656462 -31393662333130336330666430396263633131326539326534313766376162346532646336616465 -65363034313638613638356334316531356561663532633633633631636135613339383433316263 -38613939376632316666306431306532373862383662366439636530613831353239366265303534 -62643563313938623933323261313735383730386532643133353935653036366533613365336234 -35343332306136636534326635656362353263373134333235333234306336336636383731363339 -63653962343132356230353931646431626164633562623663356438626133366136613530633166 -62343966363431356234663637653738623134363933663835353266313537366233323863663233 -37333633393135356461306336366538623962316238643965393337623838323239323538653536 -36613034663838306362623366393036303931303837666331383462373232333439393132666134 -33386466656162346166616434386233636637383237653232653437663666386635373263656164 -65346336356666643664623739313861376436643763636362376231623837303233336632383335 -66353064353261323362343138636533633836356330323530636464616565356333363263303663 -64383539643535313965643639626566346133306261633931326634386635333639323533616330 -34616230616232386338333232663161326434353764616330326665613933363835313164376466 -39643132323764303361386637653866306539353435616131633931656230303836346462643231 -30613233313834616332643038316365663766633361376563373835666238666335616166623066 -62616237386131303334373438363261353833643438376339343935373239333663383738343032 -66333339656437323464363335396639353631636265643366303763353561616337386366323230 -30373437643663326531636437336136356163356361643036363039396465366337313563356364 -64373161343939306563323632383630653038386637643363633430376634343537353266613362 -35376333333331633432613031333333356262663339663865363432653037643863373035613961 -62336162313331303236393364313238343464313731313533313664613464336135653365313061 -65306335663139333731326237383239396335353831656234383862366636393234343861393132 -65646166383338343035333237643739376339636663393164613162643463386636383335653061 -65613762666437356166613136323131613737386333346332386130363738356238623462346236 -63376164616234623933343765663832303333326161306132616332326430623363393730363235 -35316162613636346266346530323164623633333763383239383165663730383435356137333635 -63326232613561613866373339633361306162626534356233663632383763643538356430666266 -63303532363862353035393163303536643438393236626136363736393337663264366666373532 -39626236333565323436616130386661646335306537373030303361326435366238356631343137 -37656263643437393332363564373735393335356631383563626364616138386432636135623161 -38666262356133313832656137306561313437376631663466303434353734323966386365633462 -33613937633161613966373236376461616636336664393234326435366532353866346465643161 -36656431383464363761633664323063653563356236313032363263396133346433356131316534 -31363066356564616164346264333364643264303337366637323764363838396339333330333638 -35326534383436363035306336386639643663643461653233363933663837353038323638363263 -62653132643934353431383663353965643063633537333630643230643064373934336631346561 -37636634373031326136656134623861306531353838653431643532643261633462643634316262 -38656564376563663532633466663762626366643264666335656366376333363364366136613238 -33636261643532393830343364393139326639653864343163633530353164626231343162643639 -62366432326266386232353631663930303531313939366434323235333732353262613961346665 -32386335356231363535656238653539386339613337613832303563616230323664376434363762 -39656232363737656536393766626164363235653865323030613464396230373262313238643138 -66623039383737343762356536353661366631613833326131336333383166313835643166303437 -38393031323264323532633631366239376134663661396563306566643137356365316464363065 -30353161613737313933313335353264353062656239393331363238623235616335643666376635 -62616131306634643830343931366338376634396537613861613632393739333562393165663734 -63643861363239393133666533633539663964333664333234353262303232623638633261383463 -31393037383466393435356532666237666234386566396263356466316137663363363136386663 -32376639373733623538653638396132336138306332373761636630346130323631633338396265 -63353137666664353361393639663338633539373836316266643731366265643562653932306239 -33643236616335393164613636356137383036633239663536613236623866343561653036333237 -62643635303235353832643531323031393832636361303666313139333039316335323162656634 -65373631613238303661646463613736386133666135653566306337353731343663326535616333 -65346337653534313164613363626334383035666232633466373564633464303636303864633333 -35363062313861346161643636363161666233643666636539666465653734323565326136363239 -65336561376637396236633836623735353937396333353161653339396632623165663465613031 -62666138373965666636633133366532643961336432373033363838353965366430633833663235 -31393134323361323761326335663135613936643236333734616331636666373032366137323133 -31383464646462396434303664326162386163326431303364313736373962383963646635306634 -34393031333339643737306137323139653765613163663062633464363263306431323139316361 -65643935326264356438636565633766373131643130383239333632366631656235383763653364 -32346366363634313961613866353431653735636137656537623637386138633735306433663233 -30363164343039303430373964346161316532636636373662343931326661353239643163306432 -62666564666131313764323465366464336434643034636464656161633863386538633435623437 -30353437316233303465663634646132376464396134346537363264383464383563323431643434 -61373530346232366232623936636536646135636635623364633339313562393837383962623563 -65623363313666353233636235336139316239376536346234386130376536636135666431613337 -35333361363964613861656562376563363632656264333035623261313030666337316166356138 -63333065376331316138613064386234623339383033666661613264633064653264306265656530 -63373433656637336638343436626362613062356161616336656139363234323364303565663738 -38353439623335396162333434653032346233323739623230383634333536663266646462613163 -65306130616465623662353962653034613066656265303266323165653339343731626134393863 -36383666643634373136636533376665623232316265356165366333303037663537336538663261 -37646463363965383739653362613765333336626465666262643536666630303737306334653036 -61356434386630613434633062323235613035386634616235303133616166616362636566616264 -33646233336530306566353432616631306464336634343562633830386338373733313966326365 -62336139633831636464613534616133373035666631626264663033626164623039316538663930 -64363132656534613431323038336534383639346361373934306463356138613666656664336337 -63633635333732376337653637373462653831653363626633663363393566323637366230386265 -38333139323434343636373063646162656335303937643664613935623730346237653064386532 -37353439643666343830363761633631653233373463656431343138623866306333356464366333 -37613837326330633662383563656335396535316662643530616535656166666464353535623861 -38643830383565393263353266636664623766316365613666643837376239363636303239373739 -35643030373761663538663864363839323365323238646430623339663865656330326162353038 -63363432643565623534653466313835663666313961363632323631376237313537613839303332 -31653730643337343964376433313466626661316136633935623062613039316631313131653431 -62353861333533656634353234306531396165333030623937386139353265626134386630363561 -32613730613962353266663036663131373835393838353635393837653738333336313764396335 -65343061643231646334363136656164653832336265366264343235643631366161323931306562 -32383461646538663461316437386335396265336366363864333037316630386137666561663636 -39373831653766373364336632333465353733386361343132396531356564366138626562386538 -38313766646430626537313338376336316438626164396537353766633030383334303635376364 -34626436363632376330333434383833313539633435666262383630343061396436383936303036 -36383134366532313034643438343238323435323139653037393033306339383936663234643931 -35323036383766656231333130623366373664353137623237356634363966343139366132663466 -64373433653933393161386532626561626666343639313663373734653865323339316237333737 -34336563343138313534306434393866613238323962396333323539666531336264346435346532 -39646131396261346466386632613438656566633531376435616263393535376464646464643637 -61353231386138373363353462633233373266333030376161616366643035336164323837316332 -61366162316338653531663433326565653237313137333734633338333836313839333665626466 -31316135333937303066626464306461633163343862333065363734643163376332306266626461 -33643234613936666465366530343538613435386262643530633934623266396362313635656161 -61663765326465343036396338313335623964383736376563616539316464643861303734653436 -65303636323031616430313330393939346232666533346266633537303630656164326131383931 -38653262636363316565363336346439366565366239393432623065656162373137366132643031 -33613533313631663361313237623662633962313237656537356466343130353532333461623564 -36626162663964363062386463393364343361303766316533666562343931613861356333663533 -63633934306531316434363431386436383036353234323765353932633262366637393936653661 -37343037306332653066353937666234343931303162656533663362326632623337616130376337 -31623432306134303866626634373138383737613732303138313262653033303230616136663333 -32396235383238316437626363343365326335376163343934613066383835613862376131613232 -62643161343233323734326434383439353761363763396163616365653438326137613632373465 -66316239356438636532323939316232663766616164643530326164376339623739356533376265 -36373366343564393435666130376530333666356137626538376336626565636131303438326564 -30376564376430393833306436306265653566306163393835333661393133663637376334326137 -64316436616439313137616265396339396431653430623539343036383837643433363561376638 -39393939306639663766653633626434316430393336626637646434363332383861323130343631 -61373666303132306364666264326530336466386366313430653264643637613533373561396136 -64653637313630313361633364326262343334383866336636393633633834613066346239363632 -33363236353838646330613335386336613137386639326431363736646136373761303664633431 -32663366613433616661373565656535663334313065626666633633623836626539323962643235 -63666536333232653466666631366639353462333833373731363232643462333232626638376535 -63643034653533333732313264613536323962666637376465303166613161303165643439356330 -61396537343433316565666263623538623062643466383530356435306634633833346361356536 -31626364396339666235646436383665643361383239663434343061653334393936326465333232 -30323732633031626563383436643437636564306566353239623461326237303139336235626462 -39653431613539666337623639626439616164373061646334643364356132343334393930656265 -32336366613665383366376366626566383032323837323138386365303439363939363363363838 -62393862646331623761626335363162316564376164613461656563653166333465313330346636 -30343666316464633238343531333731643637313662333039343939646433653232353363313731 -36376662613738616661643565336634343263396263323736613339623264643433616436346165 -33313433383534643239306164393466346238326563636161626166636131616530366365623038 -35306231666431613236663931303966333365386636373137653864353438613034343037623262 -34333334626663336264613235633165306161346138316534363931663735646137313663626538 -66643634623538626530323462626364336539346134623863373633626538663465633965646438 -66353838313038616561623738376133386339323866313331373065326163363266376530396635 -30653836353864633031333161333939376331633239383736353431366234633061346565633932 -62373938646230336535646639623239636366653363656330313562353734633933343361393130 -39306435316362376638643231363765633261323363393263313539326130366333353035313231 -37343935326562663033343935666266303339376238646234396337353932373863626365353262 -65613130303064633633313664666163326230386334326231643062326166383435313766613734 -35643030623564366638613933333639373838393562336363636534643639333039303435386437 -37656137626335303435613663633162373032393339336363623264653431323530333361623339 -61643431653438633538306638306362656562313665646230613763643464303039306131363266 -66363963396431363962613732363130316138666336663237333839666136366562616562353761 -63613363386531663237303161373362306630613735363366306130393339643838663735383265 -34376131633639313634346538323235306637303230396465336134646633616634313532353539 -63353238636539306263346365306135666565323566626436623233613139393935323164656461 -31383431396136383039353835303861633937313238323034646634656166373935363765323336 -38336239636464353839613734663837303862613234373236633335343664616466373033333135 -65643232303731383934613533333936623536303262666162323230316539333064626264353938 -39393338316261363631303337333365656664323332343130363833666333323030376430646339 -65313565343937613035316565316365623333343862306261663164633361343930313133303430 -63643937653437643734636539386262313838393830656262323363623935353731613665336239 -65616138336561323135303561616131316234313932626637313630303637366630636536313131 -32303965343938386564653938303462636164666163656534353464383762343964303462346465 -33313564366235643338393666643031356638383339366434383739623231323266353464386531 -38633230613532613163623030656633316165313763626135663666356561366338376261333563 -33646661383437386463333937313934336137393263373732393061633439346638653638353730 -30396166303036356237386636346165643138643634626662386631346233393431383563393165 -34326463373234366565356536656434366330663261326663366365393732653735306536643533 -64646235646665376366333330393933333735396266393665343830363632623735323864643131 -63346133643064393036356261663736333734393965396265616134373633336533373862613366 -34343232383666323136396637373565643630373266653035666439323266323834316237313532 -62383931626637646536383930366530323161386164343165306333316565316435326163323361 -31343039356531386633313733666237626435373131346231646538343830313038646164643861 -35626361356334313164616138653033636131353466303162643263616238646435313765373935 -38636166386530373662366463396666623563313363636131333666643561643335376161643430 -32663537323539376566646537326439656564306135316564663537316263313862393865643538 -37343038663036336166326530356137316430396138313834643633663136626438303532383438 -61393461303566643633633630666334376265653935653766343166393631386431396236353338 -32353464326463663961373761613838653737633039333266333039346632313334616336373934 -33373765383136633631636365303239636435666639366437353639333232393863343062346537 -34653830336435383163326337646564303866656537346361323930326434323831373832316364 -65653362333963613630373633613863343062313765303039626635343265393935323662633862 -36336136323365643432336434336265653365343962316533313735393930663433336237346563 -39373963363262613738386635623535386234393463356135376435303133643638643834616631 -35306339646533376464303534663664643937636430366235393533346539643966353563646635 -36633134653166663364333232653736663162633035363562366461633436373239643464613937 -31393034313762623235396239363532666436653564633139373736376463343863343933313036 -32666231396232353933303334636135656633636139633433343237666134303535343032393766 -36633261626164653463313233386438336363316133313931633263363235363738303235326262 -36383634323335646366353365663633663762653766663162363062373664633433663838323437 -35386364376564343237663337613662343062663433356133623538383433646535336237653836 -62646532666637373835373634623839353338396234336136316439313462356465663835363930 -31386262626330303335383432656164343064643339326531396130646564383566373635383264 -64356166643162393534316562623833646431643562383334336566636539353539386561373338 -36666336336535656630393037363065386462366163326662666335623135386637383833373835 -30663064653539623139626636623636623462343434636130373138383632663534656661633265 -39666634353765306261313833353530656233356664623234643837303065393039653630663461 -37636233313266623263623265373961386633623763386464333233326135656430373039306262 -38336137386564353434333665356631643534323764346462626265383131363537393231306535 -37393530393661373665616161613266626439653436663830373632393261623965303839363235 -61306534626161363466636331313265656238633664383265613435383731626130386163346165 -64623661386536313364346363636261656364363730353734373936356431336334343537326130 -36393232626263343764373338633530353064363165323039343338373463663239386237363766 -32616336323532656434623136343938356631373334303962653661373734333437636537353663 -30373239623065326537653833616666346262666135323134656537646339363231333434653933 -34376462623734346262653130343739356538646637396534303839626165626430663561333264 -33616333343561616664346530633033366130363165626138326361653463393530326363653236 -37666233323163636539393466396537626339333461363165333861636461626662393537393762 -65393139303564313938616234356661363733353165306637366566643430386635643266303436 -35313764626536356364323136383666336466373736303135333233623464353034343238316238 -32666663336164333439376663386235616464646132316530373438393761633764383138366463 -38313530666239336661633665323735636432383030393463393530346238643261383836333132 -33373637353532643138366239663439663639616435653037343765363064326230313535323561 -65313230613663663864366636646235633835616435363132343139656161633634323034383937 -39393439363963373530353161663737316666613436396430386262363438666635393538333264 -32653237363366663936373837383230633530623833633730326665623765323463373466323839 -39666563333465313135326139393731343235633966303436346135316665353239633832363065 -66663232643765623932666339376265323737386532633332643762343231636461376463613037 -34356164643063346134393931626265396361313432663335643431306439663964356237646334 -36663736323831313233633935396533643239313832353539323437663833616265363334633162 -36353034376433633062346635613164666231326530353563666134666536363131613466636633 -66363963346366326334393966626338633266393662613466643133666166323465333736383066 -39646161333664613031346137353733333435336664333366373331336333666662633339656336 -62373136656337353537623536393637623764323631666531613230313037383165646132346435 -61623737616336356230633564373832363031633339343235626535616664323938333865356262 -34303464613836623435656163633165623736623064613134613465363237323165643261656635 -39646363366565633532623737393061386634623465373466666261363938343832646165376338 -36666333656635303061313931616162386162313833616130633365373836363563343561343764 -37316338323439663561316136396538323037663335373864313935333333366235303838333737 -66326562373963376431663965656536626634356635663764333161626164643937316464396263 -30633734613663303632656630616363376165626666316234323137313065363735613332333539 -30646432373766383339303836373934653539643463383231333764653936303162346333343930 -61643761633035653935323233666330376237356530376561323331353035633234396638656531 -34366533653037356163666461343662373562303336633538366362663564643263666361643534 -62656262323464326236303232626363616532366539393636393733656232336363363630336261 -36366434666164613264653062373337346631373466323734336136636134306631343762373234 -32323230386165613738656230336362366661326138336335303664613634346430656539323562 -34623435623461393739366565646238376336386463663664363163663466333833613436366436 -66316338666432636563313665666336623136626261326336363232343835656361373534643837 -35666362373531343232613339616439323737636337393133363130613035633032656361316536 -38613532633266336661366565623233353563386364323236656631383338643439353639323334 -64366463356131613361633233343435396433393831613034616333653935613934363633663062 -65643938393366363535643062343734383163306466613663613131343039316330633666313634 -33316534623561666238623063333262343964326563383239633465643638633165393739393332 -66303435643765303562343236353536393133366339323535366437303335396364663837646135 -33663037396635346430363365373039623639333233383936346536373664373737636539376631 -31333136383934623437373639653262326561613234373433393636343264326562616666666464 -37363062336535666638366237626233383861376664306436303635373366316533343462333939 -39376561626530306535326635393137663936373863333561373235356162396333616634643032 -64663330373730373233373265306133306439326137363937653132386165616632343530386432 -62643664306338353038303938643637316365366332386638623466656261356339373164643965 -65653531356562623264363834376262623033353432633730653564653561366465306538396565 -65336630656436323032333533336466623865353237393837633061393837303730613164616466 -63633862643765333363666663663536353163613434623930646161303734323833646335643738 -65366664326332323637386435646562396265383234636133396539383639656664333431643231 -65346265616538373866373738326365636339663834666563363732623539383535306139366130 -66386662616432303030376531376634383631666563353862376564336434373265333033346632 -36383431366535333362653138373766663161373331306332363965663061346163396666313133 -64336230656166313661363738346362393232313333643836643832333461616233646334326535 -36623138396664353836363539623362386531373761653730323366323839643733633830303738 -61383239666133353166393731333737656639626233353166356432323032303431303766376430 -38663362363264373339666437366661356437393664613762356638393961643030373333613864 -66313132333037316463373465663832633764383636646631636237393363356136636164306166 -35383837363937346637663631313535616466313635656566386266376634343936663136313262 -30643466663430353831313161626134363266623061613431626265343434383661646231363063 -39333832646133616636643264636535323866656433363066336364316531393030643262663230 -30623432643666336364373834323737336631663432646234313564326364663561333539303534 -64386164376130336161356166633633616235666337316162646365383530393730666262633665 -33356235353536323539623235346162383864363039383435376164373238386335363030353965 -61393461633338326133643036393137373461656465643034333361323937303466643938643137 -66643262636138633934373732636237636132376330613762353838323031383735623838636331 -35323535663532636336386664313266373236373237623733646332613561313032626630326136 -34313134336138656162643639616333623639326262666637316532393334393835313164663239 -61323935353731336663663139646561396239303038626636663936386661386662373036643534 -32373136366631393732616232313335373065616263356364646532396163663733356665626633 -39376135636665616532336362313139616339306363366535353031626166303166613662303733 -35626339643832646663653864363435396631653761346663623830646364336365393236376233 -30656434336661313235653930326535346330666232303864373230343537313063313963313464 -32303063396362313436613338376433373230373739343230663664613766316561303566626366 -64336666623737303439623332373039393462336430653335643037663136333337623862313234 -33356364633430306365623362626337373464346461626530316336383961393265343232623862 -61306165613137653037656635356532303862666330663038373266613265343332663264366437 -65353737613035393432353234373461363465313765653633313835316565643162373033366263 -36346164366139633236623833346461313439393565323038386139346638346335336632616637 -65666230653336643061353135333633336363313937356237383036323734333630383532373063 -65623963616235323836383264326262623265346339346239616431663836633534313431366230 -35396162393739326164613735653937333864356632386239306133663664363033363561343637 -31323337326336383137343461343937313834343731336532363562393730613431393633356638 -36353764653634303330303934386462616463613039353263643463633530653332393165393962 -30663436303163383039373636383131613338323065363163306565323465616664646130303736 -37616230663632353633356237376565383563346465666632666332636136313266373262323131 -63666266346264383561353466316338326163383362613564336563353961306136333830653234 -66613931306338656462333836636535636539633263663065353732663738376438333136356265 -34383435373336393136653531636461646166643532346265376464346664383234363262333966 -38613930383837383137326265663966633763323262313065383465323538333264663635636532 -65343131343566356233376235643535396566346662346631663632333864333861303132356166 -35663265336430646163366666326663393565666366346435346564643961613938393961373731 -66393832636631613766303535636133653834313136663231393565306462646361306131346335 -33656264356530613362653366336365303735356331393439303232396538643334396235333539 -61613565393431666565646663643033363233626363656232343362653865306466623235313663 -35376532353230303562623736373930316438636337633132623164653637356138303365316232 -63363364636635383339313261356466353563653461393263663231333838396164333666356665 -35663562633864356139373538636261363934363335323137383237396139393730643861633738 -61666139316535316531336436353334353536623565363330663630306333313233313433643438 -63303863656238336566333135653963376336643765636664313330636332396163376563346561 -62646631396566333436396632663332643037326265653064653662373831326635643737623633 -36623034313066373838326462316439346531356564303539623433623032313764346261396437 -61356365623061323637373362663331366239356563323961626664383463663539353666633135 -34656439336237303836623937373063646633636362366161323564626663616231333630376139 -35643130633061333163373663633930663132333836663031383131633033383639383530373033 -34343838326630653536343834653230393264336164633834643338303065303835613464663638 -38303062396130383232366464383334656631373537643931613333636531393365373062633863 -31623833313361393737643064623437633166613763393362353265643434323931386134646233 -61616232306664373438393731303634373061383166613838663266323164363362323239323466 -65616461333236323561306135376563323436633264383830643836326137393562663932373139 -35306461353833633166666665653261376533613430386663393933626135636634326138313563 -38396663346633316265353635623866366361333831353562636436383034333766366537646536 -61396532613963383532396365346135336362636439313531353637643833633262626237356139 -38383365326264353165313637636230333165626566343835326632663665303333353363333134 -31363534393036353563316566313535633939373135363532626635346330303637653462363431 -34646332646630306432623266636539323832373533613637353938633861343339313435356266 -63306638396634323334613232366336356438616332386562653039373935353165663636313862 -32313037303763646234313835316266326335393534636261353663386139383838336430333163 -33316234333932333034666134333061323935636330316434333166623632313934333961393163 -30313164636434653062666437346562623464646639333437373634316530386231353530646663 -66303931333737643635633264323339633838313033313334396565346337393961633865636535 -32316262623032363531326135373463306136396334623431383263383461343434613734653033 -32323833643266613766343239653233366335636536663838383435306135613232353662363031 -33663039316137663065316434666537383231333465343138653931336139613036366230386632 -64623466303537613339626639303366353530643531653036613733646161343235353764353734 -63313330393933633262646437323531303537363331633164643339346565343863303165653633 -37313230616337613265346565623065663532356664313563646663343566653533376130383931 -62386236626536356262336438396362323163303237633861323164656533346363623039333165 -63353535663966666234333639616338623464333738313133393565613333303836313730376463 -34346561303762616261636265653239663034613234646366363161376262623162616632393236 -34613966306261383365326563646439653361393031363364383331393033613130336330356539 -35653738346334353332646565653661346239633230383033353833326430396165303031386266 -35313862336362633634303336656335616432636633633961333135306530333335383330346364 -61653838313332643663326361646431336131613866356536646430356636373761333339376364 -63613631633364373633326265643736386535616638643933386333643766363562613665656363 -35636332336465626539346262353662663061336635653164343936643730336539336136613339 -61366562633338363236326535383963373336326430323730306132666130333837306332616535 -35363933353433386236393437323666323166303235353065643263386530363764623131333138 -39353364306665653632633737666434383561386461626235303639326233353138393164636265 -61643134643736386338306230343532313936333762363538303838663763303763653439643239 -31346365363966623562656261646538336439356365323339653461623161343065666238623930 -37616539373131336331656161366666323230613732633339393230373665356566356264616136 -61623964393134303033616661633833306532356262653739633035353230613966663435666664 -65663964333661363038366130313965306532366464356166336136353162353536373738326264 -61333862393539646561326261353766343637653364346533616466323332303731366534323931 -37323831636636303930343334646638613132643032663761373732393035623431626530393365 -31383531366630343865653636386139393063636330356132363938366332363634346637393861 -30373833336565363335613631333235626634353434373066623262376664653332613462303431 -38343338623730306432326631633030623431376538616163613464326332363835396664383739 -37333432643038396661663536623032316335666435373537636566343361383438336265656338 -39383636386430353439396131316634303534626462346634353531646661393436363066373831 -33656331373138656564386231323035373534633031343331636434393435343733343232646532 -30313461613963383866353332333231656366623762656138333637333566393036613534653162 -62313137656638663431623362333035313964303661386236313337303039656632353137323233 -34663762613566353562636434353863363134626334333437303466376530663837353062346338 -33666231393630653161323130353637396636656161386465353062653465353036353233353763 -62663630356161636331363832363166653335333161333638653065363566623839313832646537 -38643134646138383035393062616166646431383835353262653136356465306265383939626561 -64333436366165313065346238383438623963306638303532623331333331313466343565613866 -39306536393139653036343231353232613134363739646361353031383230353238356566306631 -66376164353166643831326638616539363731613433393734343262333664663263346130366138 -66333530343339653664346462383832646532303366303535376237343961323235373163316363 -62383733396136376664643131326564353864363465626231303237663139356233303961653139 -39373565366436353930663436666637313731333766643631386636653862313139363262636365 -37333537346336393234343338303339646465633732353634666438663636616138366362396135 -63653638653433343835653533393364613135613266363764356634666633376433306266633465 -62626630633963663464376433333735656630336236626166666134393061326131376639333339 -30656637633630376134636361356661333165343238636237313138393563326439306433336532 -30353633373831656664666136616564366566366339336637623631383936623961306365643732 -31323734373165326230386134376262666430373365386536346164366638663833316336643364 -64346634653732383735643636393463366239636165323362363132386363643739653433366162 -356332636438346233316539353937353135 +31356139393861623532656336616366313761393934303335643036663733643533636531666366 +6434616434666133646465373437333064626533656335390a383566646463383839393130306439 +65373961613731326266373232643032333633313136376438303436636335613166643436313063 +3836666535396335390a326335356262636239363162376463613361343434653235333837323266 +33373962373734313333656231396533633764353462313034346366306232626238656133333836 +65616363346530323332313138386431363230653662626330386230366531633331373139633735 +63633433343632643339366632393865616239393137363266333265613566653630643230363435 +63623035613565303533336430643931363266376263383137303338653965353031663034393761 +64313638383862336264366263366233373466656131363161383934376338373033633134616230 +36616639316466393238393063313334623562663032613936663061363437336332633238376330 +33633261316162396464646262653065386435373738653361373135623265363031366664656430 +38633530646463313931333064343165333565353638653931336431656662303866363865636463 +32623763383263623261613735653634653938666636613037303139346639666239386466313137 +64313037323635373737623161623933306533366261333062653539623664633538366665326438 +30623837323337356237613866623662376238363035386336343963306439616531323165646561 +30313833376264623630373865373239663730333032333563336363653535373330646238323336 +38386431323033656531356630333564303335313230643764313832383133376535313261343563 +33356537663663396137623837393363376163306232363332633162376439386165633664363661 +34333964373033323034363739376264343630643563663730326264643030646130633538313134 +38306339616132633365656539613636653332373632396133656663666363623564396564323564 +35306664353835613265313335323961666336646335616364333963323135396131643430376238 +66646637393537326331666335376364333736383339383762313137623061343766656165663033 +32356638363064666137636337653231386437363232666336616337306365336533623662383238 +38373333666161396238343765386532363135303738616466306166623261356266356663363266 +37303937363563333734646563323430633430666561663565633262376263666232623033303132 +38383133623238306531343538663338353163636237626236653933353638663162306663656135 +36613062643135613333376335646363633139383334646366633065633336393766396430653564 +35616336663034633365306366383464643531303739376661616661636663323932393065626463 +62653764303839383030646663653633343934373434313539313065303433366132333235363638 +64346230313762616131396137393266613735613936303361643637366139636262373130626661 +38316538633766313739396362643832306138363534633564316565353765613639643235653637 +30656433363461666136386664653933303066303538666131386231616263333266383030356330 +39633736356435313831633437353636313531363833643061666432616138393038376235363263 +61623633646464653766313930386439356661633864346338656334613238633766343835643231 +37386537656539626536646133623730363636333963383137653932353864386331326433646165 +62306533666235623766613031336564333866613331313030373138306436376661303761333433 +61633630363931303866333739373832396233363432323039313831656563643039333730313131 +62316136303130663465313563643233666663616135303030343936393935613633643031623464 +36613633323934323436333634333837376338636263626536343735376134303465306266393834 +36336337313037613362383539363935613961636539653232323663386336336563366536383434 +33626331636637323334666336363935333766333563333937396464363837613738373334323036 +63616435643431623637393533313537316563366164333732646262346164613631356366356266 +61353764366463373866353339363964353666613230313932323834333236383265386339663139 +32303765363761396430393632303434663139643237336162373537306161356562333730663962 +37353432343231373364333637306235323337393062616535316535356638396165396237353630 +35653638626663366138343761303735663863366638636535373466326135636637366565363565 +64373139346432313234636333626365643566353461633235316561333662336461663231376430 +66343962613262333934656634393231623365373539333532356136643364383038326232373732 +36303266383061383833323430363165633738336163646430373162363366653137346565653961 +32656137393731663833613762643037393235326164643537333533363236626536346363613061 +66636138363631363663636465313866326236393238393236396536323561363136646335393739 +39646333336466386231323362396333363361363738386665663030626639313464396333313866 +65333131626532616137303539373130396439353331633665323133663165373335383135643861 +63383538653635323464333539316239386331343561306135363730323339313963646166373363 +38323161333630356466316135653034613966326166393533356137383330393334343864363337 +61626337316134323833316539393336636235353963393631353730383164333635336632303532 +66386164383662646163666139643437366630333562656465646137613133663730623935396464 +32646234633839346638313234316431356465343061363734633030326537376530656661373235 +61386664636235333431656532666535653236326238616133393439363561613461666162636639 +34343866646262613739643038646237616562336435383730306136613533386564653633656434 +62346432383737636337336533346263613731353939383563643436303633306331353736373464 +65393665326436396433356564623465373831313962386339323032316566666637633865643637 +32383638656536663235353165663330306435346364666435626538653665383834396230386633 +39626431346135393466333863366365343339393265653763323665383235383033643136313965 +34663564353131383761303164346232363833666261336537636162613132343830366263313033 +38636130666261653334666635643066666239383962663432363464303936326366643539646665 +62383964643438343735316132643137363634633133633437366337376633323031366133613930 +34313436643438333634366136363364396564656365646562383833633765656465343565643437 +35356463613165646363623238366631636130316437633432356463666232643839363336383664 +66636532326264313935343464613264386236316662356238396134313437376639653234313734 +65373731356333326538326336393431393737326637383436643536353161626261626238626265 +61356438356537373962363132383962636238343361613331613537666132303262303366616363 +32343533386536633965633761643834386165366139396565313664613333653232336561393236 +34633438336233363730633239653739633061336662336664333632343265363235643632653632 +62353962336265633534323231633135396231646537616530323633663437383836626538646563 +62623133653835346162383966346136383366356364623731633731393262326535636461303131 +33346566396132643336343966336532613431653563626664616535366237373864383462396230 +37313032306361626361656234653865646533633366623138666164663265363036633735656236 +39363334356433656138653033323635373837313138373866613932663938343337313638373765 +30656630633464313536336466643663653463336531646237326364613632656635346666343263 +63383730336362313066336264653538653633306430396461396464386130343336376666373266 +64626533386563346632333031343135373565393439626363353161643664313764363039373566 +63656432363136643164663765653939343537393031303935643730656337343634313436346438 +33396139626135366363313262343166616265346330303134653361653030656134393865663161 +38613938393238353965346333366236626538616438303438666438373266333064383631326261 +37306439373232346532343762383862313938613739613633626564393865663636623833653939 +64326431356333616137373931396534383338636236323733373234656535653234316335633937 +64666361363865333632313733386238363233343135636563393438313333313638353362663739 +34656639306632306336336638646133326534383036306566613733363336623032643630386264 +61346263373663356536643166316533356161376138633166366166366461353231343233323966 +66303565643663633733303439333431623562356335663366646666653765396632623865643433 +32353164643763363239393537326562393964366664303261393735643761663131393832363238 +36323730376532353333373832653934363662613638396464323735653666336135393965373666 +37633038386566623931346631396635393037333238393265333534636364376631633531633033 +39373436653661333635396237656536303730653865333537393966326431373232646466393239 +30653030633935313865616632623466613430323831633535343238383463393332356461373032 +36386538346362643430376362343162353830373661393830373437633765653736663330333531 +65323236366134633065326363383833336134626631396532653230653864636134656163356134 +33356530316664636432346430653765343532633238323661323664333965346432653566323230 +32326430616164653630323939363961663835373363316665383163316232656536636335323163 +33643830303731353733626631633262623566316538386631623032386162373135396637363666 +37383732383735636366653539396433323961343565303030313738646631663938663561336337 +32363434633834643637366538636130336636396433353538393439363036373037303163386365 +61623930356333643531376262633264333538333764336363373336346635356538303837303434 +38303064306237313132363264393436303364663665303638666262373962383431633739633639 +38636163376565623131633764353431393036376564396264396237663165323339663634643562 +34613038386264643662326261613065303962333036366637633838643566346366393032363230 +38663733333462393331623365313635326166653962336666623536383238666565383336336363 +35333062353839313235316134323062373935653763633534336164663063653538623561326430 +64353134333539626636633761616362616661343362663635373239383539343064626636303531 +38666433616261613362633261633830303661643731613635636466363230623837643036633632 +35643439396533633537333133343166623534623331306439396666643133646265623033373532 +38376231356635636562386335363537313564666663663135633063396532306665353834303835 +30353138663435623762323766336237616430623937633138616330653733336161626662656261 +66613464363066356662666631303133623033333862653361646630333263393630366637633033 +39393937613936386133633031376162643835313130393833396365316236313830646332646435 +37636535633531306334393334656139613632376638356331356638646632653837373565313065 +62656161323835386634376335366338333239663139626331386436393031303731363464666336 +65326464306361393033333435643266613864376133306537623335306561643565326431623732 +36363335323837323834633462323730313735363730336262356562616233346465383062366634 +32623262313064376538666664616232303339643762303638616666643836356464306138356638 +66363931613231396165356434646531353066643834383961656136656631303739313532313531 +66663163306266633366326239393839316134333035363236313264306233343433333534376466 +37336539353739363166313464643537656532663336613937356538373564366438303938353761 +30343835306365363931356666366336336564313237303532626365663564353761626461356538 +32393362646431373939636438613436643161643636346233623538666566316363306565353130 +38373862633034386238356262306561333933363465653731303763353763633331653635346463 +35366530356366316433623165373334393662393930656338383761373039643366316437383239 +62643535636337393231643835663461636332373565633633373134356562386465383130356262 +35326635346466373365373462656465623534613365343136666366643238383161663761633264 +62356135336466303230646535376565663761313737383262636638316466313437653137653566 +35393134333030616466313362316638343235353935316132623532336662323562656432633133 +35306361386666303730303832616538366162393639366163336334373230643462346166653032 +63636233323762363234663239353638633738356531613831356264363935333437616334613636 +66636432623465666465633266373732396238363730653662303432643932636338666336383635 +66646564363933366531656166343966313833326533633665663965356636376131666564386232 +64623865323539656632356334643936393663376335336535656662303535356163613634653131 +32383336373833323836356530356335373530663564376234616661323862666362323734636166 +35633537633937336132643666366566326166666263346362626331363931623565383933313336 +66323435313636333638653830373634326135326262623664346137623761633465386531663433 +30393437333761326165393337386266633364323432613265376332373761633135333737303936 +61346366343762346539636232333834633664643962623434363130336261333331663237356363 +33643533633863316661656237623134316536636661363839393064653536633738613939666430 +63646166666531666535303531313635386536373432343334656339323463636239313235333864 +65386464346230633761393236313536383635636330626135393735373566366435353636656338 +31386666393165376665323164643766313737366363633636396632383237636564313330386538 +64616165376263306339316139646436306536376639333263386636356337343462306465373939 +64663765623039396163346435653162383234383864326531303535653530306162373833643834 +62363261363663396330383231613731636666346330303930356137396639663234656331316633 +35363431346632346666643436313066333363376265336336636463323765323364626430313130 +33343437313735633832666262363934626337613233343666383437396637313936333861346631 +65323732623165313237306434623164316332303031613132653732373535313735663931326363 +38313337306163663833396430656465653232383863383832396331303937323539646235663337 +64316235316433623935623938613930613330313137653039623037363564376463656232633864 +61323233326462323038626262386138653238336563376130383839613532336235303335626466 +33313364323237323032323932313032393762656237396264333465306337376562643563373930 +64656666336632663563633534353363633036613164316431303330376635646562363433383731 +31613934646263366163363339623363666562656237313965363364376537613438303038363232 +37626136353934643265353235646161303065333464646332646265383537373163366561313464 +62633833613235323561373863313533656436343730363434653561346166616434623537343035 +34316263616639623035363336323430353434613239356434366337636137393563373937646363 +63363262393530653530313234336664646133343032633332343439643432633261616436333533 +39346339323365636634633531316464623431376464366237623733356436313562306263313837 +33326164656437613939323164363063666437326235626436303237656538333963646665386434 +36663236363861616563346534616464666237323965346438393066626261663232343638626161 +65323332633930316163623964663634396461326433303761626236643337303664633434636333 +65386364303539666638376634666366363438303831373264336233633339653031643864346532 +34653330623862336261316533383462306134303464303338613330336262623939653236333237 +34343834386339383064356662626131373135623832353638623964346435373431333935636531 +39393031626630323561333834393736636131626235646139646565396661383862386535346565 +36623963376538616532656332623139333937633166666364636563346466363536353733613165 +30383830653334386330303630353962376533616231396237316532373262336165623832643238 +65346461636637623065623863363161353235396363303832323865653561346534343361303366 +66613335313763303331386436336235653965663662393133363336363966313838373763336164 +39303065363233376239313639366263653436383332343934623234666661363764363164666162 +31363832373065633263323239333734313463373439393735663635346432616633343861363833 +35343765656435323866646561313238326362633534316239386166616230396365323664343435 +38306461316665303835663730393136356236356561303639353232643563323961366264316364 +61663461333265626338343365636534396632623664373263346136333836303865393435326631 +61646561336137656562346137386335623234346563376239633966643435343236366164333630 +61626135343935613563316630363733396165363937346639366561303137333337643163303131 +66633232643436373435396466326635333936376464626461343837616637386363663863303030 +34343135363431393931313433623062396432376563356633653036656534353066316466383136 +34633563666531323936633563643036313062376332376531353465396266376631353265306233 +65666638623831303537323330633336353534343930386236333531386161613330363161336339 +34623031343333636332653538613030613334366265383963656237643466313233306662353934 +30633434313066306463303439373235356338616561363266623064366164376662313061303265 +37383338363032626537396136656661613762383061353331326663376561366432326432346463 +34376336306534653935363831633832383830646661646231303231363161376337666438336261 +38623931633463376661613462323934393936333135346366383163636666653432316531333230 +63633763616136323337363466373465663731393535613462366638383834616261346634636234 +33343734313937316462383034313931346364333038366566353365656434656465663634383630 +30393461386239653364343037343435346136346632613839326139373962373534396430633739 +61366433626265343561316238643136326439383638396430393734363235633134666530336137 +39626335396336633930303863663833636530316637356539653963346261633661363637336437 +66353632333133386438393338386265323739653937346539316637633138626533313936383532 +64386463636636613435336166373062396232623934356165666239623934616333356334633431 +30653232353061646361323132653230303264326131643938653837316131356339333966636137 +66613537663731616662616432303436373038623865316332333439646538633431343038393834 +30383034653038333934333339626438393233323464613639653666636232373933383837663566 +35343261666463353435326266336134393433383133613036323635346338313033666534626237 +63636639353836333439623262626566333732353231373333383836323136393066316534356635 +30373365326662303361316661313231656562393236646266656230383035623738313666373861 +62323031653134363435613430393032663936653734626436306362323961396330386363366166 +65313062396532333937383236313838363662303966623965663336333930373134633330336338 +35636561376232653538373663626538323132373232373364626165353338363665393831386464 +31616561643965666631306362356565656665613965343835643164653363663834303039306666 +36353663643832643863383538303136656264326466333831366465396636383032393234383334 +63633930373131323961646535643639633030313533316336343838616364386361316539323233 +32376463633030383338646462383236663734333133663530636462326133313531363435373630 +61353664343239306431363137393131613539396664336337393632626463313061376438363735 +62623563383634396162303530633366333964316565313766383739333831363632333831633634 +32373863626664656333323535303031396664666435333139643965323439326536323563616164 +34333834363766646237613064363461333839383662306130326535633961316165323462383064 +61653162623636313137643535393139386230386162623337333437323630393634643632363337 +34316133333561306662633231353932303862363664386265383236323630326138613837393266 +64316537636332653932643430623631366333346134626534366337646630613534626631323439 +36303931353564666239383432666430303864313330613937373639663431353563646133613035 +36353432343332326437383662356236626561356530663664343262623537633238616263656333 +65316131613335343566656532323863393565663731306364353838386531643931393866343434 +31353764636265383734316239636464366236613637316561623433633334653236646537653665 +33376637366538656533386335623130663535353562366661353835363962626465643738306138 +36616564333364643238613237323937333666653865373437353235613034613266636438313836 +61316533646333343430343932373034613732653232656566333966343930333735316539316535 +34623064643236353837623831323937366261393636333265363534386263343636336163616534 +64333337353838616532306166616361353765363065663131643833616339336233666330613137 +32316162306132353232373864376333326332383663313563393162643630343230343035383937 +30653239363032623536303762383061393232363063376234356230323331393336313261643965 +63363837396231333331666630636165373865363232353539363233656464313566646364313537 +31613033303762323037643464383431373839326233376432313766393134373961343139366133 +30663865303137633730616437656134353164623661616431646661613235323064336339306461 +33663864633930613964343832316466646161613433653739666164346337353431663535653534 +35383332386133393761323731396263333265393765363465626432656236303734626434353734 +37333536356631613334346133356138323937646639313037646165313264643962396632643961 +65376533393631646665613331383130623936626365343938336131666265313466663638336361 +30383031363439346465653631356138613934653935386536643966306437366262386666313862 +37396662356536666132306435393231653230303136376161363364396263653732643839346561 +31636531663832613630343939626432303466303263613034356634356263323934303963376231 +33316631333130616266613433343134336465386461353631656238653632613665323139363461 +31643366316432333664346363363062643966623536346463303065666431333038316339343935 +36613932353638656662623136383563343461643165656266643133306163663634643738626534 +63643866636563653762376635396565373562626562643535623564646337396466323165633530 +64383730343561653137323465363265303364633832643562633162363037626237306166326335 +37653138656134613961393264643534396464323831663266363561616465393038306530643431 +37386137366362663534373464303463346231623437646465303534316638313831303935396237 +65613733646135386565386530316636373266393661353662663661323962356239323132333033 +65363364363462663238663861363937626462393135316362333561336139376534323164303939 +37643532396534653131623831613138303534376561313662366162383534633538653637633234 +30653739326364316130393237323139326663313239643430623665303231366434393639393964 +39643738363664393861663639323739613138646434666331313464343336383032656434363661 +65666232313462376338313163396331656139663665303465616235386261313964646238393562 +65313235303638343036646261633366663137343233333531316561323166343066316437646364 +31336333633731363261326161363963356633613935633338336532363134616435623631366439 +34353031393434343334326337376664363161386136613461633930376364313739323638336138 +33333161356339386633376234353531376532316431376538376139336230356637366461636639 +37363861383938656137326565386463633630626333316535633237356263336537333139346439 +38303539333662646132323166363034383137363863383562373066613664396163646133343631 +64636636643235613735393365393430326636623162653866653363343830316533356231343334 +36643533396262363031326232336263623764623061333138623334306636653763333130613336 +38656439393462376230316333653566373061333633633837386639313537333937303738613862 +65636662633539653565313630616138616432666638363631613233663563313631643637656563 +35663634326439376437353638653163616237306135623165643262386237353732313231396161 +39383430393939366563656535623933646434303934373563653464613439336665633431326630 +61396633613433366631343436633062343135303261666566656437303932363233363636646461 +64326365333865306532656566623333643364303739326132373963306430653232316561633932 +66663464663436313831363734626265366438386138356436636365636563333565356261613438 +35326239346235653633356133316535613030373031666365643837626135393330333730623566 +64356561363039636132346134306431373966663533333637396430363831646464316465303664 +34366631313331646631663032643263633938363136326437643036353661306430616165353766 +62633566656536656139333565306564663763303562353638663333333461633332623239323038 +39303930343363663238613532663732656364633363663330653132343034626665393738363030 +35303730663665353133663631306138646239636161343335316663616434333532303563313033 +37643833356331663638373031366665343839373461346262313137613163356331316131373634 +31326437376234373062366633393064366565303562343539626439616364383435623535393938 +62313866396139376131333561373932666131653361363233383732306338636537623164613661 +30396462306563633332343732313163346233353934393936663330613633373035346666333862 +64366362393439383166303732393765373561386165383536616366313537666362326462386638 +65366261326165363939383233643531623138353663623231333436663639663433363162613536 +62316463343365376436643861353261653964643965393932323334643164353238323933333465 +31393239626331323635656236343766663135316166326165313764613130313064616635393634 +32643731663030346464666335623463386538383538366361623761633766656232666466383230 +34313430323766336234616234363266626466373366356633613437663535396239303563333633 +62393737303339346238313136346635626234306261326336396164303865373163653432656263 +61666262643761343337326134663330646536386365656461313035316465623731653935353131 +63356234353832396139353866306564316564393663366161663337666465613365363666343763 +32323538346261386435636638396434363737653665336163636466363263643939323836396364 +34353865623662623130373066333330396134656331646466666335633131643531656261633136 +31396630663433396437396439633739376236393931653163656333353433396137336233313630 +35333934633931626364396130616665343733373962326565626230303430646534623161363366 +35653736656163366438303163393564616163316232613765306465396634663230346263386665 +31383938613832396231663766306632373762396364333135316166353532643531393865623764 +66613136373430363239323066363234316339646534323538653532303230396239626431336162 +64323536636637353034633034306236646463623465333435653531626535613938663136633630 +66666163333933626262376162313464373236663332306134393865326365656261373837346135 +33393935666235656138656263626466313938636164636661386164373734326366363739306231 +34393738373436326538616539386561303534663366643439353765653034303737313339666632 +62303932613263383437323064336363313361313930393966316238386131663235633162636437 +61303832353238366133353330383664373736383966616533666333393538316535383830346632 +61663230316465636664353065653863643330613964613032333666303235633139643236313139 +33353533306137636530363738343132386337626533633136316532666162373738623736356239 +31326637336532353138363463336334356437626138613439353337356339646162396264386563 +38653833383462333966663862646366336564666137666336326330333664643434323065393634 +36303933616135383462666566316364656562353163373463386536613431316564626261346235 +35626666396335343333653836633064393564666634323464303666376330653135663830373431 +30313663333364306433336662366361646237303230663838306461363339643966326166323363 +63336335343133386332303332313339353137343438386430306432373033326436313935613861 +61396633376435633061376463303833313266623737643131633133653330396536346365643037 +35396333303766393661616431633534633764343731376365663338656262373236396530356661 +34323164313130643538313261303738356234356664303866306462656565653865653831336262 +36616137323734636432656466613738346334666366336431666131323664383761306566653233 +32663735386461633030613038333336663365346561643532303261316631633266323232633930 +32636263643435336634363137363964663561616566643530313834333934376639613439666430 +65336138626262623266373336373437393535613065336236626563323966393132356464633835 +32306266346665383964653231353738306663383131616262353038386439626532616661656431 +38353564393636636165373331323765653761356634303735376666363764303037366462646366 +66666536396336613163393530623761386636313137663265663732363065643334613336663963 +33356266613163623466393666306163346536656432323235343065643438626234386433373961 +35653165666666656565303930316431313737393331383763366265333861353736396332363230 +30653066323037643066313435643838333339326339616439633637623562363065363732353933 +34363433303539373235346335306265636364343065626463363464396163613130303235396462 +65313037346437333763616638383232353930663564626666613732393435346238393066616231 +31323031316462323338353835353636346130343332613461623031303532623734616564626330 +32393632653133356166326535633561613733373561656464306262653330636233343732316635 +33383862393231313835353165663363653039366561646465636563356465303939323561643365 +34303065613665653662653434356461393430343736316437623537343466326462623339316366 +61353630396234356235613636643666336439346364643565623031643732373761343936373062 +39306234323631633265623234663230383264623263346632303664316631633237636537616162 +62653539363739396463366631636561336130653937323534376231396637333833323536303464 +36353532633865313730366365343932303731313135623633383661663030353664626632626266 +62323064393537326562616334316438386661336465613331643530643237373361353762333066 +32643165396631613831333564303462313039366639316661663932356662663835396435346430 +39666633353731653335333739376566363837623164353163323265323336636439323033613534 +62613632376330613230393138363661343562356339636565366139323839393761303236313166 +33386562336433613333353932366137353064393033303263646630626364393362313734326165 +34356237326533363830313162643432613161306266316231336533316265336363353735616136 +39663332336265393939656239393437353764623738346461626464623039653635373061383838 +64386539353664353638316333653431663063393366306338353766383639336462666535343338 +39306334376161383366616337356232623535613366376437636430613734346436366461663562 +39396134353464663862656163333664323739616130363061396363616464363762653332383736 +62356336666535363366326162353633613135306635393835316636633733356238396332613465 +62623539626633353965376239643661373861643164333034613937613663666161663030303834 +65343466346539613964363364386533383866333636343330393331383331323661613737633965 +38383239363933633037356630656539386562626433353037393938303630643934333865653432 +34373563363433626431353233343231303962636136393861633831656537373864626366346230 +38363532303539616434316262623332663134343836343362386336303733363338356234336266 +39393764653066303131633730373933616333653966346538383464363530373731386566633430 +33653839313833383239343461333764373062336137656235343665666361343639663935663061 +34343032333265383637316263663031633636653862363930313664643135333366313935353234 +36396566356265356537656162653365623737326531646536393733613832613830386434386336 +38383864656535353264646633366564333738663436353333636135373732366130363664356465 +35343334346130313930333731363865363236333162303237313862373136353161316431646431 +62363035623331613466336237333236376630653561636335323333616263643562633066373137 +61366262633934353133343930383764303734306462396239663333663463343163653335303561 +63376139303166623562636361613634316562653839393366343063376664333265336335663233 +36643237623361633836613235316262386337383432636234326637663666626132366662623366 +33613862343739383061636532633331393330623263656563643131623337633038623662653965 +65393361343533396461393837636533306230643234393464643839643237373134653138666632 +33356462323364313537346666646230663436636331313665653466666531343335393137366263 +39626165326666613238616463323363303930363364653161306233316638326534343334376161 +65643766303833393333326664336334613330333030353932326334323035616239303338323634 +65616565323736376265666335346238316136356163633637643136616635303462646130383930 +39663765646361623133353830656535313261366463663863356563663630396534623631313034 +63366336623661363866396432306537393338633336633030363733656231366634373433343236 +65323932653261383234613938663332343037636361623563386266653630643838646363386239 +38363530373039343035353663343637643936616566353730306366653165383032643031663165 +38383135363237326636343066396339323366313764373032633935353034353266633063613837 +66383632336563666137633965613761663064306339643161663466633337383230366466633364 +36613239353764653733343639386335646264353231636330376238663139346635366633353332 +65373736396130316136323435366635363231303534303934376264633063623932633738663136 +66636663363161343931373638333163383764643435366461393764316563366636313437313366 +62633837663363323366336563363961396264316232633437323839396662313333363336643535 +65623263316434656339363963396138323466303934313930333639346262316236303866393235 +31343438336462343833663439343363393939663065346562396331313739663361643734356333 +31363162323533613631316132383337643931333963363365623663373235316232393765306235 +63663466616130626132666166393338396236636531333337393433646136356162313331373137 +38616532656335343664376431323234323061653866303832323733373366343736623664666338 +66623333393361373431356431666165333037373664626661663630316366303031656332323839 +66323330383462303830653866323965383139643964383230373962623163303164353637646661 +30653534613031653939363439393131653433663730643732653130343765633334623964316165 +32356565346262633638373438313130366362303231613962623530346231643136366266383339 +36333865363461636233633266663335356336303866353938626335336434363064616466383965 +63336562383435346134353739663630383263323866626337376337616639643663626165333165 +37383763636663333936336438663062363832326438366364643733616238663135323366666234 +39363763663162313963396563666632393564343331386131396463363331613533623332613634 +38306562393637656665393764653536323162346565376236386263313666613566333234643731 +64616330363735646464636265643331643439303562353330616337613531666133623862353838 +39613362626663313438343130363464396262626166396132643635626238313562396334633236 +36353239353437653663393062346163646137393061363162653433303366363165393237366530 +65313865626532333562303637373930366465303136313562633630643862643562353333316133 +37366435323765366232333132346637316537386366343966663033623263313837343131343162 +30376235666466353739383332326337393731613065613139656138326630656464626334623333 +36383932353330396563663633376231343431633464363863313335386565316437336666636561 +66383138616132616332666339626439636537376135626332643932646365636139663836386431 +36653431663239363930653066653266633239373330633661373839636435623164646535393465 +65643937366266336631396362303065363039653266613531623464393032666465373336373831 +34306666303337353836346562356231663038643165376130323239633061656433393438343231 +66383631363834616662396132383864313835323065306538616465623837656363613931356630 +62373562616639373237333232353637613566666161383532363633616562363130373832666261 +34343934306332333738633563353033386437343036336231613932356266656234343038626636 +31363864313065633638626632366163633839636466353735353339623734323632356539393230 +32383835333062313933643832613035396534363065383661363133393638336266643463376539 +31663635306265656636373738326638363165663838303030396533383435363638333532356632 +35633865386338656637666465316665303962376562613961353936316537386534326138313263 +64363061363665626365656438663366383333346339383039663038393438383732663964343030 +61626332393736623937316563313036346265333733363438393738383936636333656535633061 +33646161343632353535363831323561643662626633393564636431336339613961396635616638 +38656138303861313663633733663938646131666562313832386531363432613161633734633132 +35316165653462303466356439363137313932356264636161393435396665343831376138363639 +33646330313964623166333235343537626131363966393334346332326432616661656366663935 +61383239316435393334666161363235383836363332393939643832633634363165613030376631 +65643835323039383963383465386136626564643666623938623237393466383935313137373965 +34303463386133316536633436343333623939393731616339646133356161626438373862363561 +36643366653935323234356534336233323937653130643230633631663366626433666266343663 +30316230363564663935353134316237396133383937316538623239383134616535306634353163 +35616336383139323765636562303563616536653230323766633964326538333334643962316261 +66303066663738303262386431653663633032383262656438363836653131646434383133386133 +61613930326334393236663535356261353462343838663435373531383163666462346661326431 +33613834636231613531646134323738616163303662356332613731643965336164633731643232 +36626438663835306664306534656563313938323830646461303334383466356363663462663961 +37666534386133356338643838646561313235613462346434313062376234376465373439313931 +36613765376561333662376532626539346431373639653564363932323064386466306331383639 +34353861316561373766336136323538323230316331393032376465633134333462316362663166 +66396534346136383338313937663230306264376162643631383065623630346665363966613162 +62643539383336366561303737303662656233653138353363613963613233303462323430633935 +3733 diff --git a/coreos-config/inventory.yaml b/coreos-config/inventory.yaml index 7518fa2..7a871e5 100644 --- a/coreos-config/inventory.yaml +++ b/coreos-config/inventory.yaml @@ -11,6 +11,8 @@ all: ansible_host: 192.168.0.73 ansible_user: core network_interface: ens3 + vars: + service_base: "{{ playbook_dir }}/services" children: unprovisioned: hosts: diff --git a/coreos-config/roles/compose_project/templates/ba-gitlab-runner/.env b/coreos-config/plays/services/ba-gitlab-runner/.env similarity index 100% rename from coreos-config/roles/compose_project/templates/ba-gitlab-runner/.env rename to coreos-config/plays/services/ba-gitlab-runner/.env diff --git a/coreos-config/roles/compose_project/templates/ba-gitlab-runner/docker-compose.yaml b/coreos-config/plays/services/ba-gitlab-runner/docker-compose.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/ba-gitlab-runner/docker-compose.yaml rename to coreos-config/plays/services/ba-gitlab-runner/docker-compose.yaml diff --git a/coreos-config/roles/compose_project/templates/blog/.env b/coreos-config/plays/services/blog/.env similarity index 100% rename from coreos-config/roles/compose_project/templates/blog/.env rename to coreos-config/plays/services/blog/.env diff --git a/coreos-config/roles/compose_project/templates/blog/docker-compose.yaml b/coreos-config/plays/services/blog/docker-compose.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/blog/docker-compose.yaml rename to coreos-config/plays/services/blog/docker-compose.yaml diff --git a/coreos-config/roles/compose_project/templates/caddy/.env b/coreos-config/plays/services/caddy/.env similarity index 100% rename from coreos-config/roles/compose_project/templates/caddy/.env rename to coreos-config/plays/services/caddy/.env diff --git a/coreos-config/roles/compose_project/templates/caddy/Caddyfile b/coreos-config/plays/services/caddy/Caddyfile similarity index 100% rename from coreos-config/roles/compose_project/templates/caddy/Caddyfile rename to coreos-config/plays/services/caddy/Caddyfile diff --git a/coreos-config/roles/compose_project/templates/caddy/docker-compose.yaml b/coreos-config/plays/services/caddy/docker-compose.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/caddy/docker-compose.yaml rename to coreos-config/plays/services/caddy/docker-compose.yaml diff --git a/coreos-config/roles/compose_project/templates/diun/.env b/coreos-config/plays/services/diun/.env similarity index 100% rename from coreos-config/roles/compose_project/templates/diun/.env rename to coreos-config/plays/services/diun/.env diff --git a/coreos-config/roles/compose_project/templates/diun/diun.yml b/coreos-config/plays/services/diun/diun.yml similarity index 100% rename from coreos-config/roles/compose_project/templates/diun/diun.yml rename to coreos-config/plays/services/diun/diun.yml diff --git a/coreos-config/roles/compose_project/templates/diun/docker-compose.yaml b/coreos-config/plays/services/diun/docker-compose.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/diun/docker-compose.yaml rename to coreos-config/plays/services/diun/docker-compose.yaml diff --git a/coreos-config/roles/compose_project/templates/diun/watch.yml b/coreos-config/plays/services/diun/watch.yml similarity index 100% rename from coreos-config/roles/compose_project/templates/diun/watch.yml rename to coreos-config/plays/services/diun/watch.yml diff --git a/coreos-config/roles/compose_project/templates/gitea-runner/.env b/coreos-config/plays/services/gitea-runner/.env similarity index 100% rename from coreos-config/roles/compose_project/templates/gitea-runner/.env rename to coreos-config/plays/services/gitea-runner/.env diff --git a/coreos-config/roles/compose_project/templates/gitea-runner/docker-compose.yaml b/coreos-config/plays/services/gitea-runner/docker-compose.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/gitea-runner/docker-compose.yaml rename to coreos-config/plays/services/gitea-runner/docker-compose.yaml diff --git a/coreos-config/roles/compose_project/templates/gitea/.env b/coreos-config/plays/services/gitea/.env similarity index 100% rename from coreos-config/roles/compose_project/templates/gitea/.env rename to coreos-config/plays/services/gitea/.env diff --git a/coreos-config/roles/compose_project/templates/gitea/docker-compose.yaml b/coreos-config/plays/services/gitea/docker-compose.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/gitea/docker-compose.yaml rename to coreos-config/plays/services/gitea/docker-compose.yaml diff --git a/coreos-config/roles/compose_project/templates/hedgedoc/.env b/coreos-config/plays/services/hedgedoc/.env similarity index 100% rename from coreos-config/roles/compose_project/templates/hedgedoc/.env rename to coreos-config/plays/services/hedgedoc/.env diff --git a/coreos-config/roles/compose_project/templates/hedgedoc/docker-compose.yaml b/coreos-config/plays/services/hedgedoc/docker-compose.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/hedgedoc/docker-compose.yaml rename to coreos-config/plays/services/hedgedoc/docker-compose.yaml diff --git a/coreos-config/roles/compose_project/templates/keycloak/.env b/coreos-config/plays/services/keycloak/.env similarity index 100% rename from coreos-config/roles/compose_project/templates/keycloak/.env rename to coreos-config/plays/services/keycloak/.env diff --git a/coreos-config/roles/compose_project/templates/keycloak/docker-compose.yaml b/coreos-config/plays/services/keycloak/docker-compose.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/keycloak/docker-compose.yaml rename to coreos-config/plays/services/keycloak/docker-compose.yaml diff --git a/coreos-config/roles/compose_project/templates/kuma/.env b/coreos-config/plays/services/kuma/.env similarity index 100% rename from coreos-config/roles/compose_project/templates/kuma/.env rename to coreos-config/plays/services/kuma/.env diff --git a/coreos-config/roles/compose_project/templates/kuma/docker-compose.yaml b/coreos-config/plays/services/kuma/docker-compose.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/kuma/docker-compose.yaml rename to coreos-config/plays/services/kuma/docker-compose.yaml diff --git a/coreos-config/roles/compose_project/templates/linktree/.env b/coreos-config/plays/services/linktree/.env similarity index 100% rename from coreos-config/roles/compose_project/templates/linktree/.env rename to coreos-config/plays/services/linktree/.env diff --git a/coreos-config/roles/compose_project/templates/linktree/docker-compose.yaml b/coreos-config/plays/services/linktree/docker-compose.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/linktree/docker-compose.yaml rename to coreos-config/plays/services/linktree/docker-compose.yaml diff --git a/coreos-config/roles/compose_project/templates/matrix/.env b/coreos-config/plays/services/matrix/.env similarity index 100% rename from coreos-config/roles/compose_project/templates/matrix/.env rename to coreos-config/plays/services/matrix/.env diff --git a/coreos-config/roles/compose_project/templates/matrix/Caddyfile b/coreos-config/plays/services/matrix/Caddyfile similarity index 100% rename from coreos-config/roles/compose_project/templates/matrix/Caddyfile rename to coreos-config/plays/services/matrix/Caddyfile diff --git a/coreos-config/roles/compose_project/templates/matrix/cinny-config.json b/coreos-config/plays/services/matrix/cinny-config.json similarity index 100% rename from coreos-config/roles/compose_project/templates/matrix/cinny-config.json rename to coreos-config/plays/services/matrix/cinny-config.json diff --git a/coreos-config/roles/compose_project/templates/matrix/docker-compose.yaml b/coreos-config/plays/services/matrix/docker-compose.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/matrix/docker-compose.yaml rename to coreos-config/plays/services/matrix/docker-compose.yaml diff --git a/coreos-config/roles/compose_project/templates/matrix/mautrix-signal/config.yaml b/coreos-config/plays/services/matrix/mautrix-signal/config.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/matrix/mautrix-signal/config.yaml rename to coreos-config/plays/services/matrix/mautrix-signal/config.yaml diff --git a/coreos-config/roles/compose_project/templates/matrix/mautrix-signal/registration.yaml b/coreos-config/plays/services/matrix/mautrix-signal/registration.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/matrix/mautrix-signal/registration.yaml rename to coreos-config/plays/services/matrix/mautrix-signal/registration.yaml diff --git a/coreos-config/roles/compose_project/templates/matrix/mautrix-slack/config.yaml b/coreos-config/plays/services/matrix/mautrix-slack/config.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/matrix/mautrix-slack/config.yaml rename to coreos-config/plays/services/matrix/mautrix-slack/config.yaml diff --git a/coreos-config/roles/compose_project/templates/matrix/mautrix-slack/registration.yaml b/coreos-config/plays/services/matrix/mautrix-slack/registration.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/matrix/mautrix-slack/registration.yaml rename to coreos-config/plays/services/matrix/mautrix-slack/registration.yaml diff --git a/coreos-config/roles/compose_project/templates/matrix/mautrix-telegram/config.yaml b/coreos-config/plays/services/matrix/mautrix-telegram/config.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/matrix/mautrix-telegram/config.yaml rename to coreos-config/plays/services/matrix/mautrix-telegram/config.yaml diff --git a/coreos-config/roles/compose_project/templates/matrix/mautrix-telegram/registration.yaml b/coreos-config/plays/services/matrix/mautrix-telegram/registration.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/matrix/mautrix-telegram/registration.yaml rename to coreos-config/plays/services/matrix/mautrix-telegram/registration.yaml diff --git a/coreos-config/roles/compose_project/templates/matrix/synapse-config/homeserver.yaml b/coreos-config/plays/services/matrix/synapse-config/homeserver.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/matrix/synapse-config/homeserver.yaml rename to coreos-config/plays/services/matrix/synapse-config/homeserver.yaml diff --git a/coreos-config/roles/compose_project/templates/matrix/synapse-config/tobiasmanske.de.log.config b/coreos-config/plays/services/matrix/synapse-config/tobiasmanske.de.log.config similarity index 100% rename from coreos-config/roles/compose_project/templates/matrix/synapse-config/tobiasmanske.de.log.config rename to coreos-config/plays/services/matrix/synapse-config/tobiasmanske.de.log.config diff --git a/coreos-config/roles/compose_project/templates/matrix/synapse-config/tobiasmanske.de.signing.key b/coreos-config/plays/services/matrix/synapse-config/tobiasmanske.de.signing.key similarity index 100% rename from coreos-config/roles/compose_project/templates/matrix/synapse-config/tobiasmanske.de.signing.key rename to coreos-config/plays/services/matrix/synapse-config/tobiasmanske.de.signing.key diff --git a/coreos-config/plays/services/maubot/.env b/coreos-config/plays/services/maubot/.env new file mode 100644 index 0000000..1130fcd --- /dev/null +++ b/coreos-config/plays/services/maubot/.env @@ -0,0 +1 @@ +COMPOSE_PROJECT_NAME=maubot diff --git a/coreos-config/plays/services/maubot/docker-compose.yaml b/coreos-config/plays/services/maubot/docker-compose.yaml new file mode 100644 index 0000000..c8bfee5 --- /dev/null +++ b/coreos-config/plays/services/maubot/docker-compose.yaml @@ -0,0 +1,11 @@ +services: + maubot: + image: dock.mau.dev/maubot/maubot:latest + restart: unless-stopped + ports: + - "{{ maubot.port }}:29316" + volumes: + - data:/data:z + +volumes: + data: diff --git a/coreos-config/roles/compose_project/templates/miniflux/.env b/coreos-config/plays/services/miniflux/.env similarity index 100% rename from coreos-config/roles/compose_project/templates/miniflux/.env rename to coreos-config/plays/services/miniflux/.env diff --git a/coreos-config/roles/compose_project/templates/miniflux/docker-compose.yaml b/coreos-config/plays/services/miniflux/docker-compose.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/miniflux/docker-compose.yaml rename to coreos-config/plays/services/miniflux/docker-compose.yaml diff --git a/coreos-config/roles/compose_project/templates/minio/.env b/coreos-config/plays/services/minio/.env similarity index 100% rename from coreos-config/roles/compose_project/templates/minio/.env rename to coreos-config/plays/services/minio/.env diff --git a/coreos-config/roles/compose_project/templates/minio/docker-compose.yaml b/coreos-config/plays/services/minio/docker-compose.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/minio/docker-compose.yaml rename to coreos-config/plays/services/minio/docker-compose.yaml diff --git a/coreos-config/roles/compose_project/templates/nextcloud/.env b/coreos-config/plays/services/nextcloud/.env similarity index 100% rename from coreos-config/roles/compose_project/templates/nextcloud/.env rename to coreos-config/plays/services/nextcloud/.env diff --git a/coreos-config/roles/compose_project/templates/nextcloud/config.php b/coreos-config/plays/services/nextcloud/config.php similarity index 100% rename from coreos-config/roles/compose_project/templates/nextcloud/config.php rename to coreos-config/plays/services/nextcloud/config.php diff --git a/coreos-config/roles/compose_project/templates/nextcloud/docker-compose.yaml b/coreos-config/plays/services/nextcloud/docker-compose.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/nextcloud/docker-compose.yaml rename to coreos-config/plays/services/nextcloud/docker-compose.yaml diff --git a/coreos-config/roles/compose_project/templates/pantalaimon/.env b/coreos-config/plays/services/pantalaimon/.env similarity index 100% rename from coreos-config/roles/compose_project/templates/pantalaimon/.env rename to coreos-config/plays/services/pantalaimon/.env diff --git a/coreos-config/roles/compose_project/templates/pantalaimon/docker-compose.yaml b/coreos-config/plays/services/pantalaimon/docker-compose.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/pantalaimon/docker-compose.yaml rename to coreos-config/plays/services/pantalaimon/docker-compose.yaml diff --git a/coreos-config/roles/compose_project/templates/pantalaimon/pantalaimon.conf b/coreos-config/plays/services/pantalaimon/pantalaimon.conf similarity index 100% rename from coreos-config/roles/compose_project/templates/pantalaimon/pantalaimon.conf rename to coreos-config/plays/services/pantalaimon/pantalaimon.conf diff --git a/coreos-config/roles/compose_project/templates/prometheus/.env b/coreos-config/plays/services/prometheus/.env similarity index 100% rename from coreos-config/roles/compose_project/templates/prometheus/.env rename to coreos-config/plays/services/prometheus/.env diff --git a/coreos-config/roles/compose_project/templates/prometheus/alertmanager.yml b/coreos-config/plays/services/prometheus/alertmanager.yml similarity index 100% rename from coreos-config/roles/compose_project/templates/prometheus/alertmanager.yml rename to coreos-config/plays/services/prometheus/alertmanager.yml diff --git a/coreos-config/roles/compose_project/templates/prometheus/docker-compose.yaml b/coreos-config/plays/services/prometheus/docker-compose.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/prometheus/docker-compose.yaml rename to coreos-config/plays/services/prometheus/docker-compose.yaml diff --git a/coreos-config/roles/compose_project/templates/prometheus/grafana-ds.yml b/coreos-config/plays/services/prometheus/grafana-ds.yml similarity index 100% rename from coreos-config/roles/compose_project/templates/prometheus/grafana-ds.yml rename to coreos-config/plays/services/prometheus/grafana-ds.yml diff --git a/coreos-config/roles/compose_project/templates/prometheus/prometheus.yml b/coreos-config/plays/services/prometheus/prometheus.yml similarity index 100% rename from coreos-config/roles/compose_project/templates/prometheus/prometheus.yml rename to coreos-config/plays/services/prometheus/prometheus.yml diff --git a/coreos-config/roles/compose_project/templates/prometheus/rules/cadvisor.yaml b/coreos-config/plays/services/prometheus/rules/cadvisor.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/prometheus/rules/cadvisor.yaml rename to coreos-config/plays/services/prometheus/rules/cadvisor.yaml diff --git a/coreos-config/roles/compose_project/templates/prometheus/rules/node.yaml b/coreos-config/plays/services/prometheus/rules/node.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/prometheus/rules/node.yaml rename to coreos-config/plays/services/prometheus/rules/node.yaml diff --git a/coreos-config/roles/compose_project/templates/prometheus/rules/prometheus.yaml b/coreos-config/plays/services/prometheus/rules/prometheus.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/prometheus/rules/prometheus.yaml rename to coreos-config/plays/services/prometheus/rules/prometheus.yaml diff --git a/coreos-config/roles/compose_project/templates/radicale/.env b/coreos-config/plays/services/radicale/.env similarity index 100% rename from coreos-config/roles/compose_project/templates/radicale/.env rename to coreos-config/plays/services/radicale/.env diff --git a/coreos-config/roles/compose_project/templates/radicale/config b/coreos-config/plays/services/radicale/config similarity index 100% rename from coreos-config/roles/compose_project/templates/radicale/config rename to coreos-config/plays/services/radicale/config diff --git a/coreos-config/roles/compose_project/templates/radicale/docker-compose.yaml b/coreos-config/plays/services/radicale/docker-compose.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/radicale/docker-compose.yaml rename to coreos-config/plays/services/radicale/docker-compose.yaml diff --git a/coreos-config/roles/compose_project/templates/radicale/users b/coreos-config/plays/services/radicale/users similarity index 100% rename from coreos-config/roles/compose_project/templates/radicale/users rename to coreos-config/plays/services/radicale/users diff --git a/coreos-config/roles/compose_project/templates/registry/.env b/coreos-config/plays/services/registry/.env similarity index 100% rename from coreos-config/roles/compose_project/templates/registry/.env rename to coreos-config/plays/services/registry/.env diff --git a/coreos-config/roles/compose_project/templates/registry/config.yaml b/coreos-config/plays/services/registry/config.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/registry/config.yaml rename to coreos-config/plays/services/registry/config.yaml diff --git a/coreos-config/roles/compose_project/templates/registry/docker-compose.yaml b/coreos-config/plays/services/registry/docker-compose.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/registry/docker-compose.yaml rename to coreos-config/plays/services/registry/docker-compose.yaml diff --git a/coreos-config/roles/compose_project/templates/registry/htpasswd b/coreos-config/plays/services/registry/htpasswd similarity index 100% rename from coreos-config/roles/compose_project/templates/registry/htpasswd rename to coreos-config/plays/services/registry/htpasswd diff --git a/coreos-config/roles/compose_project/templates/repo_proxy/.env b/coreos-config/plays/services/repo_proxy/.env similarity index 100% rename from coreos-config/roles/compose_project/templates/repo_proxy/.env rename to coreos-config/plays/services/repo_proxy/.env diff --git a/coreos-config/roles/compose_project/templates/repo_proxy/Caddyfile b/coreos-config/plays/services/repo_proxy/Caddyfile similarity index 100% rename from coreos-config/roles/compose_project/templates/repo_proxy/Caddyfile rename to coreos-config/plays/services/repo_proxy/Caddyfile diff --git a/coreos-config/roles/compose_project/templates/repo_proxy/docker-compose.yaml b/coreos-config/plays/services/repo_proxy/docker-compose.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/repo_proxy/docker-compose.yaml rename to coreos-config/plays/services/repo_proxy/docker-compose.yaml diff --git a/coreos-config/roles/compose_project/templates/repo_proxy/www/index.html b/coreos-config/plays/services/repo_proxy/www/index.html similarity index 100% rename from coreos-config/roles/compose_project/templates/repo_proxy/www/index.html rename to coreos-config/plays/services/repo_proxy/www/index.html diff --git a/coreos-config/roles/compose_project/templates/search/.env b/coreos-config/plays/services/search/.env similarity index 100% rename from coreos-config/roles/compose_project/templates/search/.env rename to coreos-config/plays/services/search/.env diff --git a/coreos-config/roles/compose_project/templates/search/docker-compose.yaml b/coreos-config/plays/services/search/docker-compose.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/search/docker-compose.yaml rename to coreos-config/plays/services/search/docker-compose.yaml diff --git a/coreos-config/roles/compose_project/templates/search/settings.yml b/coreos-config/plays/services/search/settings.yml similarity index 100% rename from coreos-config/roles/compose_project/templates/search/settings.yml rename to coreos-config/plays/services/search/settings.yml diff --git a/coreos-config/roles/compose_project/templates/search/uwsgi.ini b/coreos-config/plays/services/search/uwsgi.ini similarity index 100% rename from coreos-config/roles/compose_project/templates/search/uwsgi.ini rename to coreos-config/plays/services/search/uwsgi.ini diff --git a/coreos-config/roles/compose_project/templates/syncthing/.env b/coreos-config/plays/services/syncthing/.env similarity index 100% rename from coreos-config/roles/compose_project/templates/syncthing/.env rename to coreos-config/plays/services/syncthing/.env diff --git a/coreos-config/roles/compose_project/templates/syncthing/config/cert.pem b/coreos-config/plays/services/syncthing/config/cert.pem similarity index 100% rename from coreos-config/roles/compose_project/templates/syncthing/config/cert.pem rename to coreos-config/plays/services/syncthing/config/cert.pem diff --git a/coreos-config/roles/compose_project/templates/syncthing/config/config.xml b/coreos-config/plays/services/syncthing/config/config.xml similarity index 100% rename from coreos-config/roles/compose_project/templates/syncthing/config/config.xml rename to coreos-config/plays/services/syncthing/config/config.xml diff --git a/coreos-config/roles/compose_project/templates/syncthing/config/key.pem b/coreos-config/plays/services/syncthing/config/key.pem similarity index 100% rename from coreos-config/roles/compose_project/templates/syncthing/config/key.pem rename to coreos-config/plays/services/syncthing/config/key.pem diff --git a/coreos-config/roles/compose_project/templates/syncthing/docker-compose.yaml b/coreos-config/plays/services/syncthing/docker-compose.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/syncthing/docker-compose.yaml rename to coreos-config/plays/services/syncthing/docker-compose.yaml diff --git a/coreos-config/roles/compose_project/templates/thelounge/.env b/coreos-config/plays/services/thelounge/.env similarity index 100% rename from coreos-config/roles/compose_project/templates/thelounge/.env rename to coreos-config/plays/services/thelounge/.env diff --git a/coreos-config/roles/compose_project/templates/thelounge/docker-compose.yaml b/coreos-config/plays/services/thelounge/docker-compose.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/thelounge/docker-compose.yaml rename to coreos-config/plays/services/thelounge/docker-compose.yaml diff --git a/coreos-config/roles/compose_project/templates/traefik/.env b/coreos-config/plays/services/traefik/.env similarity index 100% rename from coreos-config/roles/compose_project/templates/traefik/.env rename to coreos-config/plays/services/traefik/.env diff --git a/coreos-config/roles/compose_project/templates/traefik/docker-compose.yaml b/coreos-config/plays/services/traefik/docker-compose.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/traefik/docker-compose.yaml rename to coreos-config/plays/services/traefik/docker-compose.yaml diff --git a/coreos-config/roles/compose_project/templates/traefik/dynamic.yaml b/coreos-config/plays/services/traefik/dynamic.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/traefik/dynamic.yaml rename to coreos-config/plays/services/traefik/dynamic.yaml diff --git a/coreos-config/roles/compose_project/templates/traefik/traefik.yaml b/coreos-config/plays/services/traefik/traefik.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/traefik/traefik.yaml rename to coreos-config/plays/services/traefik/traefik.yaml diff --git a/coreos-config/roles/compose_project/templates/tubearchivist/.env b/coreos-config/plays/services/tubearchivist/.env similarity index 100% rename from coreos-config/roles/compose_project/templates/tubearchivist/.env rename to coreos-config/plays/services/tubearchivist/.env diff --git a/coreos-config/roles/compose_project/templates/tubearchivist/docker-compose.yaml b/coreos-config/plays/services/tubearchivist/docker-compose.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/tubearchivist/docker-compose.yaml rename to coreos-config/plays/services/tubearchivist/docker-compose.yaml diff --git a/coreos-config/roles/compose_project/templates/watchtower/.env b/coreos-config/plays/services/watchtower/.env similarity index 100% rename from coreos-config/roles/compose_project/templates/watchtower/.env rename to coreos-config/plays/services/watchtower/.env diff --git a/coreos-config/roles/compose_project/templates/watchtower/docker-compose.yaml b/coreos-config/plays/services/watchtower/docker-compose.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/watchtower/docker-compose.yaml rename to coreos-config/plays/services/watchtower/docker-compose.yaml diff --git a/coreos-config/roles/compose_project/templates/wireguard/.env b/coreos-config/plays/services/wireguard/.env similarity index 100% rename from coreos-config/roles/compose_project/templates/wireguard/.env rename to coreos-config/plays/services/wireguard/.env diff --git a/coreos-config/roles/compose_project/templates/wireguard/docker-compose.yaml b/coreos-config/plays/services/wireguard/docker-compose.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/wireguard/docker-compose.yaml rename to coreos-config/plays/services/wireguard/docker-compose.yaml diff --git a/coreos-config/roles/compose_project/templates/wireguard/wg0.conf b/coreos-config/plays/services/wireguard/wg0.conf similarity index 100% rename from coreos-config/roles/compose_project/templates/wireguard/wg0.conf rename to coreos-config/plays/services/wireguard/wg0.conf diff --git a/coreos-config/roles/compose_project/templates/wkd/.env b/coreos-config/plays/services/wkd/.env similarity index 100% rename from coreos-config/roles/compose_project/templates/wkd/.env rename to coreos-config/plays/services/wkd/.env diff --git a/coreos-config/roles/compose_project/templates/wkd/Caddyfile b/coreos-config/plays/services/wkd/Caddyfile similarity index 100% rename from coreos-config/roles/compose_project/templates/wkd/Caddyfile rename to coreos-config/plays/services/wkd/Caddyfile diff --git a/coreos-config/roles/compose_project/templates/wkd/data/tobiasmanske.de/dizb37aqa5h4skgu7jf1xjr4q71w4paq b/coreos-config/plays/services/wkd/data/tobiasmanske.de/dizb37aqa5h4skgu7jf1xjr4q71w4paq similarity index 100% rename from coreos-config/roles/compose_project/templates/wkd/data/tobiasmanske.de/dizb37aqa5h4skgu7jf1xjr4q71w4paq rename to coreos-config/plays/services/wkd/data/tobiasmanske.de/dizb37aqa5h4skgu7jf1xjr4q71w4paq diff --git a/coreos-config/roles/compose_project/templates/wkd/data/tobiasmanske.de/nfse4krpjzrwtbwmo7m9hujznmf79t15 b/coreos-config/plays/services/wkd/data/tobiasmanske.de/nfse4krpjzrwtbwmo7m9hujznmf79t15 similarity index 100% rename from coreos-config/roles/compose_project/templates/wkd/data/tobiasmanske.de/nfse4krpjzrwtbwmo7m9hujznmf79t15 rename to coreos-config/plays/services/wkd/data/tobiasmanske.de/nfse4krpjzrwtbwmo7m9hujznmf79t15 diff --git a/coreos-config/roles/compose_project/templates/wkd/docker-compose.yaml b/coreos-config/plays/services/wkd/docker-compose.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/wkd/docker-compose.yaml rename to coreos-config/plays/services/wkd/docker-compose.yaml diff --git a/coreos-config/roles/compose_project/templates/youtrack/.env b/coreos-config/plays/services/youtrack/.env similarity index 100% rename from coreos-config/roles/compose_project/templates/youtrack/.env rename to coreos-config/plays/services/youtrack/.env diff --git a/coreos-config/roles/compose_project/templates/youtrack/docker-compose.yaml b/coreos-config/plays/services/youtrack/docker-compose.yaml similarity index 100% rename from coreos-config/roles/compose_project/templates/youtrack/docker-compose.yaml rename to coreos-config/plays/services/youtrack/docker-compose.yaml diff --git a/coreos-config/plays/vps.yaml b/coreos-config/plays/vps.yaml index 0177ab5..9f9dbe6 100644 --- a/coreos-config/plays/vps.yaml +++ b/coreos-config/plays/vps.yaml @@ -21,13 +21,14 @@ hosts: host.nc.chaoswg.org vars: state: present + base_domain: "tobiasmanske.de" roles: - {role: compose_project, service: traefik, with_fa: true} - {role: compose_project, service: keycloak} - {role: compose_project, service: prometheus} - {role: compose_project, service: minio} - {role: compose_project, service: repo_proxy} - - {role: compose_project, service: registry} + - {role: compose_project, service: registry, htpasswd: registry.HTPASSWD } - {role: compose_project, service: pantalaimon} - {role: compose_project, service: gitea} - {role: compose_project, service: gitea-runner} @@ -45,3 +46,11 @@ - {role: compose_project, service: diun} - {role: compose_project, service: watchtower} - {role: compose_project, service: wkd} + +- name: Setup KITCTF registry + hosts: host.nc.chaoswg.org + vars: + state: present + base_domain: "ctf.kitctf.de" + roles: + - {role: compose_project, service: registry, htpasswd: registry.kitctf.HTPASSWD } diff --git a/coreos-config/requirements.yaml b/coreos-config/requirements.yaml index bc519d7..1274d53 100644 --- a/coreos-config/requirements.yaml +++ b/coreos-config/requirements.yaml @@ -3,3 +3,8 @@ collections: - name: https://github.com/lucasheld/ansible-uptime-kuma.git type: git version: "0.14.0" +roles: + - src: https://git.tobiasmanske.de/tobias/ansible-role-docker-compose.git + scm: git + name: compose_project + version: "main" diff --git a/coreos-config/roles/compose_project/README.md b/coreos-config/roles/compose_project/README.md deleted file mode 100644 index f03d0c6..0000000 --- a/coreos-config/roles/compose_project/README.md +++ /dev/null @@ -1,38 +0,0 @@ -compose_project -========= - -Helps you deploy and update a remote docker-compose project. - -Requirements ------------- - -Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. - -Role Variables --------------- - -`service`: name of the service to be deployed. Currently part of the role templates. - -`compose_dir`: Directory which contains all compose services on the target - -Dependencies ------------- - - -Example Playbook ----------------- - -Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too: - - - hosts: servers - roles: - - { role: compose_project, service: traefik } - - { role: compose_project, service: nextcloud } - -License -------- - -MIT - -Author Information ------------------- diff --git a/coreos-config/roles/compose_project/defaults/main.yml b/coreos-config/roles/compose_project/defaults/main.yml deleted file mode 100644 index f17db7c..0000000 --- a/coreos-config/roles/compose_project/defaults/main.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- -# defaults file for roles/compose_project -service: dummy -compose_dir: /home/core/compose -state: present # or absent -restart: smart # or always or never diff --git a/coreos-config/roles/compose_project/handlers/main.yml b/coreos-config/roles/compose_project/handlers/main.yml deleted file mode 100644 index a81635b..0000000 --- a/coreos-config/roles/compose_project/handlers/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -# handlers file for roles/compose_project diff --git a/coreos-config/roles/compose_project/meta/main.yml b/coreos-config/roles/compose_project/meta/main.yml deleted file mode 100644 index 7f827d5..0000000 --- a/coreos-config/roles/compose_project/meta/main.yml +++ /dev/null @@ -1,52 +0,0 @@ -galaxy_info: - author: Tobias Manske - description: Deploys a docker compose directory and restarts on change - company: null - - # If the issue tracker for your role is not on github, uncomment the - # next line and provide a value - # issue_tracker_url: http://example.com/issue/tracker - - # Choose a valid license ID from https://spdx.org - some suggested licenses: - # - BSD-3-Clause (default) - # - MIT - # - GPL-2.0-or-later - # - GPL-3.0-only - # - Apache-2.0 - # - CC-BY-4.0 - license: MIT - - min_ansible_version: 2.1 - - # If this a Container Enabled role, provide the minimum Ansible Container version. - # min_ansible_container_version: - - # - # Provide a list of supported platforms, and for each platform a list of versions. - # If you don't wish to enumerate all versions for a particular platform, use 'all'. - # To view available platforms and versions (or releases), visit: - # https://galaxy.ansible.com/api/v1/platforms/ - # - # platforms: - # - name: Fedora - # versions: - # - all - # - 25 - # - name: SomePlatform - # versions: - # - all - # - 1.0 - # - 7 - # - 99.99 - - galaxy_tags: [] - # List tags for your role here, one per line. A tag is a keyword that describes - # and categorizes the role. Users find roles by searching for tags. Be sure to - # remove the '[]' above, if you add tags to this list. - # - # NOTE: A tag is limited to a single word comprised of alphanumeric characters. - # Maximum 20 tags per role. - -dependencies: [] - # List your role dependencies here, one per line. Be sure to remove the '[]' above, - # if you add dependencies to this list. diff --git a/coreos-config/roles/compose_project/tasks/create.yml b/coreos-config/roles/compose_project/tasks/create.yml deleted file mode 100644 index 171d6c2..0000000 --- a/coreos-config/roles/compose_project/tasks/create.yml +++ /dev/null @@ -1,68 +0,0 @@ ---- - -- block: - - name: Create Temporary directory - tempfile: - state: directory - changed_when: false - register: temp_file - - name: Create directory structure - file: - state: directory - dest: '{{ temp_file.path }}/{{ item.path }}' - mode: "{{ item.mode }}" - changed_when: false - with_filetree: "./templates/{{ service | mandatory }}" - when: item.state == 'directory' - loop_control: - label: '{{ item.path }}' - - name: Template Service Files - ansible.builtin.template: - src: "{{ item.src }}" - dest: "{{ temp_file.path }}/{{ item.path }}" - mode: "{{ item.mode }}" - force: true - trim_blocks: false - changed_when: false - with_filetree: "./templates/{{ service | mandatory }}" - loop_control: - label: '{{ item.path }}' - when: item.state == 'file' - delegate_to: localhost - check_mode: no - -- name: Create Service Directory - file: - state: directory - path: "{{ compose_dir | mandatory }}" - -- name: Copy Compose files - become: false - ansible.posix.synchronize: - src: "{{ temp_file.path | mandatory }}/" - dest: "{{ service_dir | mandatory }}" - archive: false - checksum: true - delete: true - recursive: true - mode: push - owner: false - group: false - perms: false - register: compose_files - -- name: Delete temporary directory - ansible.builtin.file: - path: "{{ temp_file.path }}" - state: absent - changed_when: false - -- name: Restart Service - community.docker.docker_compose: - project_src: "{{ service_dir | mandatory }}" - state: present - restarted: true - recreate: smart - build: true - remove_orphans: true - when: (compose_files.changed and restart == "smart") or restart == "always" diff --git a/coreos-config/roles/compose_project/tasks/main.yml b/coreos-config/roles/compose_project/tasks/main.yml deleted file mode 100644 index cceaa6a..0000000 --- a/coreos-config/roles/compose_project/tasks/main.yml +++ /dev/null @@ -1,18 +0,0 @@ ---- - -- name: Set service_dir - ansible.builtin.set_fact: - service_dir: "{{ compose_dir | mandatory }}/{{ service | mandatory }}{% if service_name is defined %}-{{ service_name }}{% endif %}" - cacheable: true - -- ansible.builtin.debug: - msg: "Working on {{ service }}{% if service_name is defined %}-{{ service_name }}{% endif %}" - verbosity: 0 - -- include_tasks: create.yml - when: state == "present" - -- include_tasks: remove.yml - when: state == "absent" - -... diff --git a/coreos-config/roles/compose_project/tasks/remove.yml b/coreos-config/roles/compose_project/tasks/remove.yml deleted file mode 100644 index 2e9e61d..0000000 --- a/coreos-config/roles/compose_project/tasks/remove.yml +++ /dev/null @@ -1,18 +0,0 @@ ---- -- name: Check if service is present - stat: - path: "{{ service_dir | mandatory }}" - register: dir - -- name: Stop Service - community.docker.docker_compose: - project_src: "{{ service_dir | mandatory }}" - state: absent - remove_orphans: true - when: dir.stat.exists == True - -- name: Remove Service - file: - state: absent - path: "{{ service_dir | mandatory }}" - when: dir.stat.exists == True diff --git a/coreos-config/roles/compose_project/tests/inventory b/coreos-config/roles/compose_project/tests/inventory deleted file mode 100644 index 878877b..0000000 --- a/coreos-config/roles/compose_project/tests/inventory +++ /dev/null @@ -1,2 +0,0 @@ -localhost - diff --git a/coreos-config/roles/compose_project/tests/test.yml b/coreos-config/roles/compose_project/tests/test.yml deleted file mode 100644 index 1011e2e..0000000 --- a/coreos-config/roles/compose_project/tests/test.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -- hosts: localhost - remote_user: root - roles: - - roles/compose_project diff --git a/coreos-config/roles/compose_project/vars/main.yml b/coreos-config/roles/compose_project/vars/main.yml deleted file mode 100644 index 965845f..0000000 --- a/coreos-config/roles/compose_project/vars/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -# vars file for roles/compose_project