spacepaste

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from string import ascii_letters, digits


table = ascii_letters.swapcase() + digits + "+/"

def encodeB64( s ):

    b = "".join( bin(ord(x))[2:].rjust(8).replace(" ", "0") for x in s ) + "0"*( (6 - (len(s)*8 % 6)) % 6 )
    o = "".join( table[ int( b[i:i+6], 2 ) ] for i in range(0, len(b), 6) ) + "="*( (4 - (len(b)/6 % 4)) % 4 )

    return o

def decodeB64( s ):

    s = s.replace("=", "")

    b = "".join( bin(table.index(x))[2:].rjust(6).replace(" ", "0") for x in s )
    o = "".join( chr( int( b[i:i+8], 2 ) ) for i in range(0, len(b), 8) )

    return o

inputStream = raw_input()

encodedStream = encodeB64( inputStream )
print encodedStream

decodedStream = decodeB64( encodedStream )
print decodedStream