-

+; "...\\\";
.(" !") .


:





:      |   |   | 

Base64
: 02.08.08.

+; (* "Base64" *)

  "...\\\",
  "...\\\",
  "...\\\",
  "...\\\",
  "...\\\", ;


  : 100H ;
  : .; : .;
  : 65 ;

(1,2:):; .(,.(,1)*.(,2)) ;

;

  : 3 ; : ; : ;

  := 0; := 0;
  .()
    [] := .(); ();
    = 3
      := .(([0]), 16) + .(([1]), 8) + ([2]);
      .(, [(.(, -18), 3FH)]);
      .(, [(.(, -12), 3FH)]);
      .(, [(.(, -6), 3FH)]);
      .(, [(, 3FH)]);
      := 0
   
  ;
  = 1
    := .(([0]), 4);
    .(, [(.(, -6), 3FH)]);
    .(, [(, 3FH)]);
    .(, '==', 2)
  = 2
    := .(([0]), 10) + .(([1]), 2);
    .(, [(.(, -12), 3FH)]);
    .(, [(.(, -6), 3FH)]);
    .(, [(, 3FH)]);
    .(, '=', 1)
 
;

;

  : 4 ; : ; : ;

  := 0; := 0;
  .()
    [] := .(); ();
    = 4
      := .(.([0], , 0), 18) +
        .(.([1], , 0), 12) +
        .(.([2], , 0), 6) +
        .([3], , 0);
      .(, ((.(, -16), 0FFH)));
      .(, ((.(, -8), 0FFH)));
      .(, ((, 0FFH)));
      := 0
   
  ;
  = 2
    := .(([0]), 18) + .(([1]), 12);
    .(, ((.(, -16), 0FFH)))
  = 3
    := .(([0]), 18) + .(([1]), 12) + .(([2]), 6);
    .(, ((.(, -16), 0FFH)));
    .(, ((.(, -8), 0FFH)))
 
;


  .(1, ); := .();
  .(2, ); := .();
  := "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
  .(3, ); = "" = "" ;
  .(); .()

.
    .