U +MbR@sddlmZddlZddlmZmZdddddd d d d d dddddddZddZddZddZ ddZ dddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;dd?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd d d d d ddddddddddddddddddd 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~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddÐdĐdŐdƐdǐdȐdɐdʐdːd̐d͐dΐdϐdАdѐdҐdӐdԐdՐd֐dאdؐdِdڐdېdܐdݐdސdߐdddddddddddddddddddddddddddddddddddddddddd d d d d ddddddddddddddddddd 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~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddÐdĐdŐdƐdǐdȐdɐdʐdːd̐d͐dΐdϐdАdѐdҐdӐdԐdՐd֐dאdؐdِdڐdېdܐdݐdސdߐdddddddddddddddddddddddddddddddddddddddddd d d d d ddddddddddddddddddd 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~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddÐdĐdŐdƐdǐdȐdɐdʐdːd̐d͐dΐdϐdАdѐdҐdӐdԐdՐd֐dאdؐdِdڐdېdܐdݐdސdߐdddddddddddddddddddddddddddddddddddddddddd d d d d ddddddddddddddddddd 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~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddÐdĐdŐdƐdǐdȐdɐdʐdːd̐d͐dΐdϐdАdѐdҐdӐdԐdՐd֐dאdؐdِdڐdېdܐdݐdސdߐdddddddddddddddddddddddddddddddddddddddddd d d d d ddddddddddddddddddd 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~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddÐdĐdŐdƐdǐdȐdɐdʐdːd̐d͐dΐdϐdАdѐdҐdӐdԐdՐd֐dאdؐdِdڐdېdܐdݐdސdߐdddddddddddddddddddddddddddddddddddddddddd d d d d ddddddddddddddddddd 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~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddÐdĐdŐdƐdǐdȐdɐdʐdːd̐d͐dΐdϐdАdѐdҐdӐdԐdՐd֐dאdؐdِdڐdېdܐdݐdސdߐdddddddddddddddddddddddddddddddddddddddddd d d d d ddddddddddddddddddd 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~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddÐdĐdŐdƐdǐdȐdɐdʐdːd̐d͐dΐdϐdАdѐdҐdӐdԐdՐd֐dאdؐdِdڐdېdܐdݐdސdߐdddddddddddddddddddddddddddddddddddddddddd d d d d dddddddddddddddgZ dS()print_functionN)bordbchrZ0000Z0001Z0010Z0011Z0100Z0101Z0110Z0111Z1000Z1001Z1010Z1011Z1100Z1101Z1110Z1111)r cCs&tdd|}tdd|}d|S)z,Convert a key into a string of binary digitscSst|S)N)rxr:/tmp/pip-target-t616c12r/lib/python/Crypto/Util/RFC1751.py(z_key2bin..cSst|d?t|d@S)Nrr)binaryrrrrr)r)mapjoin)sklrrr_key2bin&sr cCs2d}||||D]}|dt|d}q|S)zjExtract a bitstring(2.x)/bytestring(2.x) from a string of binary digits, and return its numeric value.rr0)ord)keystartlengthresultyrrr_extract-sr(cCst|ddkrtdd}tdt|dD]}|||d}t|}d}tdddD]}|t||d}qXt|t|d>d@}tddd D]}|tt||d d }qq,|S) aqTransform an arbitrary key into a string containing English words. Example:: >>> from Crypto.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 rz.The length of the key must be a multiple of 8.r@rr r )len ValueErrorranger r(rwordliststrip)r#englishindexsubkeyskbinpirrrkey_to_english7sr7cCs|}d}tdt|dD]}|||d}ddg}d}|D]}t|}d|ddd}||>} | d?| d?d@| d@} } } |d kr||d ?| B||d ?<||d ?d | B||d ?d <||d ?d | B||d ?d <n\|d kr:||d ?| B||d ?<||d ?d | B||d ?d <n||d ?| B||d ?<|d}qHd} |D]} | t| } qdt| }d}tddd D]}|t||d }q|d @t|dd krt d|| dd}q |S)azTransform a string into a corresponding key. Example:: >>> from Crypto.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. rrr r r rr*r rrrr)zParity error in resulting key) uppersplitr.r,r/r2rr r(r-)rLr#r2Zsublistcharbitsr6shiftr'clcccrr3r4r5rrrenglish_to_keyZs>      " " rCAZABEZACEZACTZADZADAZADDZAGOZAIDZAIMZAIRALLZALPZAMZAMYANZANAANDZANNZANTANYZAPEZAPSZAPTZARCZAREZARKZARMZARTZASZASHZASKATZATEZAUGZAUKZAVEZAWEZAWKZAWLZAWNZAXZAYEBADZBAGZBAHZBAMZBANZBARZBATZBAYZBEZBEDZBEEZBEGZBENZBETZBEYZBIBZBIDZBIGZBINZBITZBOBZBOGZBONZBOOZBOPZBOWZBOYZBUBZBUDBUGZBUMZBUNZBUSZBUTZBUYZBYZBYEZCABZCALZCAMZCANZCAPZCARZCATZCAWZCODZCOGZCOLCONZCOOZCOPZCOTZCOWZCOYZCRYZCUBZCUEZCUPZCURZCUTZDABZDADZDAMZDANZDARZDAYZDEEZDELZDENZDESZDEWZDIDZDIEZDIGZDINZDIPZDOZDOEZDOGZDONDOTZDOWZDRYZDUBZDUDZDUEZDUGZDUNZEARZEATZEDZEELZEGGZEGOZELIZELKZELMZELYZEMZENDESTZETCZEVAZEVEZEWEZEYEZFADZFANZFARZFATZFAYZFEDZFEEZFEWZFIBZFIGZFINZFIRZFITZFLOZFLYZFOEZFOGZFORZFRYZFUMZFUNZFURZGABZGADZGAGZGALZGAMGAPGASZGAYZGEEZGELZGEMGETZGIGZGILZGINZGOZGOTZGUMZGUNZGUSZGUTZGUYZGYMZGYPZHAZHADZHALZHAMZHANZHAPZHASZHATZHAWZHAYZHEZHEMZHENZHERZHEWZHEYZHIZHIDZHIMZHIPZHISHITZHOZHOBZHOCZHOEZHOGZHOPZHOTZHOWZHUBZHUEZHUGZHUHZHUMZHUTIZICYZIDAZIFZIKEZILLZINKZINNIOZIONZIQZIRAZIREZIRKZISZITZITSZIVYZJABZJAGZJAMZJANZJARZJAWZJAYZJETZJIGZJIMZJOZJOBZJOEZJOGZJOTZJOYZJUGZJUTZKAYZKEGZKENZKEYZKIDZKIMZKINZKITZLAZLABZLACZLADZLAGZLAMZLAPZLAWZLAYZLEAZLEDZLEEZLEGZLENZLEOZLETZLEWZLIDZLIEZLINZLIPZLITZLOZLOBZLOGZLOPZLOSZLOTZLOUZLOWZLOYZLUGZLYEZMAZMACZMADZMAEZMANZMAOZMAPZMATZMAWZMAYZMEZMEGZMELZMENZMETZMEWZMIDZMINMITZMOBZMODZMOEZMOOZMOPZMOSZMOTZMOWZMUDZMUGZMUMZMYZNABZNAGZNANZNAPZNATZNAYZNEZNEDZNEEZNETZNEWZNIBZNILZNIPZNITNOZNOBZNODZNONZNORZNOTZNOVZNOWZNUZNUNZNUTOZOAFZOAKZOARZOATZODDZODEZOFZOFFZOFTZOHZOILOKZOLDONZONEORZORBZOREZORRZOSZOTTZOURZOUTZOVAZOWZOWEZOWLZOWNZOXZPAZPADZPALZPAMZPANZPAPZPARZPATZPAWZPAYZPEAPEGZPENZPEPZPERZPETZPEWZPHIPIZPIEZPINZPITZPLYZPOZPODZPOEPOPZPOTZPOWZPROZPRYZPUBZPUGZPUNZPUPPUTZQUOZRAGZRAMZRANZRAPZRATZRAWZRAYZREBREDZREPZRETZRIBZRIDZRIGZRIMZRIOZRIPZROBZRODZROEZRONZROTZROWZROYZRUBZRUEZRUGZRUMZRUNZRYEZSACZSADZSAGZSALZSAMZSANZSAPZSATZSAWZSAYZSEAZSECZSEEZSENZSETZSEWZSHEZSHYZSINZSIPZSIRZSISZSITZSKIZSKYZSLYSOZSOBZSODZSONZSOPZSOWZSOYZSPAZSPYZSUBZSUDZSUEZSUMZSUNZSUPZTABZTADZTAGZTANTAPZTARZTEAZTEDZTEEZTENZTHEZTHYZTICZTIEZTIMZTINZTIPZTOZTOEZTOGZTOMZTONZTOOZTOPZTOWZTOYTRYZTUBZTUGZTUMZTUNZTWOZUNUPZUSZUSEZVANZVATZVETZVIEZWADZWAGZWARZWASZWAYZWEZWEBZWEDZWEEZWETZWHOZWHYZWINZWITZWOKZWONZWOOZWOWZWRYZWUZYAMZYAPZYAWZYEZYEAZYESZYETZYOUZABEDZABELZABETZABLEZABUTZACHEZACIDZACMEZACREZACTAZACTSZADAMZADDSZADENZAFARZAFROZAGEEZAHEMZAHOYZAIDAZAIDEZAIDSZAIRYZAJARZAKINZALANZALECZALGAZALIAZALLYZALMAZALOEZALSOZALTOZALUMZALVAZAMENZAMESZAMIDZAMMOZAMOKZAMOSZAMRAZANDYZANEWZANNAZANNEZANTEZANTIZAQUAZARABZARCHZAREAZARGOZARIDZARMYZARTSZARTYZASIAZASKSZATOMZAUNTZAURAZAUTOZAVERZAVIDZAVISZAVONZAVOWZAWAYZAWRYZBABEZBABYZBACHBACKZBADEZBAILZBAITZBAKEZBALDZBALEZBALIZBALKZBALLZBALMZBANDZBANEZBANGZBANKZBARBZBARDBAREZBARKZBARNZBARRZBASEZBASHZBASKZBASSZBATEZBATHZBAWDZBAWLZBEADZBEAKZBEAMZBEANZBEARZBEATZBEAUZBECKZBEEFZBEENZBEERZBEETZBELABELLZBELTZBENDZBENTZBERGZBERNZBERTZBESSZBESTZBETAZBETHZBHOYZBIASZBIDEZBIENZBILEZBILKZBILLZBINDZBINGZBIRDZBITEZBITSZBLABZBLATZBLEDZBLEWZBLOBZBLOCZBLOTZBLOWBLUEZBLUMZBLURZBOARZBOATZBOCAZBOCKZBODEZBODYZBOGYZBOHRZBOILZBOLDZBOLOZBOLTZBOMBZBONAZBONDZBONEZBONGZBONNZBONYZBOOKZBOOMZBOONZBOOTZBOREZBORGZBORNZBOSEZBOSSZBOTHZBOUTZBOWLZBOYDZBRADZBRAEZBRAGZBRANZBRAYZBREDZBREWZBRIGZBRIMZBROWBUCKZBUDDZBUFFZBULBZBULKZBULLZBUNKZBUNTZBUOYZBURGZBURLZBURNZBURRZBURTZBURYZBUSHZBUSSZBUSTZBUSYZBYTEZCADYZCAFEZCAGEZCAINZCAKEZCALFCALLZCALMZCAMEZCANEZCANTZCARDZCAREZCARLZCARRZCARTZCASEZCASHZCASKZCASTZCAVEZCEILZCELLZCENTZCERNZCHADZCHARZCHATZCHAWZCHEFZCHENZCHEWZCHICZCHINZCHOUZCHOWZCHUBZCHUGZCHUMZCITEZCITYZCLADZCLAMZCLANZCLAWZCLAYZCLODZCLOGZCLOTZCLUBZCLUEZCOALZCOATZCOCAZCOCKZCOCOZCODAZCODEZCODYZCOEDZCOILZCOINZCOKEZCOLAZCOLDZCOLTZCOMAZCOMBZCOMEZCOOKZCOOLZCOONZCOOTZCORDZCOREZCORKZCORNZCOSTZCOVEZCOWLZCRABZCRAGZCRAMZCRAYZCREWZCRIBZCROWZCRUDZCUBAZCUBEZCUFFZCULLZCULTZCUNYZCURBZCURDZCUREZCURLZCURTZCUTSZDADEZDALEZDAMEZDANAZDANEZDANGZDANKZDAREZDARKZDARNZDARTZDASHZDATADATEZDAVEZDAVYZDAWNDAYSZDEADZDEAFZDEALZDEANZDEARZDEBTZDECKZDEEDZDEEMZDEERZDEFTZDEFYZDELLZDENTZDENYZDESKZDIALZDICEZDIEDZDIETZDIMEZDINEZDINGZDINTZDIREZDIRTZDISCZDISHZDISKZDIVEZDOCKZDOESZDOLEZDOLLZDOLTZDOMEZDONEZDOOMZDOORZDORAZDOSEZDOTEZDOUGZDOURZDOVEDOWNZDRABZDRAGZDRAMZDRAWZDREWZDRUBZDRUGZDRUMZDUALZDUCKZDUCTZDUELZDUETZDUKEZDULLZDUMBZDUNEZDUNKZDUSKZDUSTZDUTYZEACHZEARLZEARNZEASEZEASTZEASYZEBENECHOZEDDYZEDENZEDGEZEDGYZEDITZEDNAZEGANZELANZELBAZELLAELSEZEMILZEMITZEMMAZENDSZERICZEROSZEVENZEVERZEVILZEYEDZFACEZFACTZFADEFAILZFAINZFAIRZFAKEZFALLZFAMEZFANGZFARMZFASTZFATEZFAWNZFEARZFEATZFEEDZFEELZFEETZFELLZFELTZFENDZFERNZFESTZFEUDZFIEFZFIGSFILEZFILLZFILMZFINDZFINEZFINKZFIREZFIRMZFISHZFISKZFISTZFITSZFIVEZFLAGZFLAKZFLAMZFLATZFLAWZFLEAZFLEDZFLEWZFLITZFLOCZFLOGZFLOWZFLUBZFLUEZFOALZFOAMZFOGYZFOILZFOLDZFOLKZFONDZFONTZFOODZFOOLZFOOTZFORDZFOREZFORKZFORMZFORTZFOSSZFOULZFOURZFOWLZFRAUZFRAYZFREDZFREEZFRETZFREYZFROGZFROMZFUELZFULLZFUMEZFUNDZFUNKZFURYZFUSEZFUSSZGAFFZGAGEZGAILZGAINZGAITZGALAZGALEZGALLZGALTZGAMEZGANGZGARBZGARYZGASHZGATEZGAULZGAURZGAVEZGAWKZGEARZGELDZGENEZGENTZGERMZGETSZGIBEZGIFTZGILDZGILLZGILTZGINAZGIRDZGIRLZGISTZGIVEZGLADZGLEEZGLENZGLIBZGLOBZGLOMZGLOWZGLUEZGLUMZGLUTZGOADZGOALZGOATZGOERZGOESZGOLDZGOLFGONEZGONGZGOODZGOOFZGOREZGORYZGOSHZGOUTZGOWNZGRABZGRADZGRAYZGREGZGREWGREYZGRIDZGRIMZGRINZGRITZGROWZGRUBZGULFZGULLZGUNKZGURUZGUSHZGUSTZGWENZGWYNZHAAGZHAASZHACKZHAILZHAIRZHALEZHALFZHALLZHALOZHALTZHANDZHANGZHANKZHANSZHARDZHARKZHARMZHARTHASHZHASTZHATEZHATHZHAULZHAVEZHAWKZHAYSHEADZHEALZHEARZHEATZHEBEZHECKZHEEDZHEELZHEFTZHELDZHELLZHELMZHERBZHERDZHEREZHEROZHERSZHESSZHEWNZHICKZHIDEZHIGHZHIKEZHILLZHILTZHINDZHINTZHIREZHISSZHIVEZHOBOZHOCKZHOFFZHOLDZHOLEZHOLMZHOLTHOMEZHONEZHONKZHOODZHOOFZHOOKZHOOTZHORNZHOSEZHOSTZHOURZHOVEZHOWEZHOWLZHOYTZHUCKZHUEDZHUFFZHUGEZHUGHZHUGOZHULKZHULLZHUNKZHUNTZHURDZHURLZHURTZHUSHZHYDEZHYMNZIBISZICONIDEAZIDLEZIFFYZINCAZINCHZINTOZIONSZIOTAZIOWAZIRISZIRMAZIRONZISLEZITCHZITEMZIVANZJACKZJADEZJAILZJAKEZJANEZJAVAZJEANZJEFFZJERKZJESSZJESTZJIBEZJILLZJILTZJIVEZJOANZJOBSZJOCKZJOELZJOEYZJOHNZJOINZJOKEZJOLTZJOVEZJUDDZJUDEZJUDOZJUDYZJUJUZJUKEZJULYZJUNEZJUNKZJUNOZJURYZJUSTZJUTEZKAHNZKALEZKANEZKANTZKARLZKATEZKEELZKEENZKENOZKENTZKERNZKERRZKEYSZKICKZKILLZKINDZKINGZKIRKZKISSZKITEZKLANZKNEEZKNEWZKNITZKNOBZKNOTZKNOWZKOCHZKONGZKUDOZKURDZKURTZKYLEZLACEZLACKZLACYZLADYZLAIDZLAINZLAIRZLAKEZLAMBZLAMEZLANDZLANELANGZLARDZLARKZLASSZLASTZLATEZLAUDZLAVAZLAWNZLAWSZLAYSZLEADZLEAFZLEAKZLEANZLEARZLEEKZLEERLEFTZLENDZLENSZLENTZLEONZLESKLESSZLESTZLETSZLIARZLICEZLICKZLIEDZLIENZLIESZLIEUZLIFEZLIFTZLIKEZLILAZLILTZLILYZLIMAZLIMBZLIMEZLINDZLINEZLINKZLINTZLIONZLISALISTZLIVEZLOADZLOAFZLOAMZLOANZLOCKZLOFTZLOGEZLOISZLOLAZLONELONGZLOOKZLOONZLOOTZLORDZLOREZLOSEZLOSSZLOSTZLOUDZLOVEZLOWEZLUCKZLUCYZLUGEZLUKEZLULUZLUNDZLUNGZLURAZLUREZLURKZLUSHZLUSTZLYLEZLYNNZLYONZLYRAZMACEZMADEZMAGIZMAIDZMAILZMAINZMAKEZMALEZMALIZMALLZMALTZMANAZMANNZMANYZMARCZMAREMARKZMARSZMARTZMARYZMASHMASKZMASSZMASTZMATEZMATHZMAULZMAYOZMEADZMEALZMEANZMEATZMEEKZMEETZMELDZMELTZMEMOZMENDZMENUZMERTZMESHZMESSZMICEZMIKEZMILDZMILEZMILKZMILLZMILTZMIMIZMINDZMINEZMINIZMINKZMINTZMIREMISSZMISTZMITEZMITTZMOANZMOATZMOCKZMODEZMOLDZMOLEZMOLLZMOLTZMONAZMONKZMONTZMOODZMOONZMOORZMOOTZMOREZMORNZMORTZMOSSZMOSTZMOTHZMOVEZMUCHZMUCKZMUDDZMUFFZMULEZMULLZMURKZMUSHZMUSTZMUTEZMUTTZMYRAZMYTHZNAGYZNAILZNAIRNAMEZNARYZNASHZNAVEZNAVYZNEALZNEARZNEATZNECKZNEEDZNEILZNELLZNEONZNEROZNESSZNESTZNEWSZNEWTZNIBSZNICEZNICKZNILEZNINAZNINEZNOAHZNODEZNOELZNOLLNONEZNOOKZNOONZNORMZNOSENOTEZNOUNZNOVAZNUDEZNULLZNUMBZOATHZOBEYZOBOEODINZOHIOZOILYZOINTOKAYZOLAFZOLDYZOLGAZOLINZOMANZOMENZOMITZONCEZONESZONLYZONTOZONUSZORALZORGYZOSLOZOTISZOTTOZOUCHZOUSTZOUTSZOVALZOVENZOVERZOWLYZOWNSZQUADZQUITZQUODZRACEZRACKZRACYZRAFTZRAGEZRAIDZRAILZRAINZRAKEZRANKZRANTZRAREZRASHZRATEZRAVEZRAYSREADZREALZREAMZREARZRECKZREEDZREEFZREEKZREELZREIDZREINZRENAZRENDZRENTZRESTZRICEZRICHZRICKZRIDEZRIFTZRILLZRIMEZRINGZRINKZRISEZRISKZRITEZROADZROAMZROARZROBEZROCKZRODEZROILZROLLZROMEZROODZROOFZROOKZROOMROOTZROSAZROSEZROSSZROSYZROTHZROUTZROVEZROWEZROWSZRUBEZRUBYZRUDEZRUDYZRUINZRULEZRUNGZRUNSZRUNTZRUSEZRUSHZRUSKZRUSSZRUSTZRUTHZSACKZSAFEZSAGEZSAIDZSAILZSALEZSALKZSALTZSAMEZSANDZSANEZSANGZSANKZSARAZSAULZSAVEZSAYSZSCANZSCARZSCATZSCOTZSEALZSEAMZSEARZSEATSEEDZSEEKZSEEMZSEENZSEESZSELFZSELLZSENDZSENTZSETSZSEWNZSHAGZSHAMZSHAWZSHAYZSHEDZSHIMZSHINZSHODZSHOEZSHOTZSHOWZSHUNZSHUTZSICKZSIDEZSIFTZSIGHZSIGNZSILKZSILLZSILOZSILTZSINEZSINGZSINKZSIRESITEZSITSZSITUZSKATZSKEWZSKIDZSKIMZSKINZSKITZSLABZSLAMZSLATZSLAYZSLEDZSLEWZSLIDZSLIMZSLITZSLOBZSLOGZSLOTZSLOWZSLUGZSLUMZSLURZSMOGZSMUGZSNAGZSNOBZSNOWZSNUBZSNUGZSOAKZSOARZSOCKZSODAZSOFAZSOFTZSOILZSOLDZSOMEZSONGZSOONZSOOTZSOREZSORTZSOULZSOURZSOWNZSTABZSTAGZSTANSTARZSTAYZSTEMZSTEWZSTIRZSTOWZSTUBZSTUNZSUCHZSUDSZSUITZSULKZSUMSZSUNGZSUNKZSUREZSURFZSWABZSWAGZSWAMZSWANZSWATZSWAYZSWIMZSWUMZTACKZTACTZTAILZTAKEZTALEZTALKZTALLZTANKZTASKZTATEZTAUTZTEALZTEAMZTEARZTECHZTEEMZTEENZTEETZTELLZTENDZTENTTERMZTERNZTESSZTESTZTHANZTHATZTHEEZTHEMZTHENZTHEYZTHINZTHISZTHUDZTHUGTICKZTIDEZTIDYZTIEDZTIERZTILEZTILLZTILTZTIMEZTINAZTINEZTINTZTINYZTIREZTOADZTOGOZTOILZTOLDZTOLLZTONEZTONGZTONYZTOOKZTOOLZTOOTZTOREZTORNZTOTEZTOURZTOUTZTOWNZTRAGZTRAMZTRAYZTREEZTREKZTRIGZTRIMZTRIOZTRODZTROTZTROYTRUEZTUBAZTUBEZTUCKZTUFTZTUNAZTUNEZTUNGZTURFZTURNZTUSKZTWIGZTWINZTWITZULANZUNITZURGEZUSEDUSERZUSESZUTAHZVAILZVAINZVALEZVARYZVASEZVASTZVEALZVEDAZVEILZVEINZVENDZVENTZVERBZVERYZVETOZVICEZVIEWZVINEZVISEZVOIDZVOLTZVOTEZWACKZWADEZWAGEZWAILZWAITZWAKEZWALEZWALKZWALLZWALTZWANDZWANEZWANGZWANTZWARDZWARMWARNZWARTZWASHZWASTZWATSZWATTZWAVEZWAVYZWAYSZWEAKZWEALZWEANZWEARZWEEDZWEEKZWEIRZWELDZWELLZWELTZWENTZWEREZWERTZWESTZWHAMZWHATZWHEEZWHENZWHETZWHOAZWHOMZWICKZWIFEZWILDZWILLZWINDZWINEZWINGZWINKZWINOZWIREZWISEZWISHZWITHZWOLFZWONTZWOODZWOOLZWORDZWOREZWORKZWORMZWORNZWOVEZWRITZWYNNZYALEYANGZYANKZYARDZYARNZYAWLZYAWNZYEAHZYEARZYELLZYOGAZYOKE) __future__rbinasciiZCrypto.Util.py3compatrrrr r(r7rCr/rrrrs(   #6