+
    :'L%  c                   s.   R t ^ RItRR.tRtRt. RRR]^ ^ ^.NR	R
R]^ ^ ^.NRRR]^^ ^~.NRRR]^U^U^.NRRR]^ ^ ^.NRRR]^^ ^.NRRR]^ ^ ^%.NRRR]^ ^ R.NRRR]^ ^ R.NR R!R]R"^ R#.NR$R%R&]^^^~.NR'R(R)]R*R*R+.NR,R-R)]R*R*R..NR/R0R1]^ R*R2.NR3R4R]R*R*R5.NR6R7R1]R*^ R8.NR9R:R1]R;^ R<.NR=R>R?]^ ^ R@.NRARBRC]^ ^ RD.NRERFR]^ R*RG.NRHRIR1]^ R*RJ.NRKRLR1]^ ^ RM.NRNROR]R*^ RP.NRQRRR1]^ ^ RS.NRTRUR1]R*^ RV.NRWRXR1]RY^ RZ.NR[R\R]]R^^ R_.NR`RaRb]Rc^ Rd.NReRfRb]Rg^ Rh.NRiRjRk]^ RlRm.NRnRoRk]^ RlRp.NRqRrRs]^ RlRt.NRuRvRw]^ RlRx.NRyRzRk]Rl^ R{.NR|R}Rk]RlRlR~.NRRR]^ ^ R.NRRRk]Rl^ R.NRRR]^ ^ R.NRRR]^ ^ R.NRRR]^ RR.NRRR]R^ R.NtR t/ t/ t. t	. ROt
] Fa  t]! ]! ]
]4      4      t]	P                  ]4       ]! ]^ ,          4      t]]9   d   ]! RP%                  ]4      4      h]]]&   ]]]^,          &   Kc  	  R t ! R R]P(                  4      t]tR t]tR# )a}  
crcmod.predefined defines some well-known CRC algorithms.

To use it, e.g.:
    import crcmod.predefined
    
    crc32func = crcmod.predefined.mkPredefinedCrcFun("crc-32")
    crc32class = crcmod.predefined.PredefinedCrc("crc-32")

crcmod.predefined.Crc is an alias for crcmod.predefined.PredefinedCrc
But if doing 'from crc.predefined import *', only PredefinedCrc is imported.
NPredefinedCrcmkPredefinedCrcFunTFzcrc-8ZCrc8i  z
crc-8-darcZCrc8Darci9  zcrc-8-i-codeZ	Crc8ICodei  z	crc-8-ituZCrc8Ituzcrc-8-maximZ	Crc8Maximi1  z
crc-8-rohcZCrc8Rohczcrc-8-wcdmaZ	Crc8Wcdmai  zcrc-16ZCrc16i i=  zcrc-16-buypassZCrc16Buypassi  zcrc-16-dds-110ZCrc16Dds110i  iϞ  zcrc-16-dectZ	Crc16Decti z
crc-16-dnpZCrc16Dnpie= i  i  zcrc-16-en-13757ZCrc16En13757i  zcrc-16-genibusZCrc16Genibusi! iN  zcrc-16-maximZ
Crc16MaximiD  zcrc-16-mcrf4xxZCrc16Mcrf4xxio  zcrc-16-rielloZCrc16RielloiMU  ic  zcrc-16-t10-difZCrc16T10Difi i  zcrc-16-telediskZCrc16Telediski i  z
crc-16-usbZCrc16Usbiȴ  zx-25ZCrcX25in  ZxmodemZ	CrcXmodemi1  ZmodbusZ	CrcModbusi7K  ZkermitZ	CrcKermiti!  zcrc-ccitt-falseZCrcCcittFalsei)  zcrc-aug-ccittZCrcAugCcitti  i  zcrc-24ZCrc24iLi i! zcrc-24-flexray-aZCrc24FlexrayAim]i iyy zcrc-24-flexray-bZCrc24FlexrayBiͫ i# zcrc-32ZCrc32l   	 l    l   &9 zcrc-32-bzip2Z
Crc32Bzip2l   y zcrc-32cZCrc32Cl   Ao= l   F zcrc-32dZCrc32Dl   +gP l   vUb zcrc-32-mpegZ	Crc32MpegivZposixZCrcPosixiv^vzcrc-32qZCrc32Ql   A i0ZjamcrcZ	CrcJamCrci4ZxferZCrcXferl       l   8cz zcrc-64ZCrc64l           l   o$-5 z	crc-64-weZCrc64Wel   6S l    l   
pIcgb zcrc-64-jonesZ
Crc64Jonesl   5)Hl l   rZ\8U c                s    V P                  4       p V P                  RR4      p V P                  RR4      p V P                  R4      '       d   V \        R4      R p V # )z
Reduce CRC definition name to a simplified form:
    * lowercase
    * dashes removed
    * spaces removed
    * any initial "CRC" string removed
