From 36cef88646cad9bb10b908d31e0317499ed6705d Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Sun, 6 Dec 2020 07:53:21 -0600 Subject: [PATCH] added day 6 --- day6.onyx | 58 ++ input/day6.txt | 2199 ++++++++++++++++++++++++++++++++++++++++++++++++ out.wasm | Bin 8691 -> 8094 bytes 3 files changed, 2257 insertions(+) create mode 100644 day6.onyx create mode 100644 input/day6.txt diff --git a/day6.onyx b/day6.onyx new file mode 100644 index 0000000..3d374bf --- /dev/null +++ b/day6.onyx @@ -0,0 +1,58 @@ +#include_file "core/std/wasi" + +use package core +use package core_file + +part_1 :: proc (contents: ^string) -> u32 { + chars : [26] u8; + for ^ch: chars do *ch = ~~0; + + while true { + line: string; + string_read_line(contents, ^line); + if line.count == 0 do break; + + for ch: line do chars[~~ch - cast(u32) #char "a"] = ~~1; + } + + sum := 0; + for ch: chars do sum += ~~ch; + + return sum; +} + +part_2 :: proc (contents: ^string) -> u32 { + chars : [26] u32; + for ^ch: chars do *ch = 0; + + person_count := 0; + while true { + line: string; + string_read_line(contents, ^line); + if line.count == 0 do break; + person_count += 1; + + for ch: line do chars[~~ch - cast(u32) #char "a"] += 1; + } + + sum := 0; + for ch: chars do if ch == person_count do sum += 1; + + return sum; +} + +main :: proc (args: [] cstring) { + contents := file_get_contents("input/day6.txt"); + contents_data := contents.data; + defer cfree(contents_data); + + unique_sum := 0; + while true { + if contents.count == 0 do break; + + unique := part_2(^contents); + unique_sum += unique; + } + + printf("Unique sum: %i\n", unique_sum); +} diff --git a/input/day6.txt b/input/day6.txt new file mode 100644 index 0000000..7c53d58 --- /dev/null +++ b/input/day6.txt @@ -0,0 +1,2199 @@ +wzaopvscxknyjtiul +belforsgdhuvmwc + +kiocpzjhsetqnwbl +maciywlbpodgevujnsktrz +kpebjfchtlsonwiz +pcezwjtsinxlobk + +lrcp +cdlbepr +rlqcyutp +lcpr +lrtcpym + +gxcqbowaelfjhpknz +gflhackzwqxojeb +lfwocexqbkjhgaz + +fpivaozqnkextmbrjhycdwug +motgcrzaisqlpdwbeyhukf +hbiqcdmkpawueyztgfor +zrcehkqyoblmtgfiaupdw + +umjz +jzu +vzowkpuj +jmzau + +unzlx +lnzxu +mxluzn +nzuxli + +szkiauhyntdrbcljomqwepv +amowcpzbyukihsjtqelnd +lzctuqjabmsynphkewxido +sikblhptcoqemdanywzju +jdeiylutspabcwngfzqkhom + +zgyhwtnxjdqucbp +ptnzhudjbcxgkqf +zgqhjbdnutcmpx +gjbzhpdxanqcut + +wjkcsqlu +ucsjq + +vkzsqtunmr +ljcexadhg + +fhtrusba +svtk +pgzwytn +astb + +hvzjiwlsmnatbxgqcuke +zeaukbgtnjxslmvwiqc +tqsjxvznemblwkgcuai +atwjqckzmgvnlbuxise +mwkteqbcjasvxuizlgn + +gypubxsntl +untylgpsb +uynbgltps +nylgutpsb +unsltybpg + +qwygnalv +rxdohlnatwy + +fcytwkqjaorm +rqfcjokwtmay +cjyftkaqmrwo +tqomfrwycakj +cjktaroqmfwy + +ygnjepucrfkxq +ypnqjfgcuerxk +fyghkncqpjxuer +runfcyxgjqpek +qxjrupnygkcfe + +rneuh +rhneu +rhune + +dyct +tycd +cdty +ytdc +cdty + +hoaxpnic +zrocenxaphui +pigyovantxch +vanbocxdpihw + +nmadf +cdbykfwtim +fdms + +xrlweqhyomniupgasjb +wxlaijmhqbopnugsery +xmkuswchylpbeqirngojfa + +u +yuq + +d +d +d +dqf + +kfnbcvxtogwhsz +nctfsoezgwhkvb +kncbtvgwsozhf +kcfsobzntgrwhv +obnsfczkrvwhtg + +ektcsq +tcpqesdk +ightwqxosekj + +y +y +y + +oaqwmublkjz +qhkduvibzmfx +bomkquz +bzpuqwmko + +uybzfemjhvnp +amxynpve +kyvmenxp + +vpyznetlsow +njewpszg + +a +a +a +x +a + +ytixaokbv +vybaoxtudi +kaivoytbx +oavbxity +vytbaixo + +okdmepqj +kqodjpe +kpdeoqj +yqdpkeoj + +nqtkbvrjizuyhlwmxopscga +ojzqryxwvpkclighnmeuabts +socwtinpyakuqljzmrxvhbg +sruhgbvjmpwnaklioqyzctx +pmojxvkiwztgaslbuyhqrnc + +sruqibofpetmjxacnyw +meoxusytawnfrhqicpb + +udzjvpxcmg +vzmpdjgxuc +vdgcxujzpim +gpujzcmdvx +jcvpzxmdug + +lwke +jqa +jdp + +ebcnymdxhsgjoptvkluw +mhewbjgldvutnkxocysp +odkvwhlcupyejbsmxntg +ylhetjbxumpwdocgvkn +yvugktojibqwncmlpehdx + +wc +cw +wc +wc + +fnatmwk +vbqnoptm +zldysrjuiegcmx +fm +vmh + +e +e +e + +nd +nd +dn +tdn +nd + +bswceuimx +vfugqjk +phrbaulzsdy + +fcmpeuxkjiwtszhgnoravb +tjhbsovuzipmracnxf +zfxuvbitrcnamosjph +bafxzhonrsipvcjumt + +uopkgzec +uogckpz +czgkopu +gtuopckz + +k +k +k +k +k + +bucx +zxfu +oluinsxk +cupfxb +pxuz + +gw +wg + +nif +qby + +kazpqyrt +uocensfmvw + +vjy +srdfuy +tyz +yt +jyow + +wcn +d +m +r + +afo +pruao +afo + +jiqp +jhp +jp +pj + +rvxucn +xmurvtc +uzvmrxc +xeykobgvjpclharfu + +bc +cb +bc +bc + +hxnparv +vtqhxapn +apnvhx +dvwanihpxys + +jdszlimbca +drtmxcqlw +cmdzloub + +podyqvae +qyapveod +pvqedayo + +scmbwfuldnvkxqehjgatpry +zgltckiwjnuebahmpfqvdrsx + +hu +fkixsu + +a +a +a +a +a + +fkmupthae +vumpwh +ugxwmph + +kspnwvyr + +yxaw +xw +hzrmxbekw +wicx + +l +lz +l +l +l + +rwn +wnr + +tpankiydfghwlzv +hwnztpvbcsykgl + +hcn +cuhq +qc +uq +xsdz + +izsctumjfvyo +iuymczbtjo +ytprwciogjkmzx +iyztahnjemcdo + +kmepowc +cwmkoep +bmopkect +cjepnkmqo + +gqlxpwt +qgwtplv +lpgmwcit +twglpx +gwtphl + +uiyeqacdlwxpgt +deyxtgqaulicwp +pgawxtyiucdelq +iaepwxugtdlqyc +aewygpuilxctqd + +ksextofz +zxhesk + +zxnlhrd +hlnxdbczr +qnxfzdlhr + +foryns +rnofsy +fsyonr +rosnyf +orsnyf + +o +o +t + +raktoz +atkzo +vtkzoaf + +yianzfpwbqsvltcuhjg +tpjzhvwfibacusylnq +wdctlhzbjeqavnfiuyps + +mhexryd +yerhdmx +ehxymdr +bgmrehxyd +xreyhdm + +pebtkqchsoydz +dklqohsupwcyztxe +ckvmsqjpdhaetzofy +wsuohqckerltypdzn +lkxsyowcdzteqhp + +nqbmshlg +ebshnqla +sqngvb +nbwqsi + +sauebdjhpwtcgnlzorfkxqyvim +adpvbqlnofyxmiuzjsctwkeghr + +gy +gy + +jf +wpy + +guztycblrhfiq +bertlfcmguhv +lbytrcfk +fscbltnpxwor +lqfbjtcrdv + +egbvoxlmpczqnafyu +enxqbazvpmolyfcug +kpuezgxbqnaymvflocs +vipegmfbnocqxuzlay +mnofzbaylcqxegvpu + +wrclt +lfrcw +rcwl + +zbwvmuifpjxqnlgo +jfpwmuznqxvbgio + +baheoslg +fygoa +aygo +aog +fmoga + +ltpdcyn +ycdlnt +lchgtydn + +fvdgksnmphxzcboql +zboknxmfgdvclpq +qdlkpgcbzvmoxfnt +ciozqlvjgkwbfxdumpne + +gmlyqkjehrp +ojeizhlgpm +uhgpmflje + +atzscwnb +snahqtc + +zyjml +jryml +lymtxvod +mryil + +iudskmzex +udqkzxesmi + +qdywgafzmn +ufobhixk + +r +q + +alndhupswj +npwlua +nlueapw +npalwu +lawnpu + +obsxpclziwauf +fcsjxiblwuotzp +spcvbiwfzdxulo +ulfwpiczosbxd + +hknftpgaey +typoqgehn + +tyhzpoejxdl +xoejpdztlhyk +hreinoyjvtbdzmfqlp +otjyedpzlh +zdoywjeltshp + +n +b +b +b +b + +kvupfreobljsmw +sukjromplvfwe +rdwhpkjvqcemlosfi +pvmblwsfkexroj +eokvlrmsujwpgtf + +wiqs +l +j +j +h + +jx +jxc +jxr + +tzv +tzv + +aqe +qan +avqs +asqcm +glpayuq + +hncexlkpjbdmoftag +pfbxckmdantlogh + +ocsdtg +sdgtm +sdgt +tdsg + +jfioeacnqv +oqafnicjev +veijfnocaq + +xfmnhbpljcg +cmlfhbjxengs +xnmbjhlgfc + +vcn +kvc +cv +cv +cvm + +wodgjfls +owdgfq +niogfwtd +vcdgfwo +mgwyfod + +ozhwa +kotuedjcql + +kw +kw +kw +kw + +sufmi +rmsuf +jumfpeogs +tmfsbu + +siadk +mijcgosk +ski +isk + +kplwzh +hzpkwl +lwzkph +wzhkpl + +yot +y +sy + +lz +fl +lf + +kexljydcihonwtgumfsrz +iuywlcxomsedjnhztgrf +wtorjgfuxsmlyecdnhbzi +tczliugorhdjsfyenamxw +zklniaxyujdcwtrhgsmfoe + +juzqtibn +qijvuzgtnf +nqxziutj +qitonjzw +zqtnjgbis + +tuqygv +gutvqy +tvuqyg + +plzqmthysawexgvnr +ptvxasryleqmgznwh +htlgnqexsmwpvyiraz + +hizrfynjmqceg +bplsuoydv + +bptjc +jcbtp + +qedcultavjwizxnkob +bokndqcuivwtxlaezfj +qazlvsjexikwbcudont + +vgihxmquktcrywpzj +kpujwxfrgqmzlyihct +domjarxitczhwnqugkyp + +wilctjzq +ouwylicgkxvsha +npbwlric +liwqc +qclpidbnw + +gbvpdkxclfejtaoq +elabncgfkjdvxop + +vfi +vpif +ivf +vif + +hvjzxebtqsfwpia +gvaxyiwfkcru + +hzrg +lz +fqz +az +qabzpyi + +redfpogvxc +zeyh +ainye +tlyzeu +alsemu + +gwph +gpw +ywgp +gwp + +fjkhnmuwtxialyo +tjuolfnkamwxy + +umrdifo +mrfodtuix +jkruohmfdi +ufikzrmdo + +blioreudh +brfiaheulndgy + +ywstjalubez +wbsautezj +usebjtawz + +gatfpyjoznwh +oztwypanjghf +nzgojwfphyta +yjhpgfotwzna + +metqoknri +kqmtnwerofi +qtkohjnmeir +qmkrefiton + +xdgrbua +bwdukoghcrxln +euvxgrdbi +vusgbrxd + +rovayxgkqshzi +olgxhutwzsikbecqdajyp +ksrahngzyiqxo +vosgzynxqaifkh +soqzigyxakh + +fopjqgdmhtbv +qbvl +lbvqy +buwvq +bcuqv + +feyvazrnows +waynzeorfs +sorafznewy + +jpohmywkvqextsd +ahtvoxpumsedq +qbgtpoecsnlmxfirvh + +uic +ij +ixgp +alzehimdvybf +tkgi + +fpjubodeznsqyxkwami +anuymqskowpedbifzjx +oubjpwznfdxemiyqska + +uhzd +uzhd +dhuz +uhdgz +zdhu + +bsyituhq +rbjahg + +xszkrj +znhjrsx +jzrptkxs +mlzrjbxsyoq +unjxrzsk + +rmyilhnkdqjpfceogzu +oegpdtmkwuvfal +budoxkfpglem + +xekshpotfzlcmuiwgj +sauekziobrthjgxfcpwl +eifjhkwgpcltsxozvu +okenjhgscxqfuzwtpl +uhcjxzowitsdlegpkf + +kzwdconulqtrvihsgp +qwmhutnpyrsxbvgzokdeicl + +x +x +i + +umvbcenh +egun +tnue +ktuen +wgneu + +wysximljeua +uiwxleymsja +iemlyxjsawu + +r +wt + +hcvos +xv + +enzmuaxc +jcdnvzam +nltvobeaym +mfnahipgswr + +hsnmlpkujoigaftc +fslotjmpghacnkiu +cbfjlkohumapsngt +lsutoajknfpgchmi + +xisn +insxw +nixs + +eunflkcda +gcnxefzlud +lspcndufea +onwjutcefdlm + +hrivmxpatkgd +hdmxigtprakv +dvpmgcrthkiax +gkdraxithpmv +rvmutdbixpklehga + +elmdxqwn +mqlwedn +mwnleqd +qldwnem +qemlwdn + +wpjfrlqbs +vwqjlsfbr +srqwbjflk +fpjlqwsrb + +u +j +l +w +l + +kr +rk +kr +rkd +rk + +irpxjsmqgf +bhqpendrjfc +pmwryfjql +mpfqjryux + +kjgheiqcox +iklufxgcjeh +gynvizspjhmebakxt + +udwlimhqsorbpeynctva +qzxobjpsckyfmtr + +xqyjwueda +juehakzxygq +nexjlqumsyra + +mvsyaec +xalsmwvyr +msyuav +awsmvy + +tyfrcibenxdvgum +diptcfwuroegnlvx + +c +i +g +arelmvpoz +n + +q +pq +q +asq + +oxrchtjsekpw +twoesdckuhnpxml +xkovyetpwschai +tsjwecqzxhgfopk +fspcxrtdoewhk + +urjh +njd + +ygo +syog +gfoyr + +lrvkw +dwarkyg +cphkiqfjsut +xk +vwk + +chlog +wughvb +cngh +hlgc + +hlu +luh + +tgfsbj +btgjf + +yflqdgp +dqpflg +dlgpfq +qgdlfp +lfgdpumq + +dybxtrizvhcksalqpungfwmeoj +lpotsjiaydfbqwzruxhemcnvgk +qletwyopaivjkgcbszrudmxfnh + +rowgvahemlyjkbupxct +jrewbpmktlvxaouhcy + +soerhzknbijd +oekgznidsrhj +oihrkaduezsnjf + +axthin +ojhtxa +tnahxv + +t +f +cv + +yjkatqum +eksumriab +wksmhvuaeb + +wz +w +wfb + +ruvglckjpomqthy +afjbuxevlqiwog + +zpyfolacrnqgvhksmjdeuw +ebctoamjkusdrnpyxwih + +fxs +sfirlxm +swfx + +imftqohzgjcpdlsrebxuv +agptlnyxujfzwkoqmdh + +mkbqsgaxojivpyrzwtn +svhgocwbazkyqtxrfnlmu +nozrjkdabxwitqmvegys + +tuzmyvqgnsekbwo +vmqgbozknywetus +ymsnwuqoezktgvb +euzowmbqtskgynv +uzesoybkngwmqtv + +khgx +xhz +aclrne + +kq +qk +qk + +i +gmf +dh +owqjb + +pstycjadezlbnqwxrig +rbhdpqysicgnlwa +ryhibaqwdclpngs +npdcyqsbrhawiglko +cbsdiwpnqgylra + +quvsagtxw +uatvcx +vutax + +ndbrlpzxasmto +sdbxjyrofatqlpmnz +bolmatxdszpnr +wplobctzsmxdnra + +boxmgljp +xfap + +cndeqvy +mzneys +eyn +sieyn +eynm + +kbuwp +bqpkh + +ljngohfvtpdmw +iwctogfnmvuzlhd + +napvy +gaczoidwybm +ysaet + +wrnixgyv +wnrxgvyi +vxirywgn +iwryxvng +gvwinxyr + +ygtbiqfuornlx +ieuwpgzxhbo +vubi + +ohxbkqgsj +qalpsfmiwtzyrdc + +fyakzqidcpswn +qwkizfdpyacn + +lxf +ifxl +njuxfl + +yxqzebvsgpwl +mnjcftohyi +adycurkmo + +nxdfptvebg +swjzqh +kwyasj +oljz + +lrzunheqgjvcs +kiqshjmgdvuz + +feyljcgrqmsdbz +qsgnumzhiayfbcle +pcwfstmkvgeqloxy + +qnwcftx +hyewofcl +cwhfi +clfehw + +kjuebdvpgqs +ahpubjyske +zksejxbuwp +juboekswp + +u +bcytf + +rpvshwmn +djnshvmwr +wrshnvm + +itpduvwechnrk +ntirkpvdelcuhws +vrcktepindwuqhf + +q +q +q + +mzhrygf +zhfygmr +msofhrygz +rqfymhzg +ygfmhqrz + +nwbpshv +twspladobu +hzinpwbqs + +c +c +xecuy +c +c + +y +y +o +y + +qauijgxfhbztlpvecrk +ljhcamkegxbqyptnzrfoviu +ejibuzlprhtcxaqfgvk +biczvdhgqlxrktjafuep +hpsxgwujqakbrltzevcfi + +cmfryo +froyc +dcofgye + +dcrbjnza +jdirzacb +bzrdacj +cbadrzj + +fnjryzvtxlsdioepm +ldxfzcjtovyisepbmrn +mtoxdilwfrvjespyzn + +omqxjypgin +bcrdezl +vflwkrzt + +dkabj +ntwpy +jb + +krjawyexhnlmcspizoufgt +ryebdifmlhwxgasvkoqjztcn + +lrctmfu +clzrmtfu + +ivagzecmwyl +xgkrojtfc + +bsalmjthvwgxirpqcnyue +ymtqgcsjrxnvaepfhwiolb + +tgwkeapzjo +oewgpzjkati +hejoalxzmgprkwb +nojwgazkpet +asoedjkzgpw + +zpjncustlhb +nswvlbtzphcjf +pzjlnebcmtfhs +cljbzfinthkps +aoplbczxrstjhyd + +ulvwcxg +bsvqwelud +dmxwioulv +nuwqvlb +ulwvpjft + +fmlvprndhxa +hmapdxvrnfl +npavmrgfxhdl +mhlanxrdpvf + +vfgwzy +yjgfzqxovu +wzbyfgvj +rvfkpdslzthngmyice +qfyzxavg + +hzfjbs +sjhzb +nhsjmzgw + +gmtvalyn +igtmvlyn +ymgtvn +gueftonmvxcy + +j +jge +jm +qwbj +j + +oftpvnykgdxrels +nrvksolftepdxy +xopknvbwltdeysrf +dkexlnhprtysfov + +gwcvu +wuec +cuw +wcvu +cuw + +cndywt +ntdwcy +cqtyngd + +noayvkcdsu +yaedfcjozs + +rzfhlitjvwdnp +hzxntilvwfprjd +ljinfmrdtpvwzh + +zylgudcfbxprwaqokmtjnsi +bosdnqlyjxgwkmrutcifpaz +kqwuipcfsdnzagojrxymbtl +wbixmynrjkgoaztslupqfcd +bnearosgumfildkjtcyxpqzw + +fherd +dfreh +hredf +dfrhe + +aysber +se +sze +seo + +cjofniwx +zxieaocf +uipxrgodcf +bsjtveoizwfxc +jfcoxinzt + +wzoegvhldfibmcj +ohurkdjcvifbazew +sxqzjwioefhbdvc + +ifrstw +btkqyfscx +lgvedonzjphu + +buw +wubhop +zrfwsbu +ucwhb +wbcu + +bdpn +wdpnb +dpbn +bdpn +padnb + +ukgziahpfyq +etvsrnjilx + +w +w +w + +kdjrc +kjcd +cqpjidh +tjdmc + +fihjqetkprmbgzl +hgjrtqiefompbzkld +amqipgtlebkjrfzh +elgqwbmpkjvzfihrt +mfjcpszthlirkbeqg + +vpfmytuob +bftvyoup +zobynvutpf +uypbftov +ubotpfyv + +t +k +k +t +po + +he +eh +he +he +he + +jwkorfnpqhlxvbziedcasm +vzsfxlkqarmhnjpidcboe +lpzkacexvthbfrojsinqmd +mcnzqiekusafdpvoylxbrhj + +doqcnfpshrgwxkjubyval +bdjuhgnlvpkcrfawqsyx +pnasqwryjfvduhbtcklxg + +pyba +bacs +autxkrgm +bwfa +eiola + +bhfrtklucjpinqoexmdgz +orchqmilekjbupzfgdnt +klhbtnzuomxegdivcjqfp +itfgdqualjokhnbspzemc + +kjz +jkoz +kzj +zkj + +w +v + +qfytlkjconpsw +ltfpyjcskqown +wqsfkcoyjpltn +nckhwtpofjyslq + +bvsqmnyjkur +qrukybsjvmn +bnkyvusrmqj +ykqumnrsvjb +bjvyursmnkq + +ykmabugfjtqdwpevrzx +maezkwtbvxdqupojfyg +mqyvxasgkezudpwtjfb +fumzpyxtdwqjgabveks + +wcntqs +sntbcwq + +tywbgnf +gbuynfcrt +sygnrufbt +gabfiznmhtpy +ltbfngy + +ngkfqmv +gnqavfm +qgmnavf +qgmvfn +gvmqnf + +w +a +id +uj + +zvqypkadneblrf +vaeqpldzkfrbny +friaqcvdsexyhbnlp +ezflrdqkbnypva + +tlhucpwyzrex +lcpwrhqe +pkehrwlc +ewcpfhrl +chlpwerm + +wrtljgy +ygqjlw + +jvygmx +qxmyg +myxgqr +gmyx +xmgqy + +nvmufjzsb +amnzthf + +ujgebphztf +hezupfjbt +zjxfubelsphdt +pthbzefju +bzfuhpjte + +xhfj +fhgdx +uifoxqwh +hnexaylbfk +fphux + +jiqhofdlwkgas +wftrvupnze +bwfmu +muenywfct + +mzrf +gkxsqcwo + +uaewm +ewmua +muaew +umwea +awmue + +njduohc +hndcjou +chndoju + +sqrdgapl +dqgpasrl +gdqplsra + +aunzfm +munah + +paqvw +qp +fqs +vpq +qwp + +gfmbcvriax +dlcmbwvfeyp +bixcrmvaf + +uczi +bzi +izwrb +wiz +zi + +s +j + +khqea +qehxka + +mj +dj +j + +uibwnrakt +torn +rtevnlh + +ghwzt +tghz +gzht +zvgcuqh +hzg + +t +t +t +mt +t + +cszjtfdulmprbawqkexv +fbwnhigouy + +eq +feq +eqo + +tyvjnf +tfnsvj +bftngjkv + +bpxwhjcmogyq +tnfezpk + +as +as +as +as + +ybqntwcfld +qytlfbdcwn +wtcqdbfnyl +ltywfcbdqn + +fzshuktvwp +ukrbmxvyelindgq + +fjoweph +tbvfmscxe +aofzek + +axjyiwok +mviqawyxutnjbd +xawiyjc +jhwziyxa + +xgwq +mohv +w +ertbzsjk +udf + +crozvbt +btzvroc + +tvnqzmiouaeslxyw +taymuelowxqsviz + +jv +xjwv + +npohlyejtkbuvca +ytlokvaebhucjn +kutvyngeclaohbj + +nbvwheisoxpa +evlntxsmowighb +kwnaviojeshxb +owvphiexbfns +jwbnheyqvsxio + +fkvcteqsgd +bzcftexmvwohp + +srwf +frnwsj +swafr +rswf +fwrs + +iovjntkewabzumpxryqdfcgh +gskjxpotluzqycrifwbdne + +luokigf +nuherolcyiqxam +ugiobls +lwtduoi +ligwou + +gbfiqhdmpwjo +fwdqmbpjhig +bwjdrqhmfpaig + +ulzyiqamhxvpgbj +ftdrcnewhgszp + +oakzwdjupviqn +rgdelufhymik + +clxpqaryjkt +qycujtlpxa +xulpctqjya +ucjlatypqx + +zckf +fvek + +zncuxhaeli +nalhizkcuex +xaceinzulh +acuixzelhn +aczqnxhulie + +wrzuljei +lnremi +hrikyacgf + +odnqfwpugy +ptlwnydoqhmf +fyovwdpqn +oznwbfpykdqecs + +gchqvjlypom +kcwtvxdoiu +cvwzfkoe + +xw +wmzx + +mfihkroznydqp +kfpzqdinhrovym +hnrzqpyfdmiok +rtqdphyfonizmk +fimnyphzdrkqo + +nsbiyukormjhdclvaptw +bcrsitpxdklunmajvhwyo +dktbwvmfyrlhisjnacuop +ztcdupvhgjaboqinsylrmkw +clovapfbyhsukwmdtrjni + +bgq +gq +egqk +qxg +wfjulqgzo + +foc +ocf +fco +vofc +fco + +oitbdfympxjw +jfbowrptimh +ftoimpbwj +ktufiojpwbm +yiwbjpmfout + +adznvugpirxyfwkeml +uyefgikmdxrznvwap +gwxdmkyiavrpfnzeu + +mi +mi +mi +im +mi + +redwqtcgofk +apuhyrsdkbf +kfsrnuvmhbxd +rijdfk + +ekxfaqmhbptj +efayqhb +wqfuhabecy +qbfheac +eafbuhoq + +yxzarums +yzqforucaxs + +cwlqfxdrmp +dxipzcambwoveglk +twhmqspdcxl +cjwxpdsumnrfly + +zxdgqawjntukphsfbievrloc +twslhaqxoenmzrfybckdijv + +abzlckqrnsgfijdtvy +cgdteqlkbzinyrvasjf +dikaynsgrflzjcqbvt + +kptwqavin +wkviqxptn +swpvmgnqbiktl +qpvdtkuiwn +vrjikpytnqewo + +evjqxlktmroh +tjmelkoxrq +jlekomtqxr +molerxtkjq +njxkltqermo + +wkacmijsrponf +rwvpcsu +wzyplbstrc +cdhwylserpx + +jocqfpgmy +qjfpgmc +cfpqjmg +zcqjhfpgme +gjcmfqp + +evchkgpdqourmtlzbs +plvdteqmjzurk + +fgwbxpihnrz +cdktfvmljbeiwr + +mhdcqiaswfpeyogjkbtzvxn +xdyifpqzevknmcoathjsgwb +ndvlyzretgkqbswmpxcjiafho +mstqzycowgjhbnaxepvkidf +aygkezvcxowbjfqithmnspd + +qdmetvs +dmslt + +vaxsreikfulbohwc +avxeiolbkhcswrfu + +wiukdyzvenogj +nouyvkdrwagij +yewvhtjkgndqoiu +dnvfswojigkuey + +gnuatzydv +amzvnutgy +cvuengaywtz +zmdgvpyntaohu +oayngzstxfhvu + +jed +jefn +mjkch + +uojxteazifrsch +kaurlehco +ceuaohr +chkauwero +hacuekrno + +ygopsthm +fzduxalqjk + +hkdu +khdu +dhpuk +duhk +hudk + +mtoqrcgzxuavek +mntwviorack +frtmkyaocv + +pstolmvrqkwxz +rsipltjxqnmagvwuk +kspmrxtlyqebwv +twqmlexkprvsf + +lacfoveut +ocafve +acvjofbresx + +ohgclnjdz +ejsyzdolg +riqbwtkjfdgl +zdgjyvxhl +jldaug + +weqdtuvmfnygaskb +lsugyqfvnkebmj + +zdcpefjvaly +azcjfvdelpy +tayfqbdzlcepjvk +jedazcvfply +zdplceafyjv + +jw +j +chj + +cda +ja +yaxn +ja + +cfrqx +vlju +v +untv +uy + +cowiekfanus +wjgdupicnsfr + +sh +foywprquj + +b +u + +dhezbkx +nwyvlisjpr +jqcotumgfa + +eoh +oe +oe +xoe + +cjdhmxuyg +gjmxhdyuc +huedcxymgj +dugjxyhcm + +srctb +crstb +bvlezstprc +trbcs +rctsbj + +fbdvkeltq +lotm +nojtl +tl +rtl + +nryhkvetf +xkhrtnfycv +rhtvfynk +rfnvhtky + +qabfkzotdyjieghumplxs +sqtuhaxjgdkfliymeozbpv +lqgpjmeofdkaxuhtsyizb +usbyhegwtzlpkxidjqfmoa +pyjdkigtbafqohmsxuelz + +zolurkepnsm +ymplgvtrond + +skgedcfiqz +gfqzsckdei +ckgsdeqzif + +uazvbnlgtiscdmfjreq +iszgbjrnqfdtveauclm +nsilqzuamtgjcbrdfev +zmquiblfsgrvjetdcan + +faghxbimzvkcqsy +ikzagfmxbqvycsh +fbsxakqcghymviz + +ztvufgy +vzftgey + +g +g +g +kg +g + +cdihy +tsb + +ibl +l + +cpdatberqxhugms +rgaxceqptsmhdbu +emcrsdbhtxqapgu +drechgxtmapbqus +xqdpcmshbgeatru + +f +poj +f +z +u + +ezagw +usolp + +jagq +qgajs +gjasqk +jqagm + +josgetlqimcdxruyazvf +riclqagoskmwuyxdetpfjz +surlmyegxdnactoqzifj +lcydfrxusmvqjagzbeiot +lcrsoyavzubgimfeqxtdj + +qevptljankmhs +qmjukehpsatvo +vzmsaqgwetjphkr + +e +s +m +iaxgyd + +isn +nis +uisn +nis +sni + +bvjza +bv +bdv +dvb + +betqjy +nqbetj +tjvqe +hqkraxcp + +dbhzkpt +pzdhtk +thdkzp +pzthkd + +gyrfsaox +xafgkysh +sgxfapy +gmjuitsbcafyxq +xsgafy + +mvenpfxkwc +wpstxfev + +rftiyogqvue +gucfjnskpxzqoba + +htoyrpesdvnbg +rohysvgpetn + +yxntbv +vbxynt +vbyuxqn +ynbfxtav +myxnbdv + +v +v +vs +fv + +exodvrya +vomacygxduis +wajloydxvp +fyxokvadj + +qxipfbwly +wpxtlfcibyq +pylqfibwx +lxpyqbifw + +bydioqrcftehkaznlvgsx +ypklfesavizqxgohmtnbcrd +dagnriqsexyvflcbtkohz + +uhsjxyfniqbvw +auzbviynqgsjxwf +vfjsbqxurwadinlyt +yevixlqfnsbojwu + +y +y +y +zh +d + +etyjmxdwkfosbqzhigrpacuvn +uktqciyfbnrosaedlzgpwhjvmx + +w +wim +w +w + +zlkgwbseno +zqngksb +zgnbsk +gobztsnqkp +kcainfghdxzyubmvsjr + +qywhjzxlarbutdnvimc +vrbyjhtqlxmcnzui +tljuhyrnqbpzvxcm +tezubhyjxnqlfrvmc +quhxlzrvbmnctjy + +mwqlo +xqonftwmacj +gwrodqum +imwoqre + +q +q +zq + +tgnvlhc +nhcvtgl +clvhgtn +chvlntg +cnhvdgmbftlq + +pmfreuoyzdlhsgvcwb +exahjnytqcgk + +ayglbtwcxiopqh +ifxvqhtpbyowa +uqyhwaimtfkbxvpjdo + +mcwt +tdrckp +ct + +hskjp +fihpjksl + +rlvixasmotuqcye +tcyvolauqxsmeri +tpsvmceoailuyxrq + +ckvego +ecgokv + +bu +b +mjb +by +b + +odsbf +odbfs +fsdbo +bsdfo +obsfd + +tofgjlhuvmyzcnd +uyljsxtdpbewoqnvg + +bcfgaorvwqnmdup +rcvxaunwmdpszjfqgyob +fcrmabgqdwonpvue + +z +h + +cgbpk +uyzbop + +ptzqufrekvilxwmgn +qigueptylvckrnxzfhmd +nrxlezgmqoivkfupt +bpexuzmltqifgvrkns +aeglzqrbotpkvximfjnu + +cradozehb +dhslfoqrezca + +mpzkgcnbot +cemogtbpzn +lozwngjtbpcm +znlwpbgtmco + +lodrywvcxjgp +jxgyclpwrvdo +xrcpljogyvdw +pygvwrodcjxl + +bfrmhpiuwxznslcdqke +wikulxhrfdnbsmeqzc +dnhurewbcxsqzifkml +mibcendxwshkulrzqf +frnkcszlqmwbxiudeh + +pny +ypd +pyg + +msgwzuoydtaxkpqhbj +aknbtivsjgupozme + +uizgp +gpizau +gpzxu +aupzgi + +zkohbpscea +losacbgm +bogytalcs +owtysabnc + +swjkz +kszjw +zksqwj + +m +mdtqyw +bsnlkfjprv +demi +itdao + +gkwqdnaosmvyrbz +brpomnqgk +qotikclbrnemg +rkgqomnpb + +pyoclwjxrmibhgaqu +laymqhioubrpgcwxj +qbhuypxogwrjlamci +muicbghjwoyplqarx + +xfut +utfx +vfztuhxd +tuyxf +uxtf + +foabejk +wugejvkoca +qjazoxli +ahojt + +pqzk +zrkp +adihs + +xqcigryhkevpfmutwanlds +ecdqztaxonbiprugfmk +rqnpatukmefgoxdic + +ewtfcyagsizj +wyfgtviej +stejyfigrw +ctgajeyfwki +jdbeoyqhitufglpnxw + +krmsglcbi +kgbmilc +blkgicm +inxkcqglohwmb +kiblcmg + +tubipv +ejwrgfqci +nishoxzp + +hoqxjktugmrclzywedi +utgiceynvphszkmodrl +cdbihmzolufgea + +ichtmwx +cwmuvixtb + +qihgfsxnydtwcrkoeamupzvb +goizemfwhaxcdtknubypqsrv +ovshacfrekugzbwipymtxqnd +rqgntzkwxihovbedpsfumacy +oryitqesazgnckxhdvfpwmub + +qafihpdwy +saikmrbxecjgnvoy + +devizumtxonjhrkpq +zidmnptujoqhkvxre +gqjmkuohnrtxziedvp +pqoixumtdvrzjkhnbe + +fmtbrhsynpkxu +npsmubhyktfrx +sbhyxkumnprft +nhpusmfkbrxty + +je +x + +dagmxqbfvz +sxkur +xkptl +jixu + +e +e +hits +q + +tko +qtkhoy +topk +otk + +r +erh +r +r +r + +agrkjyfcw +ktryaw +whyirak + +pgzhswrvxumqlai +skgvdxwp +pgvjxdnws +wpnkgjxvs + +risotwzapm +eytfvlx + +ocdw +dowlc + +mlspy +ylpsmn + +rxf +xfr + +jaecdxiptnzrlomgwuqyhvf +mexsutcqaviywjzhgnropdl +imeufcjtvwyonxpzardlgqh + +dxqtwsvaernygbu +unceigjraxzbqwkvd + +skogcitreyx +xewqysmchvikduzj +ycxebsrlki + +gqdyaw +skxclpvq + +uja +kaju +jau + +xnjhqlyvgod +odlvnyxf +yndolkxv +vnldxyo + +ksmuqpily +oanrztfwjxvu + +gulobnahfmjdpkrqvecsz +lnymgsxrcpheqobjdavkf + +mgtdqzrebiswvcfnlopaukh +nbomqafeulrtvigdcpwszk +ginlmsraopdukxftbewqzcv +iamtqzvowldfnuscpkrgeb + +ipkonymxsvhjcu +iypevgxdhcnl +xhcinvply + +d +qbwhp +r +r + +hrdmq +qxld +hcqd +dqfc + +pqrgvxtzcbmws +xomdqytbiwzr + +eo +eo +oe +oe +oe + +dwgmk +mrwjdgk +gwmdk + +nspfzvdhocirwyebma +bfdcnzoswyermahivp +minwdycaephzsbvrfo + +iydcwfzaxlnret +qlusgcyk +lgcyjs + +tmjsecngzxfiq +vhzbyoedfu + +o +s +s + +ubfrgyp +vybfpkrg +erfybg +nbgyrf +zfwrgby + +gjnbfartdoiem +ajbtgermdqnfio +mfijcthadgnobuew diff --git a/out.wasm b/out.wasm index d36f3836a169de95f8d29e7433255bb526d42572..0532d5dfe81d9102e252eb56b27b8d6aab199df7 100644 GIT binary patch delta 2096 zcmZ`)-EUM?5I=M7*Y2L(-n(tL?RHCh?siKkA4Rd0Qf%oFXvCO+3B~Y0+G-1QTdHlh zd?chRk@!G-5U27&{E81mMMES$L5%-^F+Qlg8Jn13f{{qnS7+|-whA$A&Yg2+<~MVG zGjsOgzW4UN)jZ~u%jM-Vl*ernD&OVk8|Qs_xw5hOE5;=+P=@7kA;#G=vIIJ`NM!v5 zLb5Kf%qLL3a%L||&{w|f$Boe6B2#B47N^IS<`zp6FU?NHPE3xSU6?LS;c?hGI5g-B zkN;HM^OA87R3hO++>0p?N+|k|dsZNzPKabWr4ryKl_D3<122x>L1WiVP+o&{PfwkG zW#POO?ihtxD2aB$5=JO!O+4H^h~HQr!B(8N=ke`^=3Ak>2%Ei5VdP9fv>ITkSP+3# zJJNEKjA>aAJ};PV{tQ>`9(M&o%dB9NbFjPuWO2|QHZ0hAPs=_jv}Z)0wCSvJtYz_E zTLPTvBUsPGioVh^vWd-@;EaJ{-We9AJVJoNS2ci`c1%zrj93LP?^eRNrsed3(DbvAe0!> z(ucpgxq%dI?TD{PW3y&^?M$@^a?s+2h8ujw%HEn1KlMh`P<2Pa@M`K$=)^bcHp6Z_ z<#*r@btj<J>J} z!>t*n<`U$YGR@W2B6vz2COM)?OU-=~VflEtqrGjgibzE!NJ7$fkdEpqd>lv}FKc4T z2{$&(inJyZ8w3-@cNx#+_|+UN!gl|YaSf2X^3%4K%!&qOeWqHDkO(2qTCLWOi3ly}Gwg=p>qe75OGb^|9&8HEm) zy;f((_;|aiE14l}lC;_ivUtBKmssy2d?$C9pF8}%d4&e6*z!rVc3^Mzav@{Zh^P&K z?{LzF8K?{fu4X5@YudHfP*GbEDP&0+KtK>}rNi00Mg_N5>5$3HTA z@R!`zDaIlHh;|$QZaV_qx1QfH2QR!XD}@K6x%t^B;zP4QcfB4;o=2N|ffni}QbZ}Y zvA|qe-21eNz$H$`j)IG~W5@Bw_Ls3g-qjdA+lRObX+~n)#`Lhy$J^TdDny>xpt&8O zVNYwvR~w^O0Izg3(+|nV9b52rGKpVwG~lY2tLvdGqvoQH4mz++hlRr9ug0TU`uMay zxnn0qCN`rCz}&pZ{Y)o&sqIU=<=+fyYdT^R5(K`luf6yoB&Y()IWaN2I7L-c{^;EF z{L++OTsl3VyQWFosMsc>?9###nPj7FtD-S5IaN13_v%t<`{cy=zMj&#k}%y$(1O>) O{jvK(*}sil68`{ib&4DS delta 2722 zcmZ`*U2I%O6`q;RAp1C;sNCWb0YDES`ksH3RO`gcmhR$)Q7$yA@KzCtvv7qLP9DM-?@8l+@G+P z?wpx9^PMx_`5FIo@t>!DGw34On zj7U_mWYiuN8Z{#-{LvJupUGKzpkAfB-mHILrjET&kGvO7-kL*N!Y$CUqItIF!WWkekbK`z(kIk-7d}*n*fk& zMsyDdVawnwscQXmNBVv6B(1@Ptw@zxa+a(-9cLKH!R#g(#gWoRwjI75K7H330B3wZ z&BB21V%s&yu+)XuZbwCh5DoxB28dFpjeQ%gcT=mA@K6 zgb5r>EW5+OG_o3HGC(W(&r*6EyxgsQ_WhmsxJbpF2)IQA#OHLVm7Ex#XLKN@h&edV zZ6)*cDjfAO&6-RyOxsD*IgnK8z2vK$^5j;Vbfpo~zUtWgJQ7oKQDozzHxPI3AB%9V zXEEiD0pnO=6$o6;bYk)w)qjV1$qM>gb(}5@e`)-z zbO)I)nAn2hWEVXg?({!YQuD5ZEXeA@MI=x^sZPu7QX1w78=CStBy2dSDx*+U2rL5a zBCMg&-8AH|+Av#Pf6Qz_xQB{EUrf<%KZD*M)WehD0~1==OyhP0qb4@dn(;Z2y>1$% zn3@>87J^{qZW=%ZgZ~+)Ou#0aX{pWbo0184kj{lE=BC6@xxlH&SIdtKOb$+=h}Y65 zoG=bQKlsqc!!z;YEK?d?urYF3PSeHl;}gHjvlw~KRPVRk*|K`B(A|+2r<*xhZO;au z;y2^fvo-q9$nJB1N%_xHz6 z$(VjSb`r__-?3BGFBqZowF`82{L$B+gE1qGa~6*y3LhEcat5Md%ICRNafKr+fY2tH*2?Gw&Q5-2jWXQa zGGc~kYG~^Cc&-R|WK$NO1pSJAtmvn5j_|(-2*{p9!>?U-ewHee`{Xt?e;cbgMO;f{A^p7&#YcwUxDrxcK7R{)t5J3 z>m6KKzBM=7`(97j1ugiq^vt2dU!I%q965T-K6~o9(`RU9`f&J((C$C3zA63(8y&(- -- 2.25.1