advent-of-code

advent of code attempts
git clone git://bvnf.space/advent-of-code.git
Log | Files | Refs

commit 594e0a238dd578db565948bdaaee57c252bbc142
parent 5d71e62e1816387739ff6156624f42ced14c92ed
Author: aabacchus <ben@bvnf.space>
Date:   Sun,  4 Dec 2022 13:47:40 +0000

22.3.1 in python

Diffstat:
A2022/03/a.py | 13+++++++++++++
A2022/03/example | 6++++++
A2022/03/input | 300+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 319 insertions(+), 0 deletions(-)

diff --git a/2022/03/a.py b/2022/03/a.py @@ -0,0 +1,13 @@ +with open("input", "r") as f: + l = f.read().split('\n')[:-1] +x = [] +total = 0 +for line in l: + n = len(line) + x.append([line[:int(n/2)], line[int(n/2):]]) +for line in x: + for char in line[1]: + if char in line[0]: + total += "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".index(char) + 1 + break +print(total) diff --git a/2022/03/example b/2022/03/example @@ -0,0 +1,6 @@ +vJrwpWtwJgWrhcsFMMfFFhFp +jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL +PmmdzqPrVvPwwTWBwg +wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn +ttgJtRGJQctTZtZT +CrZsJsPPZsGzwwsLwLmpwMDw diff --git a/2022/03/input b/2022/03/input @@ -0,0 +1,300 @@ +pqgZZSZgcZJqpzBbqTbbLjBDBLhB +wHptFFsHttHFLMDQDFTbbj +fVfvsstwPHwNwfNGfHWRSnlpClcJzCWCzddSrddg +bdgHbZJHgMHgJgJctDtVssVcpFtq +rNNQqBSzTcBPTDsP +GWNNrhGnNnWNzRfnRQRbhCdqHMbdmbZddbmCmd +BSBDzrSwrqccDDwbfcBjsRwggClslTRWGWGMFlsF +dnhVhLJtzNZdgCRlsTGWCRJG +ZHZdNzptLNtPhPdnprPbbDBrSqrSQPjbqD +rlSwlrGvwTTSwSggCJGQJdhVgJGQ +jcrHrMWfNHNzQgVH +WbfjmBMrBrrmLtqMbwwsPTvPpwvBPFPsws +NRNcHzbzbMRcNPjPrrlBPlbtBl +CZwVCCpWggqprwtlHlssHtPr +WpmLghCVCqCnmVTLnccRQvvQQHDhNQzzzc +NvGTmNGDJsrCmCWPHpCP +nqfVfnFQnZQfFqzMZBPtppcBPPCBptcrbF +fhRSSVfqMZZhMnQfjVzShNNlLvldsNDdvvljGpllDT +JGRNWRGJbGmCGRbLmGpqShhcQpQgCcncScSQ +FFdtjvvpvVFnQhhnQhgf +ltvjjtjHlzBtWRmNPLZRHLpH +FFCJFsvgLsjLgWzJFWJgGwBDbwnbwlDddqffnjnlnd +pTpTMQpMZHQhZQpHPZMmTMlwhDNNddbnDqdDwwlbVNVd +SHpmrHPZHQpmvFrqsFvgCsRq +TtWpWhQlVZrVptJhtrtdbLPDPbjFbCCWCvFFbLSN +zMGlnlsgSSvjjGSF +msznlgcwMnRwznmBqTZQJrddhfQJtBJtZQ +mwTwLftmqqSHWfCfLHjWftBthNNNVrlcFRVNrNrRTrMgrRNg +pvJPJQPGPPzbpVpVlMBVchFl +bzQPQbQQdsDZPDGJnBGnPGnjHDttqqqqmCjftLCmWmfftC +ZNpfdHcccTfdwfMFNjBttMgMbBnvlvjBmB +QVPsGzhbszRLRrgvtgjWgljlRtgt +VJrVLsSrzLzGPChVGzbrrfpTSHFfDDHSdpZFfHpDTZ +NPpvDbmbsmdbNvQvDdWQpmWSnnQCLBnCcQSCnnLlwCBlZz +jggrtGTFhtGfjhDVjrjgMftFwnZcwwBCnzzVwBBwSZcVwLSw +JfHftHhgftgFJWPdPDWRPDvPJv +ZSLLZJGglDSVNDGGGgGgngGmHrfLzmHvvjfjwLhHvLfHHr +QqFWszFMTQFdFPMqBmWBHvfhCwCjhHff +pTsdppTMPtqqdbnlNVzJVbSSnbZR +gBqDccrrJDwmpTWHHTdWMPWWZFHF +RNfnfSwRjlLSWjQMHWvQZtvH +GRLbnzNnzVRLCqhwzwBmJrmc +CcGnZGnGlRncsspmFmmcmGRJJzCDTzjLBSDfqjwDDzDLDB +hHrNdPWhrbPdhPgVWvvrgWdfwjfNzSqfqjLqzfBTzJzJTz +HHQhhvMWbbdRswmlsmwsQc +rrwhpZPrccRpQdcFDJNqhtqtqMLhqfMh +lTtTllgbzTlJsmDMvbLbsf +VVWBTgzlzgGnngrtQRQRtCtwZRQB +HGnGvVdLhlFcmvPWmT +jwBLqZgjrtjqmFsQTscPQs +ZBNZtwLwztLpMrfZBLMdbdnfSRVVfnGbnfDVGh +LmBBBzQrBgBhmmggmtdVdhJNMHNdhsHNDd +ScSZbRplCcMnSpvCfCCZcpPwtJPNtHPHNVVNtPddwlNH +CpvpZGfnffSpnvRSSbcfScQBWrMWmjrmFFBzTGQWjMmL +sljSjSgsjcCLllsjVgSjCtspQwvNNhdFwFQvwpbtmhwhpN +hDqqWzGRHHfRrJnrWrfWfHBdFmBFmBbdBGBpwmFdFpww +TDnDHZrWWHhTjPClClSP +wGNQGQDGjqqmwHHs +MWvvrzgfsdWsvMrSdqJqcpgHgnqLFLnjpH +fvsPMsPdrTZhChNDhbhPVN +sbMgDDtttVvpMtcJsgcGGBBfGLBSLclQTGPS +CWHWzhhRRHjqRmSGPfBSzJfSBnBB +HjjRHWFWhRRwHNmCCRHhhFdNDNrdptMstJvsbMDtVptd +RnSwRsLsnSswjDDDBJPrJv +cpzCzlczHTJVQhvBQlDVDj +WmGzqTmHSsffqqnJ +vQSPHMwpmpQMLGfTPVLRPRVP +hsWhnncsJqbGjGfcfBMMRR +sqdNWqqghbsJslgsJqgWllMWDppSvNCHQHDSSHrHrHCSvvCQ +ZWWnWMmmndQZmffcdZcmssQqrsptVwwTtQHTCTHH +SvvrPzvvFDzGzTszpGGwHT +vrRLjjrPhLjrjPDSfdcMZnmdcmJcfcRf +HpqWhDJjzmcTSbmMBVBb +nCzfLtFnZZrcbcVVfTBfsc +FtRFzgrRtnRzrFwzDjljpjgHNJDlNlhN +gtNRRSSrRmjshHmm +PQDMwPwMppcQQcvCFlhLhGmjflctlnHGjf +QwDMFFdtwFDQJZZZNqSqJSqBgBqTNJNg +cddzbbzQflTDcDfRbcfbJVsplVsChNghHNsSsVpn +FBWFWjFFCjWPBSPPJsVpppPSVH +CrCwvjWvmqmvrBvFwZRGQQDDcGTcfbddZdRc +ZBQqdGLFmmzDmTZz +PvrVMvGgWmwSmllglS +NrfGnvWWPhfpspsGvLJBsFBbqJCbdQcLBq +DrwTrlfGThhQTpDdWSWgdgwLLgBSZH +bqbPRVRmzJCLWSgCzCLH +jRtbNVtNjNqRqsJtbjbMDQHQGlchfQpfsTcHpGHr +tMnRcnpDcZtpQDSCCsGGHvcGPGqGsr +mzJmjWJNlbfmbhzVCCPmZrCZqPGCgZ +JWhzjJBdWnMLZtSBTw +tvdLttzvtHLztnQpssdTPbMqbqMTdTss +jhSRGNjjSjhSDCNhRgRgclNjmfZTPnbTMqJJfqqsbMflTfMs +WnCjcjDRCChSNSCNDjNhGVDtQvVLHzFrpFwFrHFQQwQpzp +fLbLLLLQhVPhBVmDwmCfwsdwwDps +GNtctFTSrrJqGGpHFcTJFTwsslwmlmWsdsqRRCmqwdWs +ppctFTTSgHcSrGrrTGFcrrnhhQbPLbQZgzLvQQVVvZvLhv +mBBWnnBbBCtssmRThRDllR +wfwFQcpHFpddFrwpGcHSHdcjQZZlqqDTTjZqssRhWllssj +dWfrcSGFpgrSzFgMbCPNPLtCtVMV +llLlGLJJMjJMGVSvVMSLRRHvjCZtgZccttnmbCtdCcmCCztn +sBQNqPhsrrqrrwrsppsHswsZcmnNCzdZtbgntcNgcctnCt +WWFBBsPwpWPwBBHpFFrWGRMRLlJfJVMJRJLWSJ +vgMvQnPMntnSQPSgMvSMpNJfJDNNRpfZmGQmbDND +HlbjHHBLjCHGZGpfJLpfwm +qdHWqBbbbjrTzdqFqssvtPMSSFFg +TGDfDHSgtTzPPbnCtnNtVn +WQrWMFpMWMQbCVNPRWVWWv +pdpMMrhrprQshlMFjZpdjZMgmlGJJGlGDBmgmHgmJCSBHG +zWWBjZZjWPFFPPnBCVdsqmnCdSLn +rJvpbvbpGgTGrNJGGpRRhsCqSsLhnsmTVnSLTLHh +gNNNJDbpvGNfvNSDPPWQWWPZZWtjlQfc +RRVbWWWvvZVWmsFSsDNbHsDSsg +CrTwJQJpJpCCwvlJQTTPsfzDgfwNhszfszFhzFDh +ttQJtvjpPvcqTllJTPtPRGMGRGLWdVZLVZjWdMjj +NnPCTQWMMQNNNWwWnMzpHczzsZcCscddHdGs +mqRgqqVlLgqmfVzcGpzzSHGZcgcz +tjmZjZmhqftlJRJhlTMPTPQbrPBBWnhnnT +hvTQqpvTqjvhpjnCqmCnSDSFDWFFLSSSWDnSVL +tZwGgsfPcltgcZltRgNSDSSSSldmWMLWFVHd +GrZtwRPbGwwPcGRsZGtRtgQJJhCjpzmTBTvJzJrjvzQp +rwmwqDWwfDtztnFGBB +LPdpdVcdPGvPVgZsPtlhTTtthHBhHF +dRdCjvpCRpjvCMZgvLgRVJJSWMqmbwQJbMWGWQNbbQ +CMCcMcDGzBGPmBmznTNbnGbrswNTwTvN +SSHVWZphqWWJJzNsbnFwFVNjbz +flLQqHzzgtQdcDRB +mdzvFtllBgFttGnvfMwMVRRZCThSNZVhMd +pDTrDHjWWJPqjDjDSMqNwSZRZhNSRNCZ +jpcTpQPWLLpDTLcTrPjPDcjzzFLFzvgLzlzfvGFgfmgFzF +fQVVPzBpFVVrtrsJ +PldSLNSmWwMCcCMMcCNN +mSPlldllmPdRnLRwmbnLwmwvTjBTghTHQjfgjpZHpfHHfZbZ +pmfMcfprMqMrZZJcMZMGWTsFCVCTVPPsVTWCGPDP +vrvvvLRbBNNBbvBbjBHbQhgDslPTWsPTlFDsFTFwTWlDVQ +hgjznNBjHHgrhRHgrRLRnRfSSJmdqMfffzqJptdmmmdd +nRnPlCRPWPMFqwPLwq +tBGfbSbHtBVQgrbrqfTFFLvTNLLNGTGMLdws +bgHVtBDtqnqqlJRD +SdSJrHssFBSVsNtMMdRWnTRhRl +vcvfDvgvcwvFRlbnwWRlMhtn +DDDqcqFZQPgcgcfvDjLDfVrsSVrHBLJVpLpCSppGpS +gJGTFLTdrpLdBcWBvnllvlMvMC +RRqbbQhwNZZwQRPrSZWnvHSZWSvSZC +fQDNRsrsQzfbDrbsqwdtpgJVjdJdpVfJFLFF +DzWqFvqpqFSCSzGRGmwfntGjmR +cbhZNJQBtgMHJbJcNcrmfhrRrswmfRwnVrhG +bJNgbNdJBBPMHbcMNMWWvSFpDLFvCStqpLdv +sLsHTsTbRLRwqssHwHjFrPDwJDppzFDJmmcrPJ +BnZGBlMZnQSgSnvVSMmJzPDCzFcrLPPJmpDG +BgBffVLhQLgvnBRRssfqdfHbHdNT +HRPVmjqBqVjVRRPmcPmJjbDgLDDshbfRLlfbfLbhlL +rtTzSMSMFpTzfgDzzgsLfLHZ +rNpGpSSHwMTrrdHGNtTPmVjnGGjVjmBGmmBjJB +DBqDQDQHSFlHsFnN +MfLfwwLMWGLrWMMnpSlsnGJJlbFVjV +gRhMZzhrFLWQvTPqTPcvvh +NwwsHwtnFCtzcPdbvrQbBqclQq +VmZLLTLfVpwMBrVVqqMM +mgJDjTgWgLWDppJZJTWZmSRzCtRHhGGwHNzshGFFCSRt +RGCCDRdFZdRCMzzGCDGCmGHMfqbNNNLQLfFqnnqnNQqVPnQn +glgcrwrJjJccBwdSfnSnVqrqQVVnNq +jvtBsjstgstjltBcWzTGGddHTWDTZCmDGm +HJHGZZHnctSSDhZtmZ +MjjQFSvQlRjSdRqdqvVSqCCPtpRpPPDfDmfPbbpphC +SNsWqMNvFFqdqVMgwwBHrGHnHgcWTJ +jBcbjSmSBbbCcPcMjmbzFPhDMDfrfGRhGQRMnGQfdrDh +wHlqwlqpwZqcwVlqHtJVJLTdhndTDnhffftTGDTTDdTG +JNllcwpZZlpZJjNzSzSCNjSmFN +FhwRPzmPWmQQmwFPGGMGGRPnRHHVfDbvJlvDlHSvDTDfVHbD +NpjcpCdqpZZvwvJVfDdDHT +twZtqrBrBQBMBPGn +fBFGjbLLFblmbWFmVfBvrvMdMdncnrdNbdQNTr +shZHHRZhtsqJZhHhgZzgJzVJrrSSvrMdMQrNTvMNJQNrdn +szHwgtHtwPzPLpVFpVPLlfLC +mrsrtrWjljjjvwwgNnZfDHJDqTqrHL +FccMPFQcpczpdMPhMqJngNfqfnFgDnnFfg +BdMpdcDPcpjBmlBmVWts +VvwTTlfVlblwwSsbfTdzVqjhzVjpjjqjqpzV +rwCWFGmJrNCmMRHmwRFPmHQQhBLBzdLqBjhLBHZdQB +rFwDrMNRJDJFPRmCvcTcbDsvstTgfTsg +zhRzdRRChHCFGPDRvWRWvWvHpZpscrrmrZrJcmspJmJZFfpM +wQqLtQLtnjbjVnVjbBgjbBnbMZMZJlVpZfJprsMprmGZZZml +jQjjNBLLwjtQBtwwdGGDCHhNzzWDzTPD +DzzQnCMMznFnCdnFFlHtlmhVRtmVVmVhSF +PWrPPRTfLJJtfbtBfV +wsrggZsTwTTWGvDppQMRjjMCjMZp +fTjzZVTlbffCMvjgMpSFWBNBWSFsvBsNNccF +nJdwdPRQqGqbGJQbmmQQhRSBBBSsPPHWNSWFBtDNBsHH +nnQhwwQGdLqqwnZbpfjMfzpzLbLj +jgTgCwgjMgGLhvRrHrHwhvhV +bqSsSsZFZBlFsBlTSppVvVvnVHHvHnhp +qFlbPbFFsWFsBlFWbsbsmzTcMjLmtfcCmcWtgzgm +rrHbfBLbfMcghcmrcCzg +RDStDtvdZRQdJSQWWWdvFSgNvVcnghhmnnzhVPhczPch +ZtJpJttSZStwtttFDQmLGTlqMLqGfwTTGLfTGG +MrfLWwfBwgghvLmNvmHHHGGQHQSSscscVvTV +dDjZjDPJtFRzjdTTsqVjTpqHsGrT +JbFtlbPRJCzffBrgnlMWmg +ZFsbbVLLdZppLFpcJjCCQJlGcQCMZq +TwRtRBdBClCTGlcJ +rwBvBzDvwNNDHLHzfHssdHhS +gdhgftTNGTbpqJqjjgRJ +lcBcMLFzMzLFMzFzPjRBQjQPQpSqhpbp +mzzmZHZZnZwLhtGfddVsNCCnGG +lblbPGSGrTLRwqZLvP +FffCCFzFCWzzvmjRJnRTnZZNJCTqCR +gdhztVjhHMsGvrGVVB +ZJZjJGHZhDJRFJHjDZjhPNFgFmrnVmgVVzVBscnzSg +bwlWtMwtbqdCvlQCplmsqgnVVScnVgmnmzNs +WMWltTtvvCdwCCRPPfTHGcJDfGZL +svqQJLvSSZrZZZCFCBDPDCMTDpPwMWDPCwRw +GnlnGbdldjhzzhpPDTWjmtMwPmWW +HzVbGnnbchblbnbzcQTZBZrQrFSHvLBBJv +MmgMmVpcRDlvbvpHJF +GSGTLTwhwwhzQqTqwjFlbdvdbrlrbrrDnDvHlQ +zLNNNtwGFCMsWsCWNR +tSTDDDftSqSsTDnTtCWNrbFsNJJvbzJbvJ +dhRdVHdMGRgPJbjNPbzgvr +VllQmQdhRHLhhHmLlGzSqSQDDcDBnnBnqDfSct +zBzJWZBLZNNGLsbTvLbmbT +QdtQwfdnPdPTbsRQGhRvbl +pgtPgPjVDnpVnDtPTFFrJJTBCcpcrpCW +GnWMfBfdCGMbjRNpnzvvNLRNVv +FShJDJJscwwszNjvNjNNqZ +tJmccwlcFlFcHlPcHFfdrbBGBGfjCGTfBCPf +GhlcQsZNQZWhpcGhwlPmqnnqnjJjLRnqzJsJLJ +VTMtTtDTbvbMTfvdJqngjmqzdjmJjCLm +vHtbHTDBFvffBPGwLLZBQNNl +bDphJrpbpnBbDrdBvJdDFBMtMlfgtsFSstfGPPgggPGP +RZmNjTZQNVHQHNGSgMsfPlShSs +VmchTLZQLjVLjmTVmQVhTmwVrWJqbDqddBrpnWbvnqrqcnJB +jWWgThWtgSvSSWlJtlShllPcHVnJHPbMHPcPVPbVZrHM +fGdfRsRdNwfRQhnpcZdVhVpbPh +fGhwNBqNjqStFqtj +TSTBrSDlQlTDrrQclrBSLffPvcfcdVjVMGGPLjLL +qnbnbngFGhhhPfjjVffjff +RRWbmgpnmqlrCwwSrwmG +mZZTsdBZVZBZLVHdFmsNnCrCVQQbWvWjWNCnbg +QSffDGwGGrPGWrgN +hflwzltflDpMpDSllcMDhSShdsdZQdLZZdHTssZzmqLzFmLB +LLRJRshLfsJfWnLBTlTBlFzNrnrBBl +qmmVwmdHqmqGHZdHbbqSScdZQTjjpTFFVBBrlDrzDFBTjFjF +wZZwmcbvHgqTmGccmvdCLhCPJsJCPWgMLPtJsJ +TWbbbNbJJjJbqTjtJJjTQCtnGSBndMGCcSZSQwCB +mcfRfrcmrDRrPsdQSGZQGnsSQMnB +DDRLDRDFPpgmpcgPghpfgvRTjbhTVjHljJjzlVzVTlbHll +rPlPrPllBGgJgdJfHgfjJt +pppZVfFDWssMfFVVFMpsMMVmHCRLdcZCRtvLRdCtCJdHRttH +mDMfDFDmnMMmsMFznDFpzswbNbPGwwSGBrGrhrTzThSl +qDNFfCCNWLfWWhqhDGPMMZVwgpCpMbJwJCvV +RdstRRvdtmtPVpppVbVtrp +zzncSRdsTdQTczQBsLvvHNhDWGjDHNLDSG +bNNpcfJcCtNpHFsJsGGjLGzmLjLmGzlFGW +qwqZdnQnQwnhhzmnMWjmNlMzLr +qhwwQSwStJbHNftS +WlfWSwDftzRltBWVlRDlsmBJPcsZPmcJnmPmFhrn +dLQbQbvGTddTvbjQCbLbhmCrZZPPsshPPPrJZrnF +QgFjQHHbMvdRMVllSqfSlf +MDPJBWWPggVlPVDMSljdZNNpwjwbHZpNbDdH +mGmzcThGrtntHhthzGctRbNRNwRNzZwfdZpjpdRj +ThtcvvtThFcnqFQSHgBSVJll +hVqhFLBngHVFtJjtLCBJVSbbPNNbSmfLLTSNSrrLTb +vsdZZpvQdczlMdMvzlcvvdQprbGGTfSbWmzPTgmmGTbmmfGP +vgRZZMgwdgsQZdMBqVhjhJqBhJtRhq +bgFQbMMbTbQhghddFTFGnmSmsNdzHvzSSzlcHsls +fZDjVtfZLqwpqtCfCjCjlvqScrvzqHSzszzSnczr +jpftjCfWCjCfCRZZlpCpjRWQBRTQQbgBBTMbghgbbPGJBJ +VZZrbBVwbbbVVvgbntnggNRJqRRNNccMcNqJcJ +jfDPfDdGGhDGfGFPCcZQqMpRNJhqTcMc +LPfffPHGPDjPFGWSdHPFjWtlBlwvlwBlbtmLltsmvtZb +TTfJDfrJTSrHMcVMJDTfMcMDBQBPwnPlznPszFVBFgzFgnsn +CqtmWNNGBPzwbbwm +htdCthhWGtWWGNZqcZpJjwwHHHMcHZDM +VvjQjQCZLbbSbTPpSHtFzsHzppMfzz +DJrJWBcDcWJWmmcgGRGRGWGDzHHwzdfRHpMztMpfdFdFdzdM +DmBgGDqJNhGcccWmcZLjTPLVLTQhPtvvTZ +qfhvwNDQqwDGdGZZGwPTTw +STsJgsRtJMZPjlsmdpbs +SCTTHTWHNVfHQqqq +djCDgllgjJjDRRNgRlDdBgtpQHfhQTrLLrGBtzrQhpBH +SVcsMGcPSbqSPmLTPHHQTHrftPTr +VcWnsScqSScWcZbMMcSVGbNNlgDRlgCCNgwWvvRJdNdj +mgPllfRgvNmPGQGGsmQNWlpFtnBPFShncTFShtFShnjS +tLLzMJJwwbbdrrMLqLVJMzVZFnpTTFpnCSSpShCjBJhpThph +HMdVwbbLMbDMDVlmDsgtNtNRfgsm +hNsgsgzNZRghPhZBdssPQfzDmQSmmzQGJWzfCDJJ +bblVHvvHHTljwFCfGrvmfmmJBmGQ +THMMFVwqTPRdZptMBP +QvcPGSvQLjmcQWSGWWGjLCNhhqpCdBCNCbJNdVWpCh +rwtLlzZggLHnHlwHRDdVqBbCdqqVVhbqVnVh +zRDzwRrwlRlRTgrDtllmQGLcPjGLccFmTcGSQc +RWlgQlbcWBwzsJggTfhh +GrnLjHLjmLjjGSLjSDmfJJpfThhfSWJPqJqhwz +vLvDDnDNrCVjCmNDbFlBVZdVRQlRbWcb +mTlwFngwmlLlvsmLHmHsLJhJFfcbdpbNcjCNCbpccb +tZRzBRzBBRQzPqGRqrVQtjjfbCMcfMfCMMjVjfCJNd +SDBBPtZZTdnnwSvg +nddNNMMPNBnBNnBTQSShlSHghlDHBr +VcccVmqJsJsjlTmzTDggmHHT +VqLtFCqFJfVtVjsNgPNNMMWNwgtNvn