<s> def _decode ( b ) : <EOL> for x in b : <EOL> if x < <NUM_LIT> : <EOL> yield x <EOL> else : <EOL> extra = <NUM_LIT:0> <EOL> for i in range ( <NUM_LIT:6> , <NUM_LIT:0> , - <NUM_LIT:1> ) : <EOL> if x & ( <NUM_LIT:1> << i ) : <EOL> extra += <NUM_LIT:1> <EOL> else : <EOL> break <EOL> bits = x % ( <NUM_LIT:1> << <NUM_LIT:6> - extra ) <EOL> for _ in range ( extra ) : <EOL> bits = ( bits << <NUM_LIT:6> ) ^ ( next ( b ) & <NUM_LIT> ) <EOL> yield bits <EOL> def _fixPairs ( codes ) : <EOL> for x in codes : <EOL> if <NUM_LIT> <= x < <NUM_LIT> : <EOL> high = x - <NUM_LIT> <EOL> low = next ( codes ) - <NUM_LIT> <EOL> yield <NUM_LIT> + ( high << <NUM_LIT:10> ) + ( low & <NUM_LIT> ) <EOL> else : <EOL> yield x <EOL> def decode ( b ) : <EOL> try : <EOL> return b . decode ( '<STR_LIT:utf8>' ) <EOL> except UnicodeDecodeError : <EOL> return '<STR_LIT>' . join ( map ( chr , _fixPairs ( _decode ( iter ( b ) ) ) ) ) </s>
