diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index cc13b27..0000000 --- a/.eslintrc.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "env": { - "browser": true, - "commonjs": true, - "es2021": true - }, - "extends": "eslint:recommended", - "overrides": [], - "parserOptions": { - "ecmaVersion": "latest" - }, - "globals": { - "process": "readonly", - "log": "readonly" - }, - "ignorePatterns": ["part1.js", "part2.js", "javascript.js"], - "rules": { - "indent": [ - "error", - 2 - ], - "linebreak-style": [ - "error", - "unix" - ], - "quotes": [ - "error", - "single" - ], - "semi": [ - "error", - "always" - ] - } -} \ No newline at end of file diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index aff82a1..0000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,6 +0,0 @@ -version: 2 -updates: - - package-ecosystem: "npm" - directory: "/" - schedule: - interval: "weekly" diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 48c5f33..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "typescript.tsdk": "node_modules/typescript/lib", - "python.analysis.extraPaths": [ - "src/drivers/python" - ], - "java.project.sourcePaths": ["src/drivers/java"], - "java.project.referencedLibraries": [ - "src/drivers/java/*.jar" - ] -} \ No newline at end of file diff --git a/2023/day1/input.txt b/2023/day1/input.txt new file mode 100644 index 0000000..5484788 --- /dev/null +++ b/2023/day1/input.txt @@ -0,0 +1,1000 @@ +99lbqpxzzlbtvkmfrvrnmcxttseven +q7cnfslbtpkvseven +6threezlljtzcr1sdjkthree4cx +21xfxfourmzmqbqp1 +lkdbjd5 +8three27 +21three +3lqrzdq16 +49threenjdgrmgfnfhcgz +fourmsmjqfmbjvtwosevendcljsdcstl3one +four98 +4sevenfddxgcvdgx +dffmkvmhhdbzjcgrjc5132 +eight4one31nxlnrzvtfvrkfvgbbqmvff +mdmvbhqjt5rkfpcnfvzhkkfbjvh8three9 +four32 +seven6pljhqnineeightjjsvnqblk8eight +6glzfour77fiveone +ntvhxqzsixxcrfpgstwo915onevxz +81four8xkttczb2vj +six8flfzdzl72eightnine +sevensevenzsztgvh4sixbzltzl +2fivehgrszcrgc9 +four53ninedrjllgffrfrtjgggvknine +nineonecxpzzqsptc7nv9pck +sixrqqfkcjrqkppvqthree1 +1five72cxh3fivefive +75349sixnhxjpgtnhqlf +9963onefourthree6oneightq +51fp +foursix2lt7one1sevenone +fourddcmgbvkm8fivethreeksqghch65ztdtsdmpvk +35jxmgctsevennine +mbbkjxfthreetwoqlcrjnlvkrgnine41vkjknnmtv +three7sixtwohpghsdxleightthreetwo5 +twocbtbkxhhcdrctkc14hlmdh +4sevensix3ninedss8 +snqhqmffonettwofourgdkjmbjvjpgxxxpzkm8zfpfcgj +3xmpfmnlz9fourthree9pdnzdlcsix +66fourone1 +bdkfdqvkmmstkhdsbbl5 +48nfive +twothreesixthreecvsskxq3threefoureight +1vkseveneight +gskgpsix4lhrtwo88threernhqnnfqdf +nskfvvncxfourninehkrbxpgdsk4 +vlm3qszxqnnzz1ptcvdxnf +xrppvsfourfive3sixthreebvbdkpckgheight +pckngkbfour3nineninepqcxvsqspbthmhzrp +pbtndgpfkhpflpj39zkpjcnine +954fourvrmftt +2xjrkdb8mzcfkvbdcx6 +plt462 +mcmzfzcdones2seven4 +8chnpnqmbx946eightkdjvhkkbtthree +6zgvqslsixnine4fivethreegqqpjz +9twosixseven4 +7seven75 +four7sevenmdj8 +6r219sevenpcvfpmfxxl +dvxjblhdjqttxdfourhhrgdpmvvone83 +one3sdnfone1ddjlzhgninethreenine +nine3sbj5msppfonetwo +14tgmqlnh +seven5xjncjmggjppmnsx7fourdzxrsck +j1hphv +61threejjlccdzvsevenjqpbjsphdq +pjmsphdtwo5x6vjzmvtkfhk43hknqc +xfpbzdl6 +twosix3fournlddsqmfbpslstnfiveonezfgoneighthtl +828fivethreetwo2 +fmrgz5sxrrd +one88cjcvxddjmczjznhpnvsix +two9six7pkgttqdnsbgfdcdsixmskjgfvvlvqvdx +six7eighteightq68eight +seven4bsrfpxb6threesevenmgxfmfive +gf74fourjdflkdtrvmljskxsix5three +xsvrhh25 +2sixtwofivez813four +kbkclv3onelmf4ntxhxbrppsixsix +8nine9hstninezzbflnjfxrndcpzknk +1hjlnsszbmtjtwo +2one146 +9jdpnzgqrf +1qfbhl83threezxcrdfzcbbqv +p4lcmztns33 +xmcsevenseven21jjfphz7sevengxlvfrrj +jfkmdmrfhv8 +73spzlbvnxsqsvgpbkl +kkeightlrnj4three +4qxzfxjdmrddlhxfive173eight +jhmvxpbeight681gj6seven +mqpsxqpxj3nine9ss +fourdjqll2vbqbtwo +28fivesix6one +pgblvrqlnjfdtvngfbzpl5njsmvshn5tc +eightvvh43nine +dpxc5oneonebdbkheight +pveightwothree2kfzpkks3ljxnbp +vknl4xptptjjp +4twotfour +182eight +ninesixqkfbhgtwo3 +twoseventwo4fivethree3one +sevenoneeightnine4sgkckjszmp +six4svkqftsrdzk +bhnbm96fivenineszx8sevenoneightkdk +rjldcxl8cxkpsdsdpgbngqeightnine9 +5two6bdrksqgd +threestrhsdtmnc998xfdtfg66 +bknkttsjf6gonesixeight +nine6one9jnqf1 +qkrpkv95bd11two8 +dksqfpmb6ttt5twothree5 +xxhrnpjsvcq7nineonexjkcsrbxr6one +hsmdgfvbsk76four1sixhfn +ninefiveeightrflsdc4one9 +four73915seventhfmjjqgxjzsnxvmnl +seven9phpseven9ftwo +59121fivep4 +gg3eightgdngqf +4zbthb7 +rxrhprtfb4ljdzqfmhgbzqzmrvvj1eight +zkvmsrvtk3two4 +ckbk8nine +tbbkxr844lpkgjvmsix +onetwo8kbxqgvsevenmrhqndt +ptvgfn6rnpfkxcc52 +three1vd +fivefiveeightdrljdrljxc9bjpbqseven8 +fourx7mlksevendjtr1lb4 +6ndfqts3two88 +qh976eightvfch7 +five9xdthree1seventhreeseven2 +xvfmccmmjcjjsm5 +ffiveeight579 +97hcfbrhkfive39lzhgjddsx6 +388eightkrmdktwopjdlpfmfivetwoneql +eightonenine4 +bqzpzbzkbs7nprbdmbqseven8kzr1pflnine +9eightfourthree5four +cclc6 +13one8tkfrmvcjfq4sixjlxj +dtrtwo9foursflc +3six4two3nine +7vkztxh6 +xthtrhfz83six +twofive56 +nineeight5 +one5qmhmvrkktjmvhgxx +4four1 +8one2dljjrvkthreehjdsbpqgtbjm +foursevennine51s +1nine8ddhdnbheightseven1 +nine5five2375lhphjk +ftdrpmmzhvrxcz3vfqnhjqlqxdcrxeighteightspmj9 +qbczvsdl449six1 +seventwohpknrrjtvfhpxpzb3sevenn2 +jnpxrqrtwogqsk4 +three9fouronejjlrzqdrxkcqnd +ql871three1rbhtszd +xfbrnkzshqtwo43twohhfqdddc8j +ninedgj6 +two3three6ninethreefourseven +4bfsl1shdzeight3 +96mcdgv1 +4fivefour4 +sixfivetwo4pjbkcg +4onetwotrnqlgxgtxxrgxpgsevenddjfd +three19 +jbnrs5bgmsixeightxzjznzkhpvsix5twoneb +7sixpzhsbnhrrmonetwosrjbt1jcxflk +74onetdh7 +5one4cmmcmjnl9eightkvhrnkgqjstxnpt +seven9xttdmzsix9tbnjfgmsgfoureight +32five4 +7five41lpscgz +48three +hddfhppseven2 +5ninecbtfxkfrtccfdzplndjpseventfhqkmcm5 +65ninesqgeightjt7 +four3csxzztgbrninesbfzf +2bcnlphn +xsfmhnbdrj31828 +ninezrvbf717six +7hlbhqxseven +2jrvfr5lbqzfjgpdgfourthree7srmq +6sixfive8nine +eight29one +onefour5ddgcrninedgdkzh1threesmcjmntnhh +gdg18ntxdpvvxcn7zk74 +5onesixfnppbf2vxxbntdqvv +kmclhrb2five49sevennine3eight +6jdddgdjbgdqmkktf +26jhvtscmrjthreenine53mldd8 +mkdcpnbsevencjfm21twotwo +3bqzmtnjhlbdszlrvpmvcgclbgfzljk74 +8gfbmnnlltjcmjkmmvnfsgph +eightpcggqtqns2 +ztzrvxglv7three5cmhnbt1five1chfk +9eight8cfzrsixthreevvvfour +3nine824ninefour +nmrjjp2fourd +twoonemgdm67 +foursdmljtklzldsevenvbqpthree917 +3ddzjxlsg69nine2eighttwoseven +6btlmdone8eight +7qhmpdeight +dxlb1 +zp9bqm4176seven +5krrrsix6 +9seven4ninexsgrqs6 +9zzfj98fourpjzqtk9 +svsrlmggeightpgmprpkpj486twot +sevenfourtwo8sevensix7 +zqspkktb831xjlhvfourtbtvpzmlbbt +2gfffoursix5 +8ccqxqm4tsdpvvxpdpcrlmktmg +5fivesix +7fourone55two7fivenine +9twothreethreeoneone +xtzc64fourzkpcqjg7twobslssjln +38fivetwo716 +hkxrxtdjzdzqnrzxfzsix3three +onetwo8 +ppbrqlhvqpcfx2 +rhlbtdddqggnmfour74zcmrkdthree +threesix3seven1one +nine6six9eight +mzmhvmrmtvsk5 +2qgbkrrgeightfzflbhpxctdpg39 +61two6 +2rzbdfmbczxcgphmonexmntkcmdxxpg6 +b6threetwosix791 +sevenmzlmcqxdbfmfj8ckchpkgxgmtmnzcninethree +jvrpkltm9n9p +two3bhlrgqjxbc6crzbvzmz9nqfdtztvqbhcrjptdvm +jdjchvpkcrfive67fivegltkrflqsbktkc +sevennine99jpkqljhfztbqrzm2twoctrgm +rcmlkj5 +lltwo4ninestwoseven1l +65threerzpkhjtzxl3jx +ninesixninebdlfckbp2 +fourdqqklkgcsbtwobj5 +threesix44six2tctgp +9zczcltwo +vr6bmpl +7fivelpfnzgct +ninethreesix1twocqfpchfour9 +1jcj81tkklgrhhjt +pntwonetwotnpnbmonennfblctcv91nqr +jnsfspcg45xkc +8eightqbhmrqc +five5threerhxffonemkbnine +16hqlvzjc +3mzjkkr +kcsrxhsnmqkz3two +9ftxzstqrdjcqddvzdxljz6sixsbxlztnqgthree +threeninesxt965six +4threenine2417qcljfive +4mqzxsnt3hqbhjj +r9ctkhvtl51 +47kmgznjvcg5eight +one5rv9ztvpt1 +2one3htxp3three +74six4bkqsjfgtdt +two2onenine9fourfdqqrmx4one +rvltwo9grrhsvgzr6pmnvrnlxb +ninefourrzgfgcfcvv8two8oneone +1zg5seven3 +six91xgqcs28 +5threemxxntrml +3hjltzgdgcmfmstvgfivenxfour5eight +five1dl8six8 +96lkghnglthree +7sevenvggnkkjvzmjbbjgjhmtx53 +9onetwo +6tmltdjvsevenfourfive +ghqkskqmbnhnone7dphgvqjzbq834 +nllxconethree1 +fivez5lxtfpjxpfdtwo6twosevenkhtmqbm +eightone4lnhlq3639np +8cqcjfxvclskqqnbgq8 +qvsixgxlfsevensixhqtgmnmvk6 +twopfccg6nine4gdhrzdqrbm +1hg72five +kqrr96jhsfxgddncone4 +55xsfk4nqzqvthck4onerldsjx +ninesbcqfdlvl1sixeighthdnhsh3eighteight +rrspvpclvl7eightthreeqtfive +twobfjrmffive6three9kqmqmmps4lrjzjqt +fivefivejjxcmczlsdeighthdxbltgvjgthree8mp +one46mhghdxldbfiveckljksxm +c7fiveonesix +sixnineseven8xqb48eight +2mqxkvdmhgbnx +sixkrknqflbz6 +6four9twogonesix +cbxrknrrddnfour73ninexqdhlql +rjtdxkjfs628eight +xchpj2 +fhteightsdzsjqvhgceight43threefive +426jqvrxqflhch9 +sevenmj3fiverfqzhhpvtbkrqglqzp +2nine8fnz3five7xjzrp +twofiveeightfivedcnpv74 +7fiverkzrthree +gfctwonesevenhhcsvjqfourpfxjmthbcm5mttmfrb +fourjc9threethreetwosixpffp +sf9eight5fivenrlxfkjgq9 +hd48bq +five21sixone +vgkgfvnblrdbeight245nlfnnhfx +3fsdrdmvrqptwothree +ntcx82fivesevencvdkk5 +6gdmmvxcvp5sixthreecjtfkgnpmnthree4three +xpkthreethreeeightxzkdv7mgrbzxhfive +one98 +5foureightmqstc +twothreejrhffour9twosxcj +twoseven5five4ptz34 +1phdclsix +3chbfpvfzj51tbhpvqhninefschztfbdm +113tqmjkzjlgr +kjdrfrnzhvone6bhv8zlllc2 +four1nine +3pkxz8 +four1oneseventcspbzninenineqdg +one9lsmfghl6pxhbmmzxpjjthree +szlqptvcvskkcgxxtfrfivefive28pccjhzz +7sixjhhzhgh +onerxgnxcvprphgpzsixphrkdd97two +twodhqbmrz11lg +5ninectctwo2ninenc8 +hntt5 +chkjc4twokc +threecsix62one8tgnsqxxvpjsix +fhtjrljsevenfchxccpckl8 +nine61sixrqktdm9 +threepkzmnmnmmngxrcq7 +4dtfivehdvcknmkj4sevend3tx +njcvzpmp8gmgvtoneninecnhgj3five +4pvqncghvr4pmlone +2eight4596bs6 +twosix93fclbgfive9fourxnqdhkg +8onektghncz3dcklzvbdtwovsnlrcclpc +221threegtmppngzseven +jrhvplk55five7keight +4eightktndbfzfmskcjlm1 +fskbxxvvsmsevenrzqrcgninemscc8vnvzseven +kbtsf6sixczlbqzrjfm9oneightmqg +vvn3threefour6sixseven2 +6jfourzkhlllkseven +2twodxxhhns4gdjqmztnine +sevensfxztmfive7twofourqbzlzkjc +vqcblfvrgfourfiveseven7 +6nineseven4 +bnfivevbjgfzcctrhncmmnpfzmcdt4six +two8onesevenonecmtddxnfbjeight7 +4sixfourdgmstmsj +7eight97kzxxdbdonejtsjqgjcdlssix +vtvdone2cjzcjltcj6six +ztwobmrvcbfsnine4one +jjblshvzsevenfoursix1ndqlgphrbbfkkcmstlsoneightfjm +5seventwofive +onebk4 +61bgcdfjsevenhhcjjgdqhr +6kdvfpsevensevendg3 +61gslvnlcjlsfgdsflqp1rnqdgktfseveneightwom +rvcmkdtqqglcvsxkntfour32bdptgseventhree +zvsbhkftlpgntvfgfxpcztm9fournmvxjnine +four91nptdgzk8rnmqc +tqmtfsixbcxspjscnine2 +1kvmreighthnine2qxvrckqvgd5 +dcpvrl8two1fivec698 +xqg91snbsslnrptwoeightdzq +gsnvsix4vdmszmjfourfnrnine +9nineeightthree51gl2 +7sixffvf9two +bbgqpxghsb45seven312eightworg +fournineeight45five4fivebrznpkz +dhrsrghxfivejdrqfgkdlxzb869 +8nzxvsmrrcz1one5four +3mmlzvzqptttbbmtgthfive1nine +one9eightpzsmjvnptwonemkf +fivejkgrclbthree5 +5fourtxxxvfthreelxcmghhtkqnrqzvts +1tlhcscbd +99six +53sixthreetwoninedjsvdfourone +fivefour7pbponectstmp +six5tnl164htsv +fivekbkjtjkxfszcqvppqqxdtwo29 +42threexpdfive +9892 +lvlkqlzvsix7gbxhpxrdfh2zcgccjvblhpvxqshmbbjkpgpd +two7sevenfourblphfkgoneone3 +7onenine6535 +59zv +347threeeight +8five49 +73four +heightwosix99 +1foureight +soneight1xzmfs8six7vpxcfq +nine91 +pvxtkphg3gzgvqlfk9vhjvqmgszfivegd +seventwo9six2 +2sqp +3twoeight3 +8slnsxtteight429seven +qfjtthmthree3twothree +txrdqsp4oneqsprgjnnsc +7kqgv3five1 +fourninegrfz2 +seventbbfrvjqlkvm47 +8pkqtpxfxrgpq1 +kqvseven4n5ksixdphmjk +17j +1m3 +ninefivefour6 +jrdmvztnncnhnp8onefourfive88 +kbvninetworblsd3fivesixhvhtxvgt +4ninesevenkpfgcddkninetnhg +9rdzsixsixtfbgzmhsgconethreedfxqqvv4twonem +kvbeightsdtqrhsscpone6 +7fivezhxkkxlsonenine +sevenone7threeddmjmsjrhprn +eightsix5 +4bjmfskbtc37seven3eight +grxbdmppllthreeeight53 +one8jnhgjpdbseven8bc5fivenine +jvlmsfive43gqmpzseventhree +jqj9twosix +eightseven9 +fourninexdzbnqsvkdvbbkb6 +pttwone2nbone7gnpbllbhp8 +sxpkrnshj8fivefive9kfvgjpv +4threepkvz2shljdn9hgrmznine +6seven29gnhtvshpks77fourstkdf +bmnfthree2threetwofive +51 +jghxzhndrkfourtwo1 +jspckbhzfcqsbone26mfhkmqztnine +5fgzbmgfivefive +six18sxvchr +rv7fivebdrtdl5twojt4cx +twofourthreetwo5onejfm6 +threesixeight2 +9jrmdmzvlgnine6cjlphdnine7 +9fivembvhfrlnzbsevenngp73ninefour +sixxtcgjvssevenmfiveseven15l +threeseven6 +cknkdqrnxrjfbn818vstmprqbts +4zfmxjxlkv7rdqhjfourfoureightcgvrpxfnrn +ghzmpsgzrkztp8s4zl +ninefour78rhtjfrqvh4 +one9qzkjtsix13 +sixfk72jjnrninertbzheight +rxhvxzcp366one +24eightthree +teightwofprzdscnts4nv88 +eighteightshqcbqzxmbktwo54fourpdkf +sixfhvgkfourfoursjxnstgqnjh2 +6two1vtnqbrhqjbnkm7six9six +66threeeight +lbdkggsncthree315 +8gqsrmseven3gvvxq99 +sltgzbgbmg1 +9twov6 +shhbqkcc71threecmkl +cgqtpsjkglzszffcnineninesgvj1 +fourhqnlhrrsbrsevenkrgffivefour6eight4 +twojdccnhk6fivelddgrppkldtdlt +4dlkn5x +12sfdtvcqztxmtvvkds +44one6jxjdbsjxpg +7sixfmbbfxnjjhj5qkqfvfntonegdktrfl +eightfourzkdxgqn8 +1fourthreetbvtpphj4rmrhlcbxbrqfdxszfour +eight42onehpvrlbkglq +9five2five5 +bnzbccq26mblqtjxlsbtdvm +nineninelnknxhbfk4xssrlsdmsixoneltjseightwofzf +8mleight7zhfsmsmpdthree +mjcsr5tsktfpzc2nine7 +tmlxbkh79four7 +fiverzrfvlcdnmkn46onennxbbvn +threefournine9 +snz6bcgqlhx +4ninevqjlbfklgz +8fsvsfiveone9fvdfiveg5 +eight5dhcgxjts +ljldjmfmgtzclfhthkdtdthree4 +qrlmdjmkvvtwopdphfpmdd6fourxkblfqcx5 +62glckjgdvnpfourzlkphvrjffive +nltxkzk2zhmqhfqq +95six8xflfzhf3 +zsfvrpjx67 +two4vfivehglclslddsix +gssccpnhjx5128foursxpgrgztdfour +87fourpqdrxmvqdmxfrtzthree +one85fmkj +5rtjzsevenfive1thpzqxxm5 +bone78 +4three83947 +sixffkfmhzfkksevennllffhjvkxqhpjjtfl1 +foursixxvfst6twosbvjfvcb2t +fgzthreekkpffive5four +685jfttdmjq +t4 +xqeightwojhbrrrqgdtbcqlhthreesixsreight7rxxgqntqdqlbnm +stbmgqjdvqfour4 +dfour11gfcvx4nine5 +eight4fourseven5five +six3seveneight +four2sevenltvckjxjhjfslsvgpzxffivefive +27one5vdtkjt4 +fourzpr1gxgone +gtfive5hbqktbfour5g2tk +nine2pqhqgprxrg9hgjj4 +twovcjkcsqznsix557psh2 +1fkpjccjffr7nine3gxzk +5threezzbbvtcbvj4 +8nkbdhct +8eight2 +six17ninetworpc4 +qljgkvq23eightfourfour +onebblhxbnlhztgrkchlbtwo5 +sixthreevmngjjgpfourrrblxqvcl22 +mcnksthree81xrzrrrvnvdvbzfzlrgseven +chjxhjjxthree3 +mrmxzpbxnh4sixrxskzvnjtlkjddnrpkbjhslbxjbkq8fsix +2kgfmzeight +plvslqzpbk7 +xsfq49ljfts +seven2x9hpzbhqzpffoursix8 +5999one1mbnxmrqcxv9 +eight52prffgvvgznineseven +l8onehqzcf +sixkzxvqdgnbbmdtrvhzfouronekmklkjp34v +98144threethreebvcjpllggz +nine7twofive9sevenszvdrq +jnvcprvbgtfourthreed9pm3 +tszbl9one5dfmsmkmlvfrlf +537tmcrdxp +sfcqfrrcqj26 +8fourfoursevensixmlmqzggmrfive +kbmbxz1onelqtdxxk3 +45mxksixfour +7zncmh2 +hzoneightsixfourzzlkmrnzptllthree2tpdjtsszxnjdhkgv +ztpqbd68814five +92gnzsvldmvhhzb8 +ninefour2sixseven1seven4vcnkgklh +sevenfsjrdhclm7six8nlrhdpplbjg +sevenlgd86 +pg75sixtwozk +734eightone5gssxhffscq +5sevendrxvkmfsjkgg5twocqpqlhksrp +seven1cktfl +mrs7 +2foursevenninelpzxthreetwojmbvfzs +2rdsjl1three1 +xrkztslbkgdzgjjtst5six5fourthree +twosixfhlldtwo2sevenfourknbfgnnjs +nine699two9pp1 +9kdlfour8kzfm57two +hlmscnhk1cqqzqbsxqglf9jgpjnfrjczeightspkkzrdqjd +72six7mjsxfxtz5 +3sixonebkfgp +fivefourvslvn2six +19pshkt +739bzfpltmtsevenfour27 +fvps6pprtjlq5foureightworm +qds3zdsgzxvthreethreeeightdqjbtrfjbbj +nine3148oneeight +nineggvmffthree1fivefbkmmfvjkpcgsxrfzg +7vlff9msmx3njb76 +hsthree4jfpvhxnceightkfseventhree +hx3seventwonineklbq7six +38zeightjlxj +jdbqgmsix8 +seven8njthzbdrtninexkplhnrfourone +tnhhzhjccjdtpleight3onegsevenxkqbmqzx +4679scb2 +twos334fourfivefourfour +sixseventwo356 +xnmsevennlr78jlfrbgb +four7krmgzcclgf6dteighteight +94mzfhdk +7two43threecthree +lztbgnscq7ggeightsevengtjpseven +nbcrvpljfive1threefive5seven +fc895 +eightlqzzlgrxv9gdfcrpkxkhzgbjtpcgncppm +8cfjbngnd6371threedczkfqmptxtrqt +6jblvpxskcnine +onexvkxthreebcvnnrctsix1oneightsrd +two66fourfourdnccpl +3fourbqznm +eight9lbz3eightfourmonethree +2qpvlbbb +threeoneone1mjhqfive +2threenine +two6qvxnnqj91eightfourkqxvhq +rtsftmvb14 +kvzptdxdfsrm5four5three +sixkfjjbccbeight3eight +kjskjrnbfs29seven6 +68qxpjrz +eight4cnmx9four9eightvbsvvsix +6xvsptbqcsxlcdzcnzrninehhrjqjsixkk +seven7vknjphhfbs +rjmhjgmpzk22fjmtmtc7spgkfkqgcn +three8ftxlktggjn2rfljxmlg9 +9threehlvtmftzfiveqghnvmtbseventwo21 +pceightwopbpbj3two2eightfive7 +lsdbf6five3nddpcnnine5xvqx +2sevenseven86lldmhf +8rqhnhsrcjnfzgpcclrmnlvbphrtgchpls9 +kxeightwoxsrvcbzhhbpdlrt22fhqfivefptwo +bdseven2hnqccjqgxjvjk86xvbhddlbx6 +zszz4kqtsqjfpqmcxbndmbdseventhreeeight +fourfiveoneseven83twotzblfpldfq4 +tgbxlthreezdfspjsnhrmrqxqj6cplcczt2pgsbfczn +jzdkc6xfmhpqstvzzmvxk431 +7eightqbxcnsgxm +5sixeight +6sixvjstz +4trxhdlkzqvjpzgpvfp1 +sixqhghvddcdn7blhptxp5htcf3 +nineksjvmvc2 +41krm9 +nine42sevenfive2 +zfivepkfqrgpkmxbmjbq6tgktpvnjvdjzsd +gssrnnqmm7sixfivelklmggxgkdtlmlzqp +64qsevenftmjzgs +6nctkfbskghpqr7 +8nine3 +hkjoneight6seventhree9 +11nineeight9nine +845fouronetwothree +pfhb14v +three21kdgcplbzzbeighteight +4cszltd7ninerrmhjqmtrprtccpjnjgdbdtwo4 +five96 +2lkfbsnq64three +srltvpbgnxvlksmfzpj2 +four9tpjvhhpsctclzpnsr1fourcttqvng +gpjxncqsbp46vb9tqgnninetwo +four1four +6dtklvddhlprphffpnkrksfseventwonek +eight4seveneight2onezfbnvjplvl97 +7ndvfp8qstcjdgzcfcninebj +9beightbsbphgrnq1ninesixsvthrx +bpxthreezkhjleightsbxmsdeightseven4 +fivemlfsninesix1nine6six +4fivethree3qtqsbscnc +four7dsix3kfhrrgbbnlzdfbgxsix +hqckztqxgxeightkfmvvjg6tp4nine8 +tmgfmcl2twonedg +fmvvcsix8nineninepqdrcmhdzsixtwohcnrss +nine258foursevensix8eight +8q +pqjqrxnine2one +9sixpbxr43sflnine3 +4onethreeonefoursixonefour +1vnscdrnnfpkrj8mndxbqdrckzgdpnfdone +threeseven7six8three3six2 +jvt24pjtnxdcpsthree +7nxfpnfzrssvqqcnrjnine47 +cflhgfournine368 +62srjsxgr +mnsix6fivefourjdnqfgjvp99two +8five6fdvgctwoeightcsmspmxmbgjqzjhlhb +seventgcdvchsfivefour9nine4seven +bbzvxfvmxhqv26rp5 +2psmsflpgqmb +eightnine4threekgfjmhbkhtxgr4threekxnmspvbfs +seven9two84phzrrvftgpt +xgpfkphfchzptzvconetxcp3qdmdn +five2fddc8hdzrzgcgdtonesix +one24sixtwo +mxfltrcltqjmmtj4psbf +jbrskjdtthvksk9mhfxjgdjt +four96njn +five8tqltpdxrklninednqkmgstlptpjhqvklnjhrvpzvpfr3 +onecsktmkt9 +seveneight1 +nineeighttwo1txhjjkqzqtnine +37onegfcf253 +4ninethreepndgnfqpvqzxbxkpgp4eightwozg +tfxnx999864three +sixthree19 +3nineonefive +rpht1onetztgngmeight +9928two4six5sp +gmhtwooneclqfdqvfivefour5 +two3dkkfive +7four6pklfxjqhgbvnpxmndsixthreetwoeight +5eightthreeseven9 +9fourseven5pmtcdpfvhjj +24fhbms2sixtrjtm +seventwob99 +3mffcdvdqsixgxtbrxqddkrzclz92 +5fivenkmtgbsnsixeight +3seven9hcbmcnjvqfour7 +bvspr4jhjlnddp3eighttwosixfour +kdvh5 +seven7hvcmdfkfour5nine +1ksqzfnmhfqjjlklptmmpvxnine6 +fxp7hljzvndnd2mpqm8 +86qxntjqmljdqpdbftqfrfiveninefcxzdqctbjppc +one62 +two23fivesgtsqpjrkvlbrfknjgcjbt +29gkcpcfdlm3 +ninehzvhg2one +ljv73tpfjvbhlxnpxqxhfivefivezxtzhlfsc +three7637 +rnmkzqgtjpfbn3nine8nine9ttcsdbr +jqtwo7fourone7dclxtnlnthree1 +872fivemjghskxcxmninexljstpvb +9hdjtfkqsb8skkvpfpgqlctvlz +nqnltrnsevenfbsixmnxrv87ffsjn5 +fkxzbxsbbfour17fivenine424 +ccbrxlskjzmrclgchlxlcpkck2 +one9sevenjgxrk33twonepjs +5eightthreefivethreetwor +zxqdnhnk51 +two39xctxpvsmfivenbtsmpcg3eight +three52threevgj8 +1twom52 +3pthscht +8ninegx3f8 +lzjvthree96jgfhfvsbv7qfour9 +threenineeight722ltvvxhdczjfivedcxbst +fourgvlbxrone8btblnlbkmx51 +one5nine93fzxthreebzchcqjbrxxct +3sjbbtbpkr1onectngpqpdfp +5xdgpgpm +nine9onev952 +fxc9seven +fiveggdqqlspfoursevenfour5three +7ninekhxpdgfive +3fmkhhbztk +737 +3kx2sixgrgslpfvvlfourfive7gbk +1rqjxnfmzkvxxsixt +fiveszkkmrtrctjgqvcfbg5r5 +6onefoursixntbbrjxfrfournpjbgcx +sixgpbbbkhxdj4skfrvnnlmmhxcpfnxfive +two37hjdklhtvtwonzhcqrbfv +eightsix7 +four9253njcqvvhtgs +fourfive3bxnvck +ninelsrbgctxvn59six +3jzqb7six69eightonenine +73nine6tkrqsc3kthjdmdtmsixspvvr +8691twothreeeighteight +8ninetwo7nine21qpkbml +3lttttwonemh +8eight9onefpscrm5 +qgl38onevqjbfldcg +dbcxgcfsf23jbb6eight671 +18pzgfqjsfourthree4bvqtxsh +fiveseven7mdgmsbdphthreefivedpzjbjc +7onemmspfpbfbftcpgvxhmh944cvdvlp +96hpgcqlp8six +two5jrrsix4dktmzkqgvb +two93fourninekfkkgdxbvk +93onesdnxqtwo +jxmfmmvlxzseventhree5sfconeeightkrzdcvnhpvmfnz +86gkxpqspnxs +seven9pblxnnkkjffournjlkgqmonedxqseven6 +jtddqv7nzpsixseven +vgjkbfnc29gskmmjmgsrbvghgrbtsbrdglszsix6gm +gjglfour8three7five +seven8ninetc4foursevenxfxlvmt +sevenone21nine +9onefouronevqrsthmlone +8threemsrbrchmk22fivepjdxprpvplt +rsqkrlnfpsixfive3three77 +twoeightseven2threejzgzmzzgqdrcmf +three8lsctcbnhgkpr3 +4ktrtzn +vqhvfxrxhpdgqhcrrczjlmhdnlzseventvtrrktd9twonenqn +twonineeight7 +67sixeighthvfkjhtj5 +644 +onezdfz6 +6qmcd9ninenineninetwo8 +four7nine7 +4hjnndn +1fqfqdqqxdnvhmqcp8 +rrhndnbpjjzhclhv9ppvlbtxklzfivejhxzcbpmd +six7526 +8ninefkhszlp2 +fivesix34twocg14 +3sixfive +2nine3 +2hv4rrfh3two8lr +sevenrqbzmkmcn22 +56vrglvbcdtxxrnjrlhpffr +mfddxflkqd4six +bfsfnkqxc76rtpgss3pkqkksrcxnine +83fivemnjdfnk85zqmssgfffourvgqjbn +822 +dvxgqrbjpnqvpsfthkz6 +4fdlzcxeight8crmrztfdmthree7eightfive +two9threefourtwo8vj2 +nine1jxpclfhj +jrgfxlgblzqnr9mnfrcsixone +5t3nine5 +twogxssevenoneseventdc3 +rvzcbtwofour4sixgfzk +six22eight81ninepnscnlv +eightfiveeightsevendxx1gh +7nzlpbx864g5 +hxgdrrnnsix1sevennvmsvdvccpmfive +1threevz9 +36eight4xvnrghgjf996 +nine8mmtqkffkthree8xpmsbksix +1fivejrgqrjjnql2dvmcqdbjbsix +15fiveseven1td3 +kmfmbhcmf62five +36dxfoneninefivehrr6 +four54sixfzhq26 +1427qjseventhreefiveqhv +eightghnnlddqdpm1 +9jbcfdjzjxreightlcpmdddts +6ninesrdgkrfivefoursckkrfrpqqhgzeightwoj +xmqsnjgskfour8eight +9l8one +four9jghzbrsix7seveneight4 +9tgsvk +sxgkkbnlsbnbbc2ckqhzgdlsbhp +6ktwohsvbeighttwo +xgfrrnrlkgdqfxdtwo9fvthree +5hqdvsdnrvr81sixsqjmbdls +kkghseightsevenmtbtvplcjnqtscx6 +rveightwobhqtmjhsrptpzkbv3ninem +3qpgbd2fourqdsnnbgmnsqgdb4 +mfive12 +52xqhpfdjgmeight13tcn3four +6lkgjdj +rvsvpt144lrtvrtpvd +8fourfive8 +28dhzrtfcjlgchxbthree +vvsixtwodxfz5six +seven7rcp7 +threethree136gts9threenine +9477 +seveneight8gmhthree8 +nn633sixzxcxthree +two95rfcffourtwo3 +76nine +cvhlpzsbmknkqpgsevenlkzvm7hnznjsbszgvxrmdnn4 +pnlqmxlmvkkpdgktwo1four41one +4hgnhzkbmlvkqpqqptd93two +lfsnfs7eightvdnghthree +shpndlkr7five1three6 +sevenfourfivesckjjlzgv27four +xhtpxlqssd3eight6two6 +48ckzhkk84seven1ggsffz +33rqthree6jvqlbzllz +4jfourthree6 +jkhflbhqhtmpmhmonebfbmcmczbspj9sttmnvnvgfivekz +eighttwodk25sevenninenine2 +oneqqxfkffivesevenzqhvjtgjlrninenine1 +2nineseven82fivethreezzqfjm +mh4 +3tjfmrtnff498 +five7three7three52eight +jgrndnjckvc1 +9sixgvv +six3rfpxrl9three1chczskrxthree +6bjqqzfqcxvnxbkpq +922 +loneightnznrcpd6cpfsmclp +7five7qncxmfhleight +bhsgbsdnsixnine4msnfmonerjbpvkqf6five +4xrcrrllzh9two6zgcftpfqj47 +six31two5fourthreeeight +gqhckrzrpltwo72znb4oneeight +trsxcpls3pmqqrskpmfivehdqrptvdtq +six3four87one +46two3 +9fiveseven57vhmq +jkrbkfsevencnvzp89vhmsdcfcthreetwonedrl +9cvzvqfboneffive6jmnpjkvrjz +82xrqjdqchdbvhxpninefourdhb +3bqsrf +fourtwosixsevensix9threesixthree +3fourkgjbxbpsrtgsmgrjthree +ndeightsevenfourtwo943 +471pn6 +bpstsix84four32 +gjkcq89ninegkckjpkz +eightkgvmxlzlhrnrdpttdqbthree117 +vtdnlkqcg65 +btwone727onesevensixkhbnkvtlthfjfive +twozspnzkssqseven413 +7nttlqthreenspcdrhdpn563 +six3nine +4twodkrlmssknsgfourkcfrxskpntnine +qgtgfxhfjj3pslzsttxpfive +fivethree9ct55sevensix +8twooneonesixjlszd1hlhbcgjf +fivetwosixsevenmrzjqjtfourmrk7two +pfnine6sevenone +3threex94znone96 +79two2sixeightqmnbxcxf8 +oneeight5 +763lsdvlz24threed +four9oneeighthdcrzqlnvxj6ninex +7552twojhv4 +3rzxhddcfxone553one9 +sixsix8 +7seven26k +86onethreenine1vlnmvghn +sevenglrmsnngpf3mfblll3seven +npdrbsxxpcpc3jzlpljsnlsrvdmvtr6one +6894one +rjzxs7 +7mllptmtwoqxrpgprvqrstmvvvvm +sixone12 +225 +dcjzmcnbpptwothreedzqctmhm4seven3qhnbn +oneone2six56jsmdjqcznjtwolcjvmpkxlj +2sevenseven +7cpnpkcqsstfourjthreenbzvrdgeightsevenhfnztth +4phcrvcgseven4njn4 +three9fiveninefdv +63ll +9sevenx7 +9fivehvtfdckjnpvk +gpkhmlrxs5two39 +kfvqv5oneonefiveonethree5five +2mrjctkmlks4z +8eightkrzkdxvrrjvtwo2 +fiveninesix9 +rhtnxkvthkpbqn4mtgtdnmmxmvmmzmcbt1 +mtwonexdljqqgbbnineqrgbqnqx7eight +fiveeight8sfvzbpkeights4 +8threesix8two8hszvhcbonefour +tpjtvpjgtnine2rbbfd +zrxjftfg4b6three37four +th5kktbzgmvkxhhcsqcrvtldnldml7seven +4txnqnplsixzptgszd +gzt5threefiveninetwoeightsevennine +jtfrlffv17268 +qfour9six +49vrbpqkkzct6 +14two +nine2drdcd7sixpfvsblcxqsjshhg +5onehfivefour8mnine +5qlthree6hbkktrpbmgninepqtxq +three8four +ftm67qrmsix +seightwoplhzgbvb7275 +qnqtbdmqd4 +onefive2lcrdjrzbheightthreegvc4three +87eight4fiveninefiveeight +1seven7eightfivezqcndfj5cmblgczd +seven6rkxsvbs529fbgbtclkjhcljpkjbgmvz +1twojxpxrgvvzq14ldngl9eight +qkg2fivemrlzlhxxzcmfive +one85four9six8eight +7sixbgvdf4841 +hktntngtlfflzrdpfourninevlzpdrngvchg2 +6two115 +fiveninesevenqxgjrnk3two +eightthree988nrclmr +2one6 +6737jfive +8four3 +4fivesvntkxfpnqhone94three +7six1twothsd86 +98pczqhlqbzjlvfnine68 +xtqtwoneeightlvcjqfourckfour2nine +9sixllhhqhfivemmoneeight9 +4czj3 +ggdlxrrxjl1jnndbgbdninesbcfhd2five3 +kszvbdfninethree5onevflrqffxmdonefour2 +1nkpmvbf75 +lnbgnkkfhseven5zfive2qcr +seven75xcx +2eightbzsp2pfg7eightv7 +fourone29 +4two5two9xcpkkjqxcfivessqqvhbbt +ncnqg1sixt9ninedlfgsqhnxx6 +xrlsktwodnbcbonefvxxqgbrsdthree3seven +klvsv73 +onezvbhrblrkzcrsevensix96jnpxjone +nine6chd4 +bdvkqlrh9eight6eightninehq7 +fivexpx1vsrreightkp7dph +3eightlrrlgck967 +xcntwone4633sixmkm1nine \ No newline at end of file diff --git a/2023/day1/part1.py b/2023/day1/part1.py new file mode 100644 index 0000000..0877460 --- /dev/null +++ b/2023/day1/part1.py @@ -0,0 +1,5 @@ +def calc(line): + numbers = list(filter(lambda c: '0' <= c <= '9', list(line))) + return int(numbers[0]) * 10 + int(numbers[-1]) +def solution(input): + return sum(map(calc, input.split())) diff --git a/2023/day1/part2.py b/2023/day1/part2.py new file mode 100644 index 0000000..3421e70 --- /dev/null +++ b/2023/day1/part2.py @@ -0,0 +1,29 @@ +m = { + 'one': 1, + 'two': 2, + 'three': 3, + 'four': 4, + 'five': 5, + 'six': 6, + 'seven': 7, + 'eight': 8, + 'nine': 9 +} + +def calc(line): + l = len(line) + numbers = [] + for i in range(0,l): + if ('0' <= line[i] <= '9'): + numbers.append(int(line[i])) + elif i <= l-3 and line[i:i+3] in m: + numbers.append(m[line[i:i+3]]) + elif i <= l-4 and line[i:i+4] in m: + numbers.append(m[line[i:i+4]]) + elif i <= l-5 and line[i:i+5] in m: + numbers.append(m[line[i:i+5]]) + + return numbers[0] * 10 + numbers[-1] +def solution(input): + return sum(map(calc, input.split())) + diff --git a/2023/day1/sample.txt b/2023/day1/sample.txt new file mode 100644 index 0000000..4316a6b --- /dev/null +++ b/2023/day1/sample.txt @@ -0,0 +1,7 @@ +two1nine +eightwothree +abcone2threexyz +xtwone3four +4nineeightseven2 +zoneight234 +7pqrstsixteen \ No newline at end of file diff --git a/2023/day2/input.txt b/2023/day2/input.txt new file mode 100644 index 0000000..f3864e6 --- /dev/null +++ b/2023/day2/input.txt @@ -0,0 +1,100 @@ +Game 1: 1 red, 3 blue, 11 green; 1 blue, 5 red; 3 blue, 5 green, 13 red; 6 red, 1 blue, 4 green; 16 red, 12 green +Game 2: 3 red, 13 blue, 5 green; 14 green, 14 blue; 9 blue, 10 green, 3 red; 2 green, 5 blue; 11 green, 3 blue, 3 red; 16 blue, 2 red, 9 green +Game 3: 17 blue, 5 red; 3 red, 11 green, 17 blue; 1 red, 6 blue, 9 green; 3 blue, 11 green, 1 red; 3 green, 10 red, 11 blue; 12 red, 3 green, 15 blue +Game 4: 14 green, 14 red, 1 blue; 15 red, 13 green, 1 blue; 6 green, 15 red; 7 green +Game 5: 3 green, 1 blue, 3 red; 6 red, 2 green, 2 blue; 12 red, 3 green, 1 blue; 2 green, 9 red; 1 blue; 2 blue, 10 red +Game 6: 5 blue, 5 green; 4 blue, 1 red, 10 green; 16 green, 1 red, 6 blue; 1 red, 1 blue, 13 green; 1 red, 5 blue, 7 green; 14 green, 17 blue +Game 7: 1 green, 8 blue, 4 red; 1 green, 4 blue, 4 red; 6 blue, 4 red, 4 green; 1 red, 8 green +Game 8: 2 red, 5 blue, 1 green; 1 blue, 4 red, 8 green; 6 blue, 12 green, 6 red; 3 blue, 5 red; 8 red, 2 blue, 13 green; 5 green, 4 red, 3 blue +Game 9: 11 red; 1 green, 2 red, 2 blue; 1 blue, 2 green, 9 red; 4 red, 2 green, 2 blue; 1 blue, 2 green; 1 blue, 9 red, 2 green +Game 10: 9 red, 4 green; 1 blue, 3 red, 7 green; 3 green, 1 red, 1 blue; 7 green, 4 red, 1 blue; 1 blue, 5 green, 10 red; 1 red, 5 green +Game 11: 2 blue, 4 red, 3 green; 1 blue, 7 red; 4 green, 7 red, 1 blue; 3 blue, 6 green, 4 red; 3 red, 1 green, 3 blue +Game 12: 1 green, 6 red, 5 blue; 3 green, 2 red, 4 blue; 3 green, 1 red, 3 blue +Game 13: 6 green, 1 red, 9 blue; 11 red, 4 blue, 12 green; 6 green, 9 red, 19 blue; 2 green, 6 blue; 10 green, 1 red, 16 blue; 4 green, 14 blue +Game 14: 7 blue, 2 red; 1 green, 2 red, 19 blue; 12 blue, 6 green, 11 red +Game 15: 4 red, 4 green, 7 blue; 15 blue, 1 green, 8 red; 2 red, 10 green, 11 blue; 5 red, 4 blue, 6 green; 9 red, 8 blue, 3 green; 9 blue, 9 red +Game 16: 7 red, 2 blue, 19 green; 6 blue, 9 green; 8 green, 6 red, 19 blue; 11 green, 7 red, 1 blue; 9 blue, 3 red, 17 green +Game 17: 3 blue, 4 green, 5 red; 2 red, 4 green, 11 blue; 6 blue, 13 green; 3 blue, 12 green, 7 red +Game 18: 9 red, 6 blue, 7 green; 3 green, 3 blue, 5 red; 18 red, 6 blue, 4 green; 3 green, 10 red, 8 blue +Game 19: 3 red, 6 green; 1 red, 5 green, 4 blue; 3 red, 14 blue +Game 20: 2 green, 2 blue, 4 red; 14 red, 6 blue, 5 green; 1 blue, 5 red, 3 green; 10 red, 6 green, 6 blue +Game 21: 10 blue, 12 green, 3 red; 1 green, 14 red; 5 blue, 7 green; 12 blue, 1 red, 13 green; 7 red, 4 green +Game 22: 2 red, 1 blue; 1 red, 2 blue; 1 red, 1 green, 3 blue; 3 blue; 1 red; 1 green, 2 red +Game 23: 4 blue, 4 green, 1 red; 3 blue, 1 red, 6 green; 1 red, 1 blue +Game 24: 5 blue, 15 green, 13 red; 20 green, 13 blue, 6 red; 5 blue, 11 red, 16 green; 6 red, 5 blue, 13 green; 12 blue, 13 green, 3 red +Game 25: 10 blue, 17 red; 12 red, 16 blue, 3 green; 4 green, 12 blue, 10 red; 8 blue, 3 green, 10 red; 5 green, 2 red, 12 blue +Game 26: 11 red, 9 blue; 3 blue, 3 red, 3 green; 10 blue, 3 green, 4 red; 1 green, 4 blue, 9 red; 5 green, 1 red, 7 blue; 1 red, 3 blue, 3 green +Game 27: 1 green, 12 red, 4 blue; 5 red, 2 green, 1 blue; 3 green, 6 blue, 10 red; 1 green, 4 red, 3 blue +Game 28: 6 blue; 2 green; 2 green, 8 blue, 1 red; 2 green, 2 blue; 6 blue, 8 green; 9 green, 5 blue +Game 29: 1 green, 9 blue, 9 red; 13 green, 4 red, 9 blue; 3 green, 8 blue, 15 red; 15 green, 18 blue, 3 red; 16 green, 10 red; 16 green, 12 blue, 16 red +Game 30: 14 blue, 4 green, 1 red; 7 red, 14 blue; 2 blue, 4 red, 1 green +Game 31: 2 red, 14 green, 3 blue; 3 blue, 3 green, 4 red; 8 blue, 4 red, 1 green; 8 green, 3 blue; 10 blue, 1 red, 11 green; 13 green, 2 red, 3 blue +Game 32: 8 blue, 16 red; 2 green, 8 blue, 16 red; 16 blue, 4 green, 17 red; 2 red, 5 green, 4 blue +Game 33: 2 red, 2 green, 1 blue; 5 red, 1 blue; 8 green, 14 red +Game 34: 4 red, 4 green; 9 green; 1 blue, 16 green; 1 blue, 5 red, 9 green; 2 red, 15 green, 1 blue +Game 35: 1 green, 5 red; 1 green, 15 red, 13 blue; 2 red, 13 blue, 17 green; 9 blue, 3 red, 11 green; 7 green, 8 blue, 14 red +Game 36: 19 green; 3 green, 1 blue, 1 red; 1 green, 8 blue; 13 green, 5 red, 5 blue +Game 37: 12 red, 7 green, 3 blue; 12 blue, 10 red, 9 green; 17 green, 8 red, 13 blue; 9 blue, 9 green, 8 red; 4 red, 13 green, 13 blue; 15 green, 12 red, 14 blue +Game 38: 5 blue, 1 green, 20 red; 1 green, 13 red, 18 blue; 17 blue, 9 red, 10 green; 4 blue, 4 red, 12 green; 12 blue, 12 red, 6 green; 12 green, 13 red, 2 blue +Game 39: 7 blue, 6 red, 2 green; 6 blue, 1 red; 7 blue, 1 red +Game 40: 1 blue, 3 red; 15 blue, 1 green; 1 green, 16 red, 2 blue +Game 41: 2 blue, 4 green; 8 green, 3 red; 2 blue, 9 red, 4 green; 4 red, 3 blue, 10 green; 5 green, 3 blue, 2 red +Game 42: 7 green, 2 blue, 1 red; 8 green, 4 red; 5 blue, 1 red, 3 green +Game 43: 3 red, 1 blue; 1 blue, 2 green, 2 red; 1 red, 2 blue; 3 blue +Game 44: 3 green, 14 blue, 1 red; 16 blue, 5 red, 11 green; 12 green, 1 blue; 13 blue, 1 red; 5 blue, 2 red, 6 green; 3 blue, 5 red, 11 green +Game 45: 7 blue, 1 red; 1 red, 3 blue; 3 green, 14 blue, 1 red; 4 blue, 3 green, 1 red; 15 blue, 1 red, 3 green +Game 46: 15 red, 4 blue; 15 red, 11 blue, 3 green; 14 red, 2 green, 2 blue; 14 red, 8 blue, 3 green; 4 red, 1 blue +Game 47: 4 green, 2 blue, 3 red; 8 red, 2 green, 18 blue; 1 green, 17 blue, 1 red +Game 48: 2 green, 4 red, 2 blue; 15 blue, 16 red, 5 green; 14 blue, 2 green, 10 red; 3 green, 13 red, 6 blue; 8 green, 4 red, 12 blue; 15 red, 3 green, 9 blue +Game 49: 1 green, 6 red, 7 blue; 1 blue, 9 green, 9 red; 4 green, 8 red; 9 blue, 1 red, 14 green; 2 blue, 9 red +Game 50: 3 red, 10 blue, 14 green; 2 red, 9 blue, 7 green; 4 blue, 12 green; 1 red, 4 green, 5 blue +Game 51: 2 green, 6 blue; 1 green, 10 blue, 1 red; 3 blue, 2 green +Game 52: 1 green, 4 red, 1 blue; 3 red, 5 green, 4 blue; 1 blue, 3 red, 5 green; 1 red, 1 green, 1 blue; 12 green, 2 red, 4 blue; 10 blue, 7 green, 1 red +Game 53: 12 red, 1 blue; 8 red, 11 blue, 11 green; 8 red, 6 blue, 13 green; 11 blue, 11 red, 16 green; 6 red, 9 green, 4 blue +Game 54: 2 red, 8 blue, 15 green; 4 green, 3 blue, 6 red; 12 green, 13 blue, 4 red +Game 55: 1 green, 16 blue, 4 red; 3 red, 1 blue, 1 green; 12 red, 16 blue; 3 red +Game 56: 4 green; 1 red, 4 green; 2 red, 3 blue, 7 green; 2 red, 3 blue, 15 green +Game 57: 17 green; 1 green, 9 blue; 1 red, 1 green, 9 blue +Game 58: 3 green, 8 red, 7 blue; 4 green, 9 blue, 2 red; 1 red, 2 green, 11 blue; 8 blue, 4 green +Game 59: 6 green, 1 red; 4 blue, 6 green; 4 green, 5 blue +Game 60: 3 green, 5 blue, 1 red; 7 green, 5 blue, 16 red; 14 red, 1 green, 1 blue; 7 green, 2 blue; 13 red, 5 green, 5 blue +Game 61: 1 green, 2 blue, 2 red; 2 green; 6 red, 1 blue, 1 green +Game 62: 5 red, 8 blue, 1 green; 1 red, 1 blue; 2 green, 8 blue +Game 63: 2 red, 2 blue, 2 green; 9 blue, 7 green; 1 green, 4 blue; 18 green, 3 blue +Game 64: 13 green, 1 blue, 6 red; 13 green, 15 red, 8 blue; 5 green, 14 red, 4 blue; 2 green, 8 blue, 12 red; 1 blue, 5 red, 13 green; 7 blue, 8 green, 2 red +Game 65: 7 blue, 12 red, 6 green; 11 red, 8 green, 8 blue; 9 red, 7 green, 7 blue; 14 red, 2 blue, 17 green +Game 66: 2 green, 5 red; 7 red, 14 blue; 19 blue, 2 green; 7 blue, 4 green, 6 red +Game 67: 4 green, 17 red, 7 blue; 4 blue, 6 green; 7 green, 7 red, 12 blue; 2 red, 14 blue +Game 68: 1 red, 11 green, 4 blue; 17 blue, 1 red, 10 green; 3 red, 7 green, 1 blue; 7 green, 3 red, 6 blue; 2 red, 3 green; 2 green, 2 red, 4 blue +Game 69: 5 blue, 4 red; 3 red, 11 green, 1 blue; 6 green, 2 blue; 10 green, 4 red, 5 blue; 2 red, 11 green +Game 70: 16 red, 7 blue, 1 green; 14 red, 1 blue, 4 green; 4 red, 4 green; 7 blue, 5 red, 2 green +Game 71: 14 red, 2 blue, 13 green; 7 green, 5 red, 2 blue; 3 blue, 9 green, 11 red; 10 red, 4 blue, 1 green +Game 72: 1 green, 2 red, 6 blue; 4 green, 4 red, 9 blue; 6 green, 8 blue, 1 red; 5 red, 4 green, 9 blue; 15 blue, 2 green, 7 red; 10 blue, 2 green, 10 red +Game 73: 7 green, 6 red, 7 blue; 6 blue, 5 red, 8 green; 5 blue, 5 red +Game 74: 11 red, 1 blue; 2 green, 4 blue, 1 red; 1 green, 2 blue, 11 red; 9 red, 5 blue; 15 red, 10 blue; 9 red, 3 blue +Game 75: 1 blue, 6 red, 9 green; 5 red, 1 blue, 8 green; 2 green, 2 red, 1 blue; 7 red, 1 green; 3 green, 6 red, 2 blue; 1 green, 1 red +Game 76: 16 red, 3 blue, 9 green; 4 blue, 4 green; 5 blue, 1 green, 10 red; 6 blue, 13 red; 1 blue, 2 green, 8 red +Game 77: 4 red, 4 blue; 5 blue, 5 red; 6 red, 3 green +Game 78: 11 green, 1 red; 1 blue, 18 green, 1 red; 6 green, 5 red, 2 blue; 6 red, 1 blue, 15 green; 5 green, 5 red +Game 79: 2 red, 3 green, 13 blue; 7 blue, 5 green; 4 blue, 2 red, 6 green; 6 green, 15 blue +Game 80: 9 green, 2 blue, 1 red; 8 green, 1 red; 1 blue, 7 green; 2 green, 1 blue; 3 green; 5 green, 1 red, 2 blue +Game 81: 2 blue, 8 green, 1 red; 3 green, 1 blue; 6 blue, 1 green; 3 blue, 3 green, 1 red; 2 green, 8 blue; 1 red, 8 blue, 2 green +Game 82: 5 blue, 4 red, 1 green; 9 red, 12 green, 8 blue; 9 red, 6 green, 15 blue; 8 blue, 10 red, 6 green +Game 83: 2 green, 7 blue, 4 red; 2 blue, 11 red, 9 green; 7 red, 7 green, 6 blue; 12 blue, 4 red, 11 green; 11 green, 7 blue; 7 green, 5 red, 2 blue +Game 84: 9 red, 1 blue, 7 green; 5 red, 5 green; 4 green, 4 blue; 4 green, 5 red +Game 85: 5 green, 13 red, 11 blue; 5 blue, 19 green, 15 red; 17 red, 3 green, 8 blue; 13 green, 10 red; 3 green, 17 red, 11 blue +Game 86: 1 green, 11 blue; 11 blue, 1 green, 8 red; 6 blue, 4 red; 4 blue, 17 red; 1 green, 15 red +Game 87: 3 green, 8 red, 6 blue; 6 red, 13 green, 1 blue; 4 blue, 8 red, 8 green +Game 88: 5 green, 5 blue; 3 green, 10 blue, 2 red; 6 blue, 7 red, 1 green; 5 green, 3 red, 11 blue; 8 red, 4 green, 6 blue +Game 89: 5 green, 10 blue, 12 red; 1 green, 13 red, 8 blue; 4 red, 11 green, 12 blue +Game 90: 4 green, 3 red, 11 blue; 1 green, 12 red, 12 blue; 9 blue, 5 red, 1 green; 2 green, 12 blue, 12 red +Game 91: 5 red, 8 blue, 1 green; 5 green, 3 blue; 9 blue, 7 green, 5 red; 1 green, 3 blue, 6 red; 9 blue, 11 green, 4 red; 2 green, 4 red, 10 blue +Game 92: 11 blue, 1 red, 6 green; 10 blue, 2 red; 4 red, 6 green, 19 blue +Game 93: 1 green, 3 blue, 3 red; 3 red; 5 blue, 3 red; 1 green, 4 red +Game 94: 9 red, 4 blue, 4 green; 1 blue, 6 red, 15 green; 10 red, 5 blue, 1 green; 2 blue, 4 green, 8 red +Game 95: 13 blue, 4 green, 3 red; 15 green, 3 red, 2 blue; 16 green, 8 blue, 2 red +Game 96: 15 blue, 7 green, 3 red; 5 red, 7 green, 17 blue; 6 red, 12 blue; 5 green, 10 blue, 4 red +Game 97: 5 red, 2 green; 8 red; 1 blue, 7 green, 2 red; 7 red, 15 green +Game 98: 6 green, 1 blue, 1 red; 3 green, 3 red; 1 blue, 13 green, 4 red +Game 99: 16 red, 5 blue, 9 green; 2 green, 7 blue, 2 red; 10 blue, 3 green; 9 red, 8 blue, 13 green; 16 green, 13 red, 10 blue +Game 100: 16 blue, 12 red, 3 green; 2 green, 7 blue; 5 blue, 4 green; 10 blue, 6 red, 6 green; 5 red, 12 blue, 2 green; 9 red, 12 blue, 11 green diff --git a/2023/day2/part1.py b/2023/day2/part1.py new file mode 100644 index 0000000..1fd2f4e --- /dev/null +++ b/2023/day2/part1.py @@ -0,0 +1,21 @@ +MAX_CUBES = { + "red": 12, + "green": 13, + "blue": 14 +} + +def validate(game): + part = game.split(':') + sets = part[1].split(';') + for i in sets: + colors = i.split(',') + for j in colors: + [quantity, color] = j[1:].split() + if (int(quantity) > MAX_CUBES[color]): + return 0 + [_,id] = part[0].split() + return int(id) + +def solution(input): + games = input.split('\n') + return sum(map(validate, games)) diff --git a/2023/day2/part2.py b/2023/day2/part2.py new file mode 100644 index 0000000..96f6678 --- /dev/null +++ b/2023/day2/part2.py @@ -0,0 +1,18 @@ +def validate(game): + part = game.split(':') + sets = part[1].split(';') + MAX_CUBES = { + "red": 1, + "green": 1, + "blue": 1 + } + for i in sets: + colors = i.split(',') + for j in colors: + [quantity, color] = j[1:].split() + MAX_CUBES[color] = max(int(quantity), MAX_CUBES[color]) + return MAX_CUBES['blue'] * MAX_CUBES['green'] * MAX_CUBES['red'] + +def solution(input): + games = input.split('\n') + return sum(map(validate, games)) diff --git a/2023/day2/sample.txt b/2023/day2/sample.txt new file mode 100644 index 0000000..1cd7d33 --- /dev/null +++ b/2023/day2/sample.txt @@ -0,0 +1,5 @@ +Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green +Game 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue +Game 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red +Game 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red +Game 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green \ No newline at end of file diff --git a/2023/day4/input.txt b/2023/day4/input.txt new file mode 100644 index 0000000..e6548ea --- /dev/null +++ b/2023/day4/input.txt @@ -0,0 +1,199 @@ +Card 1: 18 39 5 97 33 74 70 35 40 72 | 62 23 33 94 18 5 91 74 86 88 82 72 51 39 95 35 44 87 65 15 46 10 3 2 84 +Card 2: 58 50 13 61 80 48 99 86 45 31 | 61 32 19 6 72 31 52 79 93 45 85 67 56 80 8 9 60 42 73 17 99 13 58 92 50 +Card 3: 65 10 18 47 8 4 99 51 71 48 | 85 87 88 8 48 18 47 67 95 4 99 86 53 51 65 44 61 10 28 14 77 71 21 58 42 +Card 4: 22 99 16 18 81 3 62 43 2 42 | 8 55 39 83 29 10 87 27 25 70 19 30 80 12 1 41 85 14 34 82 90 76 5 89 15 +Card 5: 23 45 94 25 59 75 22 97 62 57 | 75 87 97 22 5 74 99 42 92 57 66 55 89 56 71 30 25 90 35 20 23 62 59 65 16 +Card 6: 6 56 78 8 89 70 97 91 31 75 | 86 3 75 21 43 8 97 6 19 23 70 78 92 25 91 89 45 31 83 58 79 32 67 56 50 +Card 7: 7 94 92 91 83 16 56 45 46 98 | 85 51 5 60 80 71 10 19 99 26 48 17 38 6 28 86 75 21 63 59 76 70 12 24 25 +Card 8: 42 44 48 75 49 35 56 21 89 18 | 15 39 88 74 95 72 94 9 93 22 83 85 63 16 62 61 34 24 90 41 47 38 68 66 13 +Card 9: 43 45 1 3 29 75 98 61 11 37 | 59 4 82 11 94 37 85 61 42 49 89 65 6 57 93 51 98 35 78 13 1 32 88 77 8 +Card 10: 49 90 6 30 33 86 19 56 41 95 | 53 52 19 43 50 54 73 41 66 49 10 86 48 27 32 16 13 95 64 79 51 90 38 47 55 +Card 11: 96 42 79 3 36 4 76 13 45 15 | 7 1 48 9 62 73 88 29 76 39 36 59 80 14 58 82 56 64 53 3 60 10 15 40 38 +Card 12: 13 39 45 96 17 88 67 46 74 11 | 37 33 26 97 75 46 54 86 8 94 71 89 99 91 64 15 52 16 50 60 27 76 22 66 31 +Card 13: 35 65 29 46 96 73 47 90 8 79 | 21 76 19 30 6 42 51 1 82 69 58 45 72 15 70 89 60 91 49 7 12 50 4 83 43 +Card 14: 28 42 50 49 6 60 55 61 2 48 | 96 42 57 70 4 86 98 67 73 43 26 89 65 99 11 46 84 16 68 8 87 93 97 79 14 +Card 15: 93 97 71 21 8 90 64 11 16 12 | 44 55 86 2 45 14 88 47 74 49 67 43 5 15 58 82 57 73 98 1 23 21 38 89 60 +Card 16: 22 40 49 29 82 27 44 83 34 24 | 63 59 39 91 3 14 66 81 42 19 80 98 61 67 84 73 53 1 36 77 20 78 70 13 96 +Card 17: 48 4 67 20 70 63 68 41 60 6 | 98 32 84 78 27 29 30 56 72 31 38 21 83 36 59 62 49 34 44 17 42 11 96 86 3 +Card 18: 28 41 8 45 72 99 80 82 90 2 | 5 65 49 13 9 60 36 96 88 87 42 86 19 15 92 16 43 67 73 81 17 24 72 48 35 +Card 19: 91 50 36 74 41 17 92 55 59 3 | 17 43 23 10 15 41 91 40 46 36 3 8 45 22 55 71 14 92 74 61 59 95 57 50 35 +Card 20: 90 49 57 48 10 74 70 46 56 39 | 22 84 10 2 39 46 91 14 48 1 28 70 43 56 21 16 57 49 90 85 74 36 83 86 11 +Card 21: 90 95 32 48 56 51 24 85 15 42 | 76 71 48 91 60 32 19 24 75 36 56 42 90 51 95 53 47 18 85 34 45 87 35 15 3 +Card 22: 76 99 28 36 61 50 17 43 69 23 | 87 12 62 50 34 61 36 74 22 99 6 17 60 54 2 56 38 28 67 78 71 75 13 89 76 +Card 23: 41 12 48 2 93 94 95 27 19 62 | 93 21 27 2 6 40 95 45 54 75 52 53 85 78 12 41 48 94 61 18 65 87 69 55 86 +Card 24: 7 54 91 12 47 29 14 73 53 44 | 95 76 54 24 68 57 59 58 7 10 3 62 88 37 6 28 53 55 74 29 8 9 99 56 16 +Card 25: 78 95 5 23 99 27 6 81 65 38 | 95 77 96 33 51 4 91 45 75 30 24 37 38 73 58 31 1 48 59 78 26 7 36 41 5 +Card 26: 86 51 73 94 39 83 53 37 95 26 | 24 61 57 28 91 53 35 42 86 81 85 74 88 45 5 18 26 76 83 7 84 25 54 93 98 +Card 27: 10 27 16 98 48 21 54 49 50 30 | 73 84 90 53 40 93 70 80 57 63 74 18 87 15 60 67 49 28 17 22 69 58 1 46 48 +Card 28: 26 54 35 22 87 3 79 25 43 36 | 30 86 57 37 28 68 64 78 75 11 89 65 97 82 72 95 24 61 53 27 99 76 63 31 34 +Card 29: 84 26 15 79 13 39 7 42 24 63 | 55 20 38 83 67 43 78 92 23 19 12 80 98 49 61 75 74 50 39 3 58 26 45 31 25 +Card 30: 82 5 53 96 32 86 37 99 21 64 | 59 30 64 78 4 19 74 71 61 98 10 93 46 84 63 26 43 60 52 16 33 1 22 80 57 +Card 31: 88 4 65 44 96 56 30 19 41 17 | 46 74 33 48 18 89 92 80 13 21 64 86 12 70 69 4 72 75 68 50 91 23 61 5 25 +Card 32: 83 2 55 39 34 14 46 68 23 9 | 85 94 95 99 48 59 79 74 38 43 50 17 56 78 66 61 88 96 22 19 65 24 27 52 98 +Card 33: 66 46 28 74 29 96 21 24 53 33 | 28 53 80 66 57 1 2 65 24 96 79 3 23 29 46 33 50 74 8 89 16 88 21 38 48 +Card 34: 30 33 90 82 27 77 47 72 80 79 | 73 65 87 50 61 77 27 66 32 70 25 31 33 47 44 39 90 91 22 78 29 54 82 69 3 +Card 35: 42 39 79 78 7 99 29 96 21 49 | 33 39 19 87 6 91 52 96 79 78 7 99 49 22 73 74 42 4 29 21 64 10 97 95 66 +Card 36: 5 73 43 92 21 13 48 55 1 42 | 54 29 70 99 42 79 12 77 92 1 3 32 24 16 28 2 88 68 62 8 30 15 98 36 59 +Card 37: 38 10 59 67 82 52 80 85 77 4 | 45 38 47 85 82 36 4 21 12 59 27 62 52 44 10 30 94 31 75 77 74 33 8 80 67 +Card 38: 72 94 25 22 91 8 1 81 3 18 | 3 94 33 37 25 72 47 70 24 81 16 96 55 26 80 79 40 8 11 18 30 91 1 22 61 +Card 39: 95 76 34 53 17 40 72 94 52 23 | 12 99 47 44 85 2 52 94 95 10 70 75 38 76 91 97 6 23 37 53 17 34 40 72 20 +Card 40: 3 42 58 56 81 55 32 73 59 57 | 42 73 84 64 57 69 59 91 61 65 56 7 3 55 18 58 16 68 23 71 45 79 81 82 32 +Card 41: 82 59 74 61 44 8 68 70 7 50 | 13 1 26 90 49 92 59 2 7 56 72 71 5 52 45 48 73 79 82 32 94 63 37 6 98 +Card 42: 8 56 68 19 69 63 49 6 92 16 | 31 89 58 41 49 35 19 85 52 60 77 61 47 9 81 63 37 99 21 33 20 68 56 79 29 +Card 43: 76 23 38 67 82 13 88 72 92 90 | 59 23 39 13 93 35 47 38 97 12 15 89 88 31 28 83 82 74 42 3 86 46 37 92 43 +Card 44: 91 29 78 64 12 48 39 7 50 33 | 73 14 11 71 70 97 13 80 20 5 42 24 98 9 55 32 10 15 40 67 93 49 99 69 65 +Card 45: 32 3 87 51 83 85 50 59 40 95 | 55 88 78 41 8 2 21 11 65 37 1 51 20 47 82 12 44 28 69 49 95 46 14 48 97 +Card 46: 14 99 84 7 88 77 70 10 96 20 | 45 84 97 32 55 16 89 54 85 19 58 36 14 99 72 70 35 6 27 7 77 20 87 64 10 +Card 47: 90 54 46 43 99 33 40 16 32 79 | 86 79 38 78 62 39 72 87 82 37 43 34 76 22 57 33 58 28 46 21 60 89 23 14 99 +Card 48: 67 51 13 31 59 9 79 74 37 93 | 98 33 63 44 99 90 83 55 19 77 34 9 67 4 28 41 31 57 76 93 64 65 69 18 17 +Card 49: 85 56 10 17 44 73 66 28 29 65 | 3 78 68 80 67 93 30 39 40 73 90 92 96 19 51 75 33 45 55 2 71 50 10 74 28 +Card 50: 10 77 11 97 9 61 73 76 1 48 | 6 71 88 15 99 84 66 94 76 24 27 29 95 14 89 9 36 91 12 79 67 2 56 53 38 +Card 51: 61 53 5 74 98 25 89 2 56 23 | 43 92 71 14 28 83 22 84 7 31 64 54 55 38 90 85 42 16 47 63 45 50 35 76 96 +Card 52: 9 48 70 88 83 54 23 24 92 2 | 1 64 44 47 15 74 63 55 13 53 78 24 17 30 91 89 60 21 45 7 33 5 87 68 22 +Card 53: 47 71 11 88 31 61 69 29 76 81 | 14 93 73 98 39 81 23 66 62 51 8 42 2 7 36 69 54 79 4 46 65 3 59 26 78 +Card 54: 23 79 67 69 68 31 30 82 28 99 | 19 81 80 54 17 5 58 29 16 52 85 33 47 14 55 46 53 1 66 6 75 62 36 37 12 +Card 55: 35 26 72 67 62 76 98 37 80 85 | 53 63 48 3 49 59 38 65 83 97 44 13 18 36 22 6 7 27 82 2 42 33 56 64 54 +Card 56: 12 95 30 57 67 31 4 45 70 89 | 93 1 67 98 95 76 23 19 48 77 74 12 31 21 45 73 4 39 22 30 88 2 89 57 18 +Card 57: 55 83 72 27 42 20 56 14 98 49 | 55 41 17 42 13 64 98 72 63 30 83 4 49 20 22 27 69 18 56 87 38 97 9 14 26 +Card 58: 86 22 83 61 13 67 53 56 1 18 | 72 65 28 43 64 18 70 54 45 78 68 6 44 47 91 58 73 14 7 36 41 98 92 86 5 +Card 59: 16 35 26 51 39 7 13 71 3 57 | 10 89 3 96 85 17 63 95 6 86 13 25 26 24 39 35 7 61 57 56 12 71 16 69 51 +Card 60: 88 99 24 72 49 53 94 64 12 17 | 53 79 63 45 77 48 86 51 17 19 57 37 69 64 11 47 4 91 43 82 39 92 31 8 1 +Card 61: 32 98 33 94 16 8 86 61 11 7 | 56 24 63 8 62 46 49 85 96 22 51 98 25 66 83 43 18 33 86 48 36 55 54 78 32 +Card 62: 86 89 12 58 63 55 79 85 30 98 | 67 29 49 86 78 12 96 23 74 46 22 26 85 63 44 10 52 11 91 70 89 54 37 41 40 +Card 63: 8 20 73 62 48 65 16 44 77 53 | 87 5 69 20 39 16 7 8 78 65 19 27 61 13 73 40 22 46 12 14 71 48 77 89 41 +Card 64: 70 58 28 95 75 34 83 93 71 87 | 36 79 44 46 60 98 96 12 47 27 52 68 4 45 35 19 77 67 56 20 13 73 3 91 21 +Card 65: 17 60 35 31 36 46 65 74 42 20 | 20 99 54 92 32 4 60 70 25 87 79 14 65 28 86 94 98 1 95 2 84 46 10 39 19 +Card 66: 40 1 58 7 68 71 13 63 27 57 | 77 51 9 54 94 58 74 12 52 11 49 45 22 34 18 41 32 64 79 10 43 39 90 4 20 +Card 67: 85 10 94 63 59 46 30 24 32 77 | 6 9 23 13 24 74 7 73 82 84 29 55 61 33 67 59 98 14 10 72 83 40 89 78 44 +Card 68: 91 57 42 58 8 64 30 32 52 94 | 73 41 82 15 62 30 95 71 77 4 40 57 54 69 36 14 26 45 68 56 70 35 79 86 72 +Card 69: 62 66 16 28 77 35 36 92 53 45 | 16 4 3 83 88 32 62 29 30 31 93 49 91 22 41 63 89 55 14 67 24 75 19 43 39 +Card 70: 86 54 56 72 25 80 6 90 81 19 | 39 69 21 78 83 76 95 90 16 59 30 77 3 17 89 45 96 82 52 14 97 1 49 32 68 +Card 71: 17 46 34 60 95 96 29 43 21 38 | 28 85 19 90 24 21 64 87 23 98 48 80 45 15 88 32 67 49 94 42 2 26 84 73 8 +Card 72: 30 8 93 19 6 14 91 70 60 90 | 27 59 96 25 73 64 74 69 75 21 56 80 1 63 41 95 5 86 97 20 58 87 78 4 53 +Card 73: 82 38 40 6 10 9 84 61 8 52 | 8 10 3 6 42 38 52 84 40 59 61 93 82 96 12 9 50 14 31 30 29 48 63 79 44 +Card 74: 47 26 10 74 45 37 38 83 78 34 | 26 27 94 66 83 33 42 73 34 72 37 81 36 8 68 38 78 45 93 48 10 47 90 16 74 +Card 75: 15 74 14 45 46 38 55 33 1 43 | 21 80 90 10 9 23 81 72 73 15 89 92 5 55 40 44 64 49 50 4 41 8 39 53 27 +Card 76: 92 51 94 66 82 46 84 11 34 20 | 20 83 32 3 9 92 49 39 31 15 21 26 94 84 46 99 82 66 30 16 80 34 1 11 78 +Card 77: 38 23 79 47 8 12 19 96 27 7 | 27 28 7 73 98 95 17 72 69 79 96 50 41 12 52 20 9 89 90 23 1 8 11 38 19 +Card 78: 58 56 84 74 47 60 34 9 85 12 | 60 61 40 98 12 16 49 95 96 24 62 58 79 28 8 50 20 48 34 55 31 9 47 92 74 +Card 79: 90 46 71 76 37 77 81 98 41 21 | 46 8 81 27 62 77 37 10 53 29 76 71 4 72 86 98 42 6 41 17 92 90 74 65 21 +Card 80: 37 34 29 49 45 24 50 64 88 22 | 21 64 44 27 69 45 91 63 24 58 95 49 2 37 29 51 89 22 79 34 50 39 35 60 14 +Card 81: 18 73 86 57 72 49 4 71 24 31 | 22 49 93 72 44 35 24 71 52 57 39 4 36 31 19 15 73 94 18 10 78 27 33 67 86 +Card 82: 63 20 33 16 84 17 48 22 81 1 | 3 85 71 20 66 63 9 57 39 36 86 30 98 33 2 78 65 56 80 88 10 64 12 76 87 +Card 83: 93 44 99 94 85 23 65 10 8 34 | 87 96 44 41 34 33 6 36 80 93 99 8 7 74 66 42 81 94 10 29 53 85 51 22 65 +Card 84: 83 38 69 13 95 37 56 58 33 9 | 66 27 18 6 47 37 58 13 7 34 33 82 99 15 42 69 83 11 38 9 64 3 84 95 56 +Card 85: 96 75 30 19 74 78 28 86 13 32 | 45 74 40 96 39 30 51 86 41 81 13 61 91 2 75 11 20 64 57 67 44 19 4 32 62 +Card 86: 4 35 56 97 19 68 90 44 1 57 | 23 12 63 47 94 51 87 69 26 43 66 2 25 14 65 80 89 56 60 95 27 17 77 7 16 +Card 87: 72 83 55 35 37 31 57 67 78 3 | 27 25 71 6 47 37 79 57 98 81 69 61 97 83 2 90 29 24 54 80 39 34 78 8 11 +Card 88: 78 68 10 53 86 67 98 62 77 99 | 96 71 14 65 98 34 31 74 41 76 82 70 58 60 44 32 42 20 85 69 73 35 17 40 99 +Card 89: 78 37 96 71 15 13 69 63 72 20 | 63 14 11 96 10 76 20 28 99 72 45 83 85 81 17 3 15 40 25 33 79 90 94 61 64 +Card 90: 76 62 47 94 72 86 80 70 67 49 | 46 92 50 28 22 18 81 58 61 3 21 77 60 31 57 59 39 44 83 24 66 23 34 10 85 +Card 91: 20 52 30 27 55 26 72 85 57 86 | 56 94 18 52 6 55 40 30 97 10 14 78 54 53 48 38 2 43 73 75 95 17 36 87 91 +Card 92: 4 70 11 49 55 93 75 66 51 18 | 43 19 74 60 2 64 93 76 63 4 67 90 45 18 96 27 97 89 86 70 82 23 20 94 88 +Card 93: 58 26 70 8 95 65 51 29 88 19 | 43 89 80 61 60 42 75 56 68 6 74 24 15 81 86 94 11 30 53 95 35 40 7 27 3 +Card 94: 91 55 92 45 62 82 63 75 28 30 | 27 43 22 44 55 5 71 1 54 40 67 72 33 6 15 49 34 13 59 61 88 97 99 73 29 +Card 95: 96 39 90 73 80 31 60 41 58 52 | 85 68 51 56 61 3 21 16 31 40 6 34 25 63 88 44 97 38 66 94 13 72 15 12 81 +Card 96: 33 2 11 8 19 54 18 17 95 60 | 94 68 72 86 78 55 28 4 12 7 35 30 6 69 25 81 76 88 99 51 98 41 34 9 93 +Card 97: 7 20 1 39 9 24 29 50 51 22 | 44 73 61 90 3 34 5 72 95 52 33 32 53 77 56 43 39 58 74 38 1 41 98 42 24 +Card 98: 88 55 58 42 34 33 24 8 18 3 | 7 95 68 31 60 99 53 51 18 22 69 12 13 33 23 76 58 59 35 48 11 16 66 9 3 +Card 99: 31 47 15 27 68 72 90 21 29 55 | 64 46 83 79 35 90 5 58 34 77 59 75 27 11 96 29 21 18 72 32 68 31 97 37 36 +Card 100: 47 79 18 44 28 25 86 43 39 95 | 75 92 95 88 32 98 78 36 33 15 51 79 1 25 89 43 2 52 80 12 28 63 18 16 41 +Card 101: 14 13 2 61 57 25 90 68 60 62 | 50 51 1 71 62 68 40 92 34 41 30 13 17 12 4 52 84 70 49 26 74 6 37 2 8 +Card 102: 4 83 67 27 41 55 44 24 63 40 | 76 81 44 17 73 40 62 51 83 77 75 6 86 47 36 97 90 23 41 55 4 98 3 52 26 +Card 103: 48 69 30 49 23 71 10 46 68 67 | 63 69 20 65 86 98 22 11 95 41 10 79 85 76 78 34 32 26 5 97 89 51 62 56 46 +Card 104: 94 52 85 89 84 6 50 74 14 7 | 96 68 74 80 54 47 73 48 89 52 35 21 26 94 13 7 81 65 36 34 76 84 95 86 6 +Card 105: 43 79 12 95 31 55 71 42 26 69 | 96 28 93 34 2 37 72 29 99 3 18 89 54 86 24 6 60 14 53 68 61 48 73 12 87 +Card 106: 46 50 45 27 14 57 68 5 58 99 | 5 24 46 62 38 99 58 20 2 15 26 27 96 71 48 17 39 47 52 29 60 93 97 11 90 +Card 107: 64 75 46 4 35 77 30 72 50 37 | 11 76 83 24 61 12 55 60 99 44 18 67 38 71 3 52 36 65 84 50 16 90 4 89 78 +Card 108: 37 75 45 3 49 25 41 66 53 69 | 37 44 88 63 27 67 47 50 12 30 19 21 33 53 22 18 87 81 1 64 61 69 70 74 52 +Card 109: 47 61 56 43 27 97 80 4 48 57 | 10 75 18 69 80 32 94 99 23 5 79 57 60 29 62 46 77 82 68 35 42 15 40 45 13 +Card 110: 28 60 19 96 54 10 32 8 89 36 | 93 15 75 83 86 97 92 72 30 17 58 87 25 33 78 79 31 64 12 84 59 77 95 80 66 +Card 111: 6 3 96 50 47 95 67 85 23 28 | 18 81 60 12 13 48 38 76 59 52 80 84 31 19 43 36 37 24 20 70 88 58 30 94 61 +Card 112: 12 67 48 46 62 63 29 25 69 99 | 55 95 10 58 46 36 99 24 68 12 25 40 62 7 1 29 15 67 42 90 26 74 30 85 5 +Card 113: 37 63 8 84 91 90 44 6 71 14 | 1 28 32 83 71 14 43 3 12 5 45 77 37 84 63 64 44 61 21 8 91 16 90 6 80 +Card 114: 69 48 22 87 33 82 37 72 24 38 | 20 57 84 10 33 96 19 92 14 99 47 15 60 54 45 36 59 40 24 21 42 25 34 46 22 +Card 115: 75 65 97 13 10 42 89 91 54 18 | 42 75 6 96 18 52 29 97 68 65 79 54 88 45 61 63 13 10 21 74 15 91 89 48 99 +Card 116: 40 38 70 96 64 63 18 84 80 52 | 93 81 29 78 70 64 91 52 38 63 46 65 96 67 92 94 84 45 53 33 44 18 22 69 40 +Card 117: 30 36 87 98 59 85 60 67 69 40 | 83 59 67 16 85 69 23 47 95 18 89 64 36 19 92 60 75 52 48 98 34 46 87 40 30 +Card 118: 34 55 45 2 37 39 79 52 85 40 | 88 33 79 39 82 36 34 11 38 22 14 63 67 32 52 83 45 17 5 29 94 71 35 70 23 +Card 119: 54 64 6 16 4 92 95 68 21 9 | 84 4 29 76 92 95 67 61 98 64 22 52 8 63 16 56 32 9 15 69 81 75 66 46 68 +Card 120: 84 50 41 58 37 19 44 95 90 1 | 50 17 18 95 38 1 94 90 63 54 87 30 58 26 60 44 20 29 3 72 80 69 88 86 84 +Card 121: 62 48 42 2 23 14 69 85 5 10 | 65 5 13 59 32 41 54 35 72 73 57 80 29 43 98 21 14 97 87 9 81 11 10 70 2 +Card 122: 16 23 79 54 80 59 20 87 3 98 | 37 13 98 92 57 9 46 12 7 87 67 8 28 16 2 53 80 39 20 27 78 60 58 59 54 +Card 123: 93 42 8 55 50 21 76 78 73 82 | 20 32 4 48 10 65 83 37 26 31 87 9 33 99 3 17 43 27 7 38 77 34 46 52 75 +Card 124: 2 73 64 66 65 49 41 31 14 11 | 51 73 10 76 28 64 2 49 91 31 98 94 30 68 60 16 65 77 41 43 26 63 5 8 42 +Card 125: 51 25 30 6 95 66 47 56 40 9 | 44 33 11 59 32 46 54 8 20 2 1 52 93 60 53 78 34 23 51 43 92 15 65 88 36 +Card 126: 12 14 43 26 54 74 97 46 94 35 | 88 55 78 58 4 43 47 11 2 97 94 13 6 90 95 91 32 79 51 74 41 38 63 53 25 +Card 127: 89 79 66 27 59 52 48 85 53 75 | 48 89 11 72 62 85 5 78 36 13 2 96 53 60 55 34 38 21 42 1 82 9 97 75 32 +Card 128: 87 54 92 24 73 72 60 64 57 75 | 22 91 98 47 72 23 80 81 74 7 95 84 89 73 37 45 19 75 12 32 34 83 33 46 40 +Card 129: 94 75 61 45 66 28 41 48 97 36 | 26 89 88 71 6 69 85 22 10 40 39 15 53 4 28 92 3 95 33 18 5 43 77 84 68 +Card 130: 8 39 74 3 91 69 81 95 58 12 | 94 85 24 54 83 12 16 76 80 87 30 27 82 6 43 31 26 59 96 4 71 60 65 32 97 +Card 131: 75 60 86 88 82 45 61 52 5 72 | 93 25 11 41 7 20 35 13 63 67 47 29 65 98 62 81 58 21 16 37 84 68 57 6 92 +Card 132: 81 62 18 13 72 11 84 65 23 21 | 63 29 27 17 19 56 55 5 45 52 73 91 40 66 36 12 24 96 32 31 79 9 94 82 80 +Card 133: 77 68 6 70 76 51 86 52 94 12 | 50 17 6 53 28 58 52 90 81 76 12 68 77 47 8 92 70 78 15 56 51 23 94 86 89 +Card 134: 61 72 75 84 33 11 86 15 24 81 | 53 61 43 33 11 81 70 56 1 86 84 42 87 66 88 15 49 90 36 92 75 55 72 18 24 +Card 135: 80 82 12 48 95 40 18 98 3 66 | 84 22 33 92 62 71 87 5 74 91 21 9 6 66 28 93 54 56 80 53 16 64 68 72 98 +Card 136: 81 73 85 1 21 60 82 35 10 16 | 79 88 59 85 92 61 16 73 1 55 90 35 81 74 53 21 20 26 91 99 30 10 82 60 25 +Card 137: 13 72 81 36 93 71 67 19 94 25 | 83 21 23 41 89 65 47 73 39 67 27 33 29 38 74 51 63 77 26 68 22 98 9 66 78 +Card 138: 83 9 60 92 97 63 81 35 7 28 | 36 63 46 24 62 91 1 86 40 38 99 34 41 35 68 92 85 45 10 28 7 9 97 27 72 +Card 139: 38 82 12 60 72 33 65 55 21 70 | 30 56 6 14 12 60 70 50 38 55 63 48 72 21 4 25 61 37 39 82 65 2 13 68 33 +Card 140: 24 61 78 83 3 30 62 32 93 72 | 24 26 82 62 40 44 42 43 60 78 39 32 75 57 29 13 30 17 71 61 37 55 72 22 8 +Card 141: 32 51 4 66 29 56 70 35 36 44 | 38 6 67 2 80 13 8 15 48 82 50 28 23 76 58 20 62 90 24 32 60 77 97 72 37 +Card 142: 7 71 82 35 4 51 3 85 20 50 | 24 28 16 70 97 18 26 79 8 5 27 32 41 42 36 39 49 1 86 23 55 48 72 87 65 +Card 143: 86 79 20 64 92 73 89 31 47 78 | 20 36 74 21 70 29 14 92 78 65 67 12 22 31 35 24 51 97 45 42 7 48 15 28 82 +Card 144: 65 98 49 14 31 89 47 66 73 59 | 81 55 4 45 8 32 99 38 95 67 62 80 84 2 1 53 18 46 6 19 79 3 74 70 83 +Card 145: 58 68 79 56 16 95 54 87 19 20 | 41 74 46 96 32 79 26 22 66 60 73 18 1 23 56 38 14 54 78 68 70 11 27 62 82 +Card 146: 10 89 12 51 50 55 15 36 44 73 | 12 47 64 59 34 50 9 57 20 38 81 95 86 46 88 27 30 56 90 32 78 58 72 26 80 +Card 147: 20 3 86 21 50 62 22 37 98 78 | 32 26 50 78 79 91 93 81 94 76 85 88 33 40 34 84 55 68 53 80 64 83 4 70 46 +Card 148: 73 17 63 58 55 37 67 3 35 1 | 88 98 5 94 40 58 17 34 45 75 77 30 96 4 48 38 51 99 18 28 2 53 12 20 69 +Card 149: 57 30 31 85 94 5 65 81 35 50 | 17 19 59 90 3 23 87 49 18 89 30 26 56 24 32 83 39 44 33 69 20 64 76 71 27 +Card 150: 50 83 74 16 8 18 71 15 48 39 | 79 58 67 89 33 10 97 81 38 82 92 87 72 70 56 62 69 31 2 17 22 95 7 53 55 +Card 151: 2 44 6 14 99 84 35 91 54 1 | 90 45 80 16 35 51 84 54 86 33 79 47 4 11 85 92 95 15 61 12 6 91 29 32 94 +Card 152: 1 36 80 9 92 96 39 45 94 26 | 8 87 94 81 99 41 80 96 17 26 57 39 53 6 92 27 74 45 1 10 38 84 9 36 44 +Card 153: 79 41 13 7 73 95 17 8 47 28 | 34 79 30 95 41 28 8 87 33 13 6 51 39 7 73 97 3 21 59 60 48 47 81 10 17 +Card 154: 62 47 50 22 64 83 77 51 37 15 | 44 53 49 77 66 15 33 62 22 91 83 89 37 50 5 47 64 36 52 27 75 30 84 12 51 +Card 155: 96 11 95 56 1 91 99 31 17 76 | 48 22 96 76 14 95 1 11 39 92 8 56 35 74 99 71 12 24 85 10 31 17 49 72 91 +Card 156: 95 26 90 54 11 59 12 18 61 67 | 32 97 29 31 44 87 79 28 34 58 56 73 91 7 48 82 94 42 9 22 88 50 64 2 13 +Card 157: 59 53 48 7 61 16 18 2 86 22 | 15 55 86 39 85 42 16 22 48 12 18 1 9 24 54 82 40 31 26 79 66 59 2 75 61 +Card 158: 25 44 17 67 65 33 57 56 52 10 | 54 81 89 11 24 93 82 3 35 98 80 33 7 21 85 74 65 77 26 46 34 42 87 68 44 +Card 159: 54 22 66 99 48 10 58 75 87 94 | 12 16 21 74 87 58 20 22 10 96 54 90 48 67 11 94 75 52 49 15 76 99 26 34 66 +Card 160: 25 27 8 48 59 14 26 42 60 20 | 82 84 4 39 52 78 49 9 13 7 89 12 30 86 92 67 57 40 96 80 29 71 35 72 23 +Card 161: 77 58 25 78 10 89 18 90 14 30 | 67 11 31 13 6 68 23 4 85 88 3 70 97 56 35 29 74 17 96 32 83 16 71 41 45 +Card 162: 90 99 58 44 27 3 17 91 40 55 | 46 17 26 90 53 27 91 93 79 44 55 99 10 31 30 45 58 23 74 66 11 40 92 3 97 +Card 163: 81 56 26 18 2 38 82 94 55 19 | 68 25 44 18 55 85 29 39 64 67 40 62 48 95 2 84 69 63 82 8 87 66 47 72 93 +Card 164: 52 38 3 66 98 14 48 20 4 73 | 21 93 77 73 66 86 70 98 18 31 51 12 52 45 38 3 72 14 48 62 71 67 46 69 4 +Card 165: 99 34 98 92 45 2 4 11 26 75 | 57 5 65 37 1 10 42 98 77 34 94 7 4 66 21 92 38 83 26 75 49 78 79 25 52 +Card 166: 57 84 46 48 1 73 4 2 12 70 | 57 99 12 70 48 30 20 34 9 72 50 65 91 66 52 46 37 78 4 73 32 1 84 75 71 +Card 167: 29 20 7 63 39 51 25 15 62 60 | 60 44 5 32 10 99 53 6 33 42 98 94 62 83 12 29 24 54 20 13 73 79 61 14 45 +Card 168: 81 74 27 44 71 80 30 29 90 60 | 64 6 76 84 54 85 80 92 36 90 40 78 94 50 55 5 29 12 34 20 13 62 28 82 70 +Card 169: 42 48 39 85 46 3 1 55 33 70 | 90 30 50 31 95 88 80 46 53 39 15 89 51 76 48 33 97 28 75 63 38 72 1 17 47 +Card 170: 78 40 42 30 31 46 48 92 41 53 | 31 20 28 17 98 54 5 1 44 91 97 40 42 73 65 83 6 75 68 93 95 86 82 30 34 +Card 171: 30 54 32 34 69 29 88 81 84 60 | 62 7 39 59 64 80 14 77 10 85 46 38 69 63 30 81 5 33 89 72 87 70 43 17 98 +Card 172: 52 59 65 99 20 71 10 70 89 92 | 5 84 49 90 77 56 79 16 75 29 11 94 32 59 96 33 87 65 39 14 1 98 7 58 63 +Card 173: 13 83 77 47 66 22 90 15 56 27 | 13 86 82 35 23 34 45 53 67 88 74 85 75 16 4 87 48 83 64 8 17 89 6 70 12 +Card 174: 7 19 64 23 74 44 8 88 11 15 | 93 37 46 50 70 87 14 66 1 24 45 3 84 85 31 79 2 49 83 36 99 12 9 39 71 +Card 175: 95 59 37 26 89 35 54 79 91 70 | 23 55 96 44 14 98 81 10 82 32 78 43 72 25 62 31 1 51 30 24 4 33 63 76 93 +Card 176: 82 85 29 74 55 93 70 8 65 51 | 24 36 70 34 18 55 74 28 11 93 65 72 86 56 98 82 35 48 67 22 85 4 90 29 8 +Card 177: 10 67 13 30 97 26 50 60 90 11 | 10 60 67 50 65 9 45 97 17 90 29 26 30 20 71 54 13 11 25 74 49 28 59 1 22 +Card 178: 97 4 21 34 17 56 61 16 46 62 | 56 16 34 42 54 97 78 50 72 21 31 10 46 12 62 27 68 70 61 88 91 17 4 11 77 +Card 179: 37 14 25 29 77 12 57 9 11 56 | 4 56 18 44 37 27 42 6 82 9 25 50 52 1 14 26 12 39 57 87 29 11 98 47 77 +Card 180: 99 7 27 95 34 96 18 84 13 81 | 11 19 23 48 62 94 81 24 95 34 27 13 61 80 84 99 73 77 96 79 22 82 18 7 14 +Card 181: 21 78 27 22 23 42 31 13 88 32 | 57 59 68 7 24 4 83 98 81 36 41 20 21 44 45 51 66 65 46 73 60 62 52 16 26 +Card 182: 19 69 85 77 2 99 30 51 84 67 | 77 34 43 69 35 58 9 13 74 42 33 19 44 99 30 51 20 83 78 73 92 84 85 81 31 +Card 183: 5 53 84 22 88 55 72 76 2 60 | 16 55 77 76 72 83 52 84 69 87 88 9 35 60 85 2 53 43 63 5 58 67 56 26 22 +Card 184: 84 40 17 12 19 36 27 21 57 91 | 88 54 18 84 95 57 27 94 96 44 39 62 77 12 87 98 14 67 19 46 43 71 40 33 36 +Card 185: 55 16 42 78 53 7 33 14 34 27 | 51 96 13 61 82 9 34 35 94 14 60 15 85 87 90 92 37 41 99 1 16 81 58 36 53 +Card 186: 89 35 24 19 64 68 12 33 51 57 | 37 51 76 19 12 57 71 36 7 33 25 44 2 59 91 56 8 42 68 35 64 24 77 70 89 +Card 187: 13 3 5 21 32 14 68 7 52 8 | 28 55 17 7 18 76 68 74 20 44 30 94 52 54 67 81 31 84 75 29 32 4 8 45 43 +Card 188: 27 62 22 79 8 47 34 73 84 7 | 23 24 36 62 94 50 47 75 32 90 22 44 45 93 34 10 84 71 79 59 25 8 69 30 16 +Card 189: 2 66 50 43 23 47 41 78 51 36 | 53 37 17 90 32 40 6 20 10 72 77 89 70 61 95 4 21 50 85 8 9 34 52 24 92 +Card 190: 50 72 64 97 46 90 55 10 38 98 | 19 85 33 18 86 10 12 81 4 50 9 68 73 44 96 38 45 27 87 15 99 63 7 52 75 +Card 191: 18 38 73 48 19 66 10 79 80 89 | 40 91 88 41 80 77 71 83 68 6 27 37 74 84 11 8 50 7 20 54 48 9 23 21 16 +Card 192: 40 67 24 38 51 84 87 50 82 8 | 50 14 97 51 41 24 8 73 29 40 27 18 94 67 31 45 5 58 84 26 77 16 47 60 99 +Card 193: 68 13 32 37 43 48 10 24 90 60 | 25 90 96 92 57 15 11 97 83 54 4 17 20 8 26 39 50 94 40 71 76 43 55 67 98 +Card 194: 72 7 8 11 3 39 25 4 32 84 | 22 64 51 41 13 7 59 84 32 10 72 81 61 17 52 58 31 89 95 54 8 92 56 28 15 +Card 195: 95 18 43 83 12 8 13 54 71 80 | 27 41 56 65 84 99 74 57 25 38 4 1 66 77 86 11 5 58 47 8 6 55 68 40 85 +Card 196: 48 42 11 29 9 85 81 54 90 5 | 19 58 33 55 95 92 40 4 8 84 35 53 14 60 23 25 98 21 9 90 93 82 43 37 38 +Card 197: 85 88 32 15 25 54 79 27 90 82 | 77 32 41 70 76 68 71 10 67 31 64 92 42 74 58 7 18 65 99 93 50 38 63 45 82 +Card 198: 58 67 42 84 62 1 65 92 86 23 | 28 36 58 48 17 82 20 63 78 59 34 61 91 21 11 40 83 97 47 89 18 64 70 85 50 +Card 199: 74 30 60 87 46 21 69 51 28 96 | 92 64 32 66 65 54 29 85 84 2 6 3 97 37 22 33 1 23 38 88 75 99 17 12 31 diff --git a/2023/day4/part1.py b/2023/day4/part1.py new file mode 100644 index 0000000..7a36464 --- /dev/null +++ b/2023/day4/part1.py @@ -0,0 +1,22 @@ +import re + +def calc(n): + return 0 if n == 0 else 2**(n-1) + +def parse(line): + p = re.split(r': +', line) + pp = re.split(r' \| +', p[1]) + ppp1 = re.split(r' +', pp[0]) + ppp2 = re.split(r' +', pp[1]) + c = 0 + for i in ppp1: + if i in ppp2: + c += 1 + return c + +def solution(input): + lines = input.split('\n') + n = list(map(parse, lines)) + m = list(map(calc, n)) + return sum(m) + diff --git a/2023/day4/part2.py b/2023/day4/part2.py new file mode 100644 index 0000000..69a21cd --- /dev/null +++ b/2023/day4/part2.py @@ -0,0 +1,21 @@ +import re + +def parse(line): + p = re.split(r': +', line) + pp = re.split(r' \| +', p[1]) + ppp1 = re.split(r' +', pp[0]) + ppp2 = re.split(r' +', pp[1]) + c = 0 + for i in ppp1: + if i in ppp2: + c += 1 + return c + +def solution(input): + lines = input.split('\n') + n = list(map(parse, lines)) + copies = [1]*len(n) + for i in range(len(n)): + for j in range(i+1, i+n[i]+1): + copies[j] += copies[i] + return sum(copies) diff --git a/2023/day4/sample.txt b/2023/day4/sample.txt new file mode 100644 index 0000000..71f208a --- /dev/null +++ b/2023/day4/sample.txt @@ -0,0 +1,6 @@ +Card 1: 41 48 83 86 17 | 83 86 6 31 17 9 48 53 +Card 2: 13 32 20 16 61 | 61 30 68 82 17 32 24 19 +Card 3: 1 21 53 59 44 | 69 82 63 72 16 21 14 1 +Card 4: 41 92 73 84 69 | 59 84 76 51 58 5 54 83 +Card 5: 87 83 26 28 32 | 88 30 70 12 93 22 82 36 +Card 6: 31 18 13 56 72 | 74 77 10 23 35 67 36 11 \ No newline at end of file diff --git a/2023/day5/input.txt b/2023/day5/input.txt new file mode 100644 index 0000000..78aebd2 --- /dev/null +++ b/2023/day5/input.txt @@ -0,0 +1,205 @@ +seeds: 304740406 53203352 1080760686 52608146 1670978447 367043978 1445830299 58442414 4012995194 104364808 4123691336 167638723 2284615844 178205532 3164519436 564398605 90744016 147784453 577905361 122056749 + +seed-to-soil map: +0 699677807 922644641 +4174180469 3833727510 120786827 +1525682201 2566557266 229511566 +3280624601 3954514337 340452959 +2228029508 2796068832 310221139 +3621077560 3280624601 553102909 +2120836342 592484641 107193166 +1982514669 227320902 138321673 +1755193767 0 227320902 +922644641 1622322448 603037560 +2538250647 365642575 226842066 +2765092713 2225360008 341197258 + +soil-to-fertilizer map: +1916776044 145070025 3464138 +1920240182 0 145070025 +706160141 2208005933 115191764 +2898492924 830275742 87027483 +3489083348 3344594558 103871907 +2985520407 148534163 415139950 +821351905 917303225 327392865 +1148744770 1517236949 182706102 +295069722 3448466465 411090419 +1816984891 3244803405 99791153 +4282585972 4292886644 2080652 +3592955255 563674113 266601629 +4266462972 4158154511 16123000 +1331450872 1244696090 272540859 +2715943131 3062253612 182549793 +4284666624 4174277511 10300672 +4158154511 4184578183 108308461 +1603991731 1995012773 212993160 +2065310207 2411620688 650632924 +0 1699943051 295069722 +3400660357 2323197697 88422991 + +fertilizer-to-water map: +3585244197 3493316345 482900943 +2871272496 878061687 456215665 +3477664135 4187387234 107580062 +845559238 15587711 56716031 +121711204 2918313406 409174755 +1639718746 0 15587711 +530885959 2603640127 314673279 +902275269 2435903232 167736895 +2635221133 72303742 236051363 +1070012164 308355105 569706582 +1699846244 1334277352 935374889 +4279315086 3477664135 15652210 +1655306457 2269652241 44539787 +109056711 2423248739 12654493 +0 2314192028 109056711 +4068145140 3976217288 211169946 + +water-to-light map: +3841742547 3016842841 17384315 +2875021919 2637593760 185450069 +3413635232 3588265685 87508205 +1311241677 236307150 54007684 +3349161906 4276682782 18284514 +896790030 1355845673 34430118 +3060471988 3835573209 145836645 +2741184131 3675773890 133837788 +1387754847 947687177 15489861 +3785944618 2057196631 55797929 +2006585491 2931426646 85416195 +3873217816 3809611678 25961531 +1667765627 643929130 34884144 +2092001686 2434956599 202637161 +1001898651 158618769 77688381 +3899179347 2253048950 181907649 +1786416461 377140410 101956748 +0 833901414 113785763 +1403244708 479097158 56815029 +3859126862 3034227156 14090954 +747996464 678813274 31450438 +869173795 963177038 27616235 +3268502638 2006585491 50611140 +113785763 0 148879571 +262665334 1511505797 386606610 +1187603975 710263712 123637702 +3319113778 3987361499 30048128 +3367446420 2885237834 46188812 +931220148 990793273 15913032 +1460059737 1006706305 120880314 +1079587032 535912187 108016943 +3645890228 2112994560 140054390 +3206308633 2823043829 62194005 +1888373209 148879571 9739198 +3501143437 3443518894 144746791 +779446902 1127586619 89726893 +947133180 1217313512 54765471 +2481910976 4017409627 259273155 +1365249361 1390275791 22505486 +4087038641 3048318110 207928655 +1702649771 1272078983 83766690 +649271944 1412781277 98724520 +2294638847 3256246765 187272129 +4081086996 3981409854 5951645 +1580940051 290314834 86825576 + +light-to-temperature map: +2659452899 3773423191 23529065 +1010417677 1830019321 229964714 +1506263997 1764304095 65715226 +3017023682 3993999178 103632805 +3758361154 3931294907 62704271 +2513441862 2529586713 106552791 +3821065425 3163657189 7959671 +3410504451 3191697730 271334719 +2500616406 3150831733 12825456 +2065874786 2636139504 257698620 +4142272690 2382216135 108163002 +1377732678 1378901025 61208694 +91217027 248578952 8927711 +2463617376 3879075083 36999030 +3982807123 2315058258 67157877 +2323573406 2065874786 97274446 +958870382 916323074 51547295 +3868386197 3579887474 114420926 +931392999 1351423642 27477383 +2942753127 3694308400 74270555 +1812734437 168620508 79958444 +3301364949 2163149232 3197696 +2420847852 2166346928 42769524 +3829025096 3111470632 39361101 +2619994653 2490379137 39207576 +1571979223 1523548881 240755214 +2927532333 3916074113 15220794 +3125500723 4097631983 175864226 +1438941372 10080856 67322625 +2049903179 0 10080856 +3304562645 2209116452 105941806 +1976132043 1277652506 73771136 +2659202229 3171616860 250670 +4256036535 3463032449 38930761 +1240382391 257506663 137350287 +0 77403481 91217027 +3120656487 3768578955 4844236 +100144738 967870369 309782137 +409926875 394856950 521466124 +2682981964 4273496209 21471087 +2704453051 3501963210 77924264 +2802207515 2893838124 125324818 +3681839170 3796952256 76521984 +4250435692 3873474240 5600843 +1892692881 1440109719 83439162 +4049965000 3019162942 92307690 +2782377315 3171867530 19830200 + +temperature-to-humidity map: +1281293605 2434144353 57731817 +3534843655 3623804479 36539813 +1516028925 367078655 499627624 +3340374639 3427302148 25514722 +1176213912 2491876170 105079693 +3872645852 3827818849 188531931 +508302359 1375008638 300832898 +0 866706279 508302359 +4146417618 3475254801 148549678 +4083438506 3660344292 62979112 +3365889361 3745584127 82234722 +4061177783 3723323404 22260723 +2015656549 1675841536 348405327 +1056134836 246999579 120079076 +3448124083 3452816870 22437931 +3321587434 3408514943 18787205 +3470562014 4016350780 64281641 +3571383468 3321587434 86927509 +1339025422 2024246863 177003503 +809135257 0 246999579 +2364061876 2596955863 115651453 +3658310977 4080632421 214334875 +2479713329 2201250366 232893987 + +humidity-to-location map: +2408792839 708984436 12070437 +3916327360 4103567762 90492800 +2136669394 2902458135 226099404 +1414655297 721054873 722014097 +2462136308 3514619416 2467233 +1254861475 3327498132 98562162 +2362768798 569836962 46024041 +4185175199 3916327360 8885363 +421054090 234463197 201173738 +2497827912 1550759989 35404865 +849065671 0 224309687 +37059832 615861003 93123433 +4006820160 3925212723 178355039 +2863253575 1705311678 653833074 +622227828 1443068970 107691019 +2464603541 2869233764 33224371 +1353423637 3128557539 61231660 +1073375358 3426060294 47286090 +2725544642 3189789199 137708933 +26906322 224309687 10153510 +2420863276 3473346384 41273032 +729918847 1586164854 119146824 +2533232777 2676921899 192311865 +0 2359144752 26906322 +1120661448 435636935 134200027 +130183265 2386051074 290870825 diff --git a/2023/day5/part1.py b/2023/day5/part1.py new file mode 100644 index 0000000..b6bc56d --- /dev/null +++ b/2023/day5/part1.py @@ -0,0 +1,23 @@ +def parse_section(section): + lines = section.split('\n')[1:] + return list(map(lambda line: list(map(int, line.split())), lines)) + +def parse(inp): + sections = inp.split('\n\n') + seeds = list(map(int, sections[0].split(': ')[1].split())) + transforms = list(map(parse_section, sections[1:])) + return seeds,transforms + +def convert(seed, transforms): + s = seed + for transform in transforms: + for transform_item in transform: + dest_start, src_start ,rng = transform_item + if src_start <= s <= src_start + rng: + s = s - src_start + dest_start + break + return s + +def solution(input): + seeds,transforms = parse(input) + return min(map(lambda x: convert(x,transforms), seeds)) diff --git a/2023/day5/part2.py b/2023/day5/part2.py new file mode 100644 index 0000000..eaed90c --- /dev/null +++ b/2023/day5/part2.py @@ -0,0 +1,2 @@ +def solution(input): + pass diff --git a/2023/day5/sample.txt b/2023/day5/sample.txt new file mode 100644 index 0000000..bd902a4 --- /dev/null +++ b/2023/day5/sample.txt @@ -0,0 +1,33 @@ +seeds: 79 14 55 13 + +seed-to-soil map: +50 98 2 +52 50 48 + +soil-to-fertilizer map: +0 15 37 +37 52 2 +39 0 15 + +fertilizer-to-water map: +49 53 8 +0 11 42 +42 0 7 +57 7 4 + +water-to-light map: +88 18 7 +18 25 70 + +light-to-temperature map: +45 77 23 +81 45 19 +68 64 13 + +temperature-to-humidity map: +0 69 1 +1 0 69 + +humidity-to-location map: +60 56 37 +56 93 4 \ No newline at end of file diff --git a/2023/day6/input.txt b/2023/day6/input.txt new file mode 100644 index 0000000..13c1360 --- /dev/null +++ b/2023/day6/input.txt @@ -0,0 +1,2 @@ +Time: 48 93 84 66 +Distance: 261 1192 1019 1063 diff --git a/2023/day6/part1.py b/2023/day6/part1.py new file mode 100644 index 0000000..c78feca --- /dev/null +++ b/2023/day6/part1.py @@ -0,0 +1,19 @@ +import re +def cnt(t, d): + rs = 0 + for i in range(1,t): + if i*(t-i) > d: + rs += 1 + return rs + +def solution(input): + lines = input.split('\n') + time = list(map(int, re.split(' +', lines[0].strip())[1:])) + distance = list(map(int, re.split(' +', lines[1].strip())[1:])) + ways = [] + for i in range(len(time)): + ways.append(cnt(time[i], distance[i])) + rs = 1 + for i in ways: + rs *= i + return rs diff --git a/2023/day6/part2.py b/2023/day6/part2.py new file mode 100644 index 0000000..0053f0d --- /dev/null +++ b/2023/day6/part2.py @@ -0,0 +1,12 @@ +import re +import math + +def solution(input): + lines = input.split('\n') + t = int(''.join(re.split(' +', lines[0].strip())[1:])) + d = int(''.join(re.split(' +', lines[1].strip())[1:])) + x1 = 0.5*(t - math.sqrt(t*t - 4*d)) + x2 = 0.5*(t + math.sqrt(t*t - 4*d)) + return math.floor(x2) - math.ceil(x1) + 1 + + diff --git a/2023/day6/sample.txt b/2023/day6/sample.txt new file mode 100644 index 0000000..b39f49d --- /dev/null +++ b/2023/day6/sample.txt @@ -0,0 +1,2 @@ +Time: 7 15 30 +Distance: 9 40 200 \ No newline at end of file diff --git a/README.md b/README.md index 317b8c5..6fe1eef 100644 --- a/README.md +++ b/README.md @@ -4,18 +4,13 @@ Save your session key into `.env` file in the root folder as below: ``` SESSION=abc... ``` -Install [NodeJS](https://nodejs.dev/en/learn/how-to-install-nodejs/) and its packages -``` -npm install -``` Start solving problems ``` - -npm run start -- -d -p -y -l +npx @nguyenhuu/adventofcode@latest -d -p -y -l ``` Example: ``` -npm run start -- -d 1 -p 1 -y 2019 -l python +npx @nguyenhuu/adventofcode@latest -d 1 -p 1 -y 2023 -l python ``` ## Hot keys * **s** : Using sample.txt as input diff --git a/go.mod b/go.mod deleted file mode 100644 index f433019..0000000 --- a/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module adventofcode - -go 1.20 diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index f4cd68b..0000000 --- a/package-lock.json +++ /dev/null @@ -1,3762 +0,0 @@ -{ - "name": "aventofcode", - "version": "1.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "aventofcode", - "version": "1.0.0", - "license": "ISC", - "dependencies": { - "axios": "^1.5.0", - "chalk": "^5.3.0", - "chokidar": "^3.5.3", - "cli-spinners": "^2.9.0", - "commander": "^11.0.0", - "dotenv": "^16.3.1", - "enquirer": "^2.4.1", - "ink": "^4.4.0", - "ink-spinner": "^5.0.0", - "react": "^18.2.0" - }, - "devDependencies": { - "@sindresorhus/tsconfig": "^4.0.0", - "@types/ink-spinner": "^3.0.1", - "eslint": "^8.48.0", - "ts-node": "^10.9.1", - "typescript": "^5.2.2" - } - }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@alcalzone/ansi-tokenize": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@alcalzone/ansi-tokenize/-/ansi-tokenize-0.1.2.tgz", - "integrity": "sha512-/9Wcb0XV6jhvbn0UsL0CPBYKRWjSN0Er2vrrhFDNy0IMIvZ7pWBLwOZbFKTlyYCr1Q+UBXb1hWM4czT2FOfT+A==", - "dependencies": { - "ansi-styles": "^6.2.1", - "is-fullwidth-code-point": "^4.0.0" - }, - "engines": { - "node": ">=14.13.1" - } - }, - "node_modules/@alcalzone/ansi-tokenize/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.0.tgz", - "integrity": "sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", - "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/js": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.48.0.tgz", - "integrity": "sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", - "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@sindresorhus/tsconfig": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/tsconfig/-/tsconfig-4.0.0.tgz", - "integrity": "sha512-ZPfPpln4Yl07TE5ULbCkESdvfNq+zen9QPIEnvKSPYgHBhbLSGPGH/G4uF76RUijc/LA7PkVXljjxT4b+5/vpQ==", - "dev": true, - "engines": { - "node": ">=16" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true - }, - "node_modules/@types/cli-spinners": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@types/cli-spinners/-/cli-spinners-1.3.0.tgz", - "integrity": "sha512-hs+1QSCZC5/yZPNqTOC6Q/ic8DmRna65H2GpvC8zlXjgWZrQyYBD5T5dJafo70bfDTXrBO9c/j5cw3/nY/qMiA==", - "dev": true - }, - "node_modules/@types/ink-spinner": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/ink-spinner/-/ink-spinner-3.0.1.tgz", - "integrity": "sha512-LevFtWOB2VxxHqzAywf5uC5DXlwUU+rNcgMRanp9uJlzUc5D15wVOMQRN7ANrMPUmfmb+nL8JI2OACOo3eAf3Q==", - "dev": true, - "dependencies": { - "@types/cli-spinners": "*", - "@types/react": "*" - } - }, - "node_modules/@types/node": { - "version": "20.4.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.5.tgz", - "integrity": "sha512-rt40Nk13II9JwQBdeYqmbn2Q6IVTA5uPhvSO+JVqdXw/6/4glI6oR9ezty/A9Hg5u7JH4OmYmuQ+XvjKm0Datg==", - "dev": true, - "peer": true - }, - "node_modules/@types/prop-types": { - "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", - "devOptional": true - }, - "node_modules/@types/react": { - "version": "18.2.17", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.17.tgz", - "integrity": "sha512-u+e7OlgPPh+aryjOm5UJMX32OvB2E3QASOAqVMY6Ahs90djagxwv2ya0IctglNbNTexC12qCSMZG47KPfy1hAA==", - "devOptional": true, - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/scheduler": { - "version": "0.16.3", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", - "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==", - "devOptional": true - }, - "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz", - "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==", - "dependencies": { - "type-fest": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", - "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/auto-bind": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-5.0.1.tgz", - "integrity": "sha512-ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/axios": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.5.0.tgz", - "integrity": "sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==", - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/ci-info": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", - "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-boxes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", - "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", - "dependencies": { - "restore-cursor": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-spinners": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz", - "integrity": "sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", - "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", - "dependencies": { - "slice-ansi": "^5.0.0", - "string-width": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/cli-truncate/node_modules/slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", - "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/code-excerpt": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/code-excerpt/-/code-excerpt-4.0.0.tgz", - "integrity": "sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==", - "dependencies": { - "convert-to-spaces": "^2.0.1" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", - "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==", - "engines": { - "node": ">=16" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/convert-to-spaces": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/convert-to-spaces/-/convert-to-spaces-2.0.1.tgz", - "integrity": "sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", - "devOptional": true - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dotenv": { - "version": "16.3.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", - "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/motdotla/dotenv?sponsor=1" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/enquirer": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", - "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", - "dependencies": { - "ansi-colors": "^4.1.1", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.48.0.tgz", - "integrity": "sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.48.0", - "@humanwhocodes/config-array": "^0.11.10", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz", - "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globals": { - "version": "13.21.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", - "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ink": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/ink/-/ink-4.4.0.tgz", - "integrity": "sha512-WEUkpgW6b/0yu30xYKNTxkpF90SzoTCzo0o96XEWZXQG+RmmadYC0nWgzmK0jy9pcsIDs1dqUBa+ihcJu1kfKQ==", - "dependencies": { - "@alcalzone/ansi-tokenize": "^0.1.2", - "ansi-escapes": "^6.0.0", - "auto-bind": "^5.0.1", - "chalk": "^5.2.0", - "cli-boxes": "^3.0.0", - "cli-cursor": "^4.0.0", - "cli-truncate": "^3.1.0", - "code-excerpt": "^4.0.0", - "indent-string": "^5.0.0", - "is-ci": "^3.0.1", - "is-lower-case": "^2.0.2", - "is-upper-case": "^2.0.2", - "lodash": "^4.17.21", - "patch-console": "^2.0.0", - "react-reconciler": "^0.29.0", - "scheduler": "^0.23.0", - "signal-exit": "^3.0.7", - "slice-ansi": "^6.0.0", - "stack-utils": "^2.0.6", - "string-width": "^5.1.2", - "type-fest": "^0.12.0", - "widest-line": "^4.0.1", - "wrap-ansi": "^8.1.0", - "ws": "^8.12.0", - "yoga-wasm-web": "~0.3.3" - }, - "engines": { - "node": ">=14.16" - }, - "peerDependencies": { - "@types/react": ">=18.0.0", - "react": ">=18.0.0", - "react-devtools-core": "^4.19.1" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "react-devtools-core": { - "optional": true - } - } - }, - "node_modules/ink-spinner": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ink-spinner/-/ink-spinner-5.0.0.tgz", - "integrity": "sha512-EYEasbEjkqLGyPOUc8hBJZNuC5GvXGMLu0w5gdTNskPc7Izc5vO3tdQEYnzvshucyGCBXc86ig0ujXPMWaQCdA==", - "dependencies": { - "cli-spinners": "^2.7.0" - }, - "engines": { - "node": ">=14.16" - }, - "peerDependencies": { - "ink": ">=4.0.0", - "react": ">=18.0.0" - } - }, - "node_modules/ink/node_modules/type-fest": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.12.0.tgz", - "integrity": "sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-ci": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", - "dependencies": { - "ci-info": "^3.2.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-2.0.2.tgz", - "integrity": "sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-upper-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-2.0.2.tgz", - "integrity": "sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/patch-console": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/patch-console/-/patch-console-2.0.0.tgz", - "integrity": "sha512-0YNdUceMdaQwoKce1gatDScmMo5pu/tfABfnzEqeG0gtTmd7mh/WcwgUjtAeOU7N8nFFlbQBnFK2gXW5fGvmMA==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-reconciler": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.29.0.tgz", - "integrity": "sha512-wa0fGj7Zht1EYMRhKWwoo1H9GApxYLBuhoAuXN0TlltESAjDssB+Apf0T/DngVqaMyPypDmabL37vw/2aRM98Q==", - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "peerDependencies": { - "react": "^18.2.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "node_modules/slice-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-6.0.0.tgz", - "integrity": "sha512-6bn4hRfkTvDfUoEQYkERg0BVF1D0vrX9HEkMl08uDiNWvVvjylLHvZFZWkDo6wjT8tUctbYl1nCOuE66ZTaUtA==", - "dependencies": { - "ansi-styles": "^6.2.1", - "is-fullwidth-code-point": "^4.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "dev": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/widest-line": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", - "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", - "dependencies": { - "string-width": "^5.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yoga-wasm-web": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/yoga-wasm-web/-/yoga-wasm-web-0.3.3.tgz", - "integrity": "sha512-N+d4UJSJbt/R3wqY7Coqs5pcV0aUj2j9IaQ3rNj9bVCLld8tTGKRa2USARjnvZJWVx1NDmQev8EknoczaOQDOA==" - } - }, - "dependencies": { - "@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true - }, - "@alcalzone/ansi-tokenize": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@alcalzone/ansi-tokenize/-/ansi-tokenize-0.1.2.tgz", - "integrity": "sha512-/9Wcb0XV6jhvbn0UsL0CPBYKRWjSN0Er2vrrhFDNy0IMIvZ7pWBLwOZbFKTlyYCr1Q+UBXb1hWM4czT2FOfT+A==", - "requires": { - "ansi-styles": "^6.2.1", - "is-fullwidth-code-point": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" - } - } - }, - "@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "0.3.9" - } - }, - "@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^3.3.0" - } - }, - "@eslint-community/regexpp": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.0.tgz", - "integrity": "sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg==", - "dev": true - }, - "@eslint/eslintrc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", - "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - } - }, - "@eslint/js": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.48.0.tgz", - "integrity": "sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==", - "dev": true - }, - "@humanwhocodes/config-array": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", - "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - } - }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@sindresorhus/tsconfig": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/tsconfig/-/tsconfig-4.0.0.tgz", - "integrity": "sha512-ZPfPpln4Yl07TE5ULbCkESdvfNq+zen9QPIEnvKSPYgHBhbLSGPGH/G4uF76RUijc/LA7PkVXljjxT4b+5/vpQ==", - "dev": true - }, - "@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true - }, - "@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true - }, - "@types/cli-spinners": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@types/cli-spinners/-/cli-spinners-1.3.0.tgz", - "integrity": "sha512-hs+1QSCZC5/yZPNqTOC6Q/ic8DmRna65H2GpvC8zlXjgWZrQyYBD5T5dJafo70bfDTXrBO9c/j5cw3/nY/qMiA==", - "dev": true - }, - "@types/ink-spinner": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/ink-spinner/-/ink-spinner-3.0.1.tgz", - "integrity": "sha512-LevFtWOB2VxxHqzAywf5uC5DXlwUU+rNcgMRanp9uJlzUc5D15wVOMQRN7ANrMPUmfmb+nL8JI2OACOo3eAf3Q==", - "dev": true, - "requires": { - "@types/cli-spinners": "*", - "@types/react": "*" - } - }, - "@types/node": { - "version": "20.4.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.5.tgz", - "integrity": "sha512-rt40Nk13II9JwQBdeYqmbn2Q6IVTA5uPhvSO+JVqdXw/6/4glI6oR9ezty/A9Hg5u7JH4OmYmuQ+XvjKm0Datg==", - "dev": true, - "peer": true - }, - "@types/prop-types": { - "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", - "devOptional": true - }, - "@types/react": { - "version": "18.2.17", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.17.tgz", - "integrity": "sha512-u+e7OlgPPh+aryjOm5UJMX32OvB2E3QASOAqVMY6Ahs90djagxwv2ya0IctglNbNTexC12qCSMZG47KPfy1hAA==", - "devOptional": true, - "requires": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "@types/scheduler": { - "version": "0.16.3", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", - "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==", - "devOptional": true - }, - "acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==" - }, - "ansi-escapes": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz", - "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==", - "requires": { - "type-fest": "^3.0.0" - }, - "dependencies": { - "type-fest": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", - "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==" - } - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "auto-bind": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-5.0.1.tgz", - "integrity": "sha512-ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg==" - }, - "axios": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.5.0.tgz", - "integrity": "sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==", - "requires": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==" - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "ci-info": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", - "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==" - }, - "cli-boxes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", - "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==" - }, - "cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", - "requires": { - "restore-cursor": "^4.0.0" - } - }, - "cli-spinners": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz", - "integrity": "sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==" - }, - "cli-truncate": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", - "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", - "requires": { - "slice-ansi": "^5.0.0", - "string-width": "^5.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" - }, - "slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", - "requires": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" - } - } - } - }, - "code-excerpt": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/code-excerpt/-/code-excerpt-4.0.0.tgz", - "integrity": "sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==", - "requires": { - "convert-to-spaces": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", - "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "convert-to-spaces": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/convert-to-spaces/-/convert-to-spaces-2.0.1.tgz", - "integrity": "sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==" - }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", - "devOptional": true - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dotenv": { - "version": "16.3.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", - "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==" - }, - "eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "enquirer": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", - "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", - "requires": { - "ansi-colors": "^4.1.1", - "strip-ansi": "^6.0.1" - } - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.48.0.tgz", - "integrity": "sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.48.0", - "@humanwhocodes/config-array": "^0.11.10", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - } - } - }, - "eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true - }, - "espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "requires": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - } - }, - "esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "fastq": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz", - "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "optional": true - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "requires": { - "is-glob": "^4.0.1" - } - }, - "globals": { - "version": "13.21.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", - "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true - }, - "indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "ink": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/ink/-/ink-4.4.0.tgz", - "integrity": "sha512-WEUkpgW6b/0yu30xYKNTxkpF90SzoTCzo0o96XEWZXQG+RmmadYC0nWgzmK0jy9pcsIDs1dqUBa+ihcJu1kfKQ==", - "requires": { - "@alcalzone/ansi-tokenize": "^0.1.2", - "ansi-escapes": "^6.0.0", - "auto-bind": "^5.0.1", - "chalk": "^5.2.0", - "cli-boxes": "^3.0.0", - "cli-cursor": "^4.0.0", - "cli-truncate": "^3.1.0", - "code-excerpt": "^4.0.0", - "indent-string": "^5.0.0", - "is-ci": "^3.0.1", - "is-lower-case": "^2.0.2", - "is-upper-case": "^2.0.2", - "lodash": "^4.17.21", - "patch-console": "^2.0.0", - "react-reconciler": "^0.29.0", - "scheduler": "^0.23.0", - "signal-exit": "^3.0.7", - "slice-ansi": "^6.0.0", - "stack-utils": "^2.0.6", - "string-width": "^5.1.2", - "type-fest": "^0.12.0", - "widest-line": "^4.0.1", - "wrap-ansi": "^8.1.0", - "ws": "^8.12.0", - "yoga-wasm-web": "~0.3.3" - }, - "dependencies": { - "type-fest": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.12.0.tgz", - "integrity": "sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg==" - } - } - }, - "ink-spinner": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ink-spinner/-/ink-spinner-5.0.0.tgz", - "integrity": "sha512-EYEasbEjkqLGyPOUc8hBJZNuC5GvXGMLu0w5gdTNskPc7Izc5vO3tdQEYnzvshucyGCBXc86ig0ujXPMWaQCdA==", - "requires": { - "cli-spinners": "^2.7.0" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-ci": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", - "requires": { - "ci-info": "^3.2.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" - }, - "is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==" - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-2.0.2.tgz", - "integrity": "sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==", - "requires": { - "tslib": "^2.0.3" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true - }, - "is-upper-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-2.0.2.tgz", - "integrity": "sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==", - "requires": { - "tslib": "^2.0.3" - } - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "requires": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "patch-console": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/patch-console/-/patch-console-2.0.0.tgz", - "integrity": "sha512-0YNdUceMdaQwoKce1gatDScmMo5pu/tfABfnzEqeG0gtTmd7mh/WcwgUjtAeOU7N8nFFlbQBnFK2gXW5fGvmMA==" - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "requires": { - "loose-envify": "^1.1.0" - } - }, - "react-reconciler": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.29.0.tgz", - "integrity": "sha512-wa0fGj7Zht1EYMRhKWwoo1H9GApxYLBuhoAuXN0TlltESAjDssB+Apf0T/DngVqaMyPypDmabL37vw/2aRM98Q==", - "requires": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "requires": { - "picomatch": "^2.2.1" - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", - "requires": { - "loose-envify": "^1.1.0" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "slice-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-6.0.0.tgz", - "integrity": "sha512-6bn4hRfkTvDfUoEQYkERg0BVF1D0vrX9HEkMl08uDiNWvVvjylLHvZFZWkDo6wjT8tUctbYl1nCOuE66ZTaUtA==", - "requires": { - "ansi-styles": "^6.2.1", - "is-fullwidth-code-point": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" - } - } - }, - "stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" - } - } - }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" - }, - "strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - } - }, - "ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "dev": true, - "requires": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - } - }, - "tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, - "typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", - "dev": true - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "widest-line": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", - "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", - "requires": { - "string-width": "^5.0.1" - } - }, - "wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "requires": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" - }, - "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" - }, - "strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "requires": {} - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - }, - "yoga-wasm-web": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/yoga-wasm-web/-/yoga-wasm-web-0.3.3.tgz", - "integrity": "sha512-N+d4UJSJbt/R3wqY7Coqs5pcV0aUj2j9IaQ3rNj9bVCLld8tTGKRa2USARjnvZJWVx1NDmQev8EknoczaOQDOA==" - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index a989954..0000000 --- a/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "aventofcode", - "version": "1.0.0", - "description": "Advent of Code runner", - "main": "src/main.tsx", - "type": "module", - "scripts": { - "start": "NODE_NO_WARNINGS=1 node --loader ts-node/esm src/main.tsx" - }, - "author": "Huu Nguyen ", - "license": "ISC", - "dependencies": { - "axios": "^1.5.0", - "chalk": "^5.3.0", - "chokidar": "^3.5.3", - "cli-spinners": "^2.9.0", - "commander": "^11.0.0", - "dotenv": "^16.3.1", - "enquirer": "^2.4.1", - "ink": "^4.4.0", - "ink-spinner": "^5.0.0", - "react": "^18.2.0" - }, - "devDependencies": { - "@sindresorhus/tsconfig": "^4.0.0", - "@types/ink-spinner": "^3.0.1", - "eslint": "^8.48.0", - "ts-node": "^10.9.1", - "typescript": "^5.2.2" - } -} diff --git a/src/@types/index.d.ts b/src/@types/index.d.ts deleted file mode 100644 index fa13dde..0000000 --- a/src/@types/index.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -interface AppState { - year: string - day: string - part: string - language: string - inputMode: string - answer: string - output: string -} - -type ExecutionInput = Pick - -interface AppFile { - name: string - size: number -} - -interface AppProfile { - userName?: string - star?: string -} - -interface ExecutionResult { - stdout: string - stderr: string - error: any -} \ No newline at end of file diff --git a/src/components/App.tsx b/src/components/App.tsx deleted file mode 100644 index 9d6ce7c..0000000 --- a/src/components/App.tsx +++ /dev/null @@ -1,211 +0,0 @@ -import React, { useEffect, useState } from 'react'; -import { Box, Text, useApp, useInput } from 'ink'; -import chokidar from 'chokidar'; -import chalk from 'chalk'; -import Spinner from './Spinner.js'; -import { useSolutionFile } from '../hooks/useSolutionFile.js'; -import { useInputFile } from '../hooks/useInputFile.js'; -import { terminate } from '../utils/executors.js' -import { HELP_MESSAGE } from './constants.js'; -import { useYearInfo } from '../hooks/useYearInfo.js'; -import { useSubmit } from '../hooks/useSubmit.js'; -import { useExecuteAsStream } from '../hooks/useExecuteAsStream.js'; - -const watcher = chokidar.watch([]) - -type Props = { - state: AppState -} - -const App = ({ state }: Props) => { - const {exit} = useApp(); - - const [tsUserName, setTsUserName] = useState(0) - const { userName, star } = useYearInfo(state.year, tsUserName) - - const [inputMode, setInputMode] = useState(state.inputMode) - const [part, setPart] = useState(state.part) - const [output, setOutput] = useState(state.output); - const [answer, setAnswer] = useState(''); - const [perfLog, setPerfLog] = useState(''); - const [loading, setLoading] = useState(false); - - const [tsSolutionFile, setTsSolutionFile] = useState(0) - const { name: solutionFileName, size: solutionFileSize } = useSolutionFile(state.year, state.day, part, state.language, tsSolutionFile); - const [tsInputFile, setTsInputFile] = useState(0) - const { name: inputFileName, size: inputFileSize } = useInputFile(state.year, state.day, inputMode, tsInputFile); - - const executeSolution = useExecuteAsStream({ - onOutput: (s: string) => setOutput(current => current ? current + s : s), - onResult: (s: string) => setAnswer(s), - onExecutionTime: (s: string) => setPerfLog(s), - onStart: () => { setLoading(true); setOutput(""); }, - onExit: () => setLoading(false) - }) - - const submit = useSubmit(state.year, state.day, part, answer); - - const handleSubmit = async () => { - setLoading(true) - try { - const { correct, waitingTime } = await submit(); - let msg = correct ? chalk.bold(chalk.greenBright('Right answer! 🤩')) : chalk.bold(chalk.red('Wrong answer! 🥹')) - if (waitingTime) { - msg += chalk.bold(chalk.redBright(` Waiting ${waitingTime} ⏳`)) - } - setOutput(msg) - setTsUserName(s => s + 1) - } catch (err: any) { - setOutput(chalk.bold(chalk.red(`Cannot submit answer: ${err}`))) - } finally { - setLoading(false) - } - } - - useEffect(() => { - if (!solutionFileName) return; - watcher.add(solutionFileName); - watcher.removeAllListeners() - watcher.on('change', async () => { - const s = { year: state.year, day: state.day, part, inputMode, language: state.language } - setTsSolutionFile(s => s + 1) - executeSolution(s) - }); - return () => { - watcher.unwatch(solutionFileName) - } - }, [solutionFileName]) - useEffect(() => { - if (!inputFileName) return; - watcher.add(inputFileName); - watcher.removeAllListeners() - watcher.on('change', async () => { - const s = { year: state.year, day: state.day, part, inputMode, language: state.language } - setTsInputFile(s => s + 1) - executeSolution(s) - }); - return () => { - watcher.unwatch(inputFileName) - } - }, [inputFileName]) - - useInput(async (input, key) => { - switch (input.toLowerCase()) { - case 'q': { - terminate(); - exit(); - process.exit(); - } - case 'i': { - setInputMode("input"); - const s = { year: state.year, day: state.day, part, inputMode: 'input', language: state.language } - executeSolution(s) - break; - } - case 's': { - setInputMode("sample"); - const s = { year: state.year, day: state.day, part, inputMode: 'sample', language: state.language } - executeSolution(s) - break; - } - case 'c': setOutput(''); break; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': { - setPart(input); - const s = { year: state.year, day: state.day, part: input, inputMode, language: state.language } - executeSolution(s) - break; - } - case 'x': { - if (loading) { - terminate(); - setTimeout(() => setOutput('Terminated!'), 100) - } - break; - } - case 'h': { - setOutput(HELP_MESSAGE); - break; - } - case 'u': { - handleSubmit(); - break; - } - } - if (key.downArrow) { - setInputMode("input") - const s = { year: state.year, day: state.day, part, inputMode: 'input', language: state.language } - executeSolution(s) - } - if (key.upArrow) { - setInputMode("sample") - const s = { year: state.year, day: state.day, part, inputMode: 'sample', language: state.language } - executeSolution(s) - } - if (key.return) { - const s = { year: state.year, day: state.day, part, inputMode, language: state.language } - executeSolution(s) - } - }) - useEffect(() => { - const s = { year: state.year, day: state.day, part, inputMode, language: state.language } - executeSolution(s) - return () => {} - }, []) - return ( - <> - - 📆 Year: - {state.year} - Day: - {state.day} - Part: - {part} - | 📘 Language: - {state.language} - {userName && ( - <> - | 👤 Username: - {userName} - - )} - {star && {star}⭐️ } - - - - - {`Solution file: ${chalk.bold(chalk.magentaBright(solutionFileName.slice(2)))} ${solutionFileSize} bytes`} - {` Input file: ${chalk.bold(chalk.magentaBright(inputFileName.slice(2)))} ${inputFileSize} bytes`} - - - - - - {`Result: `} - { loading ? : answer } - { (answer && !loading) && {` ⏱ ${perfLog}`}} - - - {output && ( - <> - - - {output} - - - )} - - - - ); -} - -export default App; diff --git a/src/components/Spinner.tsx b/src/components/Spinner.tsx deleted file mode 100644 index 4aa08ac..0000000 --- a/src/components/Spinner.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import React, {useState, useEffect} from 'react'; -import {Text} from 'ink'; -import spinners from 'cli-spinners'; -import type {SpinnerName} from 'cli-spinners'; - -type Props = { - type?: SpinnerName; - loading?: Boolean; -}; - -function Spinner({type = 'dots', loading = false}: Props) { - const [frame, setFrame] = useState(0); - const spinner = spinners[type]; - - useEffect(() => { - if (loading) { - const timer = setInterval(() => { - setFrame(previousFrame => { - const isLastFrame = previousFrame === spinner.frames.length - 1; - return isLastFrame ? 0 : previousFrame + 1; - }); - }, spinner.interval); - - return () => { - clearInterval(timer); - }; - } - return () => {} - }, [spinner, loading]); - - return loading ? {spinner.frames[frame]} : {spinner.frames[0]}; -} - -export default Spinner; \ No newline at end of file diff --git a/src/components/constants.ts b/src/components/constants.ts deleted file mode 100644 index 95aa2ba..0000000 --- a/src/components/constants.ts +++ /dev/null @@ -1,10 +0,0 @@ -import chalk from 'chalk' - -const bg = (s: string): string => chalk.bold(chalk.greenBright(s)) -const by = (s: string): string => chalk.bold(chalk.yellowBright(s)) - -export const HELP_MESSAGE = `Instructions: -${by('0-9')}: Run ${bg('partX')} solution ${by('Enter')}: Re-run solution -${by('U')} : Submit solution ${by('X')} : Terminate solution -${by('S')} : Run solution with ${bg('sample')} ${by('H')} : Print the instructions -${by('I')} : Run solution with ${bg('input')} ${by('Q')} : Quit application` \ No newline at end of file diff --git a/src/constants.ts b/src/constants.ts deleted file mode 100644 index 04b8ed6..0000000 --- a/src/constants.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const VALID_YEARS = ['2015','2016','2017','2018','2019','2020','2021','2022']; - -export const HOST = 'https://adventofcode.com'; \ No newline at end of file diff --git a/src/drivers/golang/golang.go b/src/drivers/golang/golang.go deleted file mode 100644 index 15425d0..0000000 --- a/src/drivers/golang/golang.go +++ /dev/null @@ -1,49 +0,0 @@ -package main - -import ( - "encoding/json" - "fmt" - "os" - "plugin" - "strconv" - "time" -) - -func main() { - p, err := plugin.Open("src/drivers/golang/golang.so") - if err != nil { - panic(err) - } - var solution plugin.Symbol - for part := 1; part < 100; part++ { - solution, err = p.Lookup("Part" + strconv.Itoa(part)) - if solution != nil { - break - } - } - - if solution == nil && err != nil { - panic("Cannot find symbol") - } - file := os.Args[1] - inp, err := os.ReadFile(file) - if err != nil { - panic(err) - } - start := time.Now() - rs := solution.(func(string) interface{})(string(inp)) - timeElapsed := time.Since(start) - payload := map[string]interface{}{ - "result": rs, - "time": fmt.Sprint(timeElapsed), - } - js, err := json.Marshal(payload) - if err != nil { - panic(err) - } - fd := os.NewFile(3, "ipc") - _, err = fd.Write([]byte(string(js) + "\n")) - if err != nil { - panic(err) - } -} diff --git a/src/drivers/java/JavaRunner.class b/src/drivers/java/JavaRunner.class deleted file mode 100644 index e78a4d1..0000000 Binary files a/src/drivers/java/JavaRunner.class and /dev/null differ diff --git a/src/drivers/java/JavaRunner.java b/src/drivers/java/JavaRunner.java deleted file mode 100644 index 1d55b7d..0000000 --- a/src/drivers/java/JavaRunner.java +++ /dev/null @@ -1,45 +0,0 @@ -import java.net.URLClassLoader; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.LinkedHashMap; -import java.util.Map; -import java.io.File; -import java.io.FileWriter; -import java.lang.reflect.Method; -import java.net.URL; -import com.google.gson.Gson; - -class JavaRunner -{ - public static void main(String []args) - { - try { - File file = new File("."); - URL url = file.toURI().toURL(); - URL[] urls = new URL[]{url}; - ClassLoader cl = new URLClassLoader(urls); - Class cls = cl.loadClass("Solution"); - Method method = cls.getMethod("solve", String.class); - - String input = Files.readString(Path.of(args[0])); - - long start = System.currentTimeMillis(); - Object result = method.invoke(null, input); - long finish = System.currentTimeMillis(); - long timeElapsed = finish - start; - - Gson gson = new Gson(); - Map stringMap = new LinkedHashMap<>(); - stringMap.put("result", result); - stringMap.put("time", timeElapsed + "ms"); - - String json = gson.toJson(stringMap); - - FileWriter myWriter = new FileWriter("/dev/fd/3"); - myWriter.write(json + "\n"); - myWriter.close(); - } catch (Exception e) { - e.printStackTrace(); - } - } -}; \ No newline at end of file diff --git a/src/drivers/java/gson-2.10.1.jar b/src/drivers/java/gson-2.10.1.jar deleted file mode 100644 index a88c5bd..0000000 Binary files a/src/drivers/java/gson-2.10.1.jar and /dev/null differ diff --git a/src/drivers/javascript/global.js b/src/drivers/javascript/global.js deleted file mode 100644 index d76e758..0000000 --- a/src/drivers/javascript/global.js +++ /dev/null @@ -1,29 +0,0 @@ -global.int = (s) => parseInt(s, 10); -global.float = (s) => parseFloat(s, 10); -global.log = console.log.bind(console); -global.isArray = arr => Array.isArray(arr); -global.isNumber = n => typeof n === 'number'; -global.min = Math.min; -global.max = Math.max; -global.abs = Math.abs; -Array.prototype.sum = function() { - return this.reduce((acc, v) => (acc += v), 0); -}; -Array.prototype.mul = function() { - return this.reduce((acc, v) => (acc *= v), 1); -}; -Array.prototype.last = function() { - return this[this.length - 1]; -}; -Set.prototype.addArr = function(array) { - return this.add(array+''); -}; -Set.prototype.hasArr = function(array) { - return this.has(array+''); -}; -Set.prototype.deleteArr = function(array) { - return this.delete(array+''); -}; -String.prototype.replaceAt = function(index, replacement) { - return this.substring(0, index) + replacement + this.substring(index + replacement.length); -}; \ No newline at end of file diff --git a/src/drivers/javascript/javascript.js b/src/drivers/javascript/javascript.js deleted file mode 100644 index bd04c8c..0000000 --- a/src/drivers/javascript/javascript.js +++ /dev/null @@ -1,22 +0,0 @@ -import './global.js'; -import fs from 'fs'; -import path from 'path' - -const year = process.argv[2]; -const day = process.argv[3]; -const part = process.argv[4]; -const input = process.argv[5]; -const solutionFile = path.resolve(`./${year}/day${day}/part${part}.js`); -const inputFile = `./${year}/day${day}/${input}.txt`; - -import(solutionFile).then(async ({ solution }) => { - const input = fs.readFileSync(inputFile, 'utf8'); - const before = performance.now(); - const rs = await solution(input); - const after = performance.now(); - const dt = { - result: rs, - time: `${(after-before).toFixed(3)}ms` - } - process.send && process.send(dt); -}); diff --git a/src/drivers/python/customtools.py b/src/drivers/python/customtools.py deleted file mode 100644 index a5cd35d..0000000 --- a/src/drivers/python/customtools.py +++ /dev/null @@ -1,24 +0,0 @@ -def yellow(s): - return "\033[33m" + str(s) + "\033[0m" -def green(s): - return "\033[1m\033[32m" + str(s) + "\033[0m" - - -def drawTree(node, prefix="", isLeft=True): - if not node: - print("Empty Tree") - return - - if node.r: - if prefix: - drawTree(node.r, prefix + yellow("│ " if isLeft else " "), False) - else: - drawTree(node.r, prefix + " ", False) - - if prefix: - print(prefix + yellow("└── " if isLeft else "┌── ") + green(node.val)) - else: - print(prefix + yellow(" 🌳 " if isLeft else "┌── ") + green(node.val)) - - if node.l: - drawTree(node.l, prefix + yellow(" " if isLeft else "│ "), True) \ No newline at end of file diff --git a/src/drivers/python/python.py b/src/drivers/python/python.py deleted file mode 100644 index c3cfe83..0000000 --- a/src/drivers/python/python.py +++ /dev/null @@ -1,29 +0,0 @@ -import sys -import os -import time -import importlib -import json - -args = sys.argv -year = args[1] -day = args[2] -part = args[3] -inp = args[4] - -folder = year + "/day" + day -input_file = folder + "/" + inp + ".txt" -sys.path.append(os.path.abspath(folder)) - -mod = importlib.import_module('part' + part) - -with open(os.path.abspath(input_file)) as inp: - input_text = inp.read().strip() - start_time = time.perf_counter_ns() - rs = mod.solution(input_text) - end_time = time.perf_counter_ns() - execution_time = (end_time - start_time)/1000000 - dt = { - "result": rs, - "time": "{:.3f}ms".format(execution_time) - } - os.write(3, (json.dumps(dt) + "\n").encode()) diff --git a/src/hooks/useExecuteAsStream.ts b/src/hooks/useExecuteAsStream.ts deleted file mode 100644 index 0e00dd1..0000000 --- a/src/hooks/useExecuteAsStream.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { executeAsStream } from "../utils/executors.js" - -interface ExecuteHookInput { - onOutput: Function - onResult: Function - onExecutionTime: Function - onStart?: Function - onExit?: Function - onClose?: Function -} - -export const useExecuteAsStream = ({ onOutput, onResult, onExecutionTime, onStart, onExit, onClose }: ExecuteHookInput): any => { - const execute = (state: ExecutionInput) => { - onStart && onStart() - const childProcess = executeAsStream(state) - childProcess.on("message", (msg: any) => { - onResult(msg.result) - onExecutionTime(msg.time) - }) - childProcess.on("close", () => { - onClose && onClose() - }) - childProcess.on("exit", data => { - if (data !== 0) { - onResult('-') - onExecutionTime('-') - } - onExit && onExit() - }) - if (childProcess.stdout) { - childProcess.stdout.setEncoding('utf8'); - childProcess.stdout.on('data', function(data) { - onOutput(data.toString()) - }) - } - if (childProcess.stderr) { - childProcess.stderr.setEncoding('utf8'); - childProcess.stderr.on('data', function(data) { - onOutput(data.toString()) - }) - } - } - return execute -} \ No newline at end of file diff --git a/src/hooks/useInputFile.ts b/src/hooks/useInputFile.ts deleted file mode 100644 index c4ae874..0000000 --- a/src/hooks/useInputFile.ts +++ /dev/null @@ -1,70 +0,0 @@ -import axios from 'axios'; -import fs from 'fs'; -import { useEffect, useState } from "react"; -import { HOST, VALID_YEARS } from '../constants.js'; - -const SAMPLE_REGEX = /\(your puzzle input\)[\s\S]*?([\s\S]+?)<\/code>/; - -const decode = (str: string) => { - return str - .replaceAll('>', '>') - .replaceAll('<', '<'); -}; - -export const useInputFile = (year: string, day: string, inp: string, ts: number): AppFile => { - const [name, setName] = useState('') - const [size, setSize] = useState(0) - useEffect(() => { - const dir = `./${year}/day${day}/`; - if (!fs.existsSync(dir)) { - fs.mkdirSync(dir, { recursive: true }); - } - const file = `./${year}/day${day}/${inp}.txt`; - if (!fs.existsSync(file)) { - let data = ''; - fs.writeFileSync(file, data, { flag: 'as+' }); - } - const stats = fs.statSync(file) - setName(file); - setSize(stats.size); - if (!VALID_YEARS.includes(year)) { - return; - } - if (stats.size === 0 && inp === 'input' && process.env['SESSION']) { - const url = `${HOST}/${year}/day/${day}/input`; - axios({ - method: 'GET', - url, - headers: { - cookie: `session=${process.env['SESSION']};` - } - }).then(res => { - if (res.data) { - fs.writeFileSync(file, res.data) - const stats = fs.statSync(file) - setSize(stats.size); - } - }) - } - if (stats.size === 0 && inp === 'sample' && process.env['SESSION']) { - const url = `${HOST}/${year}/day/${day}`; - axios({ - method: 'GET', - url, - headers: { - cookie: `session=${process.env['SESSION']};` - } - }).then(res => { - if (res.data) { - const matches = res.data.match(SAMPLE_REGEX); - if (matches) { - fs.writeFileSync(file, decode(matches[1]).trim()); - const stats = fs.statSync(file) - setSize(stats.size); - } - } - }) - } - }, [year, day, inp, ts]) - return { name, size } -}; \ No newline at end of file diff --git a/src/hooks/useSolutionFile.ts b/src/hooks/useSolutionFile.ts deleted file mode 100644 index 11d560a..0000000 --- a/src/hooks/useSolutionFile.ts +++ /dev/null @@ -1,29 +0,0 @@ -import fs from 'fs' -import { EXTENSIONS, TEMPLATES } from '../utils/languages.js' -import { useEffect, useState } from 'react'; - -export const useSolutionFile = (year: string, day: string, part: string, language: string, ts: number): AppFile => { - const [name, setName] = useState('') - const [size, setSize] = useState(0) - useEffect(() => { - const dir = `./${year}/day${day}/`; - if (!fs.existsSync(dir)) { - fs.mkdirSync(dir, { recursive: true }); - } - const file = `./${year}/day${day}/part${part}.${EXTENSIONS[language]}`; - if (!fs.existsSync(file)) { - const template = TEMPLATES[language]; - if (TEMPLATES[language]) { - if (typeof template === 'function') { - fs.writeFileSync(file, TEMPLATES[language]({ year, day, part }), { flag: 'as+' }); - } else { - fs.writeFileSync(file, TEMPLATES[language], { flag: 'as+' }); - } - } - } - const stats = fs.statSync(file) - setName(file) - setSize(stats.size); - }, [year, day, part, language, ts]); - return { name, size }; -} \ No newline at end of file diff --git a/src/hooks/useSubmit.ts b/src/hooks/useSubmit.ts deleted file mode 100644 index 34d31c4..0000000 --- a/src/hooks/useSubmit.ts +++ /dev/null @@ -1,47 +0,0 @@ -import axios from "axios"; -import { useCallback } from "react" -import { HOST } from "../constants.js"; - -export const useSubmit = (year: string, day: string, part: string, answer: string): () => Promise => { - const submit = useCallback<() => Promise>(() => { - const url = `${HOST}/${year}/day/${day}/answer`; - const data = `level=${part}&answer=${answer}`; - return new Promise((resolve, reject) => { - const SESSION = process.env['SESSION'] - if (!SESSION) { - return reject('Invalid SESSION') - } - axios({ - method: 'POST', - url, - data, - headers: { - 'content-type': 'application/x-www-form-urlencoded', - cookie: `session=${SESSION};` - } - }).then(resp => { - let matches = resp.data.match(/(That's (not )?the right answer)/); - if (matches) { - if (matches[1] === 'That\'s the right answer') { - return resolve({ correct: true }); - } else { - const waitingTime = resp.data.match(/please wait (.*) before/); - if (waitingTime) { - return resolve({ correct: false, waitingTime: waitingTime[1] }); - } else { - return resolve({ correct: false }); - } - } - } - matches = resp.data.match(/You have (.*) left to wait/); - if (matches) { - return resolve({ correct: false, waitingTime: matches[1] }) - } - return reject('Unknown response'); - }).catch(err => { - return reject(err); - }); - }) - }, [year, day, part, answer]); - return submit -} \ No newline at end of file diff --git a/src/hooks/useYearInfo.ts b/src/hooks/useYearInfo.ts deleted file mode 100644 index 6c59398..0000000 --- a/src/hooks/useYearInfo.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { useEffect, useState } from "react" -import axios from 'axios'; -import { HOST, VALID_YEARS } from "../constants.js"; - -const REGEX_USERNAME = /class="user">(.+?) ?(.+?)\* { - const [userName, setUserName] = useState(''); - const [star, setStar] = useState(''); - useEffect(() => { - const { SESSION } = process.env; - if (!SESSION) { - setUserName('') - return - } - const url = VALID_YEARS.includes(year) ? `${HOST}/${year}` : `${HOST}`; - axios({ - method: 'GET', - url, - headers: { - cookie: `session=${SESSION};` - } - }).then(res => { - if (res.data) { - const matchUserName = REGEX_USERNAME.exec(res.data) - if (matchUserName) { - setUserName(matchUserName[1]) - } - const matchStar = REGEX_STAR.exec(res.data) - if (matchStar) { - setStar(matchStar[1]) - } - } - }); - }, [year, ts]) - return { userName, star } -} \ No newline at end of file diff --git a/src/main.tsx b/src/main.tsx deleted file mode 100644 index f008f07..0000000 --- a/src/main.tsx +++ /dev/null @@ -1,42 +0,0 @@ -import dotenv from 'dotenv'; -import { render } from 'ink'; -import { program, Option } from 'commander'; - -import { validate, LANGUAGE_MAP } from './utils/prompter.js'; -import App from './components/App.js' -import React from 'react'; - -dotenv.config() -console.clear() - -program - .addOption(new Option('-y, --year ')) - .addOption(new Option('-l, --language ').default('python')) - .addOption(new Option('-d, --day ')) - .addOption(new Option('-p, --part ')); - -program.parse(); - -validate(program.opts()) - .then(result => { - const { year, day, part, language } = result; - const initialState: AppState = { - inputMode: 'sample', - answer: '123', - output: '', - year, - day, - part, - language: LANGUAGE_MAP[language] || 'python' - }; - render( - - ); - }) - .catch(() => { - process.exit(1) - }); - - - - diff --git a/src/utils/executors.ts b/src/utils/executors.ts deleted file mode 100644 index f165078..0000000 --- a/src/utils/executors.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { execSync, ChildProcess, spawn } from 'child_process'; -import { getInputFile, getSolutionFile } from './misc.js'; - -let childProcess: ChildProcess; - -export const terminate = (): void => { - if (childProcess && childProcess instanceof ChildProcess && !childProcess.killed) { - childProcess.kill('SIGKILL') - } -} - -export const executeAsStream = (state: ExecutionInput): ChildProcess => { - terminate() - switch (state.language) { - case 'javascript': { - return executeJavascript(state); - } - case 'python': { - return executePython(state); - } - case 'go': { - return executeGolang(state); - } - case 'java': { - return executeJava(state); - } - default: throw Error('Unknown language'); - } -}; - -const executeJava = (state: ExecutionInput): ChildProcess => { - const solutionFile = getSolutionFile(state); - const inputFile = getInputFile(state); - // execSync(`javac -cp gson-2.10.1.jar JavaRunner.java`); - execSync(`javac -d src/drivers/java ${solutionFile}`); - childProcess = spawn( - 'java', - ['-cp', 'gson-2.10.1.jar:.', 'JavaRunner', inputFile.replace("./", "../../../")], - { - cwd: 'src/drivers/java', - stdio: ['pipe', 'pipe', 'pipe', 'ipc']} - ) - return childProcess -}; - -const executePython = (state: ExecutionInput): ChildProcess => { - childProcess = spawn( - 'python3', - ['-u', 'src/drivers/python/python.py', state.year ,state.day, state.part, state.inputMode], - { stdio: ['pipe', 'pipe', 'pipe', 'ipc']} - ) - return childProcess -} - -const executeJavascript = (state: ExecutionInput) => { - childProcess = spawn('node', - ['src/drivers/javascript/javascript.js', state.year, state.day, state.part, state.inputMode], - { - cwd: '.', - stdio: ['pipe', 'pipe', 'pipe', 'ipc'] - }, - ); - return childProcess -}; - -const executeGolang = (state: ExecutionInput): ChildProcess => { - const solutionFile = getSolutionFile(state); - const inputFile = getInputFile(state); - execSync(`go build -buildmode=plugin -o src/drivers/golang/golang.so ${solutionFile}`); - childProcess = spawn( - 'go', - ['run', 'src/drivers/golang/golang.go', inputFile], - { - cwd: '.', - stdio: ['pipe', 'pipe', 'pipe', 'ipc'] - }, - ); - return childProcess -}; diff --git a/src/utils/languages.ts b/src/utils/languages.ts deleted file mode 100644 index 505aea3..0000000 --- a/src/utils/languages.ts +++ /dev/null @@ -1,39 +0,0 @@ -export const EXTENSIONS: { [key: string]: string} = { - javascript: 'js', - python: 'py', - java: 'java', - go: 'go' -}; - -const PYTHON_TEMPLATE = -`def solution(input): - pass -`; - -const JAVASCRIPT_TEMPLATE = -`export const solution = input => { - return null; -} -`; - -const JAVA_TEMPLATE = -`class Solution { - public static String solve(String input) { - return null; - } -}`; - -const GO_TEMPLATE = (state: AppState) => ( - `package main - -func Part${state.part}(input string) interface{} { - return nil -} -`); - -export const TEMPLATES: any = { - javascript: JAVASCRIPT_TEMPLATE, - python: PYTHON_TEMPLATE, - java: JAVA_TEMPLATE, - go: GO_TEMPLATE -}; diff --git a/src/utils/misc.ts b/src/utils/misc.ts deleted file mode 100644 index f95d2a0..0000000 --- a/src/utils/misc.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { EXTENSIONS } from './languages.js'; - -export const getSolutionFile = (state: ExecutionInput): string => { - const file = `./${state.year}/day${state.day}/part${state.part}.${EXTENSIONS[state.language]}`; - return file; -}; - -export const getInputFile = (state: ExecutionInput): string => { - const file = `./${state.year}/day${state.day}/${state.inputMode}.txt`; - return file; -}; diff --git a/src/utils/prompter.ts b/src/utils/prompter.ts deleted file mode 100644 index ecd0577..0000000 --- a/src/utils/prompter.ts +++ /dev/null @@ -1,60 +0,0 @@ -import inquirer from "enquirer"; - -export const LANGUAGE_MAP: { [key: string]: string} = { - Python: 'python', - python: 'python', - Javascript: 'javascript', - javascript: 'javascript', - Java: 'java', - java: 'java', - go: 'go', - golang: 'go', - 'C++': 'app' -}; - - -export const validate = async (opts: any) => { - let { year, day, part, language } = opts; - if (!language) { - language = await inquirer.prompt({ - type: "select", - name: 'language', - message: 'Select programming language', - choices: [ - { name: 'Python' }, - { name: 'Javascript' }, - { name: 'Java' }, - { name: 'C++' }, - ] - }); - } - if (!year) { - const rs: any = await inquirer.prompt({ - type: 'input', - name: 'year', - message: 'Select year', - }); - year = rs.year - } - if (!day) { - const rs: any = await inquirer.prompt({ - type: 'input', - name: 'day', - message: 'Select day', - }); - day = rs.day - } - if (!part) { - const rs: any = await inquirer.prompt({ - type: 'select', - name: 'part', - message: 'Select part', - choices: [ - { name: 'Part 1' }, - { name: 'Part 2' }, - ] - }); - part = (rs.part === 'Part 1' ? 1 : 2); - } - return { year, day, part, language }; -}; diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index 1538e83..0000000 --- a/tsconfig.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "extends": "@sindresorhus/tsconfig", - "compilerOptions": { - "moduleResolution": "NodeNext", - "module": "node16", - "outDir": "build", - "sourceMap": true, - "jsx": "react" - }, - "include": ["src"], - "ts-node": { - "transpileOnly": true, - "files": true, - "experimentalResolver": true, - "experimentalSpecifierResolution": "node" - } -} \ No newline at end of file pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy