U
    gR                     @   s  d dl mZ d dlZd dlmZmZ dddddd	d
ddddddddddZdd Zdd Zdd Z	dd Z
dddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd ddddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddÐdĐdŐdƐdǐdȐdɐdʐdːd̐d͐dΐdϐdАdѐdҐdӐdԐdՐd֐dאdؐdِdڐdېdܐdݐdސdߐddddddddddddddddddddddddddddddddd ddddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddÐdĐdŐdƐdǐdȐdɐdʐdːd̐d͐dΐdϐdАdѐdҐdӐdԐdՐd֐dאdؐdِdڐdېdܐdݐdސdߐddddddddddddddddddddddddddddddddd ddddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddÐdĐdŐdƐdǐdȐdɐdʐdːd̐d͐dΐdϐdАdѐdҐdӐdԐdՐd֐dאdؐdِdڐdېdܐdݐdސdߐddddddddddddddddddddddddddddddddd ddddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddÐdĐdŐdƐdǐdȐdɐdʐdːd̐d͐dΐdϐdАdѐdҐdӐdԐdՐd֐dאdؐdِdڐdېdܐdݐdސdߐddddddddddddddddddddddddddddddddd ddddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddÐdĐdŐdƐdǐdȐdɐdʐdːd̐d͐dΐdϐdАdѐdҐdӐdԐdՐd֐dאdؐdِdڐdېdܐdݐdސdߐddddddddddddddddddddddddddddddddd ddddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddÐdĐdŐdƐdǐdȐdɐdʐdːd̐d͐dΐdϐdАdѐdҐdӐdԐdՐd֐dאdؐdِdڐdېdܐdݐdސdߐddddddddddddddddddddddddddddddddd ddddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddÐdĐdŐdƐdǐdȐdɐdʐdːd̐d͐dΐdϐdАdѐdҐdӐdԐdՐd֐dאdؐdِdڐdېdܐdݐdސdߐddddddddddddddddddddddddddddddddd ddddddddd	d
ddddddddddddddddddg ZdS (      )print_functionN)bordbchrZ0000Z0001Z0010Z0011Z0100Z0101Z0110Z0111Z1000Z1001Z1010Z1011Z1100Z1101Z1110Z1111)r                           	   
                  c                 C   s&   t dd | }t dd |}d|S )z,Convert a key into a string of binary digitsc                 S   s   t | S )N)r   x r   ;/tmp/pip-unpacked-wheel-_q8s9isk/Cryptodome/Util/RFC1751.py<lambda>(       z_key2bin.<locals>.<lambda>c                 S   s   t | d?  t | d@   S )Nr   r   )binaryr   r   r   r   r   )   r    )mapjoin)sklr   r   r   _key2bin&   s    r    c                 C   s2   d}| |||  D ]}|d t | d }q|S )zjExtract a bitstring(2.x)/bytestring(2.x) from a string of binary digits, and return its
    numeric value.r   r   0   )ord)keystartlengthresultyr   r   r   _extract-   s    r(   c                 C   s   t | d dkrtdd}tdt | dD ]}| ||d  }t|}d}tdddD ]}|t||d }qXt|t|d> d@  }tddd	D ]}|tt||d	  d
 }qq,| S )au  Transform an arbitrary key into a string containing English words.

    Example::

        >>> from Cryptodome.Util.RFC1751 import key_to_english
        >>> key_to_english(b'66666666')
        'RAM LOIS GOAD CREW CARE HIT'

    Args:
      key (byte string):
        The key to convert. Its length must be a multiple of 8.
    Return:
      A string of English words.
    r   r   z.The length of the key must be a multiple of 8.r   @   r   r
      r    )len
ValueErrorranger    r(   r   wordliststrip)r#   englishindexsubkeyskbinpir   r   r   key_to_english7   s    r7   c                 C   s  |    }d}tdt|dD ]}|||d  }ddg }d}|D ]}t|}d|d d  d }||> }	|	d? |	d? d@ |	d@   }
}}|d	kr||d
?  |
B ||d
? < ||d
? d  |B ||d
? d < ||d
? d  |B ||d
? d < n\|dkr:||d
?  |B ||d
? < ||d
? d  |B ||d
? d < n||d
?  |B ||d
? < |d }qHd}|D ]}	|t|	 }qdt|}d}tdddD ]}|t||d }q|d
@ t|ddkrt	d||dd  }q |S )a~  Transform a string into a corresponding key.

    Example::

        >>> from Cryptodome.Util.RFC1751 import english_to_key
        >>> english_to_key('RAM LOIS GOAD CREW CARE HIT')
        b'66666666'

    Args:
      s (string): the string with the words separated by whitespace;
                  the number of words must be a multiple of 6.
    Return:
      A byte string.
    r   r   r
   r   r   r      r*   r	   r   r   r   r)   zParity error in resulting key)
