0&Kch@sddkZdddddddd 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`dadbdcddddedfdgggZdhgdigdjdjgdkdlgdkdmgdndogdndpgdqdrgdqZgdhdsdtdudvdwdwdwgdhdtdxdydzdzdzdzgdhdudyd{d|d|d|d|gdhdvdzd|d|d|d|d|gdhdwdzd|d|d|d|d|gdhdwdzd|d|d|d|d|gdhdwdzd|d|d|d|d|ggZd}Zd~efdYZdefdYZdefdYZ dS(iNtXXtHtHEtLItBEtBtCtNtOtFtNEtNAtMGtALtSItPtStCLtARtKtCAtSCtTItVtCRtMNtFEtCOtNItCUtZNtGAtGEtAStSEtBRtKRtRBtSRtYtZRtNBtMOtTCtRUtRHtPDtAGtCDtINtSNtSBtTEtItXEtCStBAtLAtCEtPRtNDtPMtSMtEUtGDtTBtDYtHOtERtTMtYBtLUtHFtTAtWtREtOStIRtPTtAUtHGtTLtPBtBItPOtATtRNtFRtRAtACtTHtPAtUtNPtPUtAMtCMtBKtCFtFMtMDtCBiiiiiiiiii ig?g?g333333?gffffff?g@g?g@g333333@g@g333333@cCs&t|}t|}|t||jS(N(t table_rowtbonding_distances(tatbtdisttrow_atrow_b((s giechem.pyctis_bonds  tAtomcBsJeZdddddZdZdZdZdZdZRS( ticCsti|dddgt|ii|_|io$|i o|i|i|_n/|io$|i o|i|i|_nti|_ |o|i |nti|_ dS(Ntnametnumbertindex( tgptparams_to_attributestlocalsRptupperRqt get_numbertget_nametRichListtcoordst new_coordstbonds(tselfRpRqRzRr((s giechem.pyct__init__%scCs|ii|dS(N(R|tappend(R}tpartner((s giechem.pyctadd_bond6scCs`tig}|D]}|t|q~|_t|idjoti|_ndS(Ni(RsRytfloatRztlen(R}Rzt_[1]tx((s giechem.pycR{:s3cCs4yt||_Wntj od|_nXdS(NRo(t element_namesRpt IndexError(R}Rq((s giechem.pycRxAscCs?yti|i|_Wntj od|_nXdS(Ni(RRrRvRqt ValueError(R}Rp((s giechem.pycRwHscCsy,t||_|i|i|_tSWn`tj oTy3|i||io|i|itSnWqtj o tSqXnXdS(N(tintRqRxRptTrueRRwtFalse(R}tvalue((s giechem.pyctget_name_or_numberOs   N( t__name__t __module__tNoneR~RR{RxRwR(((s giechem.pycRn!s     tMoleculecBs_eZdd d dZd d dZdZdZdZdZdZ dZ RS( RocCsti|dgt|oti||_nti|_ti|_|oti||_nti|_dS(NRp(RsRtRuRytatomstRichDictR|t frequencies(R}RpRR((s giechem.pycR~dscCs|i}|iitd|d||i|i|xSt|D]E}|i||o,|i|i||i|i|qLqLWdS(NRzRr(t num_atomsRRRnRtxranget find_bondsR(R}tidRzt atom_numbertind((s giechem.pyctadd_atomvs  cCs|ii|dS(N(RR(R}t frequency((s giechem.pyct add_frequencyscCs$ti|i|i|i|iS(N(RstdistanceRRz(R}RhRi((s giechem.pycRscCs6|i||}t|i|i|i|i|S(N(RRmRRq(R}RhRiRj((s giechem.pycRscCs||i|ijS(N(RR|(R}RhRi((s giechem.pyct are_bondedscCs t|iS(N(RR(R}((s giechem.pycRscCsxtdD]}g}|iD]}||i|q!~}t|}t|}||d}x)|iD]}|i|||i|s( 966$$?V! >G