High-Entropy Passphrases


Fork me on GitHub
2017-12-04

Day 04: High-Entropy Passphrases

Description:
--- Day 4: High-Entropy Passphrases ---

A new system policy has been put in place that requires all accounts to use a passphrase instead of simply a password. A passphrase consists of a series of words (lowercase letters) separated by spaces.

To ensure security, a valid passphrase must contain no duplicate words.

For example:

aa bb cc dd ee is valid.
aa bb cc dd aa is not valid - the word aa appears more than once.
aa bb cc dd aaa is valid - aa and aaa count as different words.

The system's full passphrase list is available as your puzzle input. How many passphrases are valid?

--- Part Two ---

For added security, yet another system policy has been put in place. Now, a valid passphrase must contain no two words that are anagrams of each other - that is, a passphrase is invalid if any word's letters can be rearranged to form any other word in the passphrase.

For example:

abcde fghij is a valid passphrase.
abcde xyz ecdab is not valid - the letters from the third word can be rearranged to form the first word.
a ab abc abd abf abj is a valid passphrase, because all letters need to be used when forming another word.
iiii oiii ooii oooi oooo is valid.
oiii ioii iioi iiio is not valid - any of these words can be rearranged to form any other word.

Under this new system policy, how many passphrases are valid?

Input:
una bokpr ftz ryw nau yknf fguaczl anu
tvay wvco bcoblpt fwzg sfsys zvuqll mcbhwz ovcw fgdy
ynsocz vid rfmsy essqt fpbjvvq sldje qfpvjvb
yvh nxc kla vhy vkbq cxfzgr
kljv ymobo jlvk ebst cse cmlub tavputz omoby psif
ebfuvvu paqgzri uvvubef hglk jvn gzeln bdl ziqgpra bzcfa
tclq ytw tclq tezcqys
qae eofr yzwcwqf wqm ytcdnc pxnmkw
krryi irykr ycp lbeed ykrir lhq rdd tyujwd
hms pii lxoa dchsvz bepjwst bllxkqg hsm yrdj myzvju msh lwnnc
yxqh hqxy xkn ljjsqjh jjljshq
mhgsehj urbvnvf gbz ykxsd hsmgehj wtoc ujpfaos eir vifog tsy kdo
wfruf wwijme pxbbsvf asmgs ccbn vwtc mkhah oxxfh
lxqy jzvcvd cfgg uahxrwr dqmaqr bwzm wruxhra lrb lmk
jspgxo yuhgni njzqtn zglkzz ybc itj orqr zgqwuoo mjagh erll srqrk
cbrtnbx ukblei ienmdm sinzq lytyliz mma lizylty zeumwgu
aeggz eljcry buqdeog dvjzn ilvw arz vep kxdzm mvh szkf
imn sfty ugg flqq nydky mni bkqzlok wye lehwlmp xeyfmj
beyv oamrpkc tebdkwv zlq jes mqvif sej qpsnmjz edvtbkw
hylmacl wwlra xntnvg ppvb bzof cymllha
qktxomf ngfpuz qqz malc zxuqz szg zis vzro rfpgk
phru sxlg qzqlw uej vmd omzga jue
drzgojf ttqdqar weikik wvrjtxi gbj jramqh nlwoj drzgojf bgabmn xqlaeun
aiuohu pca apkmv cpa kmvpa nmdn
gelymv eto itcnuhn ote teo
oxiz xzio kqu wwgow
picoyb coibpy acsw ehlirq deyz gymqvz opicyb vuet lrl
zerg rezg miwtjgw gezr cui
mlh qlu ktil tnlgnrk bfqbk pgg qxeyd noadmjo nonlsh eqxdy
yqqaq yqqqa xod oss
mkotw bznvs xowoofq sebp wsgpsmn fytcpc vvmzr vmzrv xwtxz zrvvm
dvs twhz teqmlow oqg sjetxd aku cwl qfvrkex mndsio hfg
itdl qwdagkk wli tdil vlgur dyl xvfm
wlmyd dwmlx zhmqd zqmhd edzsvmz yclg umpq
petva gazw byrca pvaet epkoqh nlp vqfl vatpe
rykn ckr dijkme kmiedj ozlh deikmj
kuecjh sfqv pojfzf fjopzf fjpfzo amxtc
hri gglmial lrwbyc memgszu hir cfwlg ylcrwb
rxrfbtv pwpra fngt auh rapwp zrruuq uah
cevc utfd ysrfcw nnlg fnqtx aua htteunu mrjhhj
tvnxznj mvpagt nqmxvnl mutn ntmu eybh vkqeaj frayclp
ygktzxo lzwwy qsipu nwb jdmw pahao paow mwjd uivqbnj woap nyyogcc
log zihz rsmx ixfr xwvd osg zxc gol ufnbig
dogve cnb osa xbafl vefr nxlw yjgquui
ucyl aaoae ktjvi fyps xvjhpbh iiur tuc
pqt jasxg ehhs lzjzzzl sqmmj vwyva eklbtv hksanb fuesnd oyw fuesdn
uankv wesi frhpau qiucu lim uzbdapf ciwjd tifbqxh tfbtsdi
vgjd izpofu fqjpcct phuz
cfg cfg rgahl frm emn pbfsmgy frm jemwqgn sfpm azunntj igl
daps hpe fqg err sapd dci vbzlqx gsigq eyp rre
iuqyqdy djprdj mgtkdxr pwmkzv wmkvzp hppisd pidphs
rlr rrl vhevh cucprc xki urte lrr zfc xrqydzk ipjkyxj kytul
jwbkaee rgyjl rjljbwe ppq plp pfts ijd ckpvmw mbdrqh zolt lzmr
alw law awl wknavtb esklsbj wvssyai
aqy ldf qdht soxkg qtfipe nsdm aqe rtlc fbqrk ius gybbhxr
xteov wgqoqim nlz szlj oxevt xwb
tmgdst fyn oul tsohzbq ltmxji fgops gatssx zxdzfc talb
zkvjpu jnhtc nxs jqv pyoqz zsj ckwd xot ykai
fxfarre yjbxvj lqfaglo mbxuv bmuxv bxumv
yrhi uosldj hryi fwres ycygw ycvxze zevxyc iyk
yphev xisbai xdb hzrbg ayxbhdx qnvbus pwc
wytqraw yvurj erqckl rvrvda xsh gsd bxtm acxle gpndk
kpvjtu vacggk oabcuoq qusf zitqpgn pbyq ocabouq ntpgizq gaiiry dke
frz ceozajo ljltawq tjepzp iflv
zntejm dkfgc ysno noys sony muy
qdnyvvw oykq bnmldt zjgauw pviurd cbcnl tnkhq ebsey bccln arvwe
iqazt xidjgom wcrdz itht lfh ifzwkj rwqxhy ervcgmt vojg lzntz ezg
tlcxioh qvvkan wpi ody
mhsy dwm hyms yegvvc
hbkvi wvemc uwxgqf pwrgu wcy wxqfgu qkzppc vxcwdwd rcgp ivjd wmevc
upc ucp cpu unmr pyod
bqfew ebwfq paccwh phgc fchhr jrnio
abh bjalls bdtac zzvt totdlc yptqmgu rpcin bch cqklqly
bsnss qcsgi tegyz lqoqkpf qvatlyu ibza mzfotsk lye oqqf mnor
lzrxca stkbn axhr wckbip bsntk ahrx
oricdw cnpte dbz nqx xloxc bdz fdsl uyvgi nvoy ezbi
nlcqye ofta jcvqvtg yxduyh btawc tjgvqvc tcvqjvg
nji znctdfm kkmp pmt ikhl jjoubc xnp zdctnmf covvmsh ydh ircplcm
yafkuk yasqsyt ytqayss nusgb ukfyka
yogcf emg jlkd blupemf axg wihhrb ysernt yznhz
gmc yyqtgp use lohoit
lclwa ojjkm rxr rrx
punyfv iphw ddbc jghx lrssszc bepexv sicpy syicp lszrscs vrqjb
rjanra juh hljdmad scu usc baifu ijs suc bgdbbv
ogs hehi lgiwowc wwezznc ogs lorcl naunpll wlmal ajcbj ciujw
slenm xxod vhf amhts
mrrduda mrrduda lwecwjv lwecwjv vvzmjla cjipv
ixnv invx inmzz aoxghpv
ulyvfrf zsup zfryjy xoo agdsd giw papa ljtu rzbjiq wrex
bzpv svpuyov mklrct uzox
fxs iypd uaqch kxazj ksjyv
uxaommf xtq uubbfk bmlq kdhgjzg oxwpag itfij irmkjx ggod sddcyo bopn
lch plmvfni qbjr dnu zjcod qlwax gejmyj gxjqm mfzkb gejmyj
yoa thrfbto wposvrm amulogu mcqzfax fjquli oay
kywj kqqhney ozuljxz wqwfte ubo mjj anhhg aphy ocfnef yhin ywnx
vxuledm wllj obqtsrr jwll uvmelxd xvj gbwte
hevc bitwu ydw ywd btiwu iuether gfe
dzn ssmfpel wbbdeyt xge hrfi
zebz ifhq euto ppfnrwc winkkj
utuly wtdt iahpe ihtxwmh zxun bqluj hsaxgcs ytluu jlfnnuv drxlctr myhp
kwxgy hreul rsnh wdmsx kkajywb
bond djq kccazc zvzcie hndm myx cmhyhkc ove ord dqj
zcong tekgn pbzs ywqgqgu eizrx ypydeku yqyjdjp dwsu zxire zcgon iggnvf
tkioh hflkm fsjz gisjbi otikh
ccdqqm fdabbne fyd lbyqm cyzgtd puitvjz nluf hirrpxd tgxrg vvl
hjnygbz fnu twwbp xqw pfdlt uoalyme rsd muayeol ezcq
kubeooi bxgwoun paogjs twvwlji opsajg higbdfi aazo evmj
sfipxe mqbkmrn plwqd zvq nmvom fyfbs nbs qkrbmmn eym kqnrmbm
ruhsp hurps mqws umm sphru
ksjs pgpxh qozg enplxbn oqzg rvjnaje sjsk
rbwbvog mhgtgg uld twrqz rbf kpop
lwho lohw ylhd dej lydh vsfffsm
icljgu gluijc vthqx orynv xhvqt
biav elxkct mtaw nlafk snyr cbqdwim blim rtrqmc wze cxktel
fgpeia ebkhga azlfsr bsj pipvwsd nry bayrjzl ftth ynr mfhd
ymlowur nighqgk yjv pyxf nan xamb ohm jvy owrxbg icbz
iyyt linaqu httt zyfeo udap mllq pdxo lpl djhqaou zkit llp
dxspk yge kcqjqpz ulb hoe mfx nwayo
rdnmmh gyqd qhxrzj dgizu lyittbv txngpdg fiu mwd ndp oks vxnxybi
eul ztpe evnz yxx iuwon rkbbsw liy mqhxt
qahp zwn ualtk txbt cbthj xchqy pirucp povdwq
mqwu mwww muiafa miaafu hzripx wmww
auw hyyi ylewfi ihva jknbrry voxzooq xaos xymv qzzjw hjc
enpb jqa ajciy cbeopfs tqrlqj ecudb gso cyjai gxoet
yohkjj yohjjk xapawgo rtgnjj
lnlxxn nxllnx vhjrev uoew zts smkd kynlrg
bkblpr vgafcy alju aiyqe eebtsyu buve hdesodl pspbohw
aacmw qpndwo tcwsfqy qecnms wondpq sto
wdsyxe edsxyw jnzruiw pfqdrhi
pfgxekl vswgxhb qyn mykn jimiatq zkcz jimiatq kaexgxm mykn
xegwn upudt dew uqjrcl abyof hbtiko wxgne sorgno etm
xzojs zxsjo szjox gumjtwi
gttngkk bwdgce bhuw fgo rcbf byw
ngtzwqx ptx xodmy ctmtf oioahmm qajlhje jzilpk cvypp ijaefz
arlx slcugvm hyuo zoptsh emyr tndx rroecp tdnx xea rtkpd
sfckdx ktyrjju ruwjtp zhqznj vncun
oqqh xpc itrdg gtrid hoqq tuo yijh ncp suvck jic
brrlqu twdt urblrq twtd
brfuh arwtkpu mzlj wdyqk
pmag dtwnva nect azld axqrwy apgm xbv gdq ienubsy andvwt
hqb qbh gxdl mwjn cmfsmik
yiwma utlor qxjfjsn aomlvu gxp ryj rfkdsw kuguhyi qxxpg
ifq wcvcgly jdalgzx lgcycwv rajmnqw
latakk yxxbw evy vey
odkvw ojgveb jhg qwhkyoh btvu qbfot nouv owgtsi pdwbmfn pmvcv dnqbo
tmka qqnty knz swi fyvmt ikcdu jfjzsfu dshgi cosacuj szjjuff
eanet uua fbztk bzkft
jepi hyo jgzplr jyqk zzcs iepj hfamvu bfgbz sjsnf lprgzj
mlca ywko mtg vkfv ojka zbelq qkaujs simt kafq qtycfzo
sqh omv llvra ecvxmtx dpnafv llvszx xzlsvl quj ufnhvod faraf fivmnl
pvxlls fzeoav ahgv uhq nodcr cohy vqisgaj jsfcyur dbohh
ztccbwk okv vok kov ywel
xyu cmaikc jgqu ozccdzk ybn yoeq fky aetrkj eyoyvla laiu cermo
sssnb kxly mgvaz jpffkq bysbwwu rfnkm eycp ipyd hyi wjew
obdfqmh flkm semednj iafewg lvh uwa ciepe
zmldp ykffe gtehz qlmvule edrtzg prund oagwto qia bvyxur
kjok neno qbxh wqgkkt ympclso poyclsm cajgnnn
paqili kur sfit jbqchzx bhjqzxc
fhghm ubtaana qbn autnaab aaaunbt vmz
exlrl hfnpq zgdwx smix nyg ogccrhj iimhhwc uhcldo oydwxp kqc jxxpycv
wtdqjfh ialoqr zeej ipoh qtjdwhf wdhqftj
jcgug cmtvmu ynhnilj txlv uemowyu cvrool oolcvr njr cxqntdh
uhtwtp tgnc jmmjl utiu jfxtsoz cxwqcz
qntxl lyownp tsp tps mixyge rqfqumc bxjiry zmaj azjm
abt bat tftvm nyjs jyns
hzsdh pwthfvm cedg hzsdh rsxtehn owh cedg
hcoiny aqbeme eeuigt pocpvox tiugee rwb tvgmyc ojg hgdaf
mzlwcfc uoobo bouoo tvgvmiu evsfkm popgm evmfsk ehxvits vebxbmd qhmz jzj
mypgg jbpx vgeb ahvjl zbm ancdzfy wytkcq
bivscw zmzmjxu jzm fwb ujefxp jzsiskp cgx atcj sszikjp cxg nqvxga
vvurbxp iry zlz gfnlpuy npyugfl
fpmee mhj iul lui liu
xjoesn ggsdc vnisnmw kyxmmv xphfq
zcsml ngzlpy udaoab eotbv ylca bfmums izx
pdi bpyoep cofsy qazl oaovek fvfbe sotc lfdmaea smvs
zajm bskaqhj qxyiptb bdyeuqr dqjrekn iywj
hzhky hukvpve iqcbwju nyiwb rvutxlb hyuah urnhxg savicaw hexr ptedk
qndji wrr sin ljogf ncrb zvt tvz
kvfke tjpzhrl zvd doq kxyw fdgr oqd egkybdh rqpfxks nja
escstpv ccc ryzdv gxkjuyt gkhw jxnfda awpzg csestpv
cpcd onxeae nimbrpt zyji qnuo ktxgwbj vtjfglz skcozd zgii zgii nimbrpt
lwq iue hfbv hgbg aeqc
vzgbod yjkoc ckt bpiaz
eyco ecoy uzousjp faxj utu yoec
fhqdi myd tvex bzizkcx pifcfhz fczhpif eofzv bqzd knbhbgj dok ffcizhp
qlqlgmz hofmnc cwtk ahgnpne acn prwdh hwdrp rfofhl atavrf afkcbk
sgl apyfr pwxzptv osuwy vmqqh soyuw lqilked oinhh
eglqdox gcxfxql ejtnwu wvho can eyu uetwnj elgdxqo atvpkk eailsnn cwosyn
mylxhuj kbc apnllw qbmtj sqy hxtnvoe ins iyudo aagezrq nsi ikvn
lpmzo tkdeg zilkm vdkmtf yulbdd dkfmtv
fzrv grq zfvr ychga gqr
vdjxx wew pdxgp cjywsc meoffrj pgpdx chxmw eizgz ruea
iaklyhx btqqik tbiqqk ynmq laxykhi qatrnsh lnmtm plz
sfogup jtdsx tsxjd wwzkyy wzywky vgdsgr
paupqb kyy bccklmr vopviup lctcxza yyk yky
gduuia doek hqcr upvb szeewnu rrrdz
lhnsaf lut kzf allu dvj tyngx zkf aqsgz rtkzzdz
xxqj msg xxqj ezmm tmyji msg cco tain ctpel
pvcfzv rhn hlhxyu bghzzpx dlhvr hrvdl lhuxhy
npzhkp voghdv rvezqff hvgvdo jndf gpa wevrwpu
faixq aecax hxdouer yqlngzd grf wid iwd cce xnmmr
ifqwiah dib ibd dtvkwqj mpn dtwjkqv kyntq xwlv
rwoiz dja cvv lvza kfdblq bgtwgh ongdub wggthb lvaz
xajf eyasx rupsyqx wubjwx bsrqi ripghci sbzxp sbz dhooax
ydnv tvhwgp uvrh yryhl yxdlwa ladwxy awi mkwyn ghvpwt
qrl vwdvwic ocbhpi bcmz dor lrq hokg gokh
adz echnlju ebnmw twjl cfw loq fqklyyq clgqq jtgpsu wltj
vwlgisb murtsw ldkacqv wxfcke vcqkald ldhh gsl kpzn
itnvo lyddd saewfse spnri vtmst iblx
qsgv qni wvqiih mneg lkpb quhbkyi
efwaaa huu fslzwpc uuh szflwpc
sgmj ajh vcwpcua enltaks aquooh bwoda txbuve
vbe astgezx xqbxkdj evb bev yuuesdc fvohzq
gpn oqxfz pbwibjw gljdbf gbldfj sis dpk iss
pha ebybvye ntxhs wcuce
odnnywv qpcjll aslxqjm injfs vkbturz atxi
zzncfj kbhk jzzvnwf kqipx qkxpi rzb czfnzj
ygu vqpnxkw trdtv rrte
hrutley ljxuuq yonbpmk hmpc etyrhlu
odxp fpvizzx dxop jjbr skhxq mpzawhe zptdxuu erxk adbbuk zfzipvx
qjovasi yutjpg rcp bykpctm fqmmg pckbymt hqj
ssqc cype tkowxb fbh rsluu zjk scrukwv pkuexk qlgjtdq oulrke
bkcd nnf hdj sdlweyr uyf kmvzq
sgeg moy png blv bblree ufe uqknuqd lnjwbh
snpex hrbcfok pffv cwrvhcs fpk uprhn gbpy zkxyi esug ccnnj
bmwue dugcrdu uifiy clid rdmodec jodp hti xptj tpopl vuwhdyi hnoq
cwlkg qsz nnp lfyk pwn dpe oeuzp jusxxkq qlnchc
tsmkvge pxauyc cxypua boi hybq rzf iioyi rtedkc gjmk iob mqb
cvip wgbjhe ulwg jckkwd gdu bmaoisp
drpl xbliszf rpld ngnvgxl xnrd xsmd oetrcmn xvfohp mtocren
habmf dmfxq qitw xxtybla cxvb colcvpj sowoeuh bhmfa plccvjo naftjgw
cix soo icx ahx cdrjyxe htcnp
acoksaf cgahlg tdj euchwnj bdn lunouq aewrk uktre kklwqy lnouuq
ibsel hwjbah vxuk bjxa dvzbpq tffqvo bjax qfoftv
iynms tzv jakuuw cmz cjnyr ddibtd gcb
tmgerk pvwizc lxoma ergmtk xmg loaxm
ajazon yjwt viyemnk wobzwwm jcucn nopymyq znaajo qcjtmlq ccjun ywvt oqczod
kdhgnv kdnvgh rpyrxx xpyrxr
qftmshx hrbr kcggxw jwtuk qxbzkn
ddi fjekwxs xxua cmmkrso
ptrsv favvfh innnnx nninnx
kzsnd pnf evtazgw wmjk gvxp bslajo
nphqtka umlxu ymw whqiab whqiab vwigkz pevtps
vhje cnu uzfzum rwucy mxr wyrdqfi gnkuwz dkrwc otfc vbfc
ubtzio vlijsst anruj qyntadb fnic klz ywqq fnic vlijsst
rprj ybyqawb tgeieih nzcr rjpr bjfpozh tpevsx flvjdq
kvqqzvm cfdm wzjmkq sbcfx vzmkvqq
zqtt elpg eglp uoe glep
lqv madhtch xevl fal ijmx chcpra lzl afl cndbvnq
yjx jyx xjy otwklfj
cur egsdzaz ocbx wvky coxb pgiysbh lclhvy gfu oxbc vqyjvhh
gtd pytdaz kecsku nkiud ytt bmgobx tyt pfleji ebqlifv lqp ytzadp
bopfdvy eovszvw krgu jhuhyqi kaczafr krgu zlfxtl
yixprs zqai oprgw vcsjoc pgorw ypx ijo urjcjqv
estg oqnhw xgwajp mpbsag ibzi
zggbt jmmtkru sye ybd ztggb
tzryuqb blyxnnu sjpmf yxe zimf uyzqtbr qbyrtzu
rzivz rxn invxqd nazw efzun bwnw ywx rfuda jhnoww mketav
zxfw zcaqi qaciz ktefiwk xwzf
ntougl fvyaxfr obml obml bjkm lgsqj yfcggdu rqcpgt ntougl nveto
rma dakifg pvfc ticvff iffctv difkga
wpnt eclov vmmoqh qvw mljlvnj hxrx
ijnpo uhgxrfe xxopw xuzwyd powlpo ctduj eepw gubnepv
rxcmve myxckxk ecid nxe xevrmc juzaonr ilkx zpb pbz mvgos yzr
yfecm wqkh defqqa mnzgx nwe ixxg rjdhe new
awztgx vqgnfd iwcakr ajaiwn jiwnaa uqfrim wrgbjon ufqrmi vdu yjwy gwkdc
vrqf yzmvnr jkjji ghya pdlye ygha qlcm twmkex frqv
hjb xgypw vtr mgj asa owcuks fnllp ommrhng senv iix
usw iyuatv ondiwh neac ttge tzw bvjkfe neac usw
qwehwhj idrwo vex zopkjd lrcc sfqyz smte qrfh lccr qwjhewh vlb
efnlhsj ltm xirn nctwio cin
zocc cpfo czoc oiz tftk
rlzvqe inivone kptyumn eatw urjxc aetw
qavvqa jvvc yux cvvj
bfr fcpc xpkphcf irak bfr nuhsooj nniugf bfr gllq ipo
ekd dydxs rnmgb dek yowk
ipdll wdgx gjiigd uleiwg buvv vdhuzg gigidj gkyigmx lpdli lzyode fqdpvms
ycna rhyz bsipz lit rmc mrofb cyan mrc wujk
tjrk cwdsvf srkdjy lsyvryj nko syjvlry fgqq srdykj pgb koh dyle
sflcxt wmgdgej akllaoa bbsvve nsxnt nsxnt kgm akllaoa btqbez
bzmoci agemx mdtiol pyohvf zwtx aqblx oibmcz ypcmz lfg ckssn ozx
cuojke joekcu eusr dxqk xxwob klpsm
byspz lyunt eojrx ubh rjxoe ypzsb
ibok bkrtut wzcdk ppm qekhvy aupaic vswwul lmlxrv ainigy sasurbx
jeigcyc cycgjie resio ncz
xvxr lmlaje ebmtn cvms xrvx vsmc
cfjbffj xvo hpsbu nfm jhlsk mnf fmn
xncxo iwuon voj aebv jks nynzl hwjwo womejo ugzmr tdfaep olpdiaf
jlnusc hgpprf nulcjs kwiwypu kitjjbj snlcju
buqzm kpuoxel ajlqke qqdur jecuibn leajqk qudrq usi
ahbnjf uuzecdv yfyrsxv eoqey oonue vyyrxfs jixmvao
wjdi cfgurdl usdnlk jmao qnus cicxnux vtdxxkx nusq
mlvfz twu unj mar qpiz fhjczpz ytl npwjys ppq koa
ippdky pvwthzj qlkhl pvwthzj
kfm lcedomr xgdkrzo hfxyoe rafcby uwe pzjyuja weu nso erdwc fjvc
peep oufzlb fsgn kxj uge xvufb zsnrxss lere gfsn gvwajkj fmh
mexvi kgkktz kgkktz auyln ghvqc mexvi
wit qxtewrk qdaz oljeb wowb suergyt hxq pfnfbei rdu qrxkwte fyw
qjjzkd oxedeu uoxbehs zder vvjnn ocxkiz wkblzy eyzksc waiiqo fut raak
dhojys qkusuxs kzicui dcsxo
hsnexb yoz inza gqxtbc rya jqfe ufzlqva
scpquf gbloz ceol eclo qpvzavo rwfnxa
jyg edqf vdpsihl edqf
mbyjg yjgbm mgybj mhgi grw
ler oxssrel jhw jwh sfa hdhlo gng auzoan
hmkuis iaxf muhisk ikshum
eodbpo prajasi zsu hyb npr tbcntup uzs bxchne
zpyr kxmvz frlzwnb tzqrw vdh ndbwqmu cadwsv adq bzfnrwl qfgf
dybnn dmarc mknr fovokgj ukrp cuwag
khweq eljs rllijp pizevm lwws kehqw mkjcu otqodz
fvsrb kzbjbcc kzbjbcc mee dhyedb kzbjbcc
cnlmjd dvnd vhlvsa rsrtc scrrt tqhx vke jqmxpd udkjqc qxriw pfqpk
tyureg urteyg rutyge rmoihs
pccxeak tkmyane qqggpr tbdmpi ieb
wjucbi wjm hais pcxjd kkzh qns hmf mhf mnsv ifigsc
lqeyr pnopcig cpgoinp pncpigo mjfkjus cko zedvvyq
ofsnspv goj wqm ynolb qczly brl lrupzg buof zladwte
xzn zxn yaseulw qwhxb easyluw vvlmh
aiybip ydfczwh wkl rjsu xreokl qov mko pna fkfu
zjlwozs nxke ozwlzjs jybx jpsxp qtkll idsrad savpoe
xph lpvkmvy afq uqhg qqjgm smg tmhem mxdyqx bvhot lpvmkyv
jxkkzil pkjheow fewr ggbfy fuol cuzud wnx fxujfwh srjsmic
lzbjx vfx sncis xuv unoa nlgs stdhf oibxsgk uhogsb
hfqzkms bzyfnz npcd yhfdo myqukug pjq adle sqkfhmz
czhainb iazcnhb hhaqr cyrwj zzow luuvt zdyhnh uppysr
fyw dulbxa drewqsr tldlaac kyaw datclal ylplup hdzbj
kiiv tly gua lfg
gphbvwc lqdd jqja ffpkz hafal eiapksw wsikpea vphgbcw lkcpm zjxcx
viapp rxt vdgbm ezphp pcqr bll mklgx epzhp
favz bwmczgg zoyns pens wpgi mrwxel
ozwjjn kbzaozc cuaa igbfyq swi uypx bczaozk pyux odvawqx
npnpw nwppn egnpj fkzh wppnn
asu mlqmwa npewa cjluw qmalmw newpa fznx dzypi yiy
hleh usw bgmgscg cqc fijfuw idtyh cgmsbgg zjhr wus hymbju
tmre fvm cgowgb eduyfla ttez vdzp vtmtaog ezxsfi gyxgzi pvzd
acvarlu hkmfzdg jsnil hpv wjj rljpk pygl wjhhohk rkplj spvgx psgvx
wyz rvuobq kbmhaf bec bec
zosyz psuo lgihdo mjtftk fjkttm ddmcd
pqm qpswpb opviwxg ppqsbw waco jpx
yzgumgq kqv hqjghnl jixhoyg ufer kvq lzi rojm gbhvsd urd tuy
sxc jndqc ozpex wkchpu tmwv utcxzd piecpma cmppeia
ifjc lttj tltj rxmgxqa jcif lzhxkg zqb mdq kbjavv
isyxn zjbj uiw avziqxf zpezazx iuw
rjaudu amtpuk gufogys xiqs
gau sndrkv cmiolti cdxm ikkcisu xusnfbp jxffy ffcizj psye sgd
mvx onzmy oynzm mwfgvs
mrdg roanty dljs jlil gzcj dqitnfb gxb vzzqf ooweeh pgs oyntra
yna xgok fvbdl xgko udqp sorfo hmhl yan
kycl ule blupejp kycl fhpkoe pqkptw cfzpv nkncl
snugkyw zfdbsfs aehb olq kkoi xpsvy jqcspf lajjyu jtm
hifhfa mii clukcbc fhhifa wcts tgai vvqsyr kclcbcu
ordjftj dokk hdhytwc fjodrtj ojrjfdt san ajxrwy ked jfrqc
eylx cohd biswq xgiibz gzcptbf eylx icunv bfg jqanbv rntp sbfkiey
kub gdpbdms qnnto bit visqop
tywk clicj daics cbuewkx yyjjjka vxzk afsdyqg
bmxzll wqjnyr mxlzbl yutkaa qmpz hiqkf lqqqle jagj qlqelq
jgdeatg qubj jsu bhgbm swmgy lwgnuh qjbu dqwiikp mgwys
ryisldg asrrhz vxvrnk ibjr kebyx dwbx qdrpa tgakt
dfvgzk hifan dpjdnqc ncnvf xmqjjao npjq vobt evtaety kvufds pcugx oyjo
ezionjg ioznegj cykxy igeojzn ezm
dkv dkv vfqyl dkv dtjhrem
xfgh brsjcdw auvq fibb gcbecl
eet qdnrymr ndqmyrr tpfqxoi kbkxw
qhmaj maukf uygg hqmaj tfmtv irao wsari
ofoywus wxs leemkn wfko dwzqv txg qsiiiss aiiffe fadmdq zjtaovt
fgfms oazi sam msgff qif evxca reho
gpzhy qxh sco qeax wtabxwv sjd oev
xsmpi wskvku xspmi smipx
ghgf tbpeun qdivuvq dump umdp khxcxtx laljpv lownp egovve
vhmu eziabt hnz neko nkz hfmizn
vqhb lax zzyf lxa lik jrqynr rgcos
zjgbfzv ieufyz kjxad qxeuewx
ufl drkaac hoyic pqutop wqzdk eewabsr mqspcr ewarbse dzqkw
bgatanj xmddwv mwlmw scgzboo myignm lkfl fsqr
xkrx otjzfk wek dpbwk cromg fclmhg pkvw wsln
yyqjs lifg gifl cfv lfig fycza
dfup fkfeiqq rcmuv dly iforzi lngkjc rzifio oiifrz mlhor puwm qrthoa
nzfaeto punt rtmlg dwdk hyig
mds ueoyclh lxb axgea wqt wwqqglf tqw yvzji ryr dst bojf
ayoj yzj lyctgnc woxz gqltw lkzkwte wysb mjyeu hrwso
gymmvtt lhskza lsb nhlijnt men zphurrw oftksy zxs ykerwue hnijltn iknqyz
xuaxkc lgzeef fwb nlzzhjj lsieg qdr ews rue rdq
xnf lljcmod kyuercp kvlvd lkvh ncn afaq
bjytofa ltz mkyy bwt uxca somiz rhgdg keaqu ybr
aipljn qpq nilajp udgkchc dirvxg rrbmi mxfxkk kmfxkx
sfzjemk hjsvnmb hfd hprfmvg pbhkc
cvxi srj ucy yuc euswuns jpox
tajlnn ivuecv fdfce rakjq bfuxirh eibde tajnln nlajtn
ndvm mlnhy bfqlzn nmdv ohto
jysyvwy xbcyt lbbm osoye swwtwa emfznci qnzc qsgk
xcm jbqsuo xmc mtrk bojuqs
ukshrrh xhfl ooxgq vadlcrg ydva hugplg mnqbd wkyouq
mnmqys bhws megar krgoke modxe krgoke clovh dlo
ejl qzc agxph jcn zcq zqc
jgh yhh hjg jhg
tarm jboyg gbyjo pgalg xugzt bph mart
yur wrrahr fnnfqu rwhrar cdq
mukod gueg guge epalg xjkctt
hub hbu hbzul buh sqfl
xyrly lvpitr xfzn jjcl uvcnz dnpdyzq ifaiwe zlvzcx
wxzsf tgd khvwp cmd mzv bsvjvjm wvhpk ublnqyz mvbjvjs peishcb
zunmk hxpney nphxey znmku
bfxlgur wftcw xfkf fsik xkff ffxk
sxyjzr ugcscx uiovqx ldzhord xgxbfph ldzhord prdhg rhdhzd ugcscx
udg drb apyjq dgyevo fuxjhg
qshbe aigfdp wyvz xfcos wve dgfrufw dwimmb jfh wfrjbzk nwgrigr sbrpbb
ahpn xnzeof wxbv chxpcu jmso age ojsm bqonfki hqhrkw
mfupm vvig ndqbbm jlw
ejqh ebcrytj zpiqtpp ogznd
wkwkae odq rsrnqk nslczz hiyyhur kuw mjbuwll vduvod ryhuhiy swo tsos
znkufyx jejrdno knr wkx ikrlly tnxtj
iizdiw iizdiw hukep rwj eaq ptm klta rwj onaz
znb egqy qqnc igqr ikza ojgzkr xaen kurb pyckxvt wqx
pbohpw bphowp dajwdpp kotevs
hmuvxu zdnguk jhcmj gccyxiu cxgiycu uyxcgic akxi demeff
zjr lupzwcy puva rzj
cdn wee iqkbhl jwxo nhl cqd mqgqf ltdfg
phwco ggcj cggj ergpqmc kcz
aryjl wqwmkc aklktpz kptnroc mckqww
jadydt atjdyd tajdyd owswsgm
dshqt kacoge sdqth ylobih
kdnik knkdi dinkk xwvqa gvii
cifbkpt zye xhwnrhm fctibpk sbn pdqry emkye kzyjpa plzkc btkfcip gcchi
kekfr fufp dfy eqebgko obbn nuh
zixfbus skuf bea gimbqq caubhto eba uvkovz xisfzub peukmyn
okihcgh gazrc slee vlnwyg geviex eesl nmnvk rcbv ycupyw
tcvlgqs wxe lusvwzy unr yzluwvs wsylvzu zkwth qdykv
hyenkj ugao vlwgb putcepr lyeccs fqdotx burf aqew fje rfbu
uhmnc zgnkarz gylqawm abl zimcz qbs zzmic
pxkbpn zuxlwtt rlbhegv zlxuwtt ooxpr pgjx
leg wavgps fcplfpc xvxih ueskmi dvu wbiq nvtia pwjojw usiemk ojwwjp
zmrpknx xrfpq avque tvoyqp
lyposyj mckyoub sqbl olpsjyy hjafzi wmojb nvezofd
yflxrg egi aij qvc yflxrg typbs yflxrg kliexy eqnj jqrr
gggt sht kdajvz sht gkqwaot sht vout
ahl aucpih feig man umtchcv ceqabr tfptb
ftlywun voaorf kde ilwt hlpoe pksqxyh vpg cxo xgq fdkkl sgxhnq
zzekhfi akb lupta sgtd qapznzf lgidsx lidsgx akgmq ettuwjq xyumf
dxhpku lwoxpim gwb lhjmoh gxqapd ntmvc rvwwszg pvin lwoxpim coubc
qia bxmremo rjf vaeio eqexwz wuoz sguf bsbusof xqeewz
iczzz krf hbq tsgrih mzjabrt sfnwrm djignf zwac cwaz dgc nsrfmw
yvarsva zzpbp yai und kkbinr zlyj nyxxof ggrgu vyk eib
nepzm yrrgr vrlhbv hykmiog natrqx jvpq nbyhe zuo grx nwl
cfboeev hcn yfobyx cqvlo obctww xxaux ofybxy wouguq avuztl xmgqq xyofby
tikv uvzp oxopqy reh uzvp wefka vli kied gngks vbz thfsxyt
exxvknp pucbdyl dboto tzat qze xyinygz mhzl ubahr ekxbtk
jcz ufszbi pknsfgb ivok ijau okxolj etecn aurun zsa gbxs uryx
ypnb ousd osg mvset ipffzdn dfinfpz ltescx
taeoct aoetct aocett ttda fcdqnxv
bimtlk ssax bmrifkr vfxdmq hglp rgzr zpvk zhxtq rndwy mmr arkr
bwvdb axxbhzk nwfmbbu kzuc sahv cvas wdac acsv
xavkwou yvx ouwkxva otbe uzr mmw atq yiy ghavd qta pqlhv
omzht vsdsc zhtmo hmotz
eqt wtveez syift shtfnc hmckjxa apwbvn yme okdl hbihdtv hxahns eetvwz
rokdg ndjw hprxjc viys mbcctod dbvd
lhzb fyxf xaslmi sjd vqp grxhmfe snetfv mgivd uaknj givkdi
gxkxl kqcdnl rna jhcuepd npiedg djcpheu huce njryw bjluhq bvedvl kqxu
sogh uym atpzuwx vjgbe xgrvkg thgbyn mptcebt rkro
tnpxw uxrqxd lajmsmr tnnlt vrvbf deret hkmvrs eubvkn kks hjq
rcdoa zfja vod supip dvo
zbxdo xglqv how mgoq jqrdou pwrminc lidi nfs xglqv lidi
ldmnp dnqn ahhr tha mvsbsfh rpm rgus faf tjash
ewrdol jqhfpf rckj mrxlwj redjg bmxprx grla
rhr jksebwa vtu skwaejb vut
wrx iqvrjh atrt xrw vtqo tkcasd xedjh zkqrh vvhj
owc qlzygar uajwwe obzl inxawur
crbtrf phvy nzipo rctbfr trrcbf
vwuun wcfhhzo vxxjdt fbf bqtmmhs bffqcna
wkxfxmv zmrkyh sggw whwcw zukynw
lsdiy lnbn kblxi qfyib irfl mymrr zqbl
gwdkeu ghn afry zxoz fary uzntlnk kee xtnop ptnox zngoran
lgs lsg sgeseiz gsl
erpoqpi svtnv vsogl uym amzxbs
jtmodqx yjcsfcl zosugm jrekfdw xxbdqnx fcha
vio tlfxokx xaoq pydeiq glxsuzm honifvf maiuzsy uizsyam eco
ophcui saka qyt ltti syw
qff qff sde ryv
eiii jazx nlehtx tnhvxl rzvsjo qkupif feypppe tefxr wdjmlc
pdrr mwuy wccd rxla drpr enbbap
pclml ubwdbz hfudj gdpujfm ovabv
uink ffebi wdvhqzs qiympf lqxihty vnsp wdvhqzs hutxkcs lxfuos hutxkcs
fycoaw palkpz yrkg kappzl ncjym mergg kryg
eqy npvgh ghafkro piqnogb polacs qye hnvpg
dxyy udhmz jij tqsuic qxz erctv
urum nmbr cgek eetmhj gxr oxgukf wzdmvi oibzt fxkoug rcrywcr rglx
jkp ofej waibl opqhmww ifnczcg jdtkbc lil isc ill mylvuv
vqbcosk yhhsy gasmj bspx peakt cjtekw hvzo ywe qcvbosk ohzv qddt
edq llbvsx vedyvlm gou wkecank rkgf ziyrr belgo tbz
wbome vhzf ztk zaxiu ywjb supuf beq sxq spuuf pufus
femu ymkdoew kjynct aia
yjymr orovqj aremii licw bdtnc
uyade fbx duaye ujtvpn
yzvp pvzgjp yofcvya gvkkoh cafyvoy mhsm okhkvg
xuh qkaf dmi imd tzmlce mqkxj qilrc dim cadotvy
azpqgb kyc aflgyaf laagffy kesmk jzyzaer taf bpkbzdg
ogd dbdlh dqt zaaloh
exal vgnfx omu omepvwf szcwq snz bptite bzqyxl khmblyc sse emg
yqcbwsn aihhf tqck tcqk wqwqy cfez xahpn
qqbuf lil ies tqu pyxhqp mnfuk azj
vwma rzdtgl mxbasw nwgjav mwav
itpjfq rrgyt hralwm fqrig btwcod
ydjd kmk fvwr wrfv yvhw mkk
xbsxub yhsj xzbuf ace xubbsx fzuxb vxk
ttsist vubpf mhwkmtx vlj hdsva kmmhtwx ukxr upfvb tbma fxsrnxl hzwufho
wckjvz unmtev egxts ihw topvw ptowv rnihhmq
gpdtl kcric nwg ssbs qah aarp ydsdty ngw
lzhxbbq oktvcw xbasqe owtmwgp koa gumjie sodwrp hqsw aqh dtgsbb
xjbyy mxfxa ogvk nqiy qyni ldqwryj niyq jjixc
uhbul daccgva xtiz dim uhbul yjmakv yjmakv
huo esajup ouj oju ujo
eeeu hwvsk jfkmds okhi pogskfm itdlbll
lpyubo dylpfb iehwug decj ntidy cuygyg lalkb iutu oxgm imn

Part 1:
#!/usr/bin/env python3

import aoc


rawinput = aoc.read_input(4)

rcount = 0
for line in rawinput.splitlines():
    if len(set(line.split(' '))) == len(line.split(' ')):
        rcount += 1
print(rcount)

Result: 477

Part 2:
#!/usr/bin/env python3

import aoc


rawinput = aoc.read_input(4)

rcount = 0
for line in rawinput.splitlines():
    words = list(map(lambda x: "".join(sorted(list(x))), line.split(' ')))
    if len(set(words)) == len(words):
        rcount += 1
print(rcount)

Result: 167


made with vanilla PHP and MySQL, no frameworks, no bootstrap, no unnecessary* javascript