2:- module(pbase64, [
3 codes_base64/2,
4 base64_codes/2
5]). 6
7codes_base64([],[]).
8codes_base64([C1],[O1,O2,'=','=']) :-
9 code_byte( C1, byte(B0, B1, B2, B3, B4, B5, B6, B7) ),
10 code_b64( [B0, B1, B2, B3, B4, B5 ], O1 ),
11 code_b64( [B6, B7, 0, 0, 0, 0 ], O2 ).
12
13codes_base64([C1,C2],[O1,O2,O3,'=']) :-
14 code_byte( C1, byte(B0, B1, B2, B3, B4, B5, B6, B7) ),
15 code_byte( C2, byte(B8, B9, B10,B11,B12,B13,B14,B15) ),
16
17 code_b64( [B0, B1, B2, B3, B4, B5 ], O1 ),
18 code_b64( [B6, B7, B8, B9, B10,B11], O2 ),
19 code_b64( [B12,B13,B14,B15,0, 0 ], O3 ).
20
21codes_base64([C1,C2,C3|Ct],[O1,O2,O3,O4|Ot]) :-
22 code_byte( C1, byte(B0, B1, B2, B3, B4, B5, B6, B7) ),
23 code_byte( C2, byte(B8, B9, B10,B11,B12,B13,B14,B15) ),
24 code_byte( C3, byte(B16,B17,B18,B19,B20,B21,B22,B23) ),
25
26 code_b64( [B0, B1, B2, B3, B4, B5 ], O1 ),
27 code_b64( [B6, B7, B8, B9, B10,B11], O2 ),
28 code_b64( [B12,B13,B14,B15,B16,B17], O3 ),
29 code_b64( [B18,B19,B20,B21,B22,B23], O4 ),
30
31 codes_base64(Ct,Ot).
32
33base64_codes([],[]).
34base64_codes([C1],[O1,O2,'=','=']) :-
35 code_b64( [B0, B1, B2, B3, B4, B5 ], O1 ),
36 code_b64( [B6, B7, 0, 0, 0, 0 ], O2 ),
37 code_byte( C1, byte(B0, B1, B2, B3, B4, B5, B6, B7) ).
38
39base64_codes([C1,C2],[O1,O2,O3,'=']) :-
40 code_b64( [B0, B1, B2, B3, B4, B5 ], O1 ),
41 code_b64( [B6, B7, B8, B9, B10,B11], O2 ),
42 code_b64( [B12,B13,B14,B15,0, 0 ], O3 ),
43
44 code_byte( C1, byte(B0, B1, B2, B3, B4, B5, B6, B7) ),
45 code_byte( C2, byte(B8, B9, B10,B11,B12,B13,B14,B15) ).
46
47base64_codes([C1,C2,C3|Ct],[O1,O2,O3,O4|Ot]) :-
48 code_b64( [B0, B1, B2, B3, B4, B5 ], O1 ),
49 code_b64( [B6, B7, B8, B9, B10,B11], O2 ),
50 code_b64( [B12,B13,B14,B15,B16,B17], O3 ),
51 code_b64( [B18,B19,B20,B21,B22,B23], O4 ),
52
53 code_byte( C1, byte(B0, B1, B2, B3, B4, B5, B6, B7) ),
54 code_byte( C2, byte(B8, B9, B10,B11,B12,B13,B14,B15) ),
55 code_byte( C3, byte(B16,B17,B18,B19,B20,B21,B22,B23) ),
56
57 base64_codes(Ct,Ot).
58
59
60code_byte( 0, byte(0,0,0,0,0,0,0,0) ).
61code_byte( 1, byte(0,0,0,0,0,0,0,1) ).
62code_byte( 2, byte(0,0,0,0,0,0,1,0) ).
63code_byte( 3, byte(0,0,0,0,0,0,1,1) ).
64code_byte( 4, byte(0,0,0,0,0,1,0,0) ).
65code_byte( 5, byte(0,0,0,0,0,1,0,1) ).
66code_byte( 6, byte(0,0,0,0,0,1,1,0) ).
67code_byte( 7, byte(0,0,0,0,0,1,1,1) ).
68code_byte( 8, byte(0,0,0,0,1,0,0,0) ).
69code_byte( 9, byte(0,0,0,0,1,0,0,1) ).
70code_byte( 10, byte(0,0,0,0,1,0,1,0) ).
71code_byte( 11, byte(0,0,0,0,1,0,1,1) ).
72code_byte( 12, byte(0,0,0,0,1,1,0,0) ).
73code_byte( 13, byte(0,0,0,0,1,1,0,1) ).
74code_byte( 14, byte(0,0,0,0,1,1,1,0) ).
75code_byte( 15, byte(0,0,0,0,1,1,1,1) ).
76code_byte( 16, byte(0,0,0,1,0,0,0,0) ).
77code_byte( 17, byte(0,0,0,1,0,0,0,1) ).
78code_byte( 18, byte(0,0,0,1,0,0,1,0) ).
79code_byte( 19, byte(0,0,0,1,0,0,1,1) ).
80code_byte( 20, byte(0,0,0,1,0,1,0,0) ).
81code_byte( 21, byte(0,0,0,1,0,1,0,1) ).
82code_byte( 22, byte(0,0,0,1,0,1,1,0) ).
83code_byte( 23, byte(0,0,0,1,0,1,1,1) ).
84code_byte( 24, byte(0,0,0,1,1,0,0,0) ).
85code_byte( 25, byte(0,0,0,1,1,0,0,1) ).
86code_byte( 26, byte(0,0,0,1,1,0,1,0) ).
87code_byte( 27, byte(0,0,0,1,1,0,1,1) ).
88code_byte( 28, byte(0,0,0,1,1,1,0,0) ).
89code_byte( 29, byte(0,0,0,1,1,1,0,1) ).
90code_byte( 30, byte(0,0,0,1,1,1,1,0) ).
91code_byte( 31, byte(0,0,0,1,1,1,1,1) ).
92code_byte( 32, byte(0,0,1,0,0,0,0,0) ).
93code_byte( 33, byte(0,0,1,0,0,0,0,1) ).
94code_byte( 34, byte(0,0,1,0,0,0,1,0) ).
95code_byte( 35, byte(0,0,1,0,0,0,1,1) ).
96code_byte( 36, byte(0,0,1,0,0,1,0,0) ).
97code_byte( 37, byte(0,0,1,0,0,1,0,1) ).
98code_byte( 38, byte(0,0,1,0,0,1,1,0) ).
99code_byte( 39, byte(0,0,1,0,0,1,1,1) ).
100code_byte( 40, byte(0,0,1,0,1,0,0,0) ).
101code_byte( 41, byte(0,0,1,0,1,0,0,1) ).
102code_byte( 42, byte(0,0,1,0,1,0,1,0) ).
103code_byte( 43, byte(0,0,1,0,1,0,1,1) ).
104code_byte( 44, byte(0,0,1,0,1,1,0,0) ).
105code_byte( 45, byte(0,0,1,0,1,1,0,1) ).
106code_byte( 46, byte(0,0,1,0,1,1,1,0) ).
107code_byte( 47, byte(0,0,1,0,1,1,1,1) ).
108code_byte( 48, byte(0,0,1,1,0,0,0,0) ).
109code_byte( 49, byte(0,0,1,1,0,0,0,1) ).
110code_byte( 50, byte(0,0,1,1,0,0,1,0) ).
111code_byte( 51, byte(0,0,1,1,0,0,1,1) ).
112code_byte( 52, byte(0,0,1,1,0,1,0,0) ).
113code_byte( 53, byte(0,0,1,1,0,1,0,1) ).
114code_byte( 54, byte(0,0,1,1,0,1,1,0) ).
115code_byte( 55, byte(0,0,1,1,0,1,1,1) ).
116code_byte( 56, byte(0,0,1,1,1,0,0,0) ).
117code_byte( 57, byte(0,0,1,1,1,0,0,1) ).
118code_byte( 58, byte(0,0,1,1,1,0,1,0) ).
119code_byte( 59, byte(0,0,1,1,1,0,1,1) ).
120code_byte( 60, byte(0,0,1,1,1,1,0,0) ).
121code_byte( 61, byte(0,0,1,1,1,1,0,1) ).
122code_byte( 62, byte(0,0,1,1,1,1,1,0) ).
123code_byte( 63, byte(0,0,1,1,1,1,1,1) ).
124code_byte( 64, byte(0,1,0,0,0,0,0,0) ).
125code_byte( 65, byte(0,1,0,0,0,0,0,1) ).
126code_byte( 66, byte(0,1,0,0,0,0,1,0) ).
127code_byte( 67, byte(0,1,0,0,0,0,1,1) ).
128code_byte( 68, byte(0,1,0,0,0,1,0,0) ).
129code_byte( 69, byte(0,1,0,0,0,1,0,1) ).
130code_byte( 70, byte(0,1,0,0,0,1,1,0) ).
131code_byte( 71, byte(0,1,0,0,0,1,1,1) ).
132code_byte( 72, byte(0,1,0,0,1,0,0,0) ).
133code_byte( 73, byte(0,1,0,0,1,0,0,1) ).
134code_byte( 74, byte(0,1,0,0,1,0,1,0) ).
135code_byte( 75, byte(0,1,0,0,1,0,1,1) ).
136code_byte( 76, byte(0,1,0,0,1,1,0,0) ).
137code_byte( 77, byte(0,1,0,0,1,1,0,1) ).
138code_byte( 78, byte(0,1,0,0,1,1,1,0) ).
139code_byte( 79, byte(0,1,0,0,1,1,1,1) ).
140code_byte( 80, byte(0,1,0,1,0,0,0,0) ).
141code_byte( 81, byte(0,1,0,1,0,0,0,1) ).
142code_byte( 82, byte(0,1,0,1,0,0,1,0) ).
143code_byte( 83, byte(0,1,0,1,0,0,1,1) ).
144code_byte( 84, byte(0,1,0,1,0,1,0,0) ).
145code_byte( 85, byte(0,1,0,1,0,1,0,1) ).
146code_byte( 86, byte(0,1,0,1,0,1,1,0) ).
147code_byte( 87, byte(0,1,0,1,0,1,1,1) ).
148code_byte( 88, byte(0,1,0,1,1,0,0,0) ).
149code_byte( 89, byte(0,1,0,1,1,0,0,1) ).
150code_byte( 90, byte(0,1,0,1,1,0,1,0) ).
151code_byte( 91, byte(0,1,0,1,1,0,1,1) ).
152code_byte( 92, byte(0,1,0,1,1,1,0,0) ).
153code_byte( 93, byte(0,1,0,1,1,1,0,1) ).
154code_byte( 94, byte(0,1,0,1,1,1,1,0) ).
155code_byte( 95, byte(0,1,0,1,1,1,1,1) ).
156code_byte( 96, byte(0,1,1,0,0,0,0,0) ).
157code_byte( 97, byte(0,1,1,0,0,0,0,1) ).
158code_byte( 98, byte(0,1,1,0,0,0,1,0) ).
159code_byte( 99, byte(0,1,1,0,0,0,1,1) ).
160code_byte( 100, byte(0,1,1,0,0,1,0,0) ).
161code_byte( 101, byte(0,1,1,0,0,1,0,1) ).
162code_byte( 102, byte(0,1,1,0,0,1,1,0) ).
163code_byte( 103, byte(0,1,1,0,0,1,1,1) ).
164code_byte( 104, byte(0,1,1,0,1,0,0,0) ).
165code_byte( 105, byte(0,1,1,0,1,0,0,1) ).
166code_byte( 106, byte(0,1,1,0,1,0,1,0) ).
167code_byte( 107, byte(0,1,1,0,1,0,1,1) ).
168code_byte( 108, byte(0,1,1,0,1,1,0,0) ).
169code_byte( 109, byte(0,1,1,0,1,1,0,1) ).
170code_byte( 110, byte(0,1,1,0,1,1,1,0) ).
171code_byte( 111, byte(0,1,1,0,1,1,1,1) ).
172code_byte( 112, byte(0,1,1,1,0,0,0,0) ).
173code_byte( 113, byte(0,1,1,1,0,0,0,1) ).
174code_byte( 114, byte(0,1,1,1,0,0,1,0) ).
175code_byte( 115, byte(0,1,1,1,0,0,1,1) ).
176code_byte( 116, byte(0,1,1,1,0,1,0,0) ).
177code_byte( 117, byte(0,1,1,1,0,1,0,1) ).
178code_byte( 118, byte(0,1,1,1,0,1,1,0) ).
179code_byte( 119, byte(0,1,1,1,0,1,1,1) ).
180code_byte( 120, byte(0,1,1,1,1,0,0,0) ).
181code_byte( 121, byte(0,1,1,1,1,0,0,1) ).
182code_byte( 122, byte(0,1,1,1,1,0,1,0) ).
183code_byte( 123, byte(0,1,1,1,1,0,1,1) ).
184code_byte( 124, byte(0,1,1,1,1,1,0,0) ).
185code_byte( 125, byte(0,1,1,1,1,1,0,1) ).
186code_byte( 126, byte(0,1,1,1,1,1,1,0) ).
187code_byte( 127, byte(0,1,1,1,1,1,1,1) ).
188code_byte( 128, byte(1,0,0,0,0,0,0,0) ).
189code_byte( 129, byte(1,0,0,0,0,0,0,1) ).
190code_byte( 130, byte(1,0,0,0,0,0,1,0) ).
191code_byte( 131, byte(1,0,0,0,0,0,1,1) ).
192code_byte( 132, byte(1,0,0,0,0,1,0,0) ).
193code_byte( 133, byte(1,0,0,0,0,1,0,1) ).
194code_byte( 134, byte(1,0,0,0,0,1,1,0) ).
195code_byte( 135, byte(1,0,0,0,0,1,1,1) ).
196code_byte( 136, byte(1,0,0,0,1,0,0,0) ).
197code_byte( 137, byte(1,0,0,0,1,0,0,1) ).
198code_byte( 138, byte(1,0,0,0,1,0,1,0) ).
199code_byte( 139, byte(1,0,0,0,1,0,1,1) ).
200code_byte( 140, byte(1,0,0,0,1,1,0,0) ).
201code_byte( 141, byte(1,0,0,0,1,1,0,1) ).
202code_byte( 142, byte(1,0,0,0,1,1,1,0) ).
203code_byte( 143, byte(1,0,0,0,1,1,1,1) ).
204code_byte( 144, byte(1,0,0,1,0,0,0,0) ).
205code_byte( 145, byte(1,0,0,1,0,0,0,1) ).
206code_byte( 146, byte(1,0,0,1,0,0,1,0) ).
207code_byte( 147, byte(1,0,0,1,0,0,1,1) ).
208code_byte( 148, byte(1,0,0,1,0,1,0,0) ).
209code_byte( 149, byte(1,0,0,1,0,1,0,1) ).
210code_byte( 150, byte(1,0,0,1,0,1,1,0) ).
211code_byte( 151, byte(1,0,0,1,0,1,1,1) ).
212code_byte( 152, byte(1,0,0,1,1,0,0,0) ).
213code_byte( 153, byte(1,0,0,1,1,0,0,1) ).
214code_byte( 154, byte(1,0,0,1,1,0,1,0) ).
215code_byte( 155, byte(1,0,0,1,1,0,1,1) ).
216code_byte( 156, byte(1,0,0,1,1,1,0,0) ).
217code_byte( 157, byte(1,0,0,1,1,1,0,1) ).
218code_byte( 158, byte(1,0,0,1,1,1,1,0) ).
219code_byte( 159, byte(1,0,0,1,1,1,1,1) ).
220code_byte( 160, byte(1,0,1,0,0,0,0,0) ).
221code_byte( 161, byte(1,0,1,0,0,0,0,1) ).
222code_byte( 162, byte(1,0,1,0,0,0,1,0) ).
223code_byte( 163, byte(1,0,1,0,0,0,1,1) ).
224code_byte( 164, byte(1,0,1,0,0,1,0,0) ).
225code_byte( 165, byte(1,0,1,0,0,1,0,1) ).
226code_byte( 166, byte(1,0,1,0,0,1,1,0) ).
227code_byte( 167, byte(1,0,1,0,0,1,1,1) ).
228code_byte( 168, byte(1,0,1,0,1,0,0,0) ).
229code_byte( 169, byte(1,0,1,0,1,0,0,1) ).
230code_byte( 170, byte(1,0,1,0,1,0,1,0) ).
231code_byte( 171, byte(1,0,1,0,1,0,1,1) ).
232code_byte( 172, byte(1,0,1,0,1,1,0,0) ).
233code_byte( 173, byte(1,0,1,0,1,1,0,1) ).
234code_byte( 174, byte(1,0,1,0,1,1,1,0) ).
235code_byte( 175, byte(1,0,1,0,1,1,1,1) ).
236code_byte( 176, byte(1,0,1,1,0,0,0,0) ).
237code_byte( 177, byte(1,0,1,1,0,0,0,1) ).
238code_byte( 178, byte(1,0,1,1,0,0,1,0) ).
239code_byte( 179, byte(1,0,1,1,0,0,1,1) ).
240code_byte( 180, byte(1,0,1,1,0,1,0,0) ).
241code_byte( 181, byte(1,0,1,1,0,1,0,1) ).
242code_byte( 182, byte(1,0,1,1,0,1,1,0) ).
243code_byte( 183, byte(1,0,1,1,0,1,1,1) ).
244code_byte( 184, byte(1,0,1,1,1,0,0,0) ).
245code_byte( 185, byte(1,0,1,1,1,0,0,1) ).
246code_byte( 186, byte(1,0,1,1,1,0,1,0) ).
247code_byte( 187, byte(1,0,1,1,1,0,1,1) ).
248code_byte( 188, byte(1,0,1,1,1,1,0,0) ).
249code_byte( 189, byte(1,0,1,1,1,1,0,1) ).
250code_byte( 190, byte(1,0,1,1,1,1,1,0) ).
251code_byte( 191, byte(1,0,1,1,1,1,1,1) ).
252code_byte( 192, byte(1,1,0,0,0,0,0,0) ).
253code_byte( 193, byte(1,1,0,0,0,0,0,1) ).
254code_byte( 194, byte(1,1,0,0,0,0,1,0) ).
255code_byte( 195, byte(1,1,0,0,0,0,1,1) ).
256code_byte( 196, byte(1,1,0,0,0,1,0,0) ).
257code_byte( 197, byte(1,1,0,0,0,1,0,1) ).
258code_byte( 198, byte(1,1,0,0,0,1,1,0) ).
259code_byte( 199, byte(1,1,0,0,0,1,1,1) ).
260code_byte( 200, byte(1,1,0,0,1,0,0,0) ).
261code_byte( 201, byte(1,1,0,0,1,0,0,1) ).
262code_byte( 202, byte(1,1,0,0,1,0,1,0) ).
263code_byte( 203, byte(1,1,0,0,1,0,1,1) ).
264code_byte( 204, byte(1,1,0,0,1,1,0,0) ).
265code_byte( 205, byte(1,1,0,0,1,1,0,1) ).
266code_byte( 206, byte(1,1,0,0,1,1,1,0) ).
267code_byte( 207, byte(1,1,0,0,1,1,1,1) ).
268code_byte( 208, byte(1,1,0,1,0,0,0,0) ).
269code_byte( 209, byte(1,1,0,1,0,0,0,1) ).
270code_byte( 210, byte(1,1,0,1,0,0,1,0) ).
271code_byte( 211, byte(1,1,0,1,0,0,1,1) ).
272code_byte( 212, byte(1,1,0,1,0,1,0,0) ).
273code_byte( 213, byte(1,1,0,1,0,1,0,1) ).
274code_byte( 214, byte(1,1,0,1,0,1,1,0) ).
275code_byte( 215, byte(1,1,0,1,0,1,1,1) ).
276code_byte( 216, byte(1,1,0,1,1,0,0,0) ).
277code_byte( 217, byte(1,1,0,1,1,0,0,1) ).
278code_byte( 218, byte(1,1,0,1,1,0,1,0) ).
279code_byte( 219, byte(1,1,0,1,1,0,1,1) ).
280code_byte( 220, byte(1,1,0,1,1,1,0,0) ).
281code_byte( 221, byte(1,1,0,1,1,1,0,1) ).
282code_byte( 222, byte(1,1,0,1,1,1,1,0) ).
283code_byte( 223, byte(1,1,0,1,1,1,1,1) ).
284code_byte( 224, byte(1,1,1,0,0,0,0,0) ).
285code_byte( 225, byte(1,1,1,0,0,0,0,1) ).
286code_byte( 226, byte(1,1,1,0,0,0,1,0) ).
287code_byte( 227, byte(1,1,1,0,0,0,1,1) ).
288code_byte( 228, byte(1,1,1,0,0,1,0,0) ).
289code_byte( 229, byte(1,1,1,0,0,1,0,1) ).
290code_byte( 230, byte(1,1,1,0,0,1,1,0) ).
291code_byte( 231, byte(1,1,1,0,0,1,1,1) ).
292code_byte( 232, byte(1,1,1,0,1,0,0,0) ).
293code_byte( 233, byte(1,1,1,0,1,0,0,1) ).
294code_byte( 234, byte(1,1,1,0,1,0,1,0) ).
295code_byte( 235, byte(1,1,1,0,1,0,1,1) ).
296code_byte( 236, byte(1,1,1,0,1,1,0,0) ).
297code_byte( 237, byte(1,1,1,0,1,1,0,1) ).
298code_byte( 238, byte(1,1,1,0,1,1,1,0) ).
299code_byte( 239, byte(1,1,1,0,1,1,1,1) ).
300code_byte( 240, byte(1,1,1,1,0,0,0,0) ).
301code_byte( 241, byte(1,1,1,1,0,0,0,1) ).
302code_byte( 242, byte(1,1,1,1,0,0,1,0) ).
303code_byte( 243, byte(1,1,1,1,0,0,1,1) ).
304code_byte( 244, byte(1,1,1,1,0,1,0,0) ).
305code_byte( 245, byte(1,1,1,1,0,1,0,1) ).
306code_byte( 246, byte(1,1,1,1,0,1,1,0) ).
307code_byte( 247, byte(1,1,1,1,0,1,1,1) ).
308code_byte( 248, byte(1,1,1,1,1,0,0,0) ).
309code_byte( 249, byte(1,1,1,1,1,0,0,1) ).
310code_byte( 250, byte(1,1,1,1,1,0,1,0) ).
311code_byte( 251, byte(1,1,1,1,1,0,1,1) ).
312code_byte( 252, byte(1,1,1,1,1,1,0,0) ).
313code_byte( 253, byte(1,1,1,1,1,1,0,1) ).
314code_byte( 254, byte(1,1,1,1,1,1,1,0) ).
315code_byte( 255, byte(1,1,1,1,1,1,1,1) ).
316
317
318
319code_b64([0,0,0,0,0,0], 'A' ).
320code_b64([0,0,0,0,0,1], 'B' ).
321code_b64([0,0,0,0,1,0], 'C' ).
322code_b64([0,0,0,0,1,1], 'D' ).
323code_b64([0,0,0,1,0,0], 'E' ).
324code_b64([0,0,0,1,0,1], 'F' ).
325code_b64([0,0,0,1,1,0], 'G' ).
326code_b64([0,0,0,1,1,1], 'H' ).
327code_b64([0,0,1,0,0,0], 'I' ).
328code_b64([0,0,1,0,0,1], 'J' ).
329code_b64([0,0,1,0,1,0], 'K' ).
330code_b64([0,0,1,0,1,1], 'L' ).
331code_b64([0,0,1,1,0,0], 'M' ).
332code_b64([0,0,1,1,0,1], 'N' ).
333code_b64([0,0,1,1,1,0], 'O' ).
334code_b64([0,0,1,1,1,1], 'P' ).
335code_b64([0,1,0,0,0,0], 'Q' ).
336code_b64([0,1,0,0,0,1], 'R' ).
337code_b64([0,1,0,0,1,0], 'S' ).
338code_b64([0,1,0,0,1,1], 'T' ).
339code_b64([0,1,0,1,0,0], 'U' ).
340code_b64([0,1,0,1,0,1], 'V' ).
341code_b64([0,1,0,1,1,0], 'W' ).
342code_b64([0,1,0,1,1,1], 'X' ).
343code_b64([0,1,1,0,0,0], 'Y' ).
344code_b64([0,1,1,0,0,1], 'Z' ).
345code_b64([0,1,1,0,1,0], 'a' ).
346code_b64([0,1,1,0,1,1], 'b' ).
347code_b64([0,1,1,1,0,0], 'c' ).
348code_b64([0,1,1,1,0,1], 'd' ).
349code_b64([0,1,1,1,1,0], 'e' ).
350code_b64([0,1,1,1,1,1], 'f' ).
351code_b64([1,0,0,0,0,0], 'g' ).
352code_b64([1,0,0,0,0,1], 'h' ).
353code_b64([1,0,0,0,1,0], 'i' ).
354code_b64([1,0,0,0,1,1], 'j' ).
355code_b64([1,0,0,1,0,0], 'k' ).
356code_b64([1,0,0,1,0,1], 'l' ).
357code_b64([1,0,0,1,1,0], 'm' ).
358code_b64([1,0,0,1,1,1], 'n' ).
359code_b64([1,0,1,0,0,0], 'o' ).
360code_b64([1,0,1,0,0,1], 'p' ).
361code_b64([1,0,1,0,1,0], 'q' ).
362code_b64([1,0,1,0,1,1], 'r' ).
363code_b64([1,0,1,1,0,0], 's' ).
364code_b64([1,0,1,1,0,1], 't' ).
365code_b64([1,0,1,1,1,0], 'u' ).
366code_b64([1,0,1,1,1,1], 'v' ).
367code_b64([1,1,0,0,0,0], 'w' ).
368code_b64([1,1,0,0,0,1], 'x' ).
369code_b64([1,1,0,0,1,0], 'y' ).
370code_b64([1,1,0,0,1,1], 'z' ).
371code_b64([1,1,0,1,0,0], '0' ).
372code_b64([1,1,0,1,0,1], '1' ).
373code_b64([1,1,0,1,1,0], '2' ).
374code_b64([1,1,0,1,1,1], '3' ).
375code_b64([1,1,1,0,0,0], '4' ).
376code_b64([1,1,1,0,0,1], '5' ).
377code_b64([1,1,1,0,1,0], '6' ).
378code_b64([1,1,1,0,1,1], '7' ).
379code_b64([1,1,1,1,0,0], '8' ).
380code_b64([1,1,1,1,0,1], '9' ).
381code_b64([1,1,1,1,1,0], '+' ).
382code_b64([1,1,1,1,1,1], '/' )