diff --git a/infrastructure/ci_worker.tf b/infrastructure/ci_worker.tf deleted file mode 100644 index 33b92db..0000000 --- a/infrastructure/ci_worker.tf +++ /dev/null @@ -1,31 +0,0 @@ -resource "hcloud_server" "concourse_nodes" { - for_each = var.ci_workers - - name = each.key - server_type = each.value.server_type - datacenter = "hel1-dc2" - image = "ubuntu-22.04" - - backups = false - - ssh_keys = [ - hcloud_ssh_key.default.id - ] - - labels = { - "node_type" = each.value.node_type - } - - public_net { - ipv4_enabled = true - ipv6_enabled = true - } -} - -resource "hcloud_server_network" "concourse_internal" { - for_each = var.ci_workers - - server_id = hcloud_server.concourse_nodes[each.key].id - network_id = hcloud_network.k8s_net.id - ip = each.value.private_ip -} \ No newline at end of file diff --git a/infrastructure/vars.tf b/infrastructure/vars.tf index d980cd9..b5a36b3 100644 --- a/infrastructure/vars.tf +++ b/infrastructure/vars.tf @@ -24,14 +24,6 @@ variable "k3os_workers" { })) } -variable "ci_workers" { - type = map(object({ - node_type = string - server_type = string - private_ip = string - })) -} - variable "ssh_keys" { type = list(string) default = [] diff --git a/infrastructure/vms.auto.tfvars b/infrastructure/vms.auto.tfvars index 807b3cd..9c03bf6 100644 --- a/infrastructure/vms.auto.tfvars +++ b/infrastructure/vms.auto.tfvars @@ -2,14 +2,14 @@ k3os_workers = { "worker1-gen2" = { backups = false node_type = "worker" - server_type = "cpx21" + server_type = "cx31" private_ip = "172.23.2.22" } "worker2-gen2" = { backups = false node_type = "worker" - server_type = "cpx21" + server_type = "cx31" private_ip = "172.23.2.23" } } @@ -23,14 +23,6 @@ vms = { } } -ci_workers = { - "concourse-worker-vm-1" = { - node_type = "concourse_worker" - server_type = "cpx21" - private_ip = "172.23.2.31" - } -} - ssh_keys = ["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKfHZaI0F5GjAcrM8hjWqwMfULDkAZ2TOIBTQtRocg1F id_ed25519"] release_channel = "stable" \ No newline at end of file diff --git a/k8s/configure_cluster.yaml b/k8s/configure_cluster.yaml index be47a06..dd629d4 100644 --- a/k8s/configure_cluster.yaml +++ b/k8s/configure_cluster.yaml @@ -7,4 +7,4 @@ - role: hcloud - role: minio - role: gitea - - role: concourse + - role: drone diff --git a/k8s/inventory/group_vars/all.yml b/k8s/inventory/group_vars/all.yml index 504f07b..69e54fd 100644 --- a/k8s/inventory/group_vars/all.yml +++ b/k8s/inventory/group_vars/all.yml @@ -1,673 +1,690 @@ $ANSIBLE_VAULT;1.1;AES256 -35373032346133356230643563356236313639393331616265353063393466666534303562326561 -3763663164663936613534656436316130326431386630640a343665376238353565353031323037 -66363831633161373565633838336466383132623665633962633366396330306333633164626566 -3335373261343665650a613966313439343930343961666663336438353335316131643639383063 -30383537303762356434663739343264376163646634663131333938393739333263363261633061 -62613162356230306134383730633561326434346264303938306665356538356466306133356663 -31303736626662383661666637633536353838363139663437656139656333623132363062636130 -36356537623130383866653235303936303530663863386231313039326236396538343733306337 -65636330336238346161623233643964323662343961313635663162316564366662313065383464 -30313639306166653966646564666561666161313631643335666136333464366665366464326263 -66623361336136613166346136343862396633666336333566616264336465643539633935383532 -34373438353664656130383832353164623763326536396162313131316534343836366137396231 -65623739356130396330313661313931306133303331646337363065363861633730653631623130 -31613462666537313432316331386638333565626439636239326465373636646132303838323964 -63353038363132336531623762366561333465393239333536653964333530386531303262626239 -34616534313438363535313433373266633931303838356334353934336661656161653065353839 -62633166326632343161633333326131653030306634323665393933383766333835623666616361 -64643562323732353435396234326363316364396533383434626466616534353264393361396138 -33616337396537636632313933366330633861626233363638633833306339653131316237393235 -32373165383831633631346561643935613236633838306363376338303961336332356435303932 -30323631333834336339356435636431653165316331383634626230333136666632646333303863 -36633733303463626632326437333333353635376338366633356233346265636135326631323363 -38323462363133313862303739643938623834363131303862643463386662343464643237366637 -61323932343134643761633834333933396437636663616136646339363334356337363665316635 -65616563663464323062643665623562666231313062353234646566636433373230373564333238 -36316663343339356135643738333631353330656565306339656333643539343165643166323164 -34333365343039646464323930383537363937626163653338663463323335343337623535636237 -30343033653164613335616462346139396139383163323033376333333838313662663236633334 -37316666396538306239363865646432636131346236646636343039356236373130363966393434 -61616534626162363338376565343935386635653166333965313062353538626334353532643038 -62373937313235633764313364326130306337643666306332663831643439393430653337376337 -62333737326235633633363136386665653338636165336665393530336231633961343662623037 -37386637306464653633353732323161303766326561653131626663323737343964666566343864 -37373335353464663032623364623235373430343365333235623762626335316433333861306362 -38343564643033343934303239656539303932643365303332613062646339343438393639393161 -30653334376164316638353030333732376166623261373562636665346239376466366339643331 -61333063396665303834366135323332353536366633613136336234396533396134613265303930 -35373361633934303833333664383931666533393361353061343062626466313964303239323166 -36386639613561623536383765393437383535353266346630343936636465363434663862336366 -63653964333938653430393637303332653234663063666136383331613336663362386434646665 -39306362663930306265366236633937343739323937333236646239643830613861643433393832 -64343335646636623338356139353466666139336566316531386637343533636636306434333462 -63353165383930386233363536396364393464323063383463653639366161356330306439303461 -32666335343631303033663462363966386632333862643434636630643337383465346533646662 -64383230616666353636303463353564303565336235336539633936663533646161343766333633 -64346633656265383433663965346538613466636463316665383165373034653138326133663062 -66666132383033633861353631633763636435393836326563393531336434623932616539303237 -31343235303836663438636432656464323530306630313335633163333736336433346534386230 -38393131363038636135373462343764343562666631323534366536336266623563666533353332 -34643533306133613263353364306366316662336165383632653765303733306538633838323833 -65386137643633366361336165633830303532333637343732353136383831363761656561313333 -66333935626232613534333061636131636537336630656330616162656537303239316231646561 -66313636313238336632373139326666303664353463633965663231373864336139386138613966 -38303664316139663935363437353239643965333237366366613565386135356337653461376330 -66663063333839313636633031373962623363636662373134323135356237383266353239636331 -61326234303863383763353737363339303038313961366335643539633238373932356632326265 -34303064306433356363613061653432383430633536643239383933373033323930333332353437 -33353234363339646331653734633534653632656161316635353764326564666466386162376436 -61656463343961633866396665313837333836653530643732626133653265386364366231646663 -35646462373933653065333737323066613537363239643330306533633336666563303737313735 -37616433373035333335323461636138316138626235643130656439353833343064346439643361 -37323838366161326130653134303532623564373339616163646135396563386433366230316331 -34633062633230343834376265333561393866363738333065626434613063313163366337646636 -39373138653361363638336362653432393465373361303632386636616138633235393663303535 -61333061323866623936366261323638306263363765383938633265633133363061613634323131 -64633336353931373334653432633361313432306130313731363461373934306534336635373437 -61646630623562346136336238373133356131306637366134363032383564333962616634303436 -61303630396637623865363334626465306531633330663732653762613837386230663831656461 -66323836323931396261646137646364616539333336396431333733326262383630626333653438 -66333066616663666538386633616364633365376636623632613735353439326165383661666262 -34363766356436363737626630626634633064333235393965303838643963663739633534343837 -62386634316235333236653831383761316263613334623939313664333134326633353730366632 -37303861393338366236386233396266623336386464633561646337653937303962663066666539 -61636637303231353234316338353838303538363032616634643039626565303635313435616666 -34376138346531393137616266643131643030326437393530363934383135666234323137383131 -30653936343136656432326233636231356230636632353361396466373265376165626238663334 -62323065343132353230653436613839333735623663363036343661633033366563343362313733 -33333533343239613866353862353734386135326432653166356439303266386465373264656565 -30633361663264643239366133363638663034333134643438663834306362373630343663343037 -32333732363261646539396131643661363865626161623139366461383630373266633839336336 -36356630393230666465313935613334633335373432316430356161366334306639393732313465 -36366432383066633761303238663033656633626163363738633239323931636236326136643939 -37373931646136383930326131316236383366323866363133383333653865313961396430623364 -38633561333934323861636462646538373337646136373138396233326635396665636230323937 -64323736303363353537626533373137383238386134613031396631376134336135306339333131 -34326637306134376464653037633938393539616362656333303736656232343164653931336361 -37636233623165636135313364303834393863356166626431663338653261326363623564643962 -32373638313339376462396265386130376231316434376339613039386134346432386235353432 -64643537376231653132633136303235613433643331326462303638643731666562623938656433 -31663836626461373337366462356431663665323765323164363064653036393437366463343639 -66323633613163366566393238656135653939653538616164356533656535316232353433373538 -64396339626335663532386339633565653763356236373165653063393333346263333364653130 -64353630616438633865323032313736386630333864663831373034623333653932343464633239 -35393066323766386531623132656638393031376362303231376333303538383634393166393932 -32643261313531343334356634636362396365666335383961383564313161316564373964626438 -39323530383137623332376462303636303733653235303866666532636564363139643363646133 -31613030343737366363396333336361306438623266643463333262353261623135653461633630 -35343034396361353133666136326162616661666662643464343865353935303134303166333035 -65616666326461333064316166343764613036343664613563313538383466636435356435656531 -63373463653237353934353164653033616466353433393563623066343866306333346530633837 -34396161363435633733363939373337343435376537656430333861333334656263336330366338 -64303163323762653266323435336333353763363763366535336537316161316663393339386366 -64373336336334303063373563303537653864663165343133356438333436643939633138333439 -34363763313332633530613333373961303839356164633865613630623137643233633965366637 -66646464356562383034393261376232343365613232313632643666376135636166663730643565 -38393766376136376430363736626633636638663161663661393431653161313939353831616230 -37623365313639386631383230656639653565663936393937343635393839623131373431633837 -36386662386537316130616135393839373534396137333933366332616366656138633966663265 -61313461623334306163376364646237616364633362323365643265653236313634383931626363 -39646431616662346631616261333862623236656532656432363833346437636235306230643831 -33396632353164633665336264633932306639323166663131623037616664386638663638663330 -33636236346563326634333664323462353230653562653463323533663737313338323262363230 -36356566326239333737373331623638376333323161326633646232346638653061646338616333 -37656262366232316330316234663730336362643364366163633435313533613938663735386237 -38343032393630323863333664613562376538306638393335373063626364363339343733303730 -34373966383662346538386662653461633236663565306433626663646162373533383830336164 -37313962613039636162343835343165666266353233666537386133613236346330633563303962 -34636237326236633530326638633436613937643336396633396537633931616337323539616563 -63343263333233386335383739373165386466373436313435363963613965666438653761393033 -38363130343961326531656562653636326363633931346639386262303332393066626262653166 -66636662656266643430643135633933363663383862343235363262366539313936386463353439 -62396465646132626165316437646361393863643134643631336432353962396464613262333965 -37643239376536396537373133656330383263373631643535383138303033646363373439613539 -31336538333134636232383765633634396564303663376464616565613239316434396566626461 -33633366316234326464366461663236666566326232656239376537386465343162643665393834 -36313265643866383462626432373831313531343836386365366161333132616631643663373638 -63386337643037656166626335663739643431333937326361626130386334356163323433363530 -30313964363536353332346634613764313834303532656432333635633831653935613736383936 -38643063386630303864333334303962643336393238326664656461653638653034333965663435 -37666432313036343530346339613266633065316563653262343965613535623230313034653263 -36376533643465663064383161363730313565653732303537643333376234373636613832393336 -37313630646437306139343265336333613331656135346234306465616564366439643563633739 -33333837383566613064383530333137383631386462666631346230343066663065633637663039 -61316362323731633736353939643137326362633733343862356161306462323637333264663264 -31306637626432306666336138363432333831343636666564636136303439646165666563306332 -30663363323566326631316163653865303737383933626565373137613266633535373336343732 -65646435653836313435323464386466343563333265383764386138346336336662353162633039 -37353366323662336363346330353635303961633932626438383330363666663364623130613065 -37616332393630363335316135326431336239623030306562326461366430303835646537303266 -39633131373732656136313564316366316532623063633333373964373738393631616430333434 -64386563393032636364393465633731393666643637363438326631616235663961653639323136 -30613263613634626230326463363538346165303432623534613438306636373361303434613534 -61393331353530616566313064346363373037666536363831393430383139306533363235393464 -30653132343961646639313636383336366431633764663434366664656563383130613432646231 -33323861303638333134323536333162323635643530626636656465373631343166383236666531 -39303363343434353839613665633637616466303433386133376536633934613435363665656365 -66626337643433353862353737666661623637373431306335613836313435323262323232316332 -37363862353039626330623866643065393966643939623166383764636165646161346637343637 -65323536666337343336366463616163636438663763643531613935376138326637646337313030 -30303831376434643831386532666331353031643931663435656133306166326539323930376232 -63383863333462636665373664303738653662616435633033323661363330646134613431643430 -63633738383066373334316538613631373031333132383466623463323032393530626537643738 -64666532333237353736663166373330303837346637363133333764386631356164653339613138 -38633233616661386639643263333132656130373635366666663631313062353332313238383734 -32666233313436396330366435306138633061383231633538313464346231363436353963316535 -36396361316439646335616435353530303135633563333336316338663663663039653062623962 -36396433653965323333303861386165613230646139363530333236343562306634336262326166 -65323964333939346631373036383463333731653961343336666161373361303938366531613665 -63623033613634336230643664353538353534653265613133323430356431313933653738336234 -34663037666538643739303432653031623236386533643037653039383834666430656463613531 -34303661306335666630393363333431663761303036356464363037656136346130383661326236 -36633364646638393663363933396465643565636130366137366133396330393336626163616334 -35386432383334623265356662343735383862396466643838323262333563316235643735656136 -63373562633234323839313637643066353839653065323466393038376364646436333761393537 -38666562656136616366626561306264323130313163353464383864633531666239366266363566 -61613562613839353361646463643335376137373765393033633739653837323630646634653564 -35373735393938376531346261353837633833333434313862623235663933363264623739323433 -37626334313165383235303165616636366130326463656230313436323263643530643763663037 -61636531393332303565656531396438663562613866373765323062363236306332306638636662 -32643935386337656562393962323132366138353538313466656332633533303034393264303531 -37326461373538356630383064663463303333633332336335376464336665623935393866663662 -33353631323530346666633730366664383236323633623762323665646363306661386663383662 -32333165323337383236353466323633393131343634336362323663626430373865303231653336 -39656330353063633961623066613536346235643330646439323832303263376431613936646433 -64656333363466636239636439636430353961326235616265313531343633323864306335626465 -61613832656233653930393431386430303362366436326233616133306363363965636232616463 -62643032326463326233356534373838323232323164333665346163333335343632393739396634 -62363437626462313636656436656333636633343963626530316335316538376162623432616234 -39343231323639326437336430393231663035356265373561623066393264373632653330346365 -33626236306137626562396666626362613061303765373439386533636331393231323131313737 -35616337313232643439663032386531356631313664353139373366363764623534373130393531 -65653037626135343462663935313332373932316635613661666231336663376164373936373032 -35316563393730366261626165323664366137343839336166643564616632653936353339383734 -35363966343334303833393433346630353933303131346332636639633363313163376162346130 -38313238373631656364653331316331343164663535373766343361376164363864633066626630 -33346164373537643464386364356266623138326161313462636563346162613034633935343839 -37326165326363303830356563303339353638656330303230393362386136633530633236323539 -63666539333236356134613937376666613733326561346164383530363631303936323237633463 -36356236633738656633653466643236303433643165363062643132636635663966306166623239 -33303465643734626639306532303430633631353366653837633839343561643466376363353933 -64393735373564336639656165666332316161613661343661326634313263653566306162656561 -62373733356665346438386562363462613537323534666438333434663537353766656335646163 -35643336626261373166313135336530623539663263396434393936636364323233323833383364 -33336234613734373030366337663936343035643336326663613530656639613261616234386532 -61643465653664623032346462346664396638656365306432396465663934663863643061633864 -33616236346436626566373461393833666162333436383335656464633065363532363761616266 -61376363393239343866643365633030643539636235303764323539623132653961386138353634 -62383639643564643433643331376433386464633563663566393766636263306136366361646133 -66613763373930653339303037343263363639346436396538376166653633653366666532313866 -33636139393761373463303364646435333939393232396134656532373934313739653435316237 -30393766663139366330616235316531646335653765353164636663343237363131653330336431 -33376262303337303930343937633038616437663234623934383830386633393236363237373866 -37653637323338343436633063313939313332303566666532623336313830346533663264326231 -61366366353333356336303338646537616635663163336330336166343863346436383232643363 -36373237326533633061356463656431306163653832336137336165346632313865373163333533 -32316634363935303565623533323562633034356230633939346433343130396263393563383138 -33623766313038663035616462626463393232653565306237356232313833306232303866656265 -35626432306530346637633437613330353937613033643335656135306333363730623837613933 -63306239363937396535643666366466633137643037373165353235373236636637393637643236 -36313531376233643863636533666631613932366535633936373433353066626432346132616161 -36623665353132613738376562346465313964363335336261356162366131383238633166336461 -65623539633133373563333430363739303132636466303736646138333239616633333234383139 -39386263363765356662633865373938333638356230366237623937613338376334336663653235 -66353838353637333330386464323239326331383134306137636562353732316662393965383763 -64613861323832366335376330373162613231356636316263323334393664356166373133393238 -38353635633964303034666465353033626337343833316135383265616565636531643165633037 -64616338376433633731396463623830633065633066623831346433363965373664323665363831 -32646639316465393461646631363339653266636432333861653330653630303735313932643866 -65313034623238616365346633326430646265383163326632353434623062646437383839643062 -34616533666638316662623031383762343063376534656563316630643032303266303131373261 -63616362306233373563393036313839663365633930653363386135326631653434316436383937 -63616466396133653237663463636564636530303839653335383963613463346464303866373233 -34366239633533393762343766613265313630353834653934346630313761613366323035653564 -36363330353236393333343866613461396532366236316663303764623032636435653964363661 -61626531643165646630656635633337623135393330386363343334323866333638353465333039 -38396337633039353233666133386638346335646238623638376335386537306664616335306264 -32626630393435623935613931653665326330383963643066313439643562323261653631326535 -66633063356133386336383032333961356365316133633237346561303161363039663263613630 -63343936393233386131643761343565383961633731376661613064613837323134653464376564 -31386339366465313333666561383664643836653137656232633264336536663834666530643735 -65353237393234663564623830613131643062396531366235356466613565333464666232613630 -32633739346665653563356465386133303033383366366563373731643036396133383130626666 -65356162663433656330386238396332303135383037623165623130633162306638643837663339 -62663662363730396662373137396339623435313565326338376139613134343766626461383163 -65646666356433613432383064393036363963646462353039383639643661313865316665613531 -33353761653131643433663831643262356564313435373938326334306463613339633538613330 -35353533653733303138383033663063323131323337316166333366613335393162656132633932 -35383837376539633461613939373963356562353137343035316361353663323533323962366465 -34616536396264303064353732353638653536633361363337653461326262623238383261653632 -34356237616363383830326133386433633162653932306438343038376130653133643039393162 -61326364363236373662303964373262346166653835613366396665333861636638366266313263 -61666130663238323036623334393166396132376564373339346630313063613635306166353661 -38646161376662333031323662346430383139363961653930663634316239393439363339346465 -61613765393632633562383866353331383032626363623639346363643466373966303835373332 -65633466626466666462626336653766666535353837336231336165663638303831393632616638 -64313634376435366363633561386438346533346138643730313038326238363334633063336335 -32613731646362613437393832366130373330353936666661626134366438653339366163623764 -61313630663734313836616563666635313734656531333862353530323233363361353062303130 -61363838366465656264653034393132333864373631363162616336613562326634313431646337 -30346230646365326232353935663562343538383038663135386331343134323632623235376266 -35643834623632633931646564343166396233333430623261666138363935663065613763643836 -62356532396566313737616463626130316363646261383162333066323836396662356366376638 -34386633656463663038353663623164306337353261303435616166316261656130323362636137 -61666562333131333566363865396133366335636332363766353239303462633266626235346236 -33383138633931633864323162643462393631326631323739343764666361393733333734353839 -61353766653436353336303934343466376263623363613664326561623139326566366235366634 -66653639356333373830663961643066663861633563366461353563343732353066333333646235 -61373831613236366239623062323861336166623032393236336431383263346530633633626531 -66653331356663313633356631666130653766646661333238653766363131643862356631363638 -34393130366332643764656265396264303831363432653861633730343766386131643466663164 -62393563653336363863336566363435343439343830636563363462333332323738653336356665 -33623934376538666337636462653933643163666561633836646463626135363964613833333938 -35636639383433643365636538383533353164373566643635363231313664643966323730653839 -31373762633634623262336131326563663837373830396531363336323538353266653065636364 -37336666653130326662643663323938336439626332323263366430666333363934363235643561 -37313262356333633665623265326263653235316562613230396231623439623134303766633138 -62346230343838336632663465373130636266323932666137366561663439306139333263363361 -65333831336534373535646237663935316530363663323333333866363932386531373162336565 -30626163373863353861306636393230373464333764636366656333393539613839363735383231 -37336433643535366639376662306639303830653364666434373733333933313334393762396661 -34366136343033626431633561613666613433666361386134393465633964613632636163313636 -39653866326365303230623464306434393532643132623834323333626161663666626633373565 -30613463663962636630623162633138333132643937623432643633643565666165373336666165 -39336562313531626636333937326431313537616432653436653739663061376135356332643931 -39343462663363616633316231333333633839383632343433323632396632303861303332333539 -36623664393738336164306232303933366265363439386636386139393331303233393136343232 -61353861633562663834626636353532326536666362613532613230303032613334353861353333 -35343761623066393162303864346364613862386137666334653633346632633361363862643561 -34613762316537663562373331356530646138303866613862353061363733316163643037626566 -61326236353938333731353735326135346661623533353261363530656530663530613339343139 -64656366646432346462363634343733653164316333623633313137626164393664653730333765 -34353330646465643734383534616537363866353431353136626266613963656366373930303462 -61386565323133313333666263653130343834346239643933333534356634373335353036363732 -63376161356631636233326464303037343634316266353531346236396336613031363732653565 -33356631373663383035623933326338343562336465363234326163633262613436333964373634 -32353337383733353262353062646230313665633136663035343637653263343832373262616262 -65613935306530333736303732333037376333323739323932663038323765333836346465616461 -32323736633164323861313865636161376461336664373563613366636336656537633564353761 -36373966306134653333656661663333346533326637666536636538623733396239666364306536 -61383438366562666163343064333864333534343463663063636631656437653364393239346261 -61313163306135376234376466633063383465363136333364626665653661623231663739356661 -35333334636461336632306339393965383837363836646631326136666330623361623139653434 -65613433396133356233396462386265323537633931343766623435323064663565643831393936 -65323231366138353664626462346131643938376239393831353132303634366534333461616630 -39323262663035626339353539346436633562343165303464373863613766373364633535356235 -34653731616233333261373561303361376530393531353533346536363436383233333337346664 -32333266336561313662356564663533623964626561653362636665373635393137323466396339 -61363265306564366661313664386536353363366365313136303065336566363364376166663436 -32323834393964353533363633653530383636343563376436303532366634646432623634376136 -34663563353335643335616238333135643830356632393765363034626232643066356436623166 -30396535336465653662323266373262316431656561303864346231653836313530306566656437 -64336539393939383839336463656364386564386330383536613837663535316564643163646463 -62383133316333386331316366623339633633363130663534373738376533666234326132393365 -33386661306231366363656133653436313235376533363439343061363963623537343562393735 -31653433346161366431353037393434356366313232346439333531633731313332343130366239 -65343534383238666433663936663361613966373130353832663761313461633832343033633665 -34303066393166313131613630343861386661656435383365393162393961306638323437636233 -36666466336466386463366433613331313131303361643963313837323031623962356433633263 -39623162633164363366383761633138653639336533663464383161366435363037373231386461 -34343465336230373032316235393430653736356539623132356163393166366337396131663631 -62613239656431366331663335346534353531663638623361663765373133313263303731613031 -64376131353730613464666461323661326264393566656138306234303633646330353736633166 -36613761346533663539343036343738353939356231343166653562663463616134306235333836 -62396239646530393430663835336430623762353036373064333661353764323732373739373531 -61616264386431303561363461316239636261303163383030343937373839663234616437306165 -34383830336336303137636633353164643266663038343639363063343364616131306263373962 -37636462363839363762346530383439663766353530396630373639383561303033646434306666 -61303261323539373132663738643163623262396335663037613565623565316562633666316264 -63303266663161623561623464303139303932663765356538613934306230616634623638666535 -38663932616530666164383164373139393136626161643333653834626666313964653037396563 -61306565376661386135303331343065333539396532623537326535336531666531373334393266 -33383964353163333565643237353539616561656637303632663166386262646266623536616638 -63383663393530633930653239663139626132623564306361383130663433356134303566316630 -39636161356234383536653363393561393033373531323866376164616331306264656338316537 -35623734373365666233323831346463393764316637353932316538363863343536383866343063 -33393463613665396530363766383535313837306536366466386135633662363435616139363931 -30383563353663356135326535656264303461326261396562393566626538353239303966323439 -64353138343133643535396161313263623364376466653662616661623931313632353565356237 -65396230643963373163653538343865643730366563366439363934346664316336376537383530 -30303033373662393734626234306339373561613037666638393238633137643763623332313862 -31613465373632646463623238326632623065326365623039366531616438653438643237646263 -33656534313836323562343065666534373463666231386366643234643630346662333961646664 -33363838353930386535323864346634376431656537613637363964653764656239393638626263 -62386264313232653030643539356332663834386435363565663031303038386137396631663266 -38393931653934313737363439616466326461356332363434393462366437343861373337393465 -34346435633364326336626632333838373030346635346139653162353361633866393466323836 -30396334306138666161326238636538316534363538646639356263356136333337346238643733 -35643731366537343166653632346632323264656334643431326535326338633763306137643563 -37346363396336363165646464393639363034336264343430356134363264343861313866313438 -35356239353962346637343064333134356262366665663930383335623037383036386137366537 -38363561616431343630383639393032363730396534353862333832356437633436663139363737 -31633738326561323031323537383334383663623837366162326639623365336330633365663562 -62653132636338393434386164343964626666343631613436353234363030363631653366386632 -62613439393933616636396362383762656239303466363633633839333262666130373962656166 -66353437346562633366653964343131343663633937316663646639333165393335633262343663 -66616661633137336531366463356135663465633462383763636138363737376630303435356139 -35323766333566626234333935373136363930383865663265363739636334386236303433343436 -39353832323232633732323861613834666431343563336137326431343831656134643330313536 -65373330396162633164616364656336333239396136333464643739336335626132333939666431 -35373963646364303535396435663934383838633663663639646134383265343639626434653666 -34653562633235633032383163356563336565356231353131396233303232653464626130666261 -35376534323334373135623838393637656333633235353937616436366466343230336562326663 -63666139383038383232376536313633346664376234316162396235396533643537313835376265 -65353131353061663761646664363730613064336331623763303964626137366262336566306136 -63373863386332376663396362366461656138653964656566386234636265656435346337393232 -33343934306136323262623266313331356364643631653237386563616631653132656664353630 -63626536326532393061666632626266383562363465656533663933393338346263663633376261 -34663335623862336234346334393166653964313332666131326462623736663663323537326238 -65623863363064313163663437366335613133626338343233623832356437643931666463393466 -65653734313431653934663733623033383535653030366161393434386563386133643134333863 -61313739633062326534373962343739366539343961376563353963633863623932353731393737 -34633663303762633135313861333165626662663930666434323333303338663237313436666566 -66373162393462376166323636636435306162636333613933333935323134353163613666366466 -64386364366630653131303762303334383933303361626662323632313730303732366164646631 -30353763623431656137316164366437303633393065313061336339643931353062366363346431 -37646661313263333435383963366161346237356336383566336134336639623466653562316639 -33636464353438313236396632306665326265633563396237643936373034653361646531393231 -37663861333562343735653332313935323663383234643038393962396534303732636661313630 -34326339653136313962373366656133643232353936386332633163393933616533613930636231 -61346438336164663431663235626530383238323034613038663366383666616532383431356661 -63393866656561333663393936316234643065323363323137656262316333316330616130646535 -63323130623061623136303937383362343833326665343263653466373162363636353536376438 -36373631663232396235353036663439353137303731303837623630663432633465616235343639 -37303461633661326534346234663633323339663330313831666634353965383438316663303938 -33616432323538643838383134316431643434343730373334303331653233636462666633666563 -36383738383563636431323334303131303335663565623164363934393162346165643963303133 -33336137643966626634376235656166373031343663393133303532306465316130633638396631 -37623832666337393566323033373761613233666261336361306263613962373165333030383965 -62333763366336663231376538393062373031366435616134373130316233613532653765653565 -30666135366363323563396533633239656334663364653438353530396130303466623739643137 -30353338323264653033633362333965316232663065363038383165336433383835353966396630 -66666530666232663732316335373239323235653032333130303132373164376434323335343532 -34323666646339623737323965663736356236313933613464643833316535383538396636373232 -31326661306235336532623932626461646237633934313637326439366331646630376131343037 -63393461646461643532666361383634613165336662643633343639626235666531656239353361 -38396166333831646538333363336666613936323933333137626537646466343166663937323061 -36656433353937363137383936643063393633626639613439363731636361623461623563353365 -65353562343933363439643830613036656261306239616335313866373536613431393837653865 -34306161356236303639646164303562613732643136613032333630393465616537383336633633 -61643864336234636365653566383234313462346662386439313130616236366135363330633366 -39363832326365666539653637353631356332336639346430393933336661613662373033316539 -32623738373464386239663961626539323331623238366432643265373962613730383335346539 -38383261363334656234613064336133386134386563313235373131376563353433343462373336 -37396564306663363161303566323764666536313833336432363239353430353861333934303562 -32333833316164623333613036386164343131613433306634626636346432376531316236396532 -36653138656665326639363761636366626238663137303934306261393634656266626239353235 -64393532323435383564373939653962303531663731616533616234656135343933343763616534 -33633332643530373561393432616131333731376261353037313731303039306539313938613836 -31313032653530306537346365396336613535326562326630353463316133346131383839336331 -33626364333562396664613066666663613633373331386430646165313531636466343761373433 -33313736623666636531633663656130356338383364663761653265623734313365633763646339 -31663662346363383639343832623364396364383066623838323233663465636466616462313464 -63373162626238663032336439356337336639376434353265383632663035326637396366656664 -61663431636161333034636530346362333236623862633165636265643930636531623665313730 -36393966303138376339656636363738396130343234346362356262666637613536366231356463 -30623661313430653730623938353866353635383961373536316565636161313433326434396162 -37663033343762343366663735323064663532363761386538623132303434623136666365343632 -39616430396437323035663334343763666338353965616134633937373266623866363465643465 -63383765633837346632396137323062353136303839613834333930383033623266373661396337 -32653837613161626334333239636664346262343266336138353031353563623961613463656234 -64663430386265376236633166396637626363393266356464396631313938623331333730616661 -36656261376533613438393763636365653537313231333864656434633733333065646436643031 -66393634343462383464613862343832313535303261396537393038613433363135363531653637 -38356363666266333661366362363437656264636431303562616339643230633235643931376237 -64653134363838633164643930363038373365663561393865656364626530393561643937613035 -35613666643365343631383833343738313537396538353764653530666534346434653138356331 -62616461613665313938356136613066373863363536313837613166373763653134653930663234 -65343433303234313635636565396533306134343465343661336134616138623833366636313664 -64613732333030386564626239633832363230323766356165666533346662316231363134356361 -62363032373166373536616164363638643865613763636162383965343961653436656436356662 -66653433666333653563306239643837356665306264643734383662323038353134323961646439 -63616530656133353339646666636432326465353136646233363730366138643963323038616233 -31633436346537303537646264343463653031386233326633313266646261633836363130323462 -30326230316364336433313335386164326164303065646533653865616362663835626131376165 -61393732333265336339636534313462353333306363363663643864306437616135323862643032 -39373962653337353837653162616331643561353161393130613930373137653863333866653361 -66313036316630366134313762643664333631613665343734313032323731343061613138323837 -61396665373030616366663765383764613831663532646362663137343564616537626333396236 -64633531633964323166333337376437306665393266643132613538353930626666313664663263 -31663363306230353833323634663137366231343735306538666636353533336339396431356536 -31656631656230383235356235356466343938663461343561356462633964313437386265626363 -35643032376337653432613962653136366263396331303062363933646633666262666638376130 -33356436343961303337356262366533306338633032373162656434316338336534663265383466 -66306532656365646361393731373231366238383765306230653561626366393633646436333430 -66373032363131653831643066656233303437636439326233663737306433326266366139316534 -33666233373338336631316332323235343430643135323434656530633564396639336361376566 -37303036326331633135343430666130663138346130386662363838353039323538373431316335 -37666163646131323262373930323864373861373365316531333531616261303338323465323831 -32306662303863396630366133386665343061623335616137303765356634663165343938333237 -38643763636136336634646138666164336639663461303430366432373162336234636138353963 -30653539653332383833663234336637323739326236653638386130366238343263613461333463 -38396138393435303736313761373561313966363565366132656631373335393935343130653634 -64326361633439656337336633656465363965373662663636376331306439386431346631643961 -38373666616665373534656134646235366235353265376663396664366230323731633834653663 -30313037373533343239366265326335373738333234326563366334373163393264633134316231 -37363363383061666137363864363263353464323032663238326362626534313136623064633130 -64656466623230643332316532656363336362623036636637363734656366666533383664643765 -65643366663862623932386365393861316563393531643234623237333962373430643863383162 -35316436396135356130653839333565393661376366666662363762306334643336303633653135 -37383334373763363562323039363837346637343736383631613266353139623236386566643830 -66393437383562623463303138313439643432383531643438336663393039666630333761636562 -31356362303338656535623963663663643830633738636236346466386338636661333263363134 -32623634383865373064663332353930363161353366626565613330633233386565303263653266 -36643862313366616161366362356635346435313038633631376532363231666431333931636638 -66393563643738393534363534633935363464643765353733326636393266376338316530633233 -30376531633034656230313931626433363033646539313062636665626431393130626664316230 -62663365303536316439326162343334303339343431613832313636633935653365623431333234 -32303439616333643134623966333333383366353963383432613066353132306435326535306466 -66663333383330356531396635633738333239663633663232656661626463303764373532323337 -63323861636434383930393039336632303530646165613663633734346637623664306431323639 -33653836313463613934326663666233623165333335303863643464316362613432616637663539 -36333063623231666435366663353033326464626466633239633139626430343635376263633831 -35303239363130663532356535646331326565643364363665393234333265656263323164623962 -31333534316235306238643236333939393164373637333866323366613730396564303462366266 -66633263333430303231353836663136326361626562303564633635343936633263646334313638 -36333362383933396562613464346335393634333238396538613861333436343264376464626563 -64356635343862303765313462326436613136356337303636316632636133633735626539393935 -66353238366535646637333331323638393430356634393966616233373334313666366439333439 -65333132653634393861643533623464313132623836666465646232356465653034363534653833 -63303465653235663165643331373238383539633766306562656236396636356339663733366432 -62303463306163396561366263303764373535396563383362333834386364376531383632343065 -61626263393337383464663131333032313733356535376636623033303131363034646437303831 -63613331616664636434303336616431336536383965663163343734613061376361303465623463 -66613064616663333761613331386537323430313235353866663938356661663438303830313462 -36323435326665323934626263623731323033353239356332653837333332666139663762666130 -63636437313564626136393039303766623465383638643337366636643066663264363465316138 -37643939333737353230373935323336633936616137373264643833346363306164333932616534 -33353366653662383333393532623166336164303437616333613865323361336635363862303866 -62363163373534333264313533363532396331383636656237323862646539616261376335643738 -33653834383732376130376161333966393936396263373661656334333661383263633836373731 -36636639626135656533343964623761646138363232333962353965386562623638353734363764 -63363130323961396537366364303264323439353565353266373732326665313234653437633832 -65366539306335333361373134646661356466663930323438343836303463313765373365323838 -61653662396334356236633165363762306330643366646231323563616637633937363661313166 -31356462623339343039663563663130346332343061343463663837303865306661353235333836 -37383737313032346236333866376262336439336535646632386133623932626132666432623336 -35323562386637333631616533616266646137323233666236663732633961653234303231336638 -37616433363762336163616662336332343666666466366135323733613163333339643265336463 -37393133393262623766663938313761346633303466373333343662643536303037366533396539 -62636631366165653833633931653338323665333831633237623538313465376239396262613666 -62353363666337623231323765643539623261643334383232623866343432623663333766366134 -37306132653731663362653236346637303961626230393237626665656335623762393161663735 -63346237613235343432353765333436363162626131643239373932393434616161373736643136 -31653264613065346438646439646139353530316337666535346439306139333234313137343532 -65353535383939373966313965366231376335643334343330356330323230336662303536303931 -31346366616631363661383664303232653562393861643437376233396661656333383231343634 -65613937666665383434646564663834373337353436646634343134626235666363326230323536 -33383437623734363366346138646466643939316663623765613964646537663033363732623133 -36643964636637316632653735633662346636643138656536363166323532623934306466323835 -62303332313039633038303466363835326265343965383435363134346561383736353164366165 -62333830313864663435656566663862316637626462366366623561653038393434313063636636 -32386335326663653634383037393666616639623262643765343439386164663366333638396264 -65356264303535346262646238333365613266636434626262623731356432343639386464393331 -66313839313239373239323163323232663836376165326432396465316334613362386565366536 -37353835393965386164623661333835323939616362383438656234636533616236323837656135 -64373763343338383539313365363430326662656634383338323837633730326234663337653463 -39373231656235663239396537313133623534636465626435613434383130373939336263386265 -32303165633538353566613533663661663839353361323737396635623635353463356332343630 -63393333353934616563396662393266643937396563643739333238666139323735336439613964 -64373736363134386265626339373665383031393663396563613364383236353534376362336630 -32653338646634653932613432653536656239656137353737396165316435616231643439646164 -63363464376433343936613739306463303862396566383835363633353161666562363066313139 -62623861656166636534386633386562356531306439313437643861396664656563343365643763 -32346533623461396233306366666634376161336232393762306437333162346330633734616461 -38643364316636373936386632366437326263383131326330393439646165323130386634306162 -62643538313637376266373937643531316566653433653239613338343661343037333838623132 -64643864623537613236633763393933323565653863323430333961306265303839303761316237 -61616536373739666564646130623337316161323730666632343264363630376362386264353139 -35623032633164626333643665643465366238343839376631653438376532623031356561633262 -61393661613637666534303431356333363435643435306633353864326536303832366431336665 -66613336376364623231663139376438666133316162363838316130303666656531386164373039 -34646439313333663632633837333061396430616634363738626239363134626537613738323032 -33636238383462393433313163353130313733363932663565313666303737653037316239363133 -66663638613566373366626439356463653836646434343566343461376462336233626165393037 -35393964643337306163353062343930353837313834613431336537363966363363366539316430 -64383166643332303330343064633264356332313963363938396630376132646366383035653733 -33663237343832636164333566363739616531326338306634303139396439313232343664353733 -38346538633936643337326539336462333531306333363631323635323739333630356235613563 -36656439633265303132316338663236363166643330316336363136383337323537666264376138 -33386161663530636536323139633532663534396536366638326566653533303138366634346533 -39633832646430346330333962343439646335643336633561373936306436356132353939343235 -62383366613731663734643836373366626466656137656438356333663631656337363730303166 -64633665353837623263653465616163396564393034303036613935356631623334323966343430 -31623463393539353631343133343434663234373262326630333163656262633739333661336636 -33653439626265396635616461353461653439363037373939323165393566613039663339356261 -39636662643165653938363162346361613766653465326331626435663032343366646466613137 -62313232653931653738653833316437646435313333653835343039326163326365393765353034 -37303035646538623137366462333837333765313036343736363862323238653036656433633265 -30396532653463353731613362366563653865373231366138313432376338643636373136313566 -63336239353364373930613265366665323333363564316139376461333231336239646632616661 -30313636393933656331626461373637336638346432363031653030313330353430366539303537 -34666431313464653531313338376564353365363163653464316439333638306265646261396238 -34613463313736646631336538306361646133383135333932353230316333343136666431613263 -35613030386433666362633365643339663338623631323232323761666666666139346138383235 -35623362333163626564623233316439633632343734303161353335636461663862316230346331 -61616337396338383738643538626130326534313130326566396162323166663866356165626365 -37306332626662663637623066633035666135326137363033333835393832336564366262646461 -30383232363434613038333137386433633338643135313731656232663964646666626136363763 -34656665323835386335343232343333383762383361393761666435623334323532623736666461 -39366430376366386364393866306666636634363166313932626264306539346239623965636632 -65386465393334633163393564383663326235343831633639333662303830323033373466393966 -34643731303433313732366331303163363331393033303164323765636235323735323464653732 -63386638616135326637653837383065653631343635323334356339613433336432326139383934 -64613336613463303236386165356432313033666330643735656162396632393137343366363332 -38633936383936313233366366353135326565323165336239633031353939313034663333383532 -34633236363162396465343338336235663233626238393130636338383439306338613963353862 -36343238613563633465346161653364663935343730643733376636366361306361393331313538 -63306339313265356337643035663030626133646132333432326237643165383265626135663637 -61396232393462366337666462306431393837663138653531356232356436303930343965616632 -37343264396237633266626137393064623432626630346235623866383231636363613030646664 -34323637366135313663393462633037326162633335323236386363653065383734656330346630 -61346338636664313538633963323438653739633265633434643133316331363536663237656339 -30313038633039626433393164333431393463306337353339366262346138666431333333666237 -31303639613836646562396135666536353536616232323864643062306364353138663033356630 -66326531356633653731383636646332626439633637376565333663386636393832633433373165 -37613239663330663936313234653630306330663861303235366563323565653237616566313632 -34626565346139363733366133353764376266316164643034373964616539373936306664353132 -31383261356663666365336536663933613166666463636232353236646163376431373834316235 -34613830666637326139303265306137373331626330663061313239643161633539383634633732 -31353738386436303266636331303464653433353963306633326335363030643431383436333762 -35373137643566303864653466666364393533316662643030616461393561666538313336396463 -62383564613731356163373464396137636135313538363032633962636330623433306632343235 -38373834373538353565666632646365326435643830626563616235633238646334373364613533 -35613735326263626664343031373936303435616237356530336665303031333534353064383063 -65643163626666663833636165333865363762396463386130323864323938386364333939616261 -39366664303464333132376266383332616331623265396539653030383535383166653264643033 -38336563306237363331303963643333373539623239633939666439306330393336626163363132 -66653733353130613430316238323238613736353166366666303933663636346537373430386265 -38396163353731616637356563343865363965323936663835653966636337313638623333326536 -64316265656432626439323639666562383530383332316339326231346663343837666239373461 -35326139663331643838353963623064343536343663656636326630653437316165303234653039 -37636364666666313831393536616435383061366232363037613233366534366465376333376265 -32643930313665366338393036653130613130356231363062616139626262383133363531663937 -32386338633231643935346136343932333466666234666634633133383138636436633535323637 -33353630626136373432316231393539393865376532356235643233373332626265336331643031 -34323337343335633837653962376530626266613431636165363933303565626436383463653339 -32643231633031343335613561653334383064383738323462323665316132626463343833303237 -63336537383135363864373165326639396361386462303433363064373565306435303164633031 -62376139623838333462623533656164653061613563643930303138376562343165653136366165 -39616336383739663231656239653263306532626661656263643266343766653264323361646666 -62663839316438643836653337663466613461363334323361326533333734653039306562373430 -64613361326362653833303462313538363662383264616364663933353261376533323830396431 -37316165396465353433613339636431323963653638396666623837356664613935366438356639 -64613931653065643536326631353830653461343330636365333236316463343863643331656432 -35323764626666633436386362353831316638613234323064396233633364356239616665356363 -32356134633562626135663861633063346362613236666638613935666362636439646233396230 -63393566643265393831653938303161643165316337663939373634333234653066646436663030 -62303830656331633365333831626631383339323166343631623431306134326562393366663832 -38663130343265633931386532306238363134373630333561636639396537323964383964343361 -30363135643731343764323539333733333362303231636465353564633964666638353263313163 -30383839336465613131656334366165656436613430353931336231326535323339663530376463 -30633964626337366161383534373266303437343630643537643637333466613938653537663635 -31373564323139323932613335356538373764666434393535343037373030663031613538623462 -64333434333166623030366461626137343036616235316135633233303162383231646134316630 -64333265303966343835626363313565356436646164393436326538633138653963393661643438 -37646435383233303232626236646539343465356464636361316464306536626232663638306438 -38623334376632343065653238623738316431333531396366346132303131656462666231666436 -64376330636261383731356266396562343333373764656534613337306538656236636363306138 -61376535303937663734323935343334663062613965353638383133613261633732626664343730 -36663862306639333362633037666339643431313066396332653764643539653239373564376366 -62613162316137323238643864663961333135356232623631653638376563636337643132393966 -62313930616163366432663937373561656535333833346563366531353664316536613061386532 -34316366383333636465323330333331383230663930663238303033383964316236396536656361 -33383531353430643661613338663362613733663132386363303139373338396464343933643166 -61323061383838396136633335636133636562363265346430643734336634663637303738393764 -36623132336331333734643835373837623366386662653234343132326236373932656330353764 -37396261346365346337383664633462643531633339343633303966313261636665313635613762 -64353230393337636136643736353766666533323534626663306432636231613532336161666231 -30623134336562346430333631633863326433613735316432363730616633666132343532323364 -64653330313062373664363532303962653462656465653634303566303666356232393031303364 -34663032666136633832396435366133336234363033633463636539323265356436363063336262 -65303762306463613862366434663539313961343836636533626437326330643164623766383334 -31633136653539383761633232346264323161343463333765343330316635643565346135313132 -36653634353237323366653166663338653633376333633466633963393538653865633831663564 -36663662663265343535643937373330316531613931303436626634316266323066393736623161 -38353935326263313534333566376262316433356463313566366662616666333865643937316134 -37353733323338353537316331343265383336363139326637383131633432623531333431363564 -31373233333565393962646233623235633663346561333033633431666634353833343333326463 -36383333636337653131666335353763366336303633363963616234343030386335623761353262 -34336435363631616165623733366166353666323462313635646133333836396265613561613264 -61623635313139383361643530326230613534643239646666333836633662353466376364393466 -65343838636266666130633764633438383638623437326433376430653461356261343632656365 -65356534656533353763396364306437346565323038626665613530326562343962643336343833 -37396334396530363633623063643636633835663966323833323761616335383036366261363061 -66393235633430383637663564366163653832333831306130323862343366393364643037653734 -61656138343536363733616362656136333562353764633163666134393131616661346534616630 -33363136386462333939346564303263396336356530363866396263626261666666323065313636 -38373637623836353132636134646364613236633063303437313661326266353535306562366438 -64613364646132623234633734336438383138363265666439623834303133376337316131316165 -33623137313561643061663736646235316566663737653136376330663531356363663030633031 -62316339396239616533333666323562383635396662613639646339353065663266323033396331 -34373334356436356332663066633761633061326638633666353466663034613737663838626161 -30303365666339383535323032383431653436653039633835323232313633386134336461383763 -35626131666262633831326665383936653336313163613037353132643363303638613832393532 -36623836356437663833646337653964356663626635653964643963303839386438333334343732 -32633265353739663661323265323439636636366336386264383561613332623961333834363731 -64303561306662656435616262396537616362343661653238646235323431623033633962616437 -63646462656139376166363538653036383330356263666139366532663630373036373764306233 -64346232373462633562333263643639626464336131623239333937393535333435336564353632 -31356233663235323134383834353862336639383262343261663066366132376664383766343662 -61336461653933313162313536616366646132333364323134346435336332323566616661353264 -62386262333837336562623931353032666634313762336538653864636664663865396135646263 -34306164323533356238313732303863343831633264363438626433353863383365336431306238 -64343964653938623262653234383235626564316235343336653135313964313638303732343430 -61303863333033376439353766303835346165646138343337356638343334376431303836653261 -31626231633336386561343761393030333939656263633039393063323432626461613535303131 -63366366373532653834653734306562333365613465653934353334303364666562306430653539 -30336133656539366337316563393138316633393961343434373263343436356331396537356265 -61313135633732616432356632613066626638646239663836656132303235396539336531653638 -63363464633234663364663637383464383530393234336237336335333136613638613236333830 -66396535653633623664326338326562663535316165336266303266353266313234326235353137 -61303639626165326336386463313632383332336561353664356166663065646237356264333039 -35356138316561353138653833333637393765313065316437306135306337653536353130393633 -35396466343632653831663138336335363137643737623963636136626537353863323565383663 -31373762613338323431313235326364306632613562636265363561386237656632393866313466 -66386639373634346265316337633539356138353936626535633436306134613135336333653538 -36313935343861633331656133626566643034653938303431393864336539663165333538383437 -63636465613533366538366136313465383962643033326632663663633939393832616461613730 -36386462316339636136353863386265656530363732633034343135356530333734333831303965 -38666130313738646330393139313035396233353639383334313537373336653133623835303365 -30356634643333356536666631636464633934376136633739656532333737643931636632643238 -62323739636630643535 +62626533373339303262626532366231613465653363623339346435653338643230386537316536 +3934623730663737373534613164333931653733313034620a366233343164333536373337386466 +65303661633464363764636632303635656636633564613965336234336365336565633633376137 +3766666465396262360a393630623065633561383734643965613936393266393539356564663963 +33373863336435623264613862383865653964656137356335643130363733383232643437353333 +33356433396439376134663235623130666334636562366536636135353437616564666662303464 +64653065316666353665663139393265333539313032646134363336333938373662613538643864 +37323037666530373839356637663962353430613133383336333036363732363932323763333237 +65326539646534643936633939356335383264386266303166623038333666313364626338393334 +64666563356430306337616336383834323765666439396232396164303836663436316564653339 +66653061353839313035356535643033353030346365643263376364666662663764366332363537 +61386639336136323264313261363330333161363136643531356464316561356530303361623562 +61636166616233653361613565396132353530346563633931633939376661613230313462336162 +38313932633065663766393762633635363931633065356630333739383964313731663836383433 +63323437616562313130346561623936366437376330326366373534383133353239663432663736 +64353332646634303331643933643436383966636562646366666532333333656435346363643264 +39333235366432626562656532386635326465316239333336663665326666366138393239663037 +65353463353063306535386663323230333361613139633331666463376364373533656234646437 +62346236383061616465626333303632363463613737343565376166363135373539656163323364 +65613362373139333861373561663830306363373063613362626238323533643365313964656664 +37376535613030373462306134666666356662666338303166616465386364346435346330666264 +36393039663663613765313834626564636635363733656630626138316439363232666363373736 +30613864316264343437306466303230616436643263313538666133306237336535343764373838 +34616231366339386464313536613730633733663038613761303337346631313630636539653862 +62383139343262366233333631326132643564316338643336373736366364656366643230613864 +61396134306230636561616463613962636334613764636635306563343332353830386264303933 +63373265646233633836613864353363626265643236633037326530636666313332313632623265 +64663538353237656337346238343063653031376330323035313462303661376337306663633165 +65323439323534313435323934313432376530656463623362366265303734313662363264666330 +31363638393761656338383132353834633939326530616164356234333731636665316236353965 +62313430613764626561616635303062306632666364383033373235663437613263636138343330 +33396637336533363061613931316434393337343233623666646438393430363864376333323433 +66613261663336393935393362333466326162663665373330303434326430616636373461336261 +62643862396561626438653261643736396131663365656136626462663266323635636332626630 +30656564343930643532396430633237623330363563636538373431363930326335343732303435 +33386166363861316235303737376135323638616239313865316336343566653963626464636163 +62353239643365306665656266323839323030633333613763383664346362653132666439383033 +63643164636538356637633462663636393462323033616663366230373363306531616566623934 +33643137303331323966366631306637386565356266663562363236616337373564353866363538 +62323466633337663336396232383563343662363333323561613932396135363064346332306364 +32666231653339623737333432613866386239653836343133396261303663663361303537363938 +38346333633466383266303564366532373539383131353933643963633439613536663766386239 +30613365303333356631333730396330663733613364326437363438356461303431396437363131 +31326332353666356131363662623965363666613333366235666434313138613635356138666365 +64633535616630343166336434656262343236323936663234303062306634663963353462653134 +31383565386537333337383761386234616434306263346631323564303033346230353361633361 +64383263393462353065643734343239313166343438386230616436666234396234626564373931 +36366538313138343863313933623634306233333933376334643134386564373934366564383564 +38383439333337663139336464633366353561393835383736353664653262323837313934336336 +38343437376136363630636265323534666236616363646463363037373365663766343234613065 +32313765323365356134326235363036666236373366633231396339373534626365346132393935 +36383431343630376138383432373737333639643438313165366231333165303932346162653834 +36333639623239373361323462326338306631313139353335353334633332366563613366363339 +37386263656335393262393833353531653265393362366661616261386337663234323264333933 +65383662666630323765386534656237316461306661343931346435666534643035363238663639 +31393936626233656462303331376334663239316537393030363733366261653931373965356632 +32633433653462616164396234616635633863616236323161343235656136663137303465353739 +34366261386433323234643531343164653764383666323938623039326234653061333338356434 +62626530373635646432623936626264386361393939363231316662356566613434616464356334 +61613836306337633733373862626561366264306163633837643035383162313038383430393434 +66323364373230626630373462373437613865346362393464663665613837626332316533383265 +34326134386130366662306335313238306134376462643536346462393932633938373565393439 +36666239343937656335643933383537376463393563333635326438353535633361303532333565 +38343433353565356331346165623638623133393733313462643838373261373365316635623365 +34346531333661343630616532303335663037366263333536666665663864353535316637613838 +35306537653064353239623234373837633837313866333864386134636666633261646233656465 +65356438323163623230643333633537336564396563636337333866313537643135623963646438 +35623562666439396338316530633061383666646538343635623833363033343065643233316666 +34353731336264386239613661313361636365303562633063373035396639666131663263373439 +38666366383433386231313932396532396635376266376434353864623630323962326139333462 +63356239343061666533623238653935333163616530343161643131623561623434326362333337 +66306266343530393437643736353638646662643464316662663737666638306239623163633636 +37383862376134346665346666346562306632323666663931326666396335323662346537616632 +63343165646332386639633362323161366464383236393262326339643137656531323734363239 +62616531376466366330386635653032393764666662313530313236616136306564613932626234 +36623465393539323864653537646338666561633333633233616232356565633966663832316638 +33626634613836363163303962373831366663626438656562373339653866666335613466613635 +33663665666430613439393037323230353136376565303730383932353237613233663537303032 +62363037613737646365313165393735646564653835633539333533336165343732343732333964 +61653035386537363537633931643935353266353263333936333762366465303363656461333364 +61643365383463363139376162303535333832643237633965316531313934633961356136626662 +39666334333330363939633035643561323230396632303335623037363761613734613637326531 +34646361346166336132363261346238346530363131666235646663663932336330333762353837 +38373364323866313139333662343039333464356162393335316338323633633966363233353464 +36356434313233336364373933313731666436316261623961316365373761663232386333653334 +64616233643562323936353038646362346431653534373435306662643032646466653735313531 +37616531363334303465643563666130323132356435653131303939366561626334656663316362 +30303531373430653761663133646464386439623135643536363239666564663938356139303962 +66323966323936623561323836623431333232633731353964386538373566353730353530323064 +64656361613231323230623638636638303334633766363239303061303636336533633836613736 +32653635363964396562343765313931343730633839396136313233323032326663646264636666 +38633966663936303938373066613038373266363261343365313139626635656432663131653566 +36663034353332646461656662626465336239336430373539363635663265316539343035313635 +37333161366437643163393063313133623031333965663831376439383830326138623963323433 +65656537363435333331363162616665396435333630353832633937643537633562363335666439 +35393061616630326263653465613965643235323033363261303739376665633065316362663139 +32353435653731356139373831633437633362386635633132656266656636646534376131333731 +62616661376339333232396235373134646263626530626465373965376232663036333731363135 +35373030633631343265366563656462653338656331383639643363326131313934623833613630 +32353032303964353136303961666262313835653832336232623431663535633666623863373662 +32333661333766316561633566333063653635386561353139666430343239353833303633323332 +64626138303936376632616334613666383634316161353164323233333131373533653739383231 +66626466633662376261643764303066333361636563363837393065306531363830653136613462 +30346262653238303038643431346332633637313433383230383636373566613561373631663766 +37393133383639323037656230366434626262333261663832663832373336396161666337646135 +35306637623764623264366261633735313437393031363737363866373139323964356665343866 +30393338623938333634323765343565353938303961633161663939613163666433333936323862 +33383265386239353465633162373635313037353638383639396137306631363535643364643632 +36326662356536636232626133656531613165653936316532356136356666613035326538623761 +63666562396562633463326435393862346466313463653662353630653636663037363237323638 +61383434393062376639306365383135303966366564323737646539323636613630396332386436 +35656235663066373661303431343130613561643163633039313863313830656433336365626133 +61336630333135646662666364316231373764636137333236343938643634616266616636386330 +33376565356333376666373164306439323036613761346137393231356130393966353864316338 +65343639666432653931633635383231656130343931303534623531313966613864613363333832 +33333939363964633262626363613165383435633431623130623161623634636639386538636465 +30613530323230353936333233636366663038633633363235653366373464613461383831623839 +33333665613235313638336530353466376663613136303230303132393762323362333633386663 +30333661663263366238323232396638303238366564303661393331303063373338653165616135 +34666135336637303461393962663465353035646133336236616138346134383237326137376636 +35666163643264373131303766633535656361333862366633336430383438356166653834623531 +64376639366361333863353330626437356663646465336532643139386437653035613863656235 +35653635636261353332343466353634646331313662383661306133613232646663666635326234 +39306466376432313162306137376262363839343935326437323565633237326165393538656162 +32336331326631613232346130623032653235626539646462316363383237353833313661656337 +35356532643939303532653566663231646166313530376530313737386137656237366538356531 +33616133386536346362343561356136363537626261646436666463313536623463343636643434 +65646565616633633837373839343237616138663337626361383861666133633435666439313365 +31376237383534363430333462656661313464313037366433363334653536303831633930313738 +32313234353663663664613863333237333363636130616335653962653662376438653434653662 +63313335643934336134666564386634396136623130666631353762303363353830306336616266 +65396164323837633831306463343034393361373032663062326461653230386535313933376166 +39303736343835393839333231313339303066373666613231353530356564613365623765623734 +33376565666362633433333333343763343365643830333839636338643335656538633737343438 +64613936303163633831653737353062353033633831633836633838373632333535316633303432 +39306461333466366161383361356536326234666636366663346236633030316264646163303162 +31343332646632313063393866366330363732383464353062663234333538643939636464613731 +64623530323862316630363533653635323762333637656531656164343039373633386136343065 +30646162393266663366323735313632383463373837346334303964653962333436366361303165 +37386635386334396233663861393037393735353138353430323365353136643236303339633632 +39383030303634643437333039343531626633346566613261653930336534373437393063613131 +33326364663139366335366636396333623436666436323333306465336166373233306534386130 +38313862346530386463346430626435383335653232303563376163353730326164623137316433 +64633064633638393739393734636231346534333264623434333063346164613830386132396635 +34643235306631306237636666333633633861373362643133313831613737306335336130643664 +33383766306364353263383961333232663934313738316438336666336237393663646237363239 +34656435346463633366663733303338323735383538623331343532383337323761636639323264 +63653262663534613039346530613139346563643162366430313630363837353762643530303936 +61343064613830343862643234376637393061333035656335393337326664323436653632383133 +64636561623530613039626366643532666137363935633364326637306339613062663731343731 +37333031343630306231396436623333396463326137633437346562336163613766616366353239 +36326632343462306535336639303439623933306430616166306530666163353231386163653262 +33313731356431313263333533636562636538356439646433316539653862386261666335666432 +61636363396266303063373439316134663563663462303463313037393437376437396137616135 +61383630613763623662353933613334313462616362623863633266633937333134353230616565 +33313735633265303361336339653361323839396461626562326261633639353165383935303065 +30326462646361323562656638386562623431643430323662656236343732653436343732383939 +39333532626134346232656165383365356364646439303863346135323864306333366234363138 +31393466393462646638666236316535343438613537366132653535626634633330393436636336 +38346563306239393034633665336165343435303137393966376135346361326661653538306135 +62383561396537326239666336663061666261623065323630633462623436393665623464666131 +30666163353734396235303962333737323133326430376337313936353534643461383135346562 +64613732393337346532373336306530613637626336656637333132633463643037393666376238 +32316462346333343766633736643731343734306166386532623038323535313636313061633637 +33323934343237356539353532616361306162333832613333373661366134306562653661633761 +36303436303734666662333863316361303937323233653665366633313266313732663865383638 +35653139303565346137623961353165663061623235666332343939616338356432323963626266 +61623835363230666633623365333466373431643962643639383635313235346265333434356434 +39373662656132633766613138363036353635316531613136636335633833363362333736306531 +34643661653934663531323837303166636637613061653061366235613830373065613363663030 +30336335323936613839383239396366323233303466383233643663636536373034663461346432 +61636262613336363761336361626565376434613565363131623866353136326534306133643837 +32653135313365616533393730633131303535366162323635323032313234653461623261663536 +32623531623337383834333066313738663863663631386566323766386531383030663039383934 +34373335636233383665323362646437383165666638646334626130643839376337616530616331 +37363033633535663639306165616163646365666461356637323163643230353662626639613564 +61376233616535373333353363383366393231643330366439363361316338316432383761303637 +37643636376162323731363734366630633131316336336433633232633562383061343738343738 +31356133626237666637623835313631623830376535306261666261336139343330323135616432 +33303237656333646436663066643763633764646530653836616432393166343939386339373737 +34363964636430303039633732656231356566386666336233633862333865326139326533333963 +33353734646637636436326161643363646630353433393236366637376166393439316634326332 +33333836363539623936623338613833313934316665646334336337623539326661383739366437 +37353863633435656664356461356130306130653230336533383535306431623234366631633262 +30353562663665613466373535313739323262633938623433316432646661316539303239663361 +61353866643036666564393836313761353966303836653565376335663233386361633637313935 +33636431656132646539303064363331386661643965316431636466363338313666393632323537 +37626364306666616162383135306262326338633839346161653864663236656434643530346666 +61363461633464386637343962376262656338316637343063353961633466303364643039656634 +64366335386234626437363036653737326263613661666562626165353863373037616138633938 +65313930386430363534626463653134316664613134336533393336666336323863646235636362 +33376336363937643464356262323864643132303732363166353265636661333233393337633732 +61363735666436316634613930353464653537303036656236356238396139343133383564663733 +61386662323031356665353231653731306136313935623536613032336266613466623733633635 +36343366656235653838373636323734653166303639313538383738353334383061303866376265 +34663462646534343639353833666436376434656238653464636466316432323531356335653932 +31373165616239653832373035663633303632623738623465366430613638613736313264613237 +63346564646135343231363866636564316161313234393037613133666638353863626134386565 +32633839613165623638366336646533623262623463356132613139643638303365353431383661 +37336361353062356161663338616361653038363233376364336531333861363964656131323138 +38643334626431373838383538393034393731313861313163333532326431653438646364383735 +37333133393962313536393763316666616233383035616365306665376538663337666336373135 +61333462623436656338373731613664366230643661383662633633633136343531613861663763 +36663639396238393838666338373664393634383664656463303235336636303439613436353436 +63636465386336316164646331386430633133643665316439303665303532613565643462666431 +30303964336139353365383531656136313534353332376164626263353066326265353165353233 +39616131643261356463666532636638653231393530373435373430653735636433616432663030 +62313434393033336361663536383535613434326262383638306433356531343962656665353034 +65616133353562316636313736646131353730633233633134656132376161643363396261303763 +31643463613038643066323734656431336364663433656165393130366531356131326432326533 +34366261656330643833366638653631333038393265356162386531333634373532663338663337 +61653230373663633632613662373630323638313663393839363339653362376537313434643862 +30613235376262303563636164363264626164613466663161336633353336383230626530643663 +39623735393532353630393836336334313531386566623461303061643232323565616366393535 +65613032643030346539306561666430333262306433616166393564626239313134613930306666 +64633063386262646638336134353862656330633564363130396138323737303532396133333630 +34623532313934656262313834343236326561373131633830393861316263333534303363313561 +61656637643064396139323533363536613064663136323233616533626631613234323031653232 +65346639616161343536343361626539346530353666623835326236393665343934663038383638 +37636336313133343566616530373161356464366231333931313566323933663138303263363332 +62346464323466633332666462373735326430333938353566366435323034653864356634383864 +37633761363063393663333966313132653435646664376231333663306439343030663938363239 +66396432363634313765666661666461366266396265656163313861653830343833313339323764 +33306334663634616330313464666633346534656361616539626535353130396337623762636462 +34616164353261613363663664323631336663666439616637653461313939393334363465613235 +35663063393230356564653430666531386134343434333835636635313033383964366332643361 +32376265306230326132396434613766313538646230373830623533663937343535393465643262 +30343665383039326436316339613737616135316136346538373832356332646461353736346566 +35356133383931316638383138636134313266386366333361333137666135613464373761613835 +32303733373966636364393632336639363461346161316563643730663262363763303133323535 +61383964353132653466383437613432363930616533623330343433326635303438666531393031 +37666531653636626635653263373565386233636163613366363963643631336333343861616236 +65633038613537643863626566393738623738336361333664343034336338336531613531333966 +35346238383036383439313664643338353633623436626164346166313532653339353463366339 +32323633363332306164363864383032363537356334643637626138313837663134306531616239 +66306436616535353735636366653330363332373435366637343530643539623061346666313933 +39663461306237356566623363333564313435653263373132653162393362363232636634323063 +62336135366637626538393138326132646264353164323535663365316634343039653130316333 +39323338396437333831383862653666323832336431643361643538646139353165333738663135 +31616434306633363766356366656465346232646164376338636165366333373235623934303639 +30653036313135346161383231373831653236646536653566343731653037303130383832343834 +37343933396163653337373766333233313833343861646161323432306531666565386436323032 +61346134643132313436313965363939313235623539313039303333646437323830333964386565 +39393238623763326662316161376430663534636664346665306532393037353863633962323335 +34626537316337616539383164616265326466363335616435396536393531306337393731616338 +65646262366236366230336536323030616163323130616239363033366261643030643436336633 +34353833323735323935343132386238353465376639373063336334333361316431613861663233 +64653066353435306665306431643636313362653364313561626630643636633363663730366461 +62653165623437333436633062643933626265613438666264636164353237313933366436383532 +65656165326633313836323961343866373765666563623966326437393636383165356261393764 +32306239616361313463613032363636623463383135303864363732313239326232383636636232 +61323161623838633964376630666431343534633661353336313533356134613830663962366461 +32393432376331366330353863666239623131323233636437366262316335313236313133666138 +31646162343562316465373661383738393138636130303739633263363365656366333237306165 +62623862386632306331666130303637656237326537636139336239343339383136353263343635 +32346637316635316636626461363239343364393765636264663362333232313162613662656233 +36373134386664623132303061353236613332313836313261633866613930353435616435633162 +33626530386661313237653938323566313666356566613031323931653430633033323833663963 +64326438323130356662363934613438393161303638613535393237396239386230623761666133 +36303561316231613331613963633063366664636430326639613534653632343731383232313064 +35386232373162633365396163663264313230613137363961313861336163373466383838626633 +37303662643166643032663539613364323561663030383133386236333033393962636638393238 +62656564616166393538316330383734333761373035396539633564346263653834633332343933 +64376466326266633363383033393230393834636661613734326630323237393134636633333933 +37333566376632356366636165663734633164653237636566343764626136366461653861343333 +37313966336139323965303838613939663866613730636235323032376233343464653239363835 +37356139646232373139623961353033633761646366633333616434353130376237386632346263 +37626336396361306138366239346461356436323362313831396430323434613966336230366137 +64613733383934616435643930313262313934626439326235383733383831326133666164386133 +63336233653436306566343030333963633366383536653230356565396166363833303163333263 +65373835396564323830653534313335666661346234643261323939336430623530323565336265 +32323938653634626634616138643966383930373730633433313663333862396632343631653336 +35656131396561303563616137666232313535376666643832616535333266393632373534623338 +30326665633463336661306235343634656263333439653761646537393165633237326361666239 +63316264333363393739653233353637366261666665383162633562626431373137376333326534 +62353763343463326438323138313532363133643539653063353031343865313063303166336563 +64656162663566383232336265393937303835316639343831623362383635373235343966356261 +33313666643537373331366336613664616164616366646363636562646536303763313166316636 +31303265383335656162373866353865663062666239623839663165633237343038643232326439 +63616232396164636364313835386261383334613165323431636531396666353837313864653463 +32643863653462663236613537663264303066333132336462376661633337646634323833636661 +35386433373134376462323662373031366564376338376433363064643065653239633134343965 +61323365376338643734396134316436613134623033353966383262636463356336303363663535 +39393235343461323233303434333030653533613964383731333765333435643764643037613061 +35363737316161373930376561626239633664343832363339663836613136376362326663346133 +38366233633764303362306233386633346433666439333035333537323962303032316135616230 +33393161636663346663633139666237633062626132323035376631363464363762643030636338 +30383731643363656466343363366437623361306638663539376233353032626265623534323365 +34313864653539653031646632646366386165643531616433626262396332653338306234626131 +31336537396130306539656136613964316361383664666134306165666262336336303237316361 +38646139373166666362636538643863623236656436613733346435623635376135383533643630 +31653338353137393937386364363137386234643233346137633364333561383930313363343436 +65343862626665633732613734363063656534303861373164626362666234383965613631366162 +35393431646565663563366536323332353738313935303161343164383832323030646331316664 +63376661353833656130613066626439626265623835643036613664643566323338323330363335 +33643961623030306138663865623365373566366332336165653862336130336330383134343561 +61343536393365306664643139376332393233633031383163623963643633353132616538303565 +30656530323238333433346131643031633666366532333964386636393730306162666338313534 +65373532366661656436303735323466643761666438636565613334306439343833353039626133 +61373132316632306438373537303966663733343933326437363634386366633435616430313966 +66356138626535323930613730656139353837313765646536613565653734626638383762666565 +65626332633337613532653336316562366436393563643162343130643334356562626137386365 +30386237633165396434333064306333353366346464376639303431343434383366393138616133 +35343864333330306130613165653432363537323565363464623830613665616364323263336563 +34336535663836663861323164393937306230653538343561373166336261376461366330303864 +39663732386362303062306230363437383664636462386661343739373765353531626234633331 +33636466623065363239363064366663623563316136343862326634366533366135313161373762 +36306362366365343933626463616236386561623437613237653732313838613736376232333463 +61643430353765373638626433306132646463633835653965313965633434336662363262646437 +30303839313864663831363362666465653738636132656436346464343136616335653033313035 +64633732343137633631366137636237383632373362613461393431363866636331376134323161 +63646463353961336630323432616464383430636434383163333964343139636366393434656462 +39396263633938316664353231626561396235353233663733396530383436363834363031363563 +63303938373466303737323865396464646534396337393733316465393333376131653636623230 +64333136613864616561353130373437366535306365303737343736616134626631656561613964 +35393963313237303530633064353463306364343965653335663130653930306264396633383630 +30386439333333346535666537316563383764306336323538356434373036383964386132396265 +63613539613536643463613065643661646634613038356563313565343863356533653565616265 +64393561316530336131326365353163323439323739613262303634653165626466393737383939 +30336166303635376433316132323637316665306562316534383534373137666432643366636563 +63623534366163353637343139636563653834646462333231386361643435613631343231633563 +36343031313363626238346434613263643436313039383133646533316237363639396132363965 +66333930346337623462343762363631626461623535656631626162613865616234306665653835 +39633166613432333936353333663838313836393361306162386237366166343633343834313639 +34363334616433616437663530656134636162616364653232646664383035373737633662336363 +66353266373330373334383666306162643262386130383464333363316436643332653932653865 +65626231626662366534666132353261313761343830313732643561316430346632303836333735 +35646366353564623236623133363036643037333436303136396663313465323831386438656530 +36636263366536393039623737653963366535326334313662663764346666333133666265653539 +66653862643031663334306361303961306439386465333339393066336335656639326266663364 +34323862346264353530316432393464346237626661376162336437613763623034626130646135 +37613638646431613439393866653363616232353333373662393632656135613930383762663032 +65616364663164333739666335373661626361613736643431393130323039336135636237623537 +65646234376565623533643430353433666333333730633035386166376465616439303736366539 +61343065353230626339633934643762393565626235393937363830353939653464353239633464 +36333761633766303237633331323933333637666265353566373236376365326561346266353033 +66313264633239623361313130326566313036613030633864323735363238363665386265653537 +34316634356235346565393038626362663064393564623266386166656536653731323939653330 +63643931616466623037613633326163316264613734623265633732336637646431653231666531 +34626538646666646339316636316539386230306136666666323962356665663034373438643564 +62376366356131633431346131663137356265613732313830653838393563643866386635333139 +64386664303139626362356330333466323265366462613165376639333138336138633835313637 +34633830353233373462366235393364363565373530396261303037633730623961643064343238 +64646530373765386235343763623365303664356635333233666239326534386362303264346563 +66373065373335366461633265316638613861656362633431323131333064336632326238306132 +35613366343364326231333134333237323734636563353864363331633737303938386265373938 +65373965313662666436626531353662653062656334316438356638333163363666656165616464 +62646439396638333466383933383332363037646635303466323730623434323165623762616130 +65346637366262663263363635653962353935303261666635356134316436326364633532633165 +33306232306664613761333935666537363233616562396332336261306231396263666438666339 +38393337353134636565343366393631363738636464363265623439313930376333393036663039 +61623032306438346136666638616461346630666634313734633434363437343639333562656165 +64383532383936663939343431303666653863303430316431613462363235363036303532346266 +63323964323864326262663465656666613233396331383331643638376366613032623563663439 +36363539306361323365303838353861646163346462383565336261336161336332326666323666 +63346239623433376635386665613062323439363665633166623634653933356236356232346164 +38386635353337393937346331383662363231623363343063323537346535363137373561313732 +31303535336536353263373739613535616362383564353732343062333962363265623032656562 +63306461643166613239666131366535353264386433613663353539643439323633323732626266 +36623331396665393766653961383132313737343337383733386133636166323234313065653630 +64316233303738653036326535653830643830393266316664663230626530353937633038383432 +62653162636231633732656462613133326133633838663762316161393565346130396631656132 +36333663343037636137386465376634623263323431366462316561303937613361396533386665 +30633263336162373463316631616133336261336563393837643539633631363639393966626331 +64643038346635336664346630643233353565303831376430373966373531346162386636396364 +37613436343333393138373766323633323030333330336535363030323833343662343831396463 +61396261386436336662373036323332343361376535393339376162366434333831323838376462 +63643261363539373334303364613132386561316139346336393832666332663732323461313135 +39626338343630393034356664376663356139386535373233303864633136333464653633363866 +36393731343964653163656237366461333630646130613465633036386331373330636431323030 +32623464653738623437633761316330613932386439653535373361393063306136383831373838 +62643437616266613338323066663963623164626233366466626132373039643936653865643430 +32666439373762613833353661616465633935653463303839396336643638303764636236656333 +65393265613566373963396662393936653263316263366262656233373836613536623166616336 +62373938666633363730333433613030313334313163366634333432643736343039363732393765 +34363965323663393135663233356537623165613035623235393531353730303566633864636665 +31396238633934393065313965356230613633633966616462343638326362393066623962366463 +63326564626463633631356232323932363237333331343839313361633865633939666264326263 +35373133646263646261376635616135313937656132346433383533323230333239366564306430 +64306237666532363336393561333132663831373463396466383165316132306361306265633462 +37623231336538396130616130666565633638363936626566376438646462303365376266343665 +61643238333137306263623137633530623630383832626562643339343232613136353432346335 +61393337366466383430353136613361333361393638653035323461353934306435363266386533 +36646263333965633266656434386133333365663765613965653363623437333363663638396132 +32653636346336333237663064656338646164653031613866613033353166356666656534313761 +38366163323462303737643736376438623266303863633563323730626632626130613765373664 +32326130393532636266653132626234643665623764633334316563373335353630646261336339 +66666439346134646232343336653637666131316632623137303537663132356636646438626631 +33316639613330346631303035646535353830613038623962393036303563636232666662646265 +30303261363066363733346363626536383032313532316438396636653639343338303838343261 +39393331643461323731376364366235666131636638306261336464306331303236303463616666 +37616531663666343432343166363565386164323662633238623230656463303330333735343039 +35663061393133343231383837633762376338643338306632326431376138313730373333326462 +65376464646235646630326136633434303165383035333963326435376635326562353735613365 +34323933376632643062376338316361646330633837326131616130343638366230626466666262 +38376463353239336466373535303165323763333639303535303531373066623737623461323363 +32373832333664643562613862663130613865353264643036663838663938376261353338663165 +64343761663936363633396362313033346334373537353633383739353063386233303661313964 +62336566643063643036353364633638356534303336626332386566643363316632343865366463 +35653730616566633535653066333533333663666432396463636465636334316233383237646639 +39363465323163326165663963663966386437623637316663653135666265333339653635393630 +33376261653363616533373436346537376135626134643834396664616662663432373837386635 +62313565653863343339613231336139656664376564323163326365613438313263343665656230 +63353939323231356438636536363661313032656530366364323062623263623765333138366539 +34643133383432336539336263333132396337383339653737363061373934323666383861306563 +36616164386463363733303031313939633761633135643930666230623135356639643735316662 +31393664383039363632353435613461313939623639326534623735626134633133656632636132 +37626632326566353365373661356135363034633664343864316333323230303732303831386366 +64333838303935326131326535633535343636333063393664383561373630616433666533313231 +66613537643136316563333861653632373531323435643263343966346666643661396361623837 +37356635396230393135383463333237313464366266323064653331616139303463306262656663 +62613435333532653836396634623532316135333764393763393765663961636363656333373637 +36646361316165356637373261363435616362333835306231396333323366323539336663646332 +38363137643830366662366436316461303365623538383430623065623135383563623162613837 +65393031396337633538663764383639613039383237636636376539666333356232613061303939 +35636362373039643161333739323436616132613961383933306437643763376139633861373034 +36353966303130626639643265373232613633316133613966646362363964393037633865623266 +66336436306165623261656132663039306137326334366237666536633735373134326365656161 +30633163353336326435383865383934353762393434306462363566373830393637363766646336 +66393738313235376336616261316362643033653236656134613164313864363565613365613966 +33333031656439376139336233356138356136326638646139653966313735356331646662373738 +65326330386236316534643935386132303863356565666234626563383634313734636162346364 +30666530623233626233623166363861303363333637633063623064613934363662323937643539 +62616466356238623535666337306531373937643239363364323666343933323338653634373663 +62333666316132643663323461353032396136626633356663323837373338303734663437316334 +35376230386464343430316163386532643236333064613134386266623964393030363666663036 +66663635633437633331346238303963373238666537353133623964373763366165336533333439 +38663534366464383834356633353131376335323433633937303031666538666563653038316235 +34653432633264613934316461393064656366363635623531376637323831353431353331336236 +61636434373663346235633734386130623830346263366337623930636132373063616238326664 +30326366643437386439663766306538653032656632656437383132386463626432666534373033 +30663436303264666262383931353465363937366164636663373961666432306334616433633461 +65623061336139313931623332336333393537656164663365326335333737656339373463346563 +63323331356138363337656563393838373537306631333837313830323737333563386661626639 +39366436616266373837383466663439653866333561636235373230613832343736396139363163 +31383239616164393535613061363330386131346433343639376139636137346464306263303364 +35386363376630306638363737653534646538313663366138626262313133633464343563353635 +35373732323938303438356562316632356532663537636536326162613037323962353238636561 +39663330653039353330383332393534383335306633393762316464333062303264636438363835 +63623963353665343434646430353164376637616665393761336533373762393334383737393533 +33386566336462366139643561373064306438633862353838313739306463646234616664396439 +36316139366538386133303963313337663438363638396464306537346161313931613532373964 +38613766323336346438383833366532306265616161376337613662343634666432666332613466 +38373165343834356537636139313936323836346630373836393435633139353064613030326432 +61323633323536303661663561343964386533616465373631363763343065663631636130356534 +33353535643234646430663135313938323139366531666563376430646639373961626533393533 +63383262333339633239636632356664343663376638376139616433653337653664336164313164 +62313262643736353638663039303464306130653066343762316263663238653866626531376663 +64376262393963633835653337386537366462353165356230393536396532376431363435636331 +39653038666234386461343535303531363836623333633234313134336437653033373666323561 +66343731633331653161633261653164656166386665366362386639623834653666663235633932 +39383231353465306336663036643832616661373431353962396436353035363337383334316537 +34373133666562313730313239653232306165326131313039643839646235336332363634333061 +32643339333738386233653961363961333630346665386563616261323432323339376634316662 +35636462393239643235383531353433623463326464616663333466316632346463643139666639 +62623063313036313134373264386364303536396466353666306130616431623334383230646533 +64646466643566323831383833653935643865386362623264373132363232653034353765643061 +62653533663434386662656363366639626434663964346137616230636437393131613964373333 +62373564376262666562633866626264653365663163623363363730363435306334316132373731 +31393136323837333939313564343730643832373664366636663066653862396536656262343365 +64356533303735623436396430353933323639373034666230376333653461623263323763353832 +61303766663338303234363665636266663961656139353639313762666565353236653437666330 +30313332656264333763376362616266616232656163663838363561373239343138613836383263 +38643565656434636539616363343135356632633838636135623764333161656137643734383162 +39313266326365323538633064383466356235333361636661353235656661633438346237306632 +30663565666163356166386534393937396339393237666134306462316336343632303064386561 +38326239313736633333636433343631326132353232363937663162373133656133656337626662 +32306166316361323236343461303436643263383933666261383136643338393433323335626634 +32613262656439363763623639663338326463383165623036333331356332646538303135326432 +32663664363638316266633264376661353364353632353831333166656239616363366265393533 +33333631323136633232333961663862333561663861623861653761663362356462343066363938 +34613766313438626532643135306138633461343165663161393264663762346363613435383662 +32363237626133393430346237303065313265313435353464393539306265333332313665376164 +61393536303266633239363139383832643631346565633565633035303331333936316239663764 +34383564346431323231653337316335343236306338316236353231316362613536326133313863 +35623666613233366437616234656131653431393932636566353536383935326263653134363438 +64623834613732636236333838373734653231623063333265663039373530666562636330316566 +32656333313763343966333864386664653534633063373837373439316333303063383632333934 +36383166303565323331353035363131356631326133383334353735616263383837653434616535 +62356239323637663035326366366237653064393831343238346530346435373636623235303434 +36363861313838333931666638613164303663643836633063316365333637386637326434316537 +30636164393431646162653233663434633030653366666665613735333939613961356366366666 +34643133383266393838393435666131643763643332383839373064323462373566366335616166 +35643236343535323138333465653932656236333637303631613061323438333562666236336334 +30323838393034306237363936393532343537653566373362396534663862653663353263336538 +62313037653935663539366464323765653365396462353665623134306333333134323034623237 +33346638313366613436316530316663643565333662306636303733306266363462386661333733 +65393762326664316265653132313434393837346438643439663933633737373437643830633765 +37373338336233656138323435343434313038656336363666376361306435343936353966633233 +34316464303533363134353830393333303431376564643537613838343232306263313937633638 +66306463663061343635653466643533656630316539336239653038393164373566653736346435 +39356132353166336535613634353732646135356233326537633337313964623736343965656535 +62396461343238333965663965393363333963363934653531656631316262386137336562393361 +36356236666635383462316134653864376633363831383232623438656530626334336436323962 +61376134346232323338366438373134386635336165623332316264626339303631336266313436 +66613664313232303530363239656433633632656332353831303263343833363162393933613062 +35616130626261623764353134333339393036373934343436636633383961346636343833313431 +63336431303532323265373834376561363665663132323837393463653038386163383839353565 +32393166383634333262633637383935396166313661323961633761636265663537383333386334 +61386662356437623632326639653338633461393564646163346133643537373534323461623164 +65353834366630376634343237616234623134636631346234376533333165383437326433343139 +65333366323932643037323837316636626166633838666135316135396631376365393238616161 +63336235633163363431646534316565383332383466666365613934616137353630666139383939 +37656133333263623830303431373736666636326363333534656662643530653263613764616262 +32343430336132623635353238663133316630303363303665633032393335306530633532383166 +64363834666233616531643534636232373131663631346637346533616165313733623263396366 +37643763373831393366383231623733623966313733353263386232633439393533336466616665 +63616236636131353037393638636139396339636534353862353237633131366562393834333936 +38623566653465326339366562613133633264333639373939646364303666383661366661386162 +62636231343932303635326536393637623434326133653036626465393736366438633030643564 +61326461336338646239623731623861623937636161393431643562363431333662393139633730 +38323338353864376535326637646564373330313663666262343965663266656464623132393332 +66646137363238653036383863313935336264383935336462646535373663323033616663636531 +63626261363439336165343931666337633330653233333130363632613366313432616162356636 +38663536636266646461366237633032616337356435633536303432613535633165313937616462 +32353638393335626438653531373137376231313162663462303837656131663262393764666564 +38616334666363353633313931373736386164346136393730353163663363633433353435626139 +38333761306233303533353134643232306132363633323738313337643632366539383563643163 +64613134346238633465663338396365376631653932363362303635343661373662616666613163 +66623563393730613730653732373764643866343633396631663964643966643934366261366230 +63396534356330663162356230363465303762343830316136656265616531373163396339376262 +31373234616465626137396131646164303664663561373165333264613333643839653536623337 +36363038336262656365386566396239393430303037373964336631323163303934646539306132 +66646132623362663266633138613966393163303236386132653130326437333331643261656362 +39633933363930643065343566376636613265323766306539376432613366366639323939623166 +31383063393031396230323465333566623562356635376336323766313865313861643430393936 +39393632643934336366633732323031333739376633366537363938623836393462343731333066 +33646263316339303436326430393363623366633132346463633238393934333033343934663830 +30623136613137323434326133646233633833613966666135383836656336343563383732326136 +37653465666132613235646138373435316233656632396131346533633737376264343239653261 +36363435383135346162643439666563373265616339316536353966633231393062363338663865 +33396166313230383030326133363263643932306563306530346264343564303034326332616339 +33383661366363333364663730383239373833383065613831643034633231616261626231303164 +33663835653461343462393766663335633163386261313536616635363364326166356461646134 +64356665396239613963346432316262326133363764393534366436366131666434313864333332 +32346533613066326561373064656332616431643938343262393361346565376662383066303764 +31633362333036306331333331373634393263656565393736663362333233633566643532353034 +39356238346266343766636631636434366335373337323830353833313664383863343937636437 +65626162613263336461336534323737353561646235653337376165613737383438656432393166 +63666335303261353866623661313062393830623739393339313133633435663436333439626237 +61616665343539393330626335323132653362383963643363393566326535353933353265393731 +66326430663566353766313162653137386133336539626636363066393237343030393232643965 +31346232363961333166666666643839376564613764643030396230656666663236373532626439 +35326132323635626364353237633364306166316437363834323638363534636536653135303838 +61326136343831323963386331663932626231643066376436643832303730303661666264353538 +63353364623934346430343565323331386237353335613666386537356433336266363038393063 +64633335613535643766636430633661653765393565376362323232346164383336323535653162 +61366564623864333433356262393538376333646133663434663436346531326365646265353530 +35383734656534353232376261336136356262346130356363383632666234353837386133356333 +38336631326365633436356130363564333336376632646235323831303737373766333238363762 +66353630316536303566663966623138336632626666316366633333613632623931306436393163 +37346431663565666564303333633934383134613036646632646331396236646165393339383461 +35666666663734393938306539333935363133356430323363346630386661303239653534383130 +35623838333864313365643561343361643362643866366636356239393662396430343632643837 +64333731613763313038643366376165373734386530633134613739373266353565363566613132 +34333639323564366563303430326262643931626636643264663235373162346362353837623031 +36383363396337393630656264383735666339663666313731376530313032663263353339363262 +31363434626134386164633631633636646235633766306164346233376666383833636464623364 +31343335313764666466383532613064663430313465633762316236316235636461313333323064 +35396632616533316530656235656631616637303661366463343166376562616235613733383535 +63303638383736393030356538663634333733663163663937313935623737356533313233636233 +65323739656638383638343061316262316563636435643162333435663165396462393766396337 +30383365626363616464323361323938303563633666366633656666396236316237333765303338 +36346665613465336161376134623566376531346336356532616138376433306138393438616139 +65353062666563376637343439653436363566373936383763393063373661613134343034323935 +64323531393238636563303539373564316534623634353630326530373533643337643261623335 +61353934346639346664343033346362353837636363353266623532323730386566636566663361 +32356139316533313338626331326362336136363564633739336161363361636638646364646138 +36643133383866616633346165633531353832303330653235366563376637303438353065653161 +37633861343835363163653833343863396364633864366366646430633462313263663536326234 +63336337303363623531363736373665393135373430623334623533663166623266356563356235 +31663966323135353631336563323031383036613635613137616436323166376261313863383430 +37653461346132386630333530376532636239643430633438346364393666393865343064306630 +61343665303137396139396439653866643036316331393935333262616435626565363130396433 +66653033633632326262313532626363373233646433356139656361616130653763336638623639 +39633033306561383337663366376530323461633138353031343364356136363661636135653631 +32303632383033646364646539376433636530336462316531663633323933303835383761366561 +32373330646235343538323066656336356134623735393036393130323130343636356565336439 +35653961366435643636373634313531393733666630646165633564656166383035373439343165 +61666531333631663438333233663864643236653434656233353766336637386332323931376231 +33363931396537376132653330356330313261613763316635633033313231363737326234653838 +32303034366564333538653131656662666232336135383363623364386165396462356133323237 +33616431313236323435373931363831396462613635386436303636666135353066343862626431 +31623535333835643565333466393865653566373364376365626666353339643932383739383735 +33636333393665366139623239373662366462383634303731316531343431333966633033386363 +30636163383637363633393634383930353534333930393734633831653430323630376235383633 +61643538663834333130663939653534363939396333643038366566626238306431346638383138 +30353430363936346166666230356134633136666233666263623131643333306334643038393266 +37656438323137323138656464313232313830653365383339623436383664383262393366316639 +31666564363266656536396339333466376331653033636538383965323761356562383863626235 +63616135616431653961366339346530643164346331613066306231663533373763623665643538 +30643732623936663432396465386466643566396135336133393230646637303165376361333265 +37396233653762656361343337393264386266633233303136623738383931326135656236626335 +35646533646562303137373332633538636266363435326130336335356532653530336463373165 +34303037386339336262373832636431346234656266323339386661333632643463323634653865 +30326637353365616435303036343435353961396365386639613764343664646237633437626334 +35313331643362313933623039393562623833623731323434623831313730356163663763356238 +30313136336331666534663761666364303264636532666337633863373061376265343039323339 +37623631303563633136343966616238343332353665363238396230353631336437613835663634 +65643665366238646630346363353339633439376163636364353435373661346439633265373137 +35613034393631313435383837353866656136623339306633376266373338316135326535326232 +35353830366637613161636130383131653330663833353633373634303733383663333837386663 +63653539303138636537636465663537396431316462666563376361333238623130363039663537 +31396461663862393831646537383538306263373439326339623266303730643932653538323636 +66623963393433343863393761333862363964376465316130356432633630623365363635343438 +65636633396263343237363033353935623430386439636634643263636265636538316531326136 +36373163386162396266346663366336333761633832646431646235323832343731656131303261 +31323164646165326132663833616532396437356465353365303463366537653939353339376333 +34636635656335626163616438343536653937626565646362333132313733326265353833616265 +66353964626535373235343062356235376137653038393631313730613638316238653838306332 +35653764333031643535623935643535666531376466343631326166393661633161386563333834 +63333438623763346337316331633430396635303463646531616233626663643435663364326134 +36666465313438373339636566333336326639333731336665323965356439333739333631656630 +63373032373632343139636663356630376134316232396433386237353436303365663731336631 +65313836653165663064626164393033613663383566343636623462633532666461646165386138 +35623636346539396462623835633662643030306632633539666164656634663461393663343136 +31613539316264376637663563646435303433383332623935343634663135656135353837396530 +31366534633763663966646134383361336334326130386537613162636431646137336531653162 +34643262643138623038656339643539656364323833383932363239333836313166333237373534 +30386437313566303033313364613036336465323332656232396531323037373237663633623336 +36366236633565336535656339616232636235306135613239336332636534663962373234623439 +31333661383962306634623462343034613234663364346338613038343634663361326531306465 +38663832336234363636303632383832363232616337613934656334353334663437323932656464 +65636434333463663735616566373233396635396562636565633538636435656135653032313139 +66306235303931353765376662653834343631366361353935653934616135623435343533653936 +34303934663637373037366339303965373863626334393730666631623836653632326130636337 +34393564626163636437643534316538363530643630373263363330316632356537643930353732 +64376261306539653235336637636363663562396166376161623631333861373465666138356532 +38363437613761346335643561633238353666323338323531666631383862643030333936633862 +62393462663138336232383237356630303832386535303430643333666661656236396637633263 +37373361636233383161646463396433386234343862636431613964653564663439633764663638 +66666436333166636139616135643238306663323062646538316465363130663533376135376165 +30336338303364303439316438633561666366303539383631623561363765313434643239326536 +61396139303335623837303163626431653062396561623161663232633530323566316461366639 +37316438303235336336393461353132373633336230666433383930313765633465303031663635 +38373965623761623165616230356365313230613439346661313163323130316435396662306233 +34613537323366343230636136396130653266373536323265363861363965643437356563343166 +61303835336661323839343739326565376630326135316234316264363233653762613831306663 +32366637666134323766313234396531386637386436613066333938373233626134626435666432 +39353465393734633966366165643038353034386437366663623838653031366636356335356236 +64346235373064303135626637643630336433343435363161313135333766383438343731303331 +36633837643262626536383432323961323665356339666538356330316439646331383438313334 +64643039306530303061336461666331316631303239333637313236383262376433626139663365 +38356461373865623463356236623866313963386532303662323533326538376333386638303639 +39303132633234643732613534666535653037643336303333626230623962393161613562633431 +31646636383837363433376535633734643837316633346665643466626562633535653465353463 +38353631663932376364316230636564666662376266613335326537653535343961653064316633 +31666466353131336534653534646264366233303936313831353234356535376538333365313066 +34613135316634363463343764623230643635393832316437626431646634366235346463343563 +36373136303565376333623637666637663565366265666661306137393165623733653364643131 +61393063623966633837343230383665363864346436396137636139393636346639373936346361 +63306464386561323033633339613939313935383739633166616331613165613364616261623337 +32343934363866386333393439393162353635643333333737386239363933353161373837653335 +39366631313936356131323439323465353464666338323365366662616362646561356233643164 +63623639383762323433363538366539626533626566376666623661323830343266323236396663 +38303861366263643732323535373766333835373530393263306232626239336666643931353039 +33316137346564666162323263613137653831653163666364376438656439326462343230363830 +63393666323535363131636630323832653133336537333336323536396535656135323832393732 +65643032356361356138656662643239333665623165376331373163323062303231353262383531 +37383561653036373737343632613934353662366165376238356231383230623135363032316135 +36346634653432303731666139643361643832646465343433346533623634376362363431393732 +34323735333064306134373235313837336362306266623263643131646662343133313964393566 +33353862636432303531303331656563626662333435666662613136626137643730366636636366 +63663734376436306161626566663733323239306131373930356231316563303637303236616164 +33343339666265383436343161613433393431336636396262333532663836303439663363343632 +36653832613235373037646238373330383261396536323364393032326632653665663130613930 +30316130373431636437386333346433616265313238636635623264363430353835396138313539 +65366661323833656666666137313066373339643939383762636432663765643132393339356361 +35643635313864363061363933653162643836386330363231386331303665393830666366663763 +64396633323934306433636364643761363933373036653534663531643366356131636632363332 +66393861336638616338383261363866646461636239333362313035636561613962373436633561 +63636534393566376638303363666135386666326135376337616361323233393561303039363636 +66373662386230663463636464336432353462653765623036333136656633666331323164646132 +33313134373262373962646465313562386161613239343463363135343361383632376537356433 +63313132343135356365663637366538386164376536613936333865643462623033393036366439 +39323665643764366333353766663065616663623734396333343065666162636466346364326639 +66353565616365356531616364373933356466633535366662393630363632616533666632316432 +34386263366234396131663335636662313863633362386239386133336463396639343133316534 +38383935373561653036623935666561646463663538653036393031623961323936653435663635 +62646237356566393335383239343930363438366137623264393438623030633232323731666535 +36373965363666376462383733363238363839343139316131643463386536616263346235376565 +63343635663631653365643466313064313833626430316663366534326631333662633339363036 +35383061366339643164633138396438643131343364653361333334343638626637346230373737 +30353631363861366330373536303535316361663936646465396639643862373262353134653739 +65366662613166376536393363653264623061633338383164346663393562663830313930303765 +64636330326364383762656531393638393439313734376166323564663162646665633735306363 +63613431326133353432663964643766383536653738333731623236663737663433353833353562 +65623035643266306130363865613230303765393862363635613330356366363237646536373730 +61353432653363336664383061316662313736366633383633303563336431383762 diff --git a/k8s/roles/concourse-worker/tasks/main.yml b/k8s/roles/concourse-worker/tasks/main.yml deleted file mode 100644 index c7cf75a..0000000 --- a/k8s/roles/concourse-worker/tasks/main.yml +++ /dev/null @@ -1,68 +0,0 @@ ---- -- name: Download concourse - ansible.builtin.get_url: - url: https://github.com/concourse/concourse/releases/download/v{{ concourse_version }}/concourse-{{ concourse_version }}-linux-amd64.tgz - dest: /tmp/concourse.tgz - mode: '0640' - checksum: sha1:https://github.com/concourse/concourse/releases/download/v{{ concourse_version }}/concourse-{{ concourse_version }}-linux-amd64.tgz.sha1 - register: download_concourse - -- name: Extract concourse - ansible.builtin.unarchive: - src: /tmp/concourse.tgz - dest: /opt/ - remote_src: true - when: download_concourse.changed - -- name: Create concourse user - ansible.builtin.user: - name: concourse - home: /var/lib/concourse - shell: /bin/false - groups: users,docker - -- name: Create /etc/concourse - ansible.builtin.file: - path: /etc/concourse - state: directory - -- name: Create /etc/concourse - ansible.builtin.file: - path: /var/lib/concourse/.ssh - state: directory - owner: concourse - -- name: Deploy concourse keys - ansible.builtin.copy: - content: "{{ item.content }}" - dest: "{{ item.dest }}" - mode: '0440' - loop: - - content: "{{ concourse.worker.workerKey }}" - dest: /var/lib/concourse/.ssh/id_rsa - - content: "{{ concourse.worker.workerKeyPub }}" - dest: /var/lib/concourse/.ssh/id_rsa.pub - - content: "{{ concourse.worker.hostKeyPub }}" - dest: /var/lib/concourse/.ssh/web_key.pub - -- name: Create concourse config - ansible.builtin.template: - src: concourse-cfg.j2 - dest: /etc/concourse/worker - mode: '0640' - register: create_concourse_config - -- name: Create concourse service file - ansible.builtin.template: - src: concourse-worker.service.j2 - dest: /lib/systemd/system/concourse-worker.service - mode: '0640' - register: create_concourse_service - -- name: Make sure a service unit is running - ansible.builtin.systemd: - name: concourse-worker - state: restarted - daemon_reload: true - enabled: true - when: create_concourse_service.changed or create_concourse_config.changed \ No newline at end of file diff --git a/k8s/roles/concourse-worker/templates/concourse-cfg.j2 b/k8s/roles/concourse-worker/templates/concourse-cfg.j2 deleted file mode 100644 index 0a0dd68..0000000 --- a/k8s/roles/concourse-worker/templates/concourse-cfg.j2 +++ /dev/null @@ -1,8 +0,0 @@ -CONCOURSE_WORK_DIR=/var/lib/concourse -CONCOURSE_TSA_HOST=172.23.2.10:32222 -CONCOURSE_CONTAINERD_DNS_SERVER="1.1.1.1" -CONCOURSE_CONTAINERD_ALLOW_HOST_ACCESS="true" -CONCOURSE_TSA_PUBLIC_KEY=/var/lib/concourse/.ssh/web_key.pub -CONCOURSE_TSA_WORKER_PRIVATE_KEY=/var/lib/concourse/.ssh/id_rsa -CONCOURSE_RUNTIME=containerd -CONCOURSE_TAG="linux,vm,ubuntu" diff --git a/k8s/roles/concourse-worker/templates/concourse-worker.service.j2 b/k8s/roles/concourse-worker/templates/concourse-worker.service.j2 deleted file mode 100644 index 500b43e..0000000 --- a/k8s/roles/concourse-worker/templates/concourse-worker.service.j2 +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=Concourse worker - -[Service] -EnvironmentFile=/etc/concourse/worker -ExecStart=/opt/concourse/bin/concourse worker -KillSignal=SIGUSR1 -TimeoutStopSec=300 - -[Install] -WantedBy=multi-user.target \ No newline at end of file diff --git a/k8s/roles/concourse/tasks/main.yml b/k8s/roles/concourse/tasks/main.yml deleted file mode 100644 index bd65dde..0000000 --- a/k8s/roles/concourse/tasks/main.yml +++ /dev/null @@ -1,107 +0,0 @@ ---- -- name: Create Concourse namespace - kubernetes.core.k8s: - name: concourse - api_version: v1 - kind: Namespace - state: present - definition: - metadata: - labels: - prometheus: default - -- name: Add Concourse chart repo - kubernetes.core.helm_repository: - name: concourse - repo_url: https://concourse-charts.storage.googleapis.com/ - -- name: Create Concourse worker secret - kubernetes.core.k8s: - state: present - definition: - apiVersion: v1 - kind: Secret - metadata: - name: concourse-worker - namespace: concourse - data: - host-key-pub: "{{ concourse.worker.hostKeyPub | b64encode}}" - worker-key: "{{ concourse.worker.workerKey | b64encode}}" - worker-key-pub: "{{ concourse.worker.workerKeyPub | b64encode}}" - -- name: Create Concourse web secret - kubernetes.core.k8s: - state: present - definition: - apiVersion: v1 - kind: Secret - metadata: - name: concourse-web - namespace: concourse - data: - worker-key-pub: "{{ concourse.worker.workerKeyPub | b64encode}}" - host-key: "{{ concourse.web.hostKey | b64encode}}" - session-signing-key: "{{ concourse.web.sessionSigningKey | b64encode}}" - postgresql-user: "{{ concourse.db.user | b64encode}}" - postgresql-password: "{{ concourse.db.password | b64encode}}" - encryption-key: "{{ concourse.encryptionKey | b64encode}}" - oidc-client-id: "{{ concourse.auth.clientId | b64encode }}" - oidc-client-secret: "{{ concourse.auth.clientSecret | b64encode }}" - local-users: "{{ ('concourse:%s' % concourse.local.password) | b64encode }}" - -- name: Deploy Concourse chart - kubernetes.core.helm: - name: concourse - chart_ref: concourse/concourse - release_namespace: concourse - chart_version: 17.1.1 - update_repo_cache: true - release_values: "{{ lookup('template', 'values.concourse.yml.j2') | from_yaml }}" - -- name: Create concourse RBAC resources - kubernetes.core.k8s: - state: present - definition: "{{ lookup('template', 'rbac/deploy-role.yml.j2') | from_yaml }}" - -- name: Bind service account for deployment - kubernetes.core.k8s: - name: "{{ item }}" - namespace: "{{ item }}" - definition: "{{ lookup('template', 'rbac/deploy-rolebinding.yml.j2') | from_yaml }}" - state: present - loop: - - concourse-main - - concourse-inetmock - - blog - - inetmock - -- name: Create Gitea team credentials - kubernetes.core.k8s: - state: present - definition: - apiVersion: v1 - kind: Secret - metadata: - name: gitea-credentials - namespace: "concourse-{{ item }}" - data: - user: "{{ concourse.gitea.user | b64encode}}" - token: "{{ concourse.gitea.token | b64encode}}" - loop: - - main - - inetmock - -- name: Create Github team credentials - kubernetes.core.k8s: - state: present - definition: - apiVersion: v1 - kind: Secret - metadata: - name: github-credentials - namespace: "concourse-{{ item }}" - data: - token: "{{ github.token | b64encode}}" - loop: - - main - - inetmock \ No newline at end of file diff --git a/k8s/roles/concourse/templates/rbac/deploy-role.yml.j2 b/k8s/roles/concourse/templates/rbac/deploy-role.yml.j2 deleted file mode 100644 index 93b8264..0000000 --- a/k8s/roles/concourse/templates/rbac/deploy-role.yml.j2 +++ /dev/null @@ -1,41 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: concourse-deploy - labels: - app.kubernetes.io/name: concourse - app.kubernetes.io/part-of: concourse - app.kubernetes.io/component: worker -rules: - - apiGroups: - - "" - resources: - - configmaps - - secrets - - services - verbs: - - "*" - - - apiGroups: - - "apps" - resources: - - deployments - - statefulsets - verbs: - - "*" - - - apiGroups: - - "networking.k8s.io" - resources: - - "ingresses" - verbs: - - "*" - - - apiGroups: - - "monitoring.coreos.com" - resources: - - "podmonitors" - - "servicemonitors" - verbs: - - "*" \ No newline at end of file diff --git a/k8s/roles/concourse/templates/rbac/deploy-rolebinding.yml.j2 b/k8s/roles/concourse/templates/rbac/deploy-rolebinding.yml.j2 deleted file mode 100644 index 93fb45a..0000000 --- a/k8s/roles/concourse/templates/rbac/deploy-rolebinding.yml.j2 +++ /dev/null @@ -1,13 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: {{ item }} -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: concourse-deploy -subjects: -- kind: ServiceAccount - name: concourse-worker - namespace: concourse diff --git a/k8s/roles/concourse/templates/values.concourse.yml.j2 b/k8s/roles/concourse/templates/values.concourse.yml.j2 deleted file mode 100644 index c0113eb..0000000 --- a/k8s/roles/concourse/templates/values.concourse.yml.j2 +++ /dev/null @@ -1,66 +0,0 @@ -web: - enabled: true - env: - - name: CONCOURSE_ENABLE_ACROSS_STEP - value: "true" - - name: CONCOURSE_ENABLE_PIPELINE_INSTANCES - value: "true" - service: - workerGateway: - type: NodePort - NodePort: 32222 - ingress: - enabled: true - hosts: - - concourse.icb4dc0.de - -worker: - enabled: true - -concourse: - web: - externalUrl: https://concourse.icb4dc0.de - containerPlacementStrategies: - - limit-active-tasks - - fewest-build-containers - limitActiveTasks: 2 - auth: - mainTeam: - oidc: - user: prskr - oidc: - enabled: true - displayName: Gitea - issuer: https://code.icb4dc0.de/ - scope: "" - userNameKey: preferred_username - disableGroups: true - skipEmailVerifiedValidation: true - postgres: - host: postgres-15-postgresql.postgres.svc.cluster.local - port: "5432" - database: concourse - kubernetes: - teams: - - main - - inetmock - gc: - failedGracePeriod: 30s - worker: - runtime: containerd - -persistence: - enabled: true - worker: - storageClass: hcloud-volumes - size: "15Gi" - -postgresql: - enabled: false - -rbac: - apiVersion: v1 - create: true - -secrets: - create: false diff --git a/k8s/roles/drone/tasks/main.yml b/k8s/roles/drone/tasks/main.yml new file mode 100644 index 0000000..1f8463e --- /dev/null +++ b/k8s/roles/drone/tasks/main.yml @@ -0,0 +1,80 @@ +--- +- name: Create Drone namespace + kubernetes.core.k8s: + name: drone + api_version: v1 + kind: Namespace + state: present + definition: + metadata: + labels: + prometheus: default + +- name: Create Drone server secret + kubernetes.core.k8s: + state: present + definition: + apiVersion: v1 + kind: Secret + metadata: + name: drone-secrets + namespace: drone + data: + DRONE_RPC_SECRET: "{{ drone.rpc.secret | b64encode }}" + DRONE_GITEA_CLIENT_ID: "{{ drone.auth.clientId | b64encode }}" + DRONE_GITEA_CLIENT_SECRET: "{{ drone.auth.clientSecret | b64encode }}" + DRONE_GITEA_SERVER: "{{ 'https://code.icb4dc0.de' | b64encode }}" + DRONE_DATABASE_DATASOURCE: "{{ 'postgres://%s:%s@postgres-15-postgresql.postgres.svc.cluster.local:5432/drone?sslmode=disable' | format(drone.db.user, drone.db.password) | b64encode }}" + DRONE_DATABASE_SECRET: "{{ drone.db.secret | b64encode }}" + DRONE_COOKIE_SECRET: "{{ drone.cookie.secret | b64encode }}" + AWS_ACCESS_KEY_ID: "{{ minio.rootUser | b64encode }}" + AWS_SECRET_ACCESS_KEY: "{{ minio.rootPassword | b64encode }}" + +- name: Create Drone runner secret + kubernetes.core.k8s: + state: present + definition: + apiVersion: v1 + kind: Secret + metadata: + name: drone-runner-secrets + namespace: drone + data: + DRONE_RPC_SECRET: "{{ drone.rpc.secret | b64encode }}" + +- name: Add Drone chart repo + kubernetes.core.helm_repository: + name: drone + repo_url: https://charts.drone.io + +- name: Add enapter chart repo + kubernetes.core.helm_repository: + name: enapter + repo_url: https://enapter.github.io/charts/ + +- name: Deploy KeyDB + kubernetes.core.helm: + name: drone-session-cache + chart_ref: enapter/keydb + release_namespace: drone + chart_version: 0.46.1 + update_repo_cache: true + release_values: "{{ lookup('template', 'values.keydb.yml.j2') | from_yaml }}" + +- name: Deploy Drone chart + kubernetes.core.helm: + name: drone + chart_ref: drone/drone + release_namespace: drone + chart_version: 0.6.3 + update_repo_cache: true + release_values: "{{ lookup('template', 'values.drone.yml.j2') | from_yaml }}" + +- name: Deploy Drone runner chart + kubernetes.core.helm: + name: drone-kube-runner + chart_ref: drone/drone-runner-docker + release_namespace: drone + chart_version: 0.6.0 + update_repo_cache: true + release_values: "{{ lookup('template', 'values.drone-runner-docker.yml.j2') | from_yaml }}" \ No newline at end of file diff --git a/k8s/roles/drone/templates/values.drone-runner-docker.yml.j2 b/k8s/roles/drone/templates/values.drone-runner-docker.yml.j2 new file mode 100644 index 0000000..85bffe0 --- /dev/null +++ b/k8s/roles/drone/templates/values.drone-runner-docker.yml.j2 @@ -0,0 +1,8 @@ +extraSecretNamesForEnvFrom: + - drone-runner-secrets + +env: + DRONE_RUNNER_PRIVILEGED_IMAGES: code.icb4dc0.de/inetmock/inetmock + DRONE_RPC_HOST: drone.drone.svc.cluster.local:8080 + DRONE_RPC_PROTO: http + DRONE_RUNNER_CAPACITY: 1 \ No newline at end of file diff --git a/k8s/roles/drone/templates/values.drone.yml.j2 b/k8s/roles/drone/templates/values.drone.yml.j2 new file mode 100644 index 0000000..82c6831 --- /dev/null +++ b/k8s/roles/drone/templates/values.drone.yml.j2 @@ -0,0 +1,30 @@ +ingress: + enabled: true + hosts: + - host: drone.icb4dc0.de + paths: + - path: / + pathType: Prefix + +persistentVolume: + enabled: false + +extraSecretNamesForEnvFrom: + - drone-secrets + +env: + ## REQUIRED: Set the user-visible Drone hostname, sans protocol. + ## Ref: https://docs.drone.io/installation/reference/drone-server-host/ + ## + DRONE_SERVER_HOST: "drone.icb4dc0.de" + DRONE_SERVER_PROTO: https + + DRONE_DATABASE_DRIVER: postgres + DRONE_GIT_ALWAYS_AUTH: true + + DRONE_S3_ENDPOINT: http://minio.minio.svc.cluster.local:9000 + DRONE_S3_BUCKET: drone + DRONE_S3_PATH_STYLE: true + AWS_DEFAULT_REGION: us-east-1 + AWS_REGION: us-east-1 + DRONE_REDIS_CONNECTION: redis://drone-session-cache-keydb:6379 \ No newline at end of file diff --git a/k8s/roles/drone/templates/values.keydb.yml.j2 b/k8s/roles/drone/templates/values.keydb.yml.j2 new file mode 100644 index 0000000..38121fa --- /dev/null +++ b/k8s/roles/drone/templates/values.keydb.yml.j2 @@ -0,0 +1,18 @@ +persistentVolume: + enabled: false + +resources: + requests: + cpu: 10m + memory: 60Mi + limits: + cpu: 100m + memory: 128Mi + +serviceMonitor: + enabled: true + labels: + prometheus: default + +exporter: + enabled: true \ No newline at end of file