uppersplitr.   r,   r/   r2   r   r    r(   r-   )r   Lr#   r2   Zsublistcharbitsr6   shiftr'   ZclccZcrr3   r4   r5   r   r   r   english_to_keyZ   s>    


  "
"
rA   AZABEZACEZACTZADZADAZADDZAGOZAIDZAIMZAIRALLZALPZAMZAMYANZANAANDZANNZANTANYZAPEZAPSZAPTZARCZAREZARKZARMZARTZASZASHZASKATZATEZAUGZAUKZAVEZAWEZAWKZAWLZAWNZAXZAYEBADZBAGZBAHZBAMZBANZBARZBATZBAYZBEZBEDZBEEZBEGZBENZBETZBEYZBIBZBIDZBIGZBINZBITZBOBZBOGZBONZBOOZBOPZBOWZBOYZBUBZBUDZBUGZBUMZBUNZBUSZBUTZBUYZBYZBYEZCABZCALZCAMZCANZCAPZCARZCATZCAWZCODZCOGZCOLCONZCOOZCOPZCOTZCOWZCOYZCRYZCUBZCUEZCUPZCURZCUTZDABZDADZDAMZDANZDARZDAYZDEEZDELZDENZDESZDEWZDIDZDIEZDIGZDINZDIPZDOZDOEZDOGZDONDOTZDOWZDRYZDUBZDUDZDUEZDUGZDUNZEARZEATZEDZEELZEGGZEGOZELIZELKZELMZELYZEMZENDESTZETCZEVAZEVEZEWEZEYEZFADZFANZFARZFATZFAYZFEDZFEEZFEWZFIBZFIGZFINZFIRZFITZFLOZFLYZFOEZFOGZFORZFRYZFUMZFUNZFURZGABZGADZGAGZGALZGAMZGAPZGASZGAYZGEEZGELZGEMGETZGIGZGILZGINZGOZGOTZGUMZGUNZGUSZGUTZGUYZGYMZGYPZHAZHADZHALZHAMZHANZHAPZHASZHATZHAWZHAYZHEZHEMZHENZHERZHEWZHEYZHIZHIDZHIMZHIPZHISHITZHOZHOBZHOCZHOEZHOGZHOPZHOTZHOWZHUBZHUEZHUGZHUHZHUMZHUTIZICYZIDAZIFZIKEZILLZINKZINNIOZIONZIQZIRAZIREZIRKZISZITZITSZIVYZJABZJAGZJAMZJANZJARZJAWZJAYZJETZJIGZJIMZJOZJOBZJOEZJOGZJOTZJOYZJUGZJUTZKAYZKEGZKENZKEYZKIDZKIMZKINZKITZLAZLABZLACZLADZLAGZLAMZLAPZLAWZLAYZLEAZLEDZLEEZLEGZLENZLEOZLETZLEWZLIDZLIEZLINZLIPZLITZLOZLOBZLOGZLOPZLOSZLOTZLOUZLOWZLOYZLUGZLYEZMAZMACZMADZMAEZMANZMAOZMAPZMATZMAWZMAYZMEZMEGZMELZMENZMETZMEWZMIDZMINMITZMOBZMODZMOEZMOOZMOPZMOSZMOTZMOWZMUDZMUGZMUMZMYZNABZNAGZNANZNAPZNATZNAYZNEZNEDZNEEZNETZNEWZNIBZNILZNIPZNITNOZNOBZNODZNONZNORZNOTZNOVZNOWZNUZNUNZNUTOZOAFZOAKZOARZOATZODDZODEZOFZOFFZOFTZOHZOILOKZOLDONZONEORZORBZOREZORRZOSZOTTZOURZOUTZOVAZOWZOWEZOWLZOWNZOXZPAZPADZPALZPAMZPANZPAPZPARZPATZPAWZPAYZPEAZPEGZPENZPEPZPERZPETZPEWZPHIPIZPIEZPINZPITZPLYZPOZPODZPOEPOPZPOTZPOWZPROZPRYZPUBZPUGZPUNZPUPPUTZQUOZRAGZRAMZRANZRAPZRATZRAWZRAYZREBREDZREPZRETZRIBZRIDZRIGZRIMZRIOZRIPZROBZRODZROEZRONZROTZROWZROYZRUBZRUEZRUGZRUMZRUNZRYEZSACZSADZSAGZSALZSAMZSANZSAPZSATZSAWZSAYZSEAZSECZSEEZSENZSETZSEWZSHEZSHYZSINZSIPZSIRZSISZSITZSKIZSKYZSLYSOZSOBZSODZSONZSOPZSOWZSOYZSPAZSPYZSUBZSUDZSUEZSUMZSUNZSUPZTABZTADZTAGZTANZTAPZTARZTEAZTEDZTEEZTENZTHEZTHYZTICZTIEZTIMZTINZTIPZTOZTOEZTOGZTOMZTONZTOOZTOPZTOWZTOYTRYZTUBZTUGZTUMZTUNZTWOZUNUPZUSZUSEZVANZVATZVETZVIEZWADZWAGZWARZWASZWAYZWEZWEBZWEDZWEEZWETZWHOZWHYZWINZWITZWOKZWONZWOOZWOWZWRYZWUZYAMZYAPZYAWZYEZYEAZYESZYETZYOUZABEDZABELZABETZABLEZABUTZACHEZACIDZACMEZACREZACTAZACTSZADAMZADDSZADENZAFARZAFROZAGEEZAHEMZAHOYZAIDAZAIDEZAIDSZAIRYZAJARZAKINZALANZALECZALGAZALIAZALLYZALMAZALOEZALSOZALTOZALUMZALVAZAMENZAMESZAMIDZAMMOZAMOKZAMOSZAMRAZANDYZANEWZANNAZANNEZANTEZANTIZAQUAZARABZARCHZAREAZARGOZARIDZARMYZARTSZARTYZASIAZASKSZATOMZAUNTZAURAZAUTOZAVERZAVIDZAVISZAVONZAVOWZAWAYZAWRYZBABEZBABYZBACHBACKZBADEZBAILZBAITZBAKEZBALDZBALEZBALIZBALKZBALLZBALMZBANDZBANEZBANGZBANKZBARBZBARDZBAREZBARKZBARNZBARRZBASEZBASHZBASKZBASSZBATEZBATHZBAWDZBAWLZBEADZBEAKZBEAMZBEANZBEARZBEATZBEAUZBECKZBEEFZBEENZBEERZBEETZBELAZBELLZBELTZBENDZBENTZBERGZBERNZBERTZBESSZBESTZBETAZBETHZBHOYZBIASZBIDEZBIENZBILEZBILKZBILLZBINDZBINGZBIRDZBITEZBITSZBLABZBLATZBLEDZBLEWZBLOBZBLOCZBLOTZBLOWBLUEZBLUMZBLURZBOARZBOATZBOCAZBOCKZBODEZBODYZBOGYZBOHRZBOILZBOLDZBOLOZBOLTZBOMBZBONAZBONDZBONEZBONGZBONNZBONYZBOOKZBOOMZBOONZBOOTZBOREZBORGZBORNZBOSEZBOSSZBOTHZBOUTZBOWLZBOYDZBRADZBRAEZBRAGZBRANZBRAYZBREDZBREWZBRIGZBRIMZBROWZBUCKZBUDDZBUFFZBULBZBULKZBULLZBUNKZBUNTZBUOYZBURGZBURLZBURNZBURRZBURTZBURYZBUSHZBUSSZBUSTZBUSYZBYTEZCADYZCAFEZCAGEZCAINZCAKEZCALFCALLZCALMZCAMEZCANEZCANTZCARDZCAREZCARLZCARRZCARTZCASEZCASHZCASKZCASTZCAVEZCEILZCELLZCENTZCERNZCHADZCHARZCHATZCHAWZCHEFZCHENZCHEWZCHICZCHINZCHOUZCHOWZCHUBZCHUGZCHUMZCITEZCITYZCLADZCLAMZCLANZCLAWZCLAYZCLODZCLOGZCLOTZCLUBZCLUEZCOALZCOATZCOCAZCOCKZCOCOZCODAZCODEZCODYZCOEDZCOILZCOINZCOKEZCOLAZCOLDZCOLTZCOMAZCOMBZCOMEZCOOKZCOOLZCOONZCOOTZCORDZCOREZCORKZCORNZCOSTZCOVEZCOWLZCRABZCRAGZCRAMZCRAYZCREWZCRIBZCROWZCRUDZCUBAZCUBEZCUFFZCULLZCULTZCUNYZCURBZCURDZCUREZCURLZCURTZCUTSZDADEZDALEZDAMEZDANAZDANEZDANGZDANKZDAREZDARKZDARNZDARTZDASHZDATAZDATEZDAVEZDAVYZDAWNDAYSZDEADZDEAFZDEALZDEANZDEARZDEBTZDECKZDEEDZDEEMZDEERZDEFTZDEFYZDELLZDENTZDENYZDESKZDIALZDICEZDIEDZDIETZDIMEZDINEZDINGZDINTZDIREZDIRTZDISCZDISHZDISKZDIVEZDOCKZDOESZDOLEZDOLLZDOLTZDOMEZDONEZDOOMZDOORZDORAZDOSEZDOTEZDOUGZDOURZDOVEDOWNZDRABZDRAGZDRAMZDRAWZDREWZDRUBZDRUGZDRUMZDUALZDUCKZDUCTZDUELZDUETZDUKEZDULLZDUMBZDUNEZDUNKZDUSKZDUSTZDUTYZEACHZEARLZEARNZEASEZEASTZEASYZEBENECHOZEDDYZEDENZEDGEZEDGYZEDITZEDNAZEGANZELANZELBAZELLAELSEZEMILZEMITZEMMAZENDSZERICZEROSZEVENZEVERZEVILZEYEDZFACEZFACTZFADEFAILZFAINZFAIRZFAKEZFALLZFAMEZFANGZFARMZFASTZFATEZFAWNZFEARZFEATZFEEDZFEELZFEETZFELLZFELTZFENDZFERNZFESTZFEUDZFIEFZFIGSFILEZFILLZFILMZFINDZFINEZFINKZFIREZFIRMZFISHZFISKZFISTZFITSZFIVEZFLAGZFLAKZFLAMZFLATZFLAWZFLEAZFLEDZFLEWZFLITZFLOCZFLOGZFLOWZFLUBZFLUEZFOALZFOAMZFOGYZFOILZFOLDZFOLKZFONDZFONTZFOODZFOOLZFOOTZFORDZFOREZFORKZFORMZFORTZFOSSZFOULZFOURZFOWLZFRAUZFRAYZFREDZFREEZFRETZFREYZFROGZFROMZFUELZFULLZFUMEZFUNDZFUNKZFURYZFUSEZFUSSZGAFFZGAGEZGAILZGAINZGAITZGALAZGALEZGALLZGALTZGAMEZGANGZGARBZGARYZGASHZGATEZGAULZGAURZGAVEZGAWKZGEARZGELDZGENEZGENTZGERMZGETSZGIBEZGIFTZGILDZGILLZGILTZGINAZGIRDZGIRLZGISTZGIVEZGLADZGLEEZGLENZGLIBZGLOBZGLOMZGLOWZGLUEZGLUMZGLUTZGOADZGOALZGOATZGOERZGOESZGOLDZGOLFGONEZGONGZGOODZGOOFZGOREZGORYZGOSHZGOUTZGOWNZGRABZGRADZGRAYZGREGZGREWGREYZGRIDZGRIMZGRINZGRITZGROWZGRUBZGULFZGULLZGUNKZGURUZGUSHZGUSTZGWENZGWYNZHAAGZHAASZHACKZHAILZHAIRZHALEZHALFZHALLZHALOZHALTZHANDZHANGZHANKZHANSZHARDZHARKZHARMZHARTHASHZHASTZHATEZHATHZHAULZHAVEZHAWKZHAYSHEADZHEALZHEARZHEATZHEBEZHECKZHEEDZHEELZHEFTZHELDZHELLZHELMZHERBZHERDZHEREZHEROZHERSZHESSZHEWNZHICKZHIDEZHIGHZHIKEZHILLZHILTZHINDZHINTZHIREZHISSZHIVEZHOBOZHOCKZHOFFZHOLDZHOLEZHOLMZHOLTHOMEZHONEZHONKZHOODZHOOFZHOOKZHOOTZHORNZHOSEZHOSTZHOURZHOVEZHOWEZHOWLZHOYTZHUCKZHUEDZHUFFZHUGEZHUGHZHUGOZHULKZHULLZHUNKZHUNTZHURDZHURLZHURTZHUSHZHYDEZHYMNZIBISZICONZIDEAZIDLEZIFFYZINCAZINCHZINTOZIONSZIOTAZIOWAZIRISZIRMAZIRONZISLEZITCHITEMZIVANZJACKZJADEZJAILZJAKEZJANEZJAVAZJEANZJEFFZJERKZJESSZJESTZJIBEZJILLZJILTZJIVEZJOANZJOBSZJOCKZJOELZJOEYZJOHNZJOINZJOKEZJOLTZJOVEZJUDDZJUDEZJUDOZJUDYZJUJUZJUKEZJULYZJUNEZJUNKZJUNOZJURYZJUSTZJUTEZKAHNZKALEZKANEZKANTZKARLZKATEZKEELZKEENZKENOZKENTZKERNZKERRZKEYSZKICKZKILLZKINDZKINGZKIRKZKISSZKITEZKLANZKNEEZKNEWZKNITZKNOBZKNOTZKNOWZKOCHZKONGZKUDOZKURDZKURTZKYLEZLACEZLACKZLACYZLADYZLAIDZLAINZLAIRZLAKEZLAMBZLAMEZLANDZLANELANGZLARDZLARKZLASSZLASTZLATEZLAUDZLAVAZLAWNZLAWSZLAYSZLEADZLEAFZLEAKZLEANZLEARZLEEKZLEERLEFTZLENDZLENSZLENTZLEONZLESKLESSZLESTZLETSZLIARZLICEZLICKZLIEDZLIENZLIESZLIEUZLIFEZLIFTZLIKEZLILAZLILTZLILYZLIMAZLIMBZLIMEZLINDZLINEZLINKZLINTZLIONZLISALISTZLIVEZLOADZLOAFZLOAMZLOANZLOCKZLOFTZLOGEZLOISZLOLAZLONELONGZLOOKZLOONZLOOTZLORDZLOREZLOSEZLOSSZLOSTZLOUDZLOVEZLOWEZLUCKZLUCYZLUGEZLUKEZLULUZLUNDZLUNGZLURAZLUREZLURKZLUSHZLUSTZLYLEZLYNNZLYONZLYRAZMACEZMADEZMAGIZMAIDZMAILZMAINZMAKEZMALEZMALIZMALLZMALTZMANAZMANNZMANYZMARCZMAREMARKZMARSZMARTZMARYZMASHMASKZMASSZMASTZMATEZMATHZMAULZMAYOZMEADZMEALZMEANZMEATZMEEKZMEETZMELDZMELTZMEMOZMENDZMENUZMERTZMESHZMESSZMICEZMIKEZMILDZMILEZMILKZMILLZMILTZMIMIZMINDZMINEZMINIZMINKZMINTZMIREMISSZMISTZMITEZMITTZMOANZMOATZMOCKZMODEZMOLDZMOLEZMOLLZMOLTZMONAZMONKZMONTZMOODZMOONZMOORZMOOTZMOREZMORNZMORTZMOSSZMOSTZMOTHZMOVEZMUCHZMUCKZMUDDZMUFFZMULEZMULLZMURKZMUSHZMUSTZMUTEZMUTTZMYRAZMYTHZNAGYZNAILZNAIRNAMEZNARYZNASHZNAVEZNAVYZNEALZNEARZNEATZNECKZNEEDZNEILZNELLZNEONZNEROZNESSZNESTZNEWSZNEWTZNIBSZNICEZNICKZNILEZNINAZNINEZNOAHZNODEZNOELZNOLLNONEZNOOKZNOONZNORMZNOSEZNOTEZNOUNZNOVAZNUDEZNULLZNUMBZOATHZOBEYZOBOEZODINZOHIOZOILYZOINTOKAYZOLAFZOLDYZOLGAZOLINZOMANZOMENZOMITZONCEZONESZONLYZONTOZONUSZORALZORGYZOSLOZOTISZOTTOZOUCHZOUSTZOUTSZOVALZOVENZOVERZOWLYZOWNSZQUADZQUITZQUODZRACEZRACKZRACYZRAFTZRAGEZRAIDZRAILZRAINZRAKEZRANKZRANTZRAREZRASHZRATEZRAVEZRAYSREADZREALZREAMZREARZRECKZREEDZREEFZREEKZREELZREIDZREINZRENAZRENDZRENTZRESTZRICEZRICHZRICKZRIDEZRIFTZRILLZRIMEZRINGZRINKZRISEZRISKZRITEZROADZROAMZROARZROBEZROCKZRODEZROILZROLLZROMEZROODZROOFZROOKZROOMROOTZROSAZROSEZROSSZROSYZROTHZROUTZROVEZROWEZROWSZRUBEZRUBYZRUDEZRUDYZRUINZRULEZRUNGZRUNSZRUNTZRUSEZRUSHZRUSKZRUSSZRUSTZRUTHZSACKZSAFEZSAGEZSAIDZSAILZSALEZSALKZSALTZSAMEZSANDZSANEZSANGZSANKZSARAZSAULZSAVEZSAYSZSCANZSCARZSCATZSCOTZSEALZSEAMZSEARZSEATZSEEDZSEEKZSEEMZSEENZSEESZSELFZSELLZSENDZSENTZSETSZSEWNZSHAGZSHAMZSHAWZSHAYZSHEDZSHIMZSHINZSHODZSHOEZSHOTZSHOWZSHUNZSHUTZSICKZSIDEZSIFTZSIGHZSIGNZSILKZSILLZSILOZSILTZSINEZSINGZSINKZSIRESITEZSITSZSITUZSKATZSKEWZSKIDZSKIMZSKINZSKITZSLABZSLAMZSLATZSLAYZSLEDZSLEWZSLIDZSLIMZSLITZSLOBZSLOGZSLOTZSLOWZSLUGZSLUMZSLURZSMOGZSMUGZSNAGZSNOBZSNOWZSNUBZSNUGZSOAKZSOARZSOCKZSODAZSOFAZSOFTZSOILZSOLDZSOMEZSONGZSOONZSOOTZSOREZSORTZSOULZSOURZSOWNZSTABZSTAGZSTANSTARZSTAYZSTEMZSTEWZSTIRZSTOWZSTUBZSTUNZSUCHZSUDSZSUITZSULKZSUMSZSUNGZSUNKZSUREZSURFZSWABZSWAGZSWAMZSWANZSWATZSWAYZSWIMZSWUMZTACKZTACTZTAILZTAKEZTALEZTALKZTALLZTANKZTASKZTATEZTAUTZTEALZTEAMZTEARZTECHZTEEMZTEENZTEETZTELLZTENDZTENTTERMZTERNZTESSZTESTZTHANZTHATZTHEEZTHEMZTHENZTHEYZTHINZTHISZTHUDZTHUGTICKZTIDEZTIDYZTIEDZTIERZTILEZTILLZTILTZTIMEZTINAZTINEZTINTZTINYZTIREZTOADZTOGOZTOILZTOLDZTOLLZTONEZTONGZTONYZTOOKZTOOLZTOOTZTOREZTORNZTOTEZTOURZTOUTZTOWNZTRAGZTRAMZTRAYZTREEZTREKZTRIGZTRIMZTRIOZTRODZTROTZTROYTRUEZTUBAZTUBEZTUCKZTUFTZTUNAZTUNEZTUNGZTURFZTURNZTUSKZTWIGZTWINZTWITZULANZUNITZURGEZUSEDUSERZUSESZUTAHZVAILZVAINZVALEZVARYZVASEZVASTZVEALZVEDAZVEILZVEINZVENDZVENTZVERBZVERYZVETOZVICEZVIEWZVINEZVISEZVOIDZVOLTZVOTEZWACKZWADEZWAGEZWAILZWAITZWAKEZWALEZWALKZWALLZWALTZWANDZWANEZWANGZWANTZWARDZWARMWARNZWARTZWASHZWASTZWATSZWATTZWAVEZWAVYZWAYSZWEAKZWEALZWEANZWEARZWEEDZWEEKZWEIRZWELDZWELLZWELTZWENTZWEREZWERTZWESTZWHAMZWHATZWHEEZWHENZWHETZWHOAZWHOMZWICKZWIFEZWILDZWILLZWINDZWINEZWINGZWINKZWINOZWIREZWISEZWISHZWITHZWOLFZWONTZWOODZWOOLZWORDZWOREZWORKZWORMZWORNZWOVEZWRITZWYNNZYALEZYANGZYANKZYARDZYARNZYAWLZYAWNZYEAHZYEARZYELLZYOGAZYOKE)
__future__r   binasciiZCryptodome.Util.py3compatr   r   r   r    r(   r7   rA   r/   r   r   r   r   <module>   s(          
#6                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              