Z-Z Z ZcrcN)ZlowerZreplaceZ
startswithZlen)names   &8/usr/lib64/python3.14/site-packages/crcmod/predefined.py_simplify_namer   i   sS     ::<D<<R D<<R DuCJK K    z&Duplicate entry for '{0}' in CRC tablec                 s    \         P                  \        V 4      R 4      pV'       g   \        P                  V R 4      pV'       g   \	        RP                  V 4      4      hV# )NzUnkown CRC name '{0}')_crc_definitions_by_nameZgetr   _crc_definitions_by_identifierZKeyErrorformatcrc_name
definition   & r   _get_definition_by_namer      sN    )--nX.FMJ377$G
.55h?@@r   c                   s2   a a ] tR t^t oV 3R ltRtVtV ;t# )r    c                s|   < \        V4      p\        SV `	  VR ,          VR,          VR,          VR,          R7       R# )polyinitreversexor_outr   ZinitCrcZrevZxorOutN)r   Zsuper__init__)Zselfr
   r   	__class__s   && r   r   ZPredefinedCrc.__init__   sF    ,X6
j0*V:LR\]fRgpz  |E  qF  	Gr    )Z__name__Z
__module__Z__qualname__Z__firstlineno__r   Z__static_attributes__Z__classdictcell__Z__classcell__)r   Z__classdict__s   @@r   r    r       s     G Gr   c                 s    \        V 4      p\        P                  ! VR ,          VR,          VR,          VR,          R7      # )r   r   r   r   r   )r   crcmodmkCrcFunr	   r   r   r   r      sG    (2J??
6 2Jv<NT^_hTir|  ~G  sH  I  Ir   )r   Z
identifierr   r   r   r   Zcheck)Z__doc__r   Z__all__ZREVERSEZNON_REVERSEZ_crc_definitions_tabler   r   r   Z_crc_definitionsZ_crc_table_headingsZtable_entryZdictZzipZcrc_definitionZappendr   Z	Exceptionr   r   ZCrcr    r   r   r   r   r   <module>r      s  ,  
 
5FPT`dlpy5 	JPT`dlpy5 	KPT`dlpy	5
 	IPT`dlpy5 	KPT`dlpy5 	JPT`dlpy5 	KPT`dlpy5 	GPV`flry5 	NPV`flry5 	MPV`flry5 	KPV`flry5 	JPV`flry5 	NPV`flry5  	NPV`flry!5" 	LPV`flry#5$ 	NPV`flry%5& 	MPV`flry'5( 	MPV`flry)5* 	OPV`flry+5, 	JPV`flry-5. 	HPV`flry/50 	KPV`flry152 	KPV`flry35< 	KPV`flry=5> 	OPV`flry?5@ 	MPV`flryA5D 	G	PX`hltyE5F 	O	PX`hltyG5H 	O	PX`hltyI5L 	GPZ`jlvyM5N 	LPZ`jlvyO5P 	HPZ`jlvyQ5R 	HPZ`jlvyS5T 	KPZ`jlvyU5V 	JPZ`jlvyW5X 	HPZ`jlvyY5Z 	KPZ`jlvy[5\ 	IPZ`jlvy]5d 	G0CXjl~  AS  Ve5f 	I0CXjl~  AS  Vg5h 	L0CXjl~  AS  Vi5 p   !#  ] )K#1;?@NN++a.)D''@GGMNN%3T"5C";q>2 *GFJJ G I r   