docs: function add(sstr, dstr, scale) {
      var slen = sstr.length, dlen = dstr.length;
      var res = [];
      var carry = 0;
      var i = 0;
      var n;
      while(i < slen && i < dlen) {
        n = hexNumber(sstr[slen - i - 1]) + hexNumber(dstr[dlen - i - 1]) + carry;
        carry = Math.floor(n / scale);
        res.push(n % scale);
        i++;
      }
      while(i < slen) {
        n = hexNumber(sstr[slen - i - 1]) + carry;
        carry = Math.floor(n / scale);
        res.push(n % scale);
        i++;
      }
      while(i < dlen) {
        n = hexNumber(dstr[dlen - i - 1]) + carry;
        carry = Math.floor(n / scale);
        res.push(n % scale);
        i++;
      }
      while(carry > 0) {
        res.push(carry % scale);
        carry = Math.floor(carry / scale);
      }
      return res.reverse().join('');
    }