+
     h  c                    s"   R t ^ RIt^ RIHt ^b]P
                  P                  P                  ^ R^R^R^R^R^R/3^c]P
                  P                  P                  / ^ R	b^R
b^Rb^Rb^Rb^Rb^Rb^Rb^Rb^Rb^Rb^Rb^Rb^Rb^Rb^Rb^Rb^R/C3^d]P
                  P                  P                  ^ R/3^g]P
                  P                  P                  ^ R/3^h]P
                  P                  P                  ^R^R/3^i]P
                  P                  P                  ^R^R ^R!^R"^R#^R$^R%^R&/3^j]P
                  P                  P                  ^R'^R(^R)^R*^R+^R,^R-^R.^R//	3^k]P
                  P                  P                  ^ R-/3^m]P
                  P                  P                  ^ R0/3^n]P
                  P                  P                  ^ R1/3^o]P
                  P                  P                  ^ R2/3/t
 ! R3 R4]4      t]R58X  d     ]! 4       t]! . ^^ 4        ]! . ^k^ 4       R# R#   ]P
                  P                  P                   d=   t]! ]! ]4      R6]P"                  R7 R6]P$                  R7 2,           4        RtAR# RtAii ; i)8ax  ISO7816-4 error checking strategy.

__author__ = "https://www.gemalto.com/"

Copyright 2001-2012 gemalto
Author: Jean-Daniel Aussel, mailto:jean-daniel.aussel@gemalto.com

This file is part of pyscard.

pyscard is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.

pyscard is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License
along with pyscard; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
N)ErrorCheckerz,Response padded/ More APDU commands expectedz&Part of returned data may be corruptedz2End of file/record reached before reading Le byteszFile invalidatedzFCI not correctly formattedz"Correct execution, response paddedzAuthentication failedz File filled up by the last writez4PIN verification failed. 0 tries before blocking PINz4PIN verification failed. 1 tries before blocking PINz4PIN verification failed. 2 tries before blocking PINz4PIN verification failed. 3 tries before blocking PINz4PIN verification failed. 4 tries before blocking PINz4PIN verification failed. 5 tries before blocking PINz4PIN verification failed. 6 tries before blocking PINz4PIN verification failed. 7 tries before blocking PINz4PIN verification failed. 8 tries before blocking PINz4PIN verification failed. 9 tries before blocking PINz5PIN verification failed. 10 tries before blocking PINz5PIN verification failed. 11 tries before blocking PINz5PIN verification failed. 12 tries before blocking PINz5PIN verification failed. 13 tries before blocking PINz5PIN verification failed. 14 tries before blocking PINz5PIN verification failed. 15 tries before blocking PINz"Integrity error detected in EEPROMzWrong length in LczLogical channel not supportedzSecure messaging not supportedz)Command incompatible with file structure.zSecurity status not satisfiedzAuthentication method blockedzReferenced data invalidzConditions of use not satisfiedz#Command not allowed (no current EF)z%Secure messaging data object missing.z&Secure messaging data object incorrectz&Incorrect parameters in the data fieldzFunction not supportedzFile not foundzRecord not foundz#Not enough memory space in the filez"Lc inconsistent with TLV structurezIncorrect parameters P1-P2zLc is inconsistent with P1-P2zReferenced data not foundzInstruction (INS) not supportedzClass (CLA) not supportedzFatal errorc                   s*   a  ] tR t^vt o RtR tRtV tR# )ISO7816_4ErrorCheckera  ISO7816-4 error checking strategy.

This strategy raises the following exceptions:
  - sw1 sw2
  - 62  00 81 82 83 84 FF   WarningProcessingException
  - 63  00 81 C0->CF        WarningProcessingException
  - 64  00                  ExecutionErrorException
  - 67  00                  CheckingErrorException
  - 68  81 82               CheckingErrorException
  - 69  81->88  99? c1?     CheckingErrorException
  - 6a  80->88              CheckingErrorException
  - 6b  00                  CheckingErrorException
  - 6d  00                  CheckingErrorException
  - 6e  00                  CheckingErrorException
  - 6f  00                  CheckingErrorException

This checker does not raise exceptions on undefined sw1 values, e.g.:
  - sw1 sw2
  - 65  any
  - 66  any
  - 6c  any

and on undefined sw2 values, e.g.:
  - sw1 sw2
  - 62  80 85
  - 6b  any except 00


Use another checker in the error checking chain, e.g., the
ISO7816_4SW1ErrorChecker, to raise exceptions on these undefined
values.
c                s    V\         9   d=   \         V,          w  rE\        V4      \        / 4      8X  d    WS,          pV! WW64      hR# R#   \         d     R# i ; i)zCalled to test data, sw1 and sw2 for error.

Derived classes must raise a L{smartcard.sw.SWExceptions} upon error.

@param data:       apdu response data
@param sw1:        apdu data status words
@param sw2:        apdu data status words
N)iso7816_4SWZtypeZKeyError)ZselfZdatasw1sw2Z	exceptionZsw2dirZmessages   &&&&   I/usr/lib64/python3.14/site-packages/smartcard/sw/ISO7816_4ErrorChecker.py__call__ZISO7816_4ErrorChecker.__call__   s`     + +C 0IF|tBx'$kG#Ds<< (    s   A
 
AA N)__name__Z
__module__Z__qualname__Z__firstlineno____doc__r   Z__static_attributes__Z__classdictcell__)Z__classdict__s   @r   r   r   v   s     B     r   Z__main__Z Zx)r	   Zsmartcard.sw.SWExceptionsZ	smartcardZsmartcard.sw.ErrorCheckerr    ZswZSWExceptionsZWarningProcessingExceptionZExecutionErrorExceptionZCheckingErrorExceptionr   r   r   ZecsZeZprintZstrr   r   r   r
   r   <module>r      s  0 ! 2 	!!<<@:F$/6	

 	!!<<	
)	
4	
 H	
 H		

 H	
 H	
 H	
 H	
 H	
 H	
 H	
 H	
 I	
 I	
 I	
  I!	
" I#	
$ I%	
. 	!!99	34 	!!88	#$ 	!!88	.6VW 	!!88=11+379:		
 	!!88:*"$76.1-
	
 	!!88	+, 	!!88	01 	!!88	*+ 	9<<$$;;dM=R
SmWt2L 2j zE

!CD$0Bd  <<$$;; 0c!f155)1QUU1I..//0s   
H- -%J1J		J