All pastes #829244 Raw Edit

Anonymous

public text v1 · immutable
#829244 ·published 2007-12-23 00:50 UTC
rendered paste body
alias big { 
  if ($bigtext.unsupp($1-)) { 
    echo -ac info * Characters not supported by Big Text present in your message: $bigtext.unsupp($1-) 
    return 
  } 
  var %lia, %lib, %lic, %lid, %lie, %i 1, %text $strip($1-, bur), %colregex /^(dd?(?:,dd?)?)/ 

  var %regex = /(?<= $+ $chr(3) $+ [0-9]| $+ $chr(3) $+ [0-9][0-9]) $+ $chr(44) $+ dd?/g, %res, %dummy = $regsub(%text, %regex, $null, %text) 

  while (%i <= $len(%text)) { 
    if ($mid(%text, %i, 1) == $chr(3)) { 
      var %lia $+(%lia, $chr(3)), %lib $+(%lib, $chr(3)), %lic $+(%lic, $chr(3)), %lid $+(%lid, $chr(3)), %lie $+(%lie, $chr(3)) 
      if ($mid(%text, $calc(%i + 1), 1) != $chr(32)) && ($regex(mtcol, $mid(%text, $calc(%i + 1), $mid(%text, $calc(%i + 1), 0)), %colregex)) { 
        var %m $regml(mtcol, 1) 
        var %lia %lia $+ %m, %lib %lib $+ %m, %lic %lic $+ %m, %lid %lid $+ %m, %lie %lie $+ %m 
        inc %i $len(%m) 
      } 
    } 
    else { 
      tokenize 32 $bigtext.char($mid(%text, %i, 1)) 
      var %lia $+(%lia, $1), %lib $+(%lib, $2), %lic $+(%lic, $3), %lid $+(%lid, $4), %lie $+(%lie, $5) 
      ; if ($bigtext.kern($mid(%text, %i, 2))) { 
      var %lia $+(%lia, .), %lib $+(%lib, .), %lic $+(%lic, .), %lid $+(%lid, .), %lie $+(%lie, .) 
      ; } 
    } 
    inc %i 
  } 
  say $bigtext.format(%lia) 
  say $bigtext.format(%lib) 
  say $bigtext.format(%lic) 
  say $bigtext.format(%lid) 
  say $bigtext.format(%lie) 
} 

alias -l bigtext.char { 
  if ($1 === $chr(32)) || ($1 === $null) return $& 
    ... $& 
    ... $& 
    ... $& 
    ... $& 
    ... 
  if ($1 === $chr(160)) return $& 
    ..... $& 
    ..... $& 
    ..... $& 
    ..... $& 
    ..... 
  elseif ($1 == 0) return $& 
    .XXXX. $& 
    XX..XX $& 
    XX.XXX $& 
    XXX.XX $& 
    .XXXX. 
  elseif ($1 == 1) return $& 
    .XXXX $& 
    XX.XX $& 
    ...XX $& 
    ...XX $& 
    ...XX 
  elseif ($1 == 2) return $& 
    XXXXX. $& 
    ....XX $& 
    ..XX.. $& 
    XX.... $& 
    XXXXXX 
  elseif ($1 == 3) return $& 
    XXXXX. $& 
    ....XX $& 
    .XXXX. $& 
    ....XX $& 
    XXXXX. 
  elseif ($1 == 4) return $& 
    .....XXX. $& 
    ...XX.XX. $& 
    .XX...XX. $& 
    XXXXXXXXX $& 
    ......XX. 
  elseif ($1 == 5) return $& 
    XXXXX $& 
    XX... $& 
    XXXX. $& 
    ...XX $& 
    XXXX. 
  elseif ($1 == 6) return $& 
    .XXXX. $& 
    XX.... $& 
    XXXXX. $& 
    XX..XX $& 
    .XXXX. 
  elseif ($1 == 7) return $& 
    XXXXXX $& 
    ...XX. $& 
    ..XX.. $& 
    .XX... $& 
    XX.... 
  elseif ($1 == 8) return $& 
    .XXXX. $& 
    XX..XX $& 
    .XXXX. $& 
    XX..XX $& 
    .XXXX. 
  elseif ($1 == 9) return $& 
    .XXXX. $& 
    XX..XX $& 
    .XXXXX $& 
    ....XX $& 
    .XXXX. 
  elseif ($1 == A) return $& 
    .XXXX. $& 
    XX..XX $& 
    XXXXXX $& 
    XX..XX $& 
    XX..XX 
  elseif ($1 == B) return $& 
    XXXXX. $& 
    XX..XX $& 
    XXXXX. $& 
    XX..XX $& 
    XXXXX. 
  elseif ($1 == C) return $& 
    .XXXX. $& 
    XX..XX $& 
    XX.... $& 
    XX..XX $& 
    .XXXX. 
  elseif ($1 == D) return $& 
    XXXX.. $& 
    XX.XX. $& 
    XX..XX $& 
    XX..XX $& 
    XXXXX. 
  elseif ($1 == E) return $& 
    XXXXX $& 
    XX... $& 
    XXXX. $& 
    XX... $& 
    XXXXX 
  elseif ($1 == F) return $& 
    XXXXX $& 
    XX... $& 
    XXXX. $& 
    XX... $& 
    XX... 
  elseif ($1 == G) return $& 
    .XXXX. $& 
    XX.... $& 
    XX.XXX $& 
    XX..XX $& 
    .XXXXX 
  elseif ($1 == H) return $& 
    XX...XX $& 
    XX...XX $& 
    XXXXXXX $& 
    XX...XX $& 
    XX...XX 
  elseif ($1 == I) return $& 
    XXXX $& 
    .XX. $& 
    .XX. $& 
    .XX. $& 
    XXXX 
  elseif ($1 == J) return $& 
    ....XX $& 
    ....XX $& 
    ....XX $& 
    XX..XX $& 
    .XXXX. 
  elseif ($1 == K) return $& 
    XX..XX $& 
    XX.XX. $& 
    XXXX.. $& 
    XX.XX. $& 
    XX..XX 
  elseif ($1 == L) return $& 
    XX... $& 
    XX... $& 
    XX... $& 
    XX... $& 
    XXXXX 
  elseif ($1 == M) return $& 
    XX....XX $& 
    XXX..XXX $& 
    XXXXXXXX $& 
    XX.XX.XX $& 
    XX....XX 
  elseif ($1 == N) return $& 
    XX..XX $& 
    XXX.XX $& 
    XXXXXX $& 
    XX.XXX $& 
    XX..XX 
  elseif ($1 == O) return $& 
    .XXXX. $& 
    XX..XX $& 
    XX..XX $& 
    XX..XX $& 
    .XXXX. 
  elseif ($1 == P) return $& 
    XXXXX. $& 
    XX..XX $& 
    XXXXX. $& 
    XX.... $& 
    XX.... 
  elseif ($1 == Q) return $& 
    .XXXX.. $& 
    XX..XX. $& 
    XX..XX. $& 
    XX..XX. $& 
    .XXXXXX 
  elseif ($1 == R) return $& 
    XXXXX. $& 
    XX..XX $& 
    XXXXX. $& 
    XX..XX $& 
    XX..XX 
  elseif ($1 == S) return $& 
    .XXXX. $& 
    XX.... $& 
    .XXXX. $& 
    ....XX $& 
    XXXXX. 
  elseif ($1 == T) return $& 
    XXXXXX $& 
    ..XX.. $& 
    ..XX.. $& 
    ..XX.. $& 
    ..XX.. 
  elseif ($1 == U) return $& 
    XX..XX $& 
    XX..XX $& 
    XX..XX $& 
    XX..XX $& 
    .XXXX. 
  elseif ($1 == V) return $& 
    XX....XX $& 
    XX....XX $& 
    .XX..XX. $& 
    ..XXXX.. $& 
    ...XX... 
  elseif ($1 == W) return $& 
    XX...XX $& 
    XX...XX $& 
    XX.X.XX $& 
    XXXXXXX $& 
    .XX.XX. 
  elseif ($1 == X) return $& 
    XX...XX $& 
    .XX.XX. $& 
    ..XXX.. $& 
    .XX.XX. $& 
    XX...XX 
  elseif ($1 == Y) return $& 
    XX..XX $& 
    XX..XX $& 
    .XXXX. $& 
    ..XX.. $& 
    ..XX.. 
  elseif ($1 == Z) return $& 
    XXXXXX $& 
    ...XX. $& 
    ..XX.. $& 
    .XX... $& 
    XXXXXX 
  elseif ($1 == $chr(35)) return $& 
    .XX..XX. $& 
    XXXXXXXX $& 
    .XX..XX. $& 
    XXXXXXXX $& 
    .XX..XX. 
  elseif ($1 == ') return $& 
    .XX $& 
    XX. $& 
    ... $& 
    ... $& 
    ... 
  elseif ($1 == ") return $& 
    XX..XX $& 
    XX..XX $& 
    ...... $& 
    ...... $& 
    ...... 
  elseif ($1 == +) return $& 
    ...... $& 
    ..XX.. $& 
    XXXXXX $& 
    ..XX.. $& 
    ...... 
  elseif ($1 == =) return $& 
    ...... $& 
    XXXXXX $& 
    ...... $& 
    XXXXXX $& 
    ...... 
  elseif ($1 == -) return $& 
    ...... $& 
    ...... $& 
    XXXXXX $& 
    ...... $& 
    ...... 
  elseif ($1 == _) return $& 
    ...... $& 
    ...... $& 
    ...... $& 
    ...... $& 
    XXXXXX 
  elseif ($1 == ] ) return $& 
    XXXXXX $& 
    ...... $& 
    ...... $& 
    ...... $& 
    ...... 
  elseif ($1 == [) return $& 
    .XXX. $& 
    XX.XX $& 
    .XXX. $& 
    ..... $& 
    ..... 
  elseif ($1 == :) return $& 
    .. $& 
    XX $& 
    .. $& 
    XX $& 
    .. 
  elseif ($1 == !) return $& 
    XX $& 
    XX $& 
    XX $& 
    .. $& 
    XX 
  elseif ($1 == ?) return $& 
    XXX. $& 
    ..XX $& 
    .XX. $& 
    .... $& 
    .XX. 
  elseif ($1 == .) return $& 
    .. $& 
    .. $& 
    .. $& 
    .. $& 
    XX 
  elseif ($1 == /) return $& 
    ....XX $& 
    ...XX. $& 
    ..XX.. $& 
    .XX... $& 
    XX.... 
  elseif ($1 == ) return $& 
    XX.... $& 
    .XX... $& 
    ..XX.. $& 
    ...XX. $& 
    ....XX 
  elseif ($1 == $chr(40)) return $& 
    ...XX $& 
    .XX.. $& 
    XX... $& 
    .XX.. $& 
    ...XX 
  elseif ($1 == $chr(41)) return $& 
    XX... $& 
    ..XX. $& 
    ...XX $& 
    ..XX. $& 
    XX... 
  elseif ($1 == $chr(37)) return $& 
    XX..XX $& 
    ...XX. $& 
    ..XX.. $& 
    .XX... $& 
    XX..XX 
  elseif ($1 == [) return $& 
    XXXXX $& 
    XX... $& 
    XX... $& 
    XX... $& 
    XXXXX 
  elseif ($1 == ]) return $& 
    XXXXX $& 
    ...XX $& 
    ...XX $& 
    ...XX $& 
    XXXXX 
  elseif ($1 == |) return $& 
    .XX. $& 
    .XX. $& 
    .XX. $& 
    .XX. $& 
    .XX. 
  elseif ($1 == <) return $& 
    ....XX $& 
    ..XX.. $& 
    XX.... $& 
    ..XX.. $& 
    ....XX 
  elseif ($1 == >) return $& 
    XX.... $& 
    ..XX.. $& 
    ....XX $& 
    ..XX.. $& 
    XX.... 
  elseif ($1 == ) return $& 
    .... $& 
    .... $& 
    .XX. $& 
    ..XX $& 
    XXX. 
  elseif ($1 == ,) return $& 
    ... $& 
    ... $& 
    XXX $& 
    .XX $& 
    XX. 
} 



alias bigtext.unsupp { 
  var %res, %dummy = $regsub($1-, /[]a-z  0-9# $+ $chr(44) $+ '+=:!?./()%[|<>_"-]/igS, $null, %res) 
  return %res 
} 

alias bigtext.kern { 
  var %res $true 
  if ($regex($1-, /^(.|[_GDSQL-]T|[TPFVY7/"]J|T.|L[1Y"]|[LTK<[]-|-[]>%]|S1|T4|?.|.?|[467L]|[J/]|L'|//|\|J|[_]|[T_]_|>.|.<)$/i)) %res = $false 
  return %res 
} 

alias bigtext.format { 
  var %res, %i 1, %previous 0, %current, %curcolor, %colregex /^(dd?(?:,dd?)?)/ 
  while (%i <= $len($1-)) { 
    if ($mid($1-, %i, 1) == $chr(3)) { 
      if ($regex(mtcol, $mid($1-, $calc(%i + 1), $mid($1-, $calc(%i + 1), 0)), %colregex)) { 
        if ($gettok($regml(mtcol, 1), 1, 44) != %curcolor) { 
          %curcolor = $gettok($regml(mtcol, 1), 1, 44) 
          if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15) 
        } 
        inc %i $len($regml(mtcol, 1)) 
      } 
      elseif (%curcolor) { 
        %curcolor = 
        if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15) 
      } 
    } 
    else { 
      %current = $iif($mid($1-, %i, 1) == ., 0, 1) 
      if (%previous != %current) { 
        %previous = %current 
        if (%curcolor) { 
          if (%current) %res = %res $+ $chr(3) $+ %curcolor $+ , $+ %curcolor 
          else %res = %res $+ $chr(3) 
        } 
        else %res = %res $+ $chr(22) 
      } 
      %res = %res $+ $chr(160) 
    } 
    inc %i 
  } 
  return %res 
} 

001 alias big { 
  002   if ($bigtext.unsupp($1-)) { 
    003     echo -ac info * Characters not supported by Big Text present in your message: $bigtext.unsupp($1-) 
    004     return 
  005   } 
  006   var %lia, %lib, %lic, %lid, %lie, %i 1, %text $strip($1-, bur), %colregex /^(dd?(?:,dd?)?)/ 
  007  
  008   var %regex = /(?<= $+ $chr(3) $+ [0-9]| $+ $chr(3) $+ [0-9][0-9]) $+ $chr(44) $+ dd?/g, %res, %dummy = $regsub(%text, %regex, $null, %text) 
  009  
  010   while (%i <= $len(%text)) { 
    011     if ($mid(%text, %i, 1) == $chr(3)) { 
      012       var %lia $+(%lia, $chr(3)), %lib $+(%lib, $chr(3)), %lic $+(%lic, $chr(3)), %lid $+(%lid, $chr(3)), %lie $+(%lie, $chr(3)) 
      013       if ($mid(%text, $calc(%i + 1), 1) != $chr(32)) && ($regex(mtcol, $mid(%text, $calc(%i + 1), $mid(%text, $calc(%i + 1), 0)), %colregex)) { 
        014         var %m $regml(mtcol, 1) 
        015         var %lia %lia $+ %m, %lib %lib $+ %m, %lic %lic $+ %m, %lid %lid $+ %m, %lie %lie $+ %m 
        016         inc %i $len(%m) 
      017       } 
    018     } 
    019     else { 
      020       tokenize 32 $bigtext.char($mid(%text, %i, 1)) 
      021       var %lia $+(%lia, $1), %lib $+(%lib, $2), %lic $+(%lic, $3), %lid $+(%lid, $4), %lie $+(%lie, $5) 
      022       ; if ($bigtext.kern($mid(%text, %i, 2))) { 
        023       var %lia $+(%lia, .), %lib $+(%lib, .), %lic $+(%lic, .), %lid $+(%lid, .), %lie $+(%lie, .) 
      024       ; } 
    025     } 
    026     inc %i 
  027   } 
  028   say $bigtext.format(%lia) 
  029   say $bigtext.format(%lib) 
  030   say $bigtext.format(%lic) 
  031   say $bigtext.format(%lid) 
  032   say $bigtext.format(%lie) 
033 } 
034  
035 alias -l bigtext.char { 
  036   if ($1 === $chr(32)) || ($1 === $null) return $& 
    037     ... $& 
    038     ... $& 
    039     ... $& 
    040     ... $& 
    041     ... 
  042   if ($1 === $chr(160)) return $& 
    043     ..... $& 
    044     ..... $& 
    045     ..... $& 
    046     ..... $& 
    047     ..... 
  048   elseif ($1 == 0) return $& 
    049     .XXXX. $& 
    050     XX..XX $& 
    051     XX.XXX $& 
    052     XXX.XX $& 
    053     .XXXX. 
  054   elseif ($1 == 1) return $& 
    055     .XXXX $& 
    056     XX.XX $& 
    057     ...XX $& 
    058     ...XX $& 
    059     ...XX 
  060   elseif ($1 == 2) return $& 
    061     XXXXX. $& 
    062     ....XX $& 
    063     ..XX.. $& 
    064     XX.... $& 
    065     XXXXXX 
  066   elseif ($1 == 3) return $& 
    067     XXXXX. $& 
    068     ....XX $& 
    069     .XXXX. $& 
    070     ....XX $& 
    071     XXXXX. 
  072   elseif ($1 == 4) return $& 
    073     .....XXX. $& 
    074     ...XX.XX. $& 
    075     .XX...XX. $& 
    076     XXXXXXXXX $& 
    077     ......XX. 
  078   elseif ($1 == 5) return $& 
    079     XXXXX $& 
    080     XX... $& 
    081     XXXX. $& 
    082     ...XX $& 
    083     XXXX. 
  084   elseif ($1 == 6) return $& 
    085     .XXXX. $& 
    086     XX.... $& 
    087     XXXXX. $& 
    088     XX..XX $& 
    089     .XXXX. 
  090   elseif ($1 == 7) return $& 
    091     XXXXXX $& 
    092     ...XX. $& 
    093     ..XX.. $& 
    094     .XX... $& 
    095     XX.... 
  096   elseif ($1 == 8) return $& 
    097     .XXXX. $& 
    098     XX..XX $& 
    099     .XXXX. $& 
    100     XX..XX $& 
    101     .XXXX. 
  102   elseif ($1 == 9) return $& 
    103     .XXXX. $& 
    104     XX..XX $& 
    105     .XXXXX $& 
    106     ....XX $& 
    107     .XXXX. 
  108   elseif ($1 == A) return $& 
    109     .XXXX. $& 
    110     XX..XX $& 
    111     XXXXXX $& 
    112     XX..XX $& 
    113     XX..XX 
  114   elseif ($1 == B) return $& 
    115     XXXXX. $& 
    116     XX..XX $& 
    117     XXXXX. $& 
    118     XX..XX $& 
    119     XXXXX. 
  120   elseif ($1 == C) return $& 
    121     .XXXX. $& 
    122     XX..XX $& 
    123     XX.... $& 
    124     XX..XX $& 
    125     .XXXX. 
  126   elseif ($1 == D) return $& 
    127     XXXX.. $& 
    128     XX.XX. $& 
    129     XX..XX $& 
    130     XX..XX $& 
    131     XXXXX. 
  132   elseif ($1 == E) return $& 
    133     XXXXX $& 
    134     XX... $& 
    135     XXXX. $& 
    136     XX... $& 
    137     XXXXX 
  138   elseif ($1 == F) return $& 
    139     XXXXX $& 
    140     XX... $& 
    141     XXXX. $& 
    142     XX... $& 
    143     XX... 
  144   elseif ($1 == G) return $& 
    145     .XXXX. $& 
    146     XX.... $& 
    147     XX.XXX $& 
    148     XX..XX $& 
    149     .XXXXX 
  150   elseif ($1 == H) return $& 
    151     XX...XX $& 
    152     XX...XX $& 
    153     XXXXXXX $& 
    154     XX...XX $& 
    155     XX...XX 
  156   elseif ($1 == I) return $& 
    157     XXXX $& 
    158     .XX. $& 
    159     .XX. $& 
    160     .XX. $& 
    161     XXXX 
  162   elseif ($1 == J) return $& 
    163     ....XX $& 
    164     ....XX $& 
    165     ....XX $& 
    166     XX..XX $& 
    167     .XXXX. 
  168   elseif ($1 == K) return $& 
    169     XX..XX $& 
    170     XX.XX. $& 
    171     XXXX.. $& 
    172     XX.XX. $& 
    173     XX..XX 
  174   elseif ($1 == L) return $& 
    175     XX... $& 
    176     XX... $& 
    177     XX... $& 
    178     XX... $& 
    179     XXXXX 
  180   elseif ($1 == M) return $& 
    181     XX....XX $& 
    182     XXX..XXX $& 
    183     XXXXXXXX $& 
    184     XX.XX.XX $& 
    185     XX....XX 
  186   elseif ($1 == N) return $& 
    187     XX..XX $& 
    188     XXX.XX $& 
    189     XXXXXX $& 
    190     XX.XXX $& 
    191     XX..XX 
  192   elseif ($1 == O) return $& 
    193     .XXXX. $& 
    194     XX..XX $& 
    195     XX..XX $& 
    196     XX..XX $& 
    197     .XXXX. 
  198   elseif ($1 == P) return $& 
    199     XXXXX. $& 
    200     XX..XX $& 
    201     XXXXX. $& 
    202     XX.... $& 
    203     XX.... 
  204   elseif ($1 == Q) return $& 
    205     .XXXX.. $& 
    206     XX..XX. $& 
    207     XX..XX. $& 
    208     XX..XX. $& 
    209     .XXXXXX 
  210   elseif ($1 == R) return $& 
    211     XXXXX. $& 
    212     XX..XX $& 
    213     XXXXX. $& 
    214     XX..XX $& 
    215     XX..XX 
  216   elseif ($1 == S) return $& 
    217     .XXXX. $& 
    218     XX.... $& 
    219     .XXXX. $& 
    220     ....XX $& 
    221     XXXXX. 
  222   elseif ($1 == T) return $& 
    223     XXXXXX $& 
    224     ..XX.. $& 
    225     ..XX.. $& 
    226     ..XX.. $& 
    227     ..XX.. 
  228   elseif ($1 == U) return $& 
    229     XX..XX $& 
    230     XX..XX $& 
    231     XX..XX $& 
    232     XX..XX $& 
    233     .XXXX. 
  234   elseif ($1 == V) return $& 
    235     XX....XX $& 
    236     XX....XX $& 
    237     .XX..XX. $& 
    238     ..XXXX.. $& 
    239     ...XX... 
  240   elseif ($1 == W) return $& 
    241     XX...XX $& 
    242     XX...XX $& 
    243     XX.X.XX $& 
    244     XXXXXXX $& 
    245     .XX.XX. 
  246   elseif ($1 == X) return $& 
    247     XX...XX $& 
    248     .XX.XX. $& 
    249     ..XXX.. $& 
    250     .XX.XX. $& 
    251     XX...XX 
  252   elseif ($1 == Y) return $& 
    253     XX..XX $& 
    254     XX..XX $& 
    255     .XXXX. $& 
    256     ..XX.. $& 
    257     ..XX.. 
  258   elseif ($1 == Z) return $& 
    259     XXXXXX $& 
    260     ...XX. $& 
    261     ..XX.. $& 
    262     .XX... $& 
    263     XXXXXX 
  264   elseif ($1 == $chr(35)) return $& 
    265     .XX..XX. $& 
    266     XXXXXXXX $& 
    267     .XX..XX. $& 
    268     XXXXXXXX $& 
    269     .XX..XX. 
  270   elseif ($1 == ') return $& 
    271     .XX $& 
    272     XX. $& 
    273     ... $& 
    274     ... $& 
    275     ... 
  276   elseif ($1 == ") return $& 
    277     XX..XX $& 
    278     XX..XX $& 
    279     ...... $& 
    280     ...... $& 
    281     ...... 
  282   elseif ($1 == +) return $& 
    283     ...... $& 
    284     ..XX.. $& 
    285     XXXXXX $& 
    286     ..XX.. $& 
    287     ...... 
  288   elseif ($1 == =) return $& 
    289     ...... $& 
    290     XXXXXX $& 
    291     ...... $& 
    292     XXXXXX $& 
    293     ...... 
  294   elseif ($1 == -) return $& 
    295     ...... $& 
    296     ...... $& 
    297     XXXXXX $& 
    298     ...... $& 
    299     ...... 
  300   elseif ($1 == _) return $& 
    301     ...... $& 
    302     ...... $& 
    303     ...... $& 
    304     ...... $& 
    305     XXXXXX 
  306   elseif ($1 == ] ) return $& 
    307     XXXXXX $& 
    308     ...... $& 
    309     ...... $& 
    310     ...... $& 
    311     ...... 
  312   elseif ($1 == [) return $& 
    313     .XXX. $& 
    314     XX.XX $& 
    315     .XXX. $& 
    316     ..... $& 
    317     ..... 
  318   elseif ($1 == :) return $& 
    319     .. $& 
    320     XX $& 
    321     .. $& 
    322     XX $& 
    323     .. 
  324   elseif ($1 == !) return $& 
    325     XX $& 
    326     XX $& 
    327     XX $& 
    328     .. $& 
    329     XX 
  330   elseif ($1 == ?) return $& 
    331     XXX. $& 
    332     ..XX $& 
    333     .XX. $& 
    334     .... $& 
    335     .XX. 
  336   elseif ($1 == .) return $& 
    337     .. $& 
    338     .. $& 
    339     .. $& 
    340     .. $& 
    341     XX 
  342   elseif ($1 == /) return $& 
    343     ....XX $& 
    344     ...XX. $& 
    345     ..XX.. $& 
    346     .XX... $& 
    347     XX.... 
  348   elseif ($1 == ) return $& 
    349     XX.... $& 
    350     .XX... $& 
    351     ..XX.. $& 
    352     ...XX. $& 
    353     ....XX 
  354   elseif ($1 == $chr(40)) return $& 
    355     ...XX $& 
    356     .XX.. $& 
    357     XX... $& 
    358     .XX.. $& 
    359     ...XX 
  360   elseif ($1 == $chr(41)) return $& 
    361     XX... $& 
    362     ..XX. $& 
    363     ...XX $& 
    364     ..XX. $& 
    365     XX... 
  366   elseif ($1 == $chr(37)) return $& 
    367     XX..XX $& 
    368     ...XX. $& 
    369     ..XX.. $& 
    370     .XX... $& 
    371     XX..XX 
  372   elseif ($1 == [) return $& 
    373     XXXXX $& 
    374     XX... $& 
    375     XX... $& 
    376     XX... $& 
    377     XXXXX 
  378   elseif ($1 == ]) return $& 
    379     XXXXX $& 
    380     ...XX $& 
    381     ...XX $& 
    382     ...XX $& 
    383     XXXXX 
  384   elseif ($1 == |) return $& 
    385     .XX. $& 
    386     .XX. $& 
    387     .XX. $& 
    388     .XX. $& 
    389     .XX. 
  390   elseif ($1 == <) return $& 
    391     ....XX $& 
    392     ..XX.. $& 
    393     XX.... $& 
    394     ..XX.. $& 
    395     ....XX 
  396   elseif ($1 == >) return $& 
    397     XX.... $& 
    398     ..XX.. $& 
    399     ....XX $& 
    400     ..XX.. $& 
    401     XX.... 
  402   elseif ($1 == ) return $& 
    403     .... $& 
    404     .... $& 
    405     .XX. $& 
    406     ..XX $& 
    407     XXX. 
  408   elseif ($1 == ,) return $& 
    409     ... $& 
    410     ... $& 
    411     XXX $& 
    412     .XX $& 
    413     XX. 
414 } 
415  
416  
417  
418 alias bigtext.unsupp { 
  419   var %res, %dummy = $regsub($1-, /[]a-z  0-9# $+ $chr(44) $+ '+=:!?./()%[|<>_"-]/igS, $null, %res) 
  420   return %res 
421 } 
422  
423 alias bigtext.kern { 
  424   var %res $true 
  425   if ($regex($1-, /^(.|[_GDSQL-]T|[TPFVY7/"]J|T.|L[1Y"]|[LTK<[]-|-[]>%]|S1|T4|?.|.?|[467L]|[J/]|L'|//|\|J|[_]|[T_]_|>.|.<)$/i)) %res = $false 
  426   return %res 
427 } 
428  
429 alias bigtext.format { 
  430   var %res, %i 1, %previous 0, %current, %curcolor, %colregex /^(dd?(?:,dd?)?)/ 
  431   while (%i <= $len($1-)) { 
    432     if ($mid($1-, %i, 1) == $chr(3)) { 
      433       if ($regex(mtcol, $mid($1-, $calc(%i + 1), $mid($1-, $calc(%i + 1), 0)), %colregex)) { 
        434         if ($gettok($regml(mtcol, 1), 1, 44) != %curcolor) { 
          435           %curcolor = $gettok($regml(mtcol, 1), 1, 44) 
          436           if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15) 
        437         } 
        438         inc %i $len($regml(mtcol, 1)) 
      439       } 
      440       elseif (%curcolor) { 
        441         %curcolor = 
        442         if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15) 
      443       } 
    444     } 
    445     else { 
      446       %current = $iif($mid($1-, %i, 1) == ., 0, 1) 
      447       if (%previous != %current) { 
        448         %previous = %current 
        449         if (%curcolor) { 
          450           if (%current) %res = %res $+ $chr(3) $+ %curcolor $+ , $+ %curcolor 
          451           else %res = %res $+ $chr(3) 
        452         } 
        453         else %res = %res $+ $chr(22) 
      454       } 
      455       %res = %res $+ $chr(160) 
    456     } 
    457     inc %i 
  458   } 
  459   return %res 
460 }
461   
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461alias big { 
  if ($bigtext.unsupp($1-)) { 
    echo -ac info * Characters not supported by Big Text present in your message: $bigtext.unsupp($1-) 
    return 
  } 
  var %lia, %lib, %lic, %lid, %lie, %i 1, %text $strip($1-, bur), %colregex /^(dd?(?:,dd?)?)/ 

  var %regex = /(?<= $+ $chr(3) $+ [0-9]| $+ $chr(3) $+ [0-9][0-9]) $+ $chr(44) $+ dd?/g, %res, %dummy = $regsub(%text, %regex, $null, %text) 

  while (%i <= $len(%text)) { 
    if ($mid(%text, %i, 1) == $chr(3)) { 
      var %lia $+(%lia, $chr(3)), %lib $+(%lib, $chr(3)), %lic $+(%lic, $chr(3)), %lid $+(%lid, $chr(3)), %lie $+(%lie, $chr(3)) 
      if ($mid(%text, $calc(%i + 1), 1) != $chr(32)) && ($regex(mtcol, $mid(%text, $calc(%i + 1), $mid(%text, $calc(%i + 1), 0)), %colregex)) { 
        var %m $regml(mtcol, 1) 
        var %lia %lia $+ %m, %lib %lib $+ %m, %lic %lic $+ %m, %lid %lid $+ %m, %lie %lie $+ %m 
        inc %i $len(%m) 
      } 
    } 
    else { 
      tokenize 32 $bigtext.char($mid(%text, %i, 1)) 
      var %lia $+(%lia, $1), %lib $+(%lib, $2), %lic $+(%lic, $3), %lid $+(%lid, $4), %lie $+(%lie, $5) 
      ; if ($bigtext.kern($mid(%text, %i, 2))) { 
      var %lia $+(%lia, .), %lib $+(%lib, .), %lic $+(%lic, .), %lid $+(%lid, .), %lie $+(%lie, .) 
      ; } 
    } 
    inc %i 
  } 
  say $bigtext.format(%lia) 
  say $bigtext.format(%lib) 
  say $bigtext.format(%lic) 
  say $bigtext.format(%lid) 
  say $bigtext.format(%lie) 
} 

alias -l bigtext.char { 
  if ($1 === $chr(32)) || ($1 === $null) return $& 
    ... $& 
    ... $& 
    ... $& 
    ... $& 
    ... 
  if ($1 === $chr(160)) return $& 
    ..... $& 
    ..... $& 
    ..... $& 
    ..... $& 
    ..... 
  elseif ($1 == 0) return $& 
    .XXXX. $& 
    XX..XX $& 
    XX.XXX $& 
    XXX.XX $& 
    .XXXX. 
  elseif ($1 == 1) return $& 
    .XXXX $& 
    XX.XX $& 
    ...XX $& 
    ...XX $& 
    ...XX 
  elseif ($1 == 2) return $& 
    XXXXX. $& 
    ....XX $& 
    ..XX.. $& 
    XX.... $& 
    XXXXXX 
  elseif ($1 == 3) return $& 
    XXXXX. $& 
    ....XX $& 
    .XXXX. $& 
    ....XX $& 
    XXXXX. 
  elseif ($1 == 4) return $& 
    .....XXX. $& 
    ...XX.XX. $& 
    .XX...XX. $& 
    XXXXXXXXX $& 
    ......XX. 
  elseif ($1 == 5) return $& 
    XXXXX $& 
    XX... $& 
    XXXX. $& 
    ...XX $& 
    XXXX. 
  elseif ($1 == 6) return $& 
    .XXXX. $& 
    XX.... $& 
    XXXXX. $& 
    XX..XX $& 
    .XXXX. 
  elseif ($1 == 7) return $& 
    XXXXXX $& 
    ...XX. $& 
    ..XX.. $& 
    .XX... $& 
    XX.... 
  elseif ($1 == 8) return $& 
    .XXXX. $& 
    XX..XX $& 
    .XXXX. $& 
    XX..XX $& 
    .XXXX. 
  elseif ($1 == 9) return $& 
    .XXXX. $& 
    XX..XX $& 
    .XXXXX $& 
    ....XX $& 
    .XXXX. 
  elseif ($1 == A) return $& 
    .XXXX. $& 
    XX..XX $& 
    XXXXXX $& 
    XX..XX $& 
    XX..XX 
  elseif ($1 == B) return $& 
    XXXXX. $& 
    XX..XX $& 
    XXXXX. $& 
    XX..XX $& 
    XXXXX. 
  elseif ($1 == C) return $& 
    .XXXX. $& 
    XX..XX $& 
    XX.... $& 
    XX..XX $& 
    .XXXX. 
  elseif ($1 == D) return $& 
    XXXX.. $& 
    XX.XX. $& 
    XX..XX $& 
    XX..XX $& 
    XXXXX. 
  elseif ($1 == E) return $& 
    XXXXX $& 
    XX... $& 
    XXXX. $& 
    XX... $& 
    XXXXX 
  elseif ($1 == F) return $& 
    XXXXX $& 
    XX... $& 
    XXXX. $& 
    XX... $& 
    XX... 
  elseif ($1 == G) return $& 
    .XXXX. $& 
    XX.... $& 
    XX.XXX $& 
    XX..XX $& 
    .XXXXX 
  elseif ($1 == H) return $& 
    XX...XX $& 
    XX...XX $& 
    XXXXXXX $& 
    XX...XX $& 
    XX...XX 
  elseif ($1 == I) return $& 
    XXXX $& 
    .XX. $& 
    .XX. $& 
    .XX. $& 
    XXXX 
  elseif ($1 == J) return $& 
    ....XX $& 
    ....XX $& 
    ....XX $& 
    XX..XX $& 
    .XXXX. 
  elseif ($1 == K) return $& 
    XX..XX $& 
    XX.XX. $& 
    XXXX.. $& 
    XX.XX. $& 
    XX..XX 
  elseif ($1 == L) return $& 
    XX... $& 
    XX... $& 
    XX... $& 
    XX... $& 
    XXXXX 
  elseif ($1 == M) return $& 
    XX....XX $& 
    XXX..XXX $& 
    XXXXXXXX $& 
    XX.XX.XX $& 
    XX....XX 
  elseif ($1 == N) return $& 
    XX..XX $& 
    XXX.XX $& 
    XXXXXX $& 
    XX.XXX $& 
    XX..XX 
  elseif ($1 == O) return $& 
    .XXXX. $& 
    XX..XX $& 
    XX..XX $& 
    XX..XX $& 
    .XXXX. 
  elseif ($1 == P) return $& 
    XXXXX. $& 
    XX..XX $& 
    XXXXX. $& 
    XX.... $& 
    XX.... 
  elseif ($1 == Q) return $& 
    .XXXX.. $& 
    XX..XX. $& 
    XX..XX. $& 
    XX..XX. $& 
    .XXXXXX 
  elseif ($1 == R) return $& 
    XXXXX. $& 
    XX..XX $& 
    XXXXX. $& 
    XX..XX $& 
    XX..XX 
  elseif ($1 == S) return $& 
    .XXXX. $& 
    XX.... $& 
    .XXXX. $& 
    ....XX $& 
    XXXXX. 
  elseif ($1 == T) return $& 
    XXXXXX $& 
    ..XX.. $& 
    ..XX.. $& 
    ..XX.. $& 
    ..XX.. 
  elseif ($1 == U) return $& 
    XX..XX $& 
    XX..XX $& 
    XX..XX $& 
    XX..XX $& 
    .XXXX. 
  elseif ($1 == V) return $& 
    XX....XX $& 
    XX....XX $& 
    .XX..XX. $& 
    ..XXXX.. $& 
    ...XX... 
  elseif ($1 == W) return $& 
    XX...XX $& 
    XX...XX $& 
    XX.X.XX $& 
    XXXXXXX $& 
    .XX.XX. 
  elseif ($1 == X) return $& 
    XX...XX $& 
    .XX.XX. $& 
    ..XXX.. $& 
    .XX.XX. $& 
    XX...XX 
  elseif ($1 == Y) return $& 
    XX..XX $& 
    XX..XX $& 
    .XXXX. $& 
    ..XX.. $& 
    ..XX.. 
  elseif ($1 == Z) return $& 
    XXXXXX $& 
    ...XX. $& 
    ..XX.. $& 
    .XX... $& 
    XXXXXX 
  elseif ($1 == $chr(35)) return $& 
    .XX..XX. $& 
    XXXXXXXX $& 
    .XX..XX. $& 
    XXXXXXXX $& 
    .XX..XX. 
  elseif ($1 == ') return $& 
    .XX $& 
    XX. $& 
    ... $& 
    ... $& 
    ... 
  elseif ($1 == ") return $& 
    XX..XX $& 
    XX..XX $& 
    ...... $& 
    ...... $& 
    ...... 
  elseif ($1 == +) return $& 
    ...... $& 
    ..XX.. $& 
    XXXXXX $& 
    ..XX.. $& 
    ...... 
  elseif ($1 == =) return $& 
    ...... $& 
    XXXXXX $& 
    ...... $& 
    XXXXXX $& 
    ...... 
  elseif ($1 == -) return $& 
    ...... $& 
    ...... $& 
    XXXXXX $& 
    ...... $& 
    ...... 
  elseif ($1 == _) return $& 
    ...... $& 
    ...... $& 
    ...... $& 
    ...... $& 
    XXXXXX 
  elseif ($1 == ] ) return $& 
    XXXXXX $& 
    ...... $& 
    ...... $& 
    ...... $& 
    ...... 
  elseif ($1 == [) return $& 
    .XXX. $& 
    XX.XX $& 
    .XXX. $& 
    ..... $& 
    ..... 
  elseif ($1 == :) return $& 
    .. $& 
    XX $& 
    .. $& 
    XX $& 
    .. 
  elseif ($1 == !) return $& 
    XX $& 
    XX $& 
    XX $& 
    .. $& 
    XX 
  elseif ($1 == ?) return $& 
    XXX. $& 
    ..XX $& 
    .XX. $& 
    .... $& 
    .XX. 
  elseif ($1 == .) return $& 
    .. $& 
    .. $& 
    .. $& 
    .. $& 
    XX 
  elseif ($1 == /) return $& 
    ....XX $& 
    ...XX. $& 
    ..XX.. $& 
    .XX... $& 
    XX.... 
  elseif ($1 == ) return $& 
    XX.... $& 
    .XX... $& 
    ..XX.. $& 
    ...XX. $& 
    ....XX 
  elseif ($1 == $chr(40)) return $& 
    ...XX $& 
    .XX.. $& 
    XX... $& 
    .XX.. $& 
    ...XX 
  elseif ($1 == $chr(41)) return $& 
    XX... $& 
    ..XX. $& 
    ...XX $& 
    ..XX. $& 
    XX... 
  elseif ($1 == $chr(37)) return $& 
    XX..XX $& 
    ...XX. $& 
    ..XX.. $& 
    .XX... $& 
    XX..XX 
  elseif ($1 == [) return $& 
    XXXXX $& 
    XX... $& 
    XX... $& 
    XX... $& 
    XXXXX 
  elseif ($1 == ]) return $& 
    XXXXX $& 
    ...XX $& 
    ...XX $& 
    ...XX $& 
    XXXXX 
  elseif ($1 == |) return $& 
    .XX. $& 
    .XX. $& 
    .XX. $& 
    .XX. $& 
    .XX. 
  elseif ($1 == <) return $& 
    ....XX $& 
    ..XX.. $& 
    XX.... $& 
    ..XX.. $& 
    ....XX 
  elseif ($1 == >) return $& 
    XX.... $& 
    ..XX.. $& 
    ....XX $& 
    ..XX.. $& 
    XX.... 
  elseif ($1 == ) return $& 
    .... $& 
    .... $& 
    .XX. $& 
    ..XX $& 
    XXX. 
  elseif ($1 == ,) return $& 
    ... $& 
    ... $& 
    XXX $& 
    .XX $& 
    XX. 
} 



alias bigtext.unsupp { 
  var %res, %dummy = $regsub($1-, /[]a-z  0-9# $+ $chr(44) $+ '+=:!?./()%[|<>_"-]/igS, $null, %res) 
  return %res 
} 

alias bigtext.kern { 
  var %res $true 
  if ($regex($1-, /^(.|[_GDSQL-]T|[TPFVY7/"]J|T.|L[1Y"]|[LTK<[]-|-[]>%]|S1|T4|?.|.?|[467L]|[J/]|L'|//|\|J|[_]|[T_]_|>.|.<)$/i)) %res = $false 
  return %res 
} 

alias bigtext.format { 
  var %res, %i 1, %previous 0, %current, %curcolor, %colregex /^(dd?(?:,dd?)?)/ 
  while (%i <= $len($1-)) { 
    if ($mid($1-, %i, 1) == $chr(3)) { 
      if ($regex(mtcol, $mid($1-, $calc(%i + 1), $mid($1-, $calc(%i + 1), 0)), %colregex)) { 
        if ($gettok($regml(mtcol, 1), 1, 44) != %curcolor) { 
          %curcolor = $gettok($regml(mtcol, 1), 1, 44) 
          if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15) 
        } 
        inc %i $len($regml(mtcol, 1)) 
      } 
      elseif (%curcolor) { 
        %curcolor = 
        if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15) 
      } 
    } 
    else { 
      %current = $iif($mid($1-, %i, 1) == ., 0, 1) 
      if (%previous != %current) { 
        %previous = %current 
        if (%curcolor) { 
          if (%current) %res = %res $+ $chr(3) $+ %curcolor $+ , $+ %curcolor 
          else %res = %res $+ $chr(3) 
        } 
        else %res = %res $+ $chr(22) 
      } 
      %res = %res $+ $chr(160) 
    } 
    inc %i 
  } 
  return %res 
}
alias big { 
  if ($bigtext.unsupp($1-)) { 
    echo -ac info * Characters not supported by Big Text present in your message: $bigtext.unsupp($1-) 
    return 
  } 
  var %lia, %lib, %lic, %lid, %lie, %i 1, %text $strip($1-, bur), %colregex /^(dd?(?:,dd?)?)/ 

  var %regex = /(?<= $+ $chr(3) $+ [0-9]| $+ $chr(3) $+ [0-9][0-9]) $+ $chr(44) $+ dd?/g, %res, %dummy = $regsub(%text, %regex, $null, %text) 

  while (%i <= $len(%text)) { 
    if ($mid(%text, %i, 1) == $chr(3)) { 
      var %lia $+(%lia, $chr(3)), %lib $+(%lib, $chr(3)), %lic $+(%lic, $chr(3)), %lid $+(%lid, $chr(3)), %lie $+(%lie, $chr(3)) 
      if ($mid(%text, $calc(%i + 1), 1) != $chr(32)) && ($regex(mtcol, $mid(%text, $calc(%i + 1), $mid(%text, $calc(%i + 1), 0)), %colregex)) { 
        var %m $regml(mtcol, 1) 
        var %lia %lia $+ %m, %lib %lib $+ %m, %lic %lic $+ %m, %lid %lid $+ %m, %lie %lie $+ %m 
        inc %i $len(%m) 
      } 
    } 
    else { 
      tokenize 32 $bigtext.char($mid(%text, %i, 1)) 
      var %lia $+(%lia, $1), %lib $+(%lib, $2), %lic $+(%lic, $3), %lid $+(%lid, $4), %lie $+(%lie, $5) 
      ; if ($bigtext.kern($mid(%text, %i, 2))) { 
      var %lia $+(%lia, .), %lib $+(%lib, .), %lic $+(%lic, .), %lid $+(%lid, .), %lie $+(%lie, .) 
      ; } 
    } 
    inc %i 
  } 
  say $bigtext.format(%lia) 
  say $bigtext.format(%lib) 
  say $bigtext.format(%lic) 
  say $bigtext.format(%lid) 
  say $bigtext.format(%lie) 
} 

alias -l bigtext.char { 
  if ($1 === $chr(32)) || ($1 === $null) return $& 
    ... $& 
    ... $& 
    ... $& 
    ... $& 
    ... 
  if ($1 === $chr(160)) return $& 
    ..... $& 
    ..... $& 
    ..... $& 
    ..... $& 
    ..... 
  elseif ($1 == 0) return $& 
    .XXXX. $& 
    XX..XX $& 
    XX.XXX $& 
    XXX.XX $& 
    .XXXX. 
  elseif ($1 == 1) return $& 
    .XXXX $& 
    XX.XX $& 
    ...XX $& 
    ...XX $& 
    ...XX 
  elseif ($1 == 2) return $& 
    XXXXX. $& 
    ....XX $& 
    ..XX.. $& 
    XX.... $& 
    XXXXXX 
  elseif ($1 == 3) return $& 
    XXXXX. $& 
    ....XX $& 
    .XXXX. $& 
    ....XX $& 
    XXXXX. 
  elseif ($1 == 4) return $& 
    .....XXX. $& 
    ...XX.XX. $& 
    .XX...XX. $& 
    XXXXXXXXX $& 
    ......XX. 
  elseif ($1 == 5) return $& 
    XXXXX $& 
    XX... $& 
    XXXX. $& 
    ...XX $& 
    XXXX. 
  elseif ($1 == 6) return $& 
    .XXXX. $& 
    XX.... $& 
    XXXXX. $& 
    XX..XX $& 
    .XXXX. 
  elseif ($1 == 7) return $& 
    XXXXXX $& 
    ...XX. $& 
    ..XX.. $& 
    .XX... $& 
    XX.... 
  elseif ($1 == 8) return $& 
    .XXXX. $& 
    XX..XX $& 
    .XXXX. $& 
    XX..XX $& 
    .XXXX. 
  elseif ($1 == 9) return $& 
    .XXXX. $& 
    XX..XX $& 
    .XXXXX $& 
    ....XX $& 
    .XXXX. 
  elseif ($1 == A) return $& 
    .XXXX. $& 
    XX..XX $& 
    XXXXXX $& 
    XX..XX $& 
    XX..XX 
  elseif ($1 == B) return $& 
    XXXXX. $& 
    XX..XX $& 
    XXXXX. $& 
    XX..XX $& 
    XXXXX. 
  elseif ($1 == C) return $& 
    .XXXX. $& 
    XX..XX $& 
    XX.... $& 
    XX..XX $& 
    .XXXX. 
  elseif ($1 == D) return $& 
    XXXX.. $& 
    XX.XX. $& 
    XX..XX $& 
    XX..XX $& 
    XXXXX. 
  elseif ($1 == E) return $& 
    XXXXX $& 
    XX... $& 
    XXXX. $& 
    XX... $& 
    XXXXX 
  elseif ($1 == F) return $& 
    XXXXX $& 
    XX... $& 
    XXXX. $& 
    XX... $& 
    XX... 
  elseif ($1 == G) return $& 
    .XXXX. $& 
    XX.... $& 
    XX.XXX $& 
    XX..XX $& 
    .XXXXX 
  elseif ($1 == H) return $& 
    XX...XX $& 
    XX...XX $& 
    XXXXXXX $& 
    XX...XX $& 
    XX...XX 
  elseif ($1 == I) return $& 
    XXXX $& 
    .XX. $& 
    .XX. $& 
    .XX. $& 
    XXXX 
  elseif ($1 == J) return $& 
    ....XX $& 
    ....XX $& 
    ....XX $& 
    XX..XX $& 
    .XXXX. 
  elseif ($1 == K) return $& 
    XX..XX $& 
    XX.XX. $& 
    XXXX.. $& 
    XX.XX. $& 
    XX..XX 
  elseif ($1 == L) return $& 
    XX... $& 
    XX... $& 
    XX... $& 
    XX... $& 
    XXXXX 
  elseif ($1 == M) return $& 
    XX....XX $& 
    XXX..XXX $& 
    XXXXXXXX $& 
    XX.XX.XX $& 
    XX....XX 
  elseif ($1 == N) return $& 
    XX..XX $& 
    XXX.XX $& 
    XXXXXX $& 
    XX.XXX $& 
    XX..XX 
  elseif ($1 == O) return $& 
    .XXXX. $& 
    XX..XX $& 
    XX..XX $& 
    XX..XX $& 
    .XXXX. 
  elseif ($1 == P) return $& 
    XXXXX. $& 
    XX..XX $& 
    XXXXX. $& 
    XX.... $& 
    XX.... 
  elseif ($1 == Q) return $& 
    .XXXX.. $& 
    XX..XX. $& 
    XX..XX. $& 
    XX..XX. $& 
    .XXXXXX 
  elseif ($1 == R) return $& 
    XXXXX. $& 
    XX..XX $& 
    XXXXX. $& 
    XX..XX $& 
    XX..XX 
  elseif ($1 == S) return $& 
    .XXXX. $& 
    XX.... $& 
    .XXXX. $& 
    ....XX $& 
    XXXXX. 
  elseif ($1 == T) return $& 
    XXXXXX $& 
    ..XX.. $& 
    ..XX.. $& 
    ..XX.. $& 
    ..XX.. 
  elseif ($1 == U) return $& 
    XX..XX $& 
    XX..XX $& 
    XX..XX $& 
    XX..XX $& 
    .XXXX. 
  elseif ($1 == V) return $& 
    XX....XX $& 
    XX....XX $& 
    .XX..XX. $& 
    ..XXXX.. $& 
    ...XX... 
  elseif ($1 == W) return $& 
    XX...XX $& 
    XX...XX $& 
    XX.X.XX $& 
    XXXXXXX $& 
    .XX.XX. 
  elseif ($1 == X) return $& 
    XX...XX $& 
    .XX.XX. $& 
    ..XXX.. $& 
    .XX.XX. $& 
    XX...XX 
  elseif ($1 == Y) return $& 
    XX..XX $& 
    XX..XX $& 
    .XXXX. $& 
    ..XX.. $& 
    ..XX.. 
  elseif ($1 == Z) return $& 
    XXXXXX $& 
    ...XX. $& 
    ..XX.. $& 
    .XX... $& 
    XXXXXX 
  elseif ($1 == $chr(35)) return $& 
    .XX..XX. $& 
    XXXXXXXX $& 
    .XX..XX. $& 
    XXXXXXXX $& 
    .XX..XX. 
  elseif ($1 == ') return $& 
    .XX $& 
    XX. $& 
    ... $& 
    ... $& 
    ... 
  elseif ($1 == ") return $& 
    XX..XX $& 
    XX..XX $& 
    ...... $& 
    ...... $& 
    ...... 
  elseif ($1 == +) return $& 
    ...... $& 
    ..XX.. $& 
    XXXXXX $& 
    ..XX.. $& 
    ...... 
  elseif ($1 == =) return $& 
    ...... $& 
    XXXXXX $& 
    ...... $& 
    XXXXXX $& 
    ...... 
  elseif ($1 == -) return $& 
    ...... $& 
    ...... $& 
    XXXXXX $& 
    ...... $& 
    ...... 
  elseif ($1 == _) return $& 
    ...... $& 
    ...... $& 
    ...... $& 
    ...... $& 
    XXXXXX 
  elseif ($1 == ] ) return $& 
    XXXXXX $& 
    ...... $& 
    ...... $& 
    ...... $& 
    ...... 
  elseif ($1 == [) return $& 
    .XXX. $& 
    XX.XX $& 
    .XXX. $& 
    ..... $& 
    ..... 
  elseif ($1 == :) return $& 
    .. $& 
    XX $& 
    .. $& 
    XX $& 
    .. 
  elseif ($1 == !) return $& 
    XX $& 
    XX $& 
    XX $& 
    .. $& 
    XX 
  elseif ($1 == ?) return $& 
    XXX. $& 
    ..XX $& 
    .XX. $& 
    .... $& 
    .XX. 
  elseif ($1 == .) return $& 
    .. $& 
    .. $& 
    .. $& 
    .. $& 
    XX 
  elseif ($1 == /) return $& 
    ....XX $& 
    ...XX. $& 
    ..XX.. $& 
    .XX... $& 
    XX.... 
  elseif ($1 == ) return $& 
    XX.... $& 
    .XX... $& 
    ..XX.. $& 
    ...XX. $& 
    ....XX 
  elseif ($1 == $chr(40)) return $& 
    ...XX $& 
    .XX.. $& 
    XX... $& 
    .XX.. $& 
    ...XX 
  elseif ($1 == $chr(41)) return $& 
    XX... $& 
    ..XX. $& 
    ...XX $& 
    ..XX. $& 
    XX... 
  elseif ($1 == $chr(37)) return $& 
    XX..XX $& 
    ...XX. $& 
    ..XX.. $& 
    .XX... $& 
    XX..XX 
  elseif ($1 == [) return $& 
    XXXXX $& 
    XX... $& 
    XX... $& 
    XX... $& 
    XXXXX 
  elseif ($1 == ]) return $& 
    XXXXX $& 
    ...XX $& 
    ...XX $& 
    ...XX $& 
    XXXXX 
  elseif ($1 == |) return $& 
    .XX. $& 
    .XX. $& 
    .XX. $& 
    .XX. $& 
    .XX. 
  elseif ($1 == <) return $& 
    ....XX $& 
    ..XX.. $& 
    XX.... $& 
    ..XX.. $& 
    ....XX 
  elseif ($1 == >) return $& 
    XX.... $& 
    ..XX.. $& 
    ....XX $& 
    ..XX.. $& 
    XX.... 
  elseif ($1 == ) return $& 
    .... $& 
    .... $& 
    .XX. $& 
    ..XX $& 
    XXX. 
  elseif ($1 == ,) return $& 
    ... $& 
    ... $& 
    XXX $& 
    .XX $& 
    XX. 
} 



alias bigtext.unsupp { 
  var %res, %dummy = $regsub($1-, /[]a-z  0-9# $+ $chr(44) $+ '+=:!?./()%[|<>_"-]/igS, $null, %res) 
  return %res 
} 

alias bigtext.kern { 
  var %res $true 
  if ($regex($1-, /^(.|[_GDSQL-]T|[TPFVY7/"]J|T.|L[1Y"]|[LTK<[]-|-[]>%]|S1|T4|?.|.?|[467L]|[J/]|L'|//|\|J|[_]|[T_]_|>.|.<)$/i)) %res = $false 
  return %res 
} 

alias bigtext.format { 
  var %res, %i 1, %previous 0, %current, %curcolor, %colregex /^(dd?(?:,dd?)?)/ 
  while (%i <= $len($1-)) { 
    if ($mid($1-, %i, 1) == $chr(3)) { 
      if ($regex(mtcol, $mid($1-, $calc(%i + 1), $mid($1-, $calc(%i + 1), 0)), %colregex)) { 
        if ($gettok($regml(mtcol, 1), 1, 44) != %curcolor) { 
          %curcolor = $gettok($regml(mtcol, 1), 1, 44) 
          if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15) 
        } 
        inc %i $len($regml(mtcol, 1)) 
      } 
      elseif (%curcolor) { 
        %curcolor = 
        if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15) 
      } 
    } 
    else { 
      %current = $iif($mid($1-, %i, 1) == ., 0, 1) 
      if (%previous != %current) { 
        %previous = %current 
        if (%curcolor) { 
          if (%current) %res = %res $+ $chr(3) $+ %curcolor $+ , $+ %curcolor 
          else %res = %res $+ $chr(3) 
        } 
        else %res = %res $+ $chr(22) 
      } 
      %res = %res $+ $chr(160) 
    } 
    inc %i 
  } 
  return %res 
} 

001 alias big { 
  002   if ($bigtext.unsupp($1-)) { 
    003     echo -ac info * Characters not supported by Big Text present in your message: $bigtext.unsupp($1-) 
    004     return 
  005   } 
  006   var %lia, %lib, %lic, %lid, %lie, %i 1, %text $strip($1-, bur), %colregex /^(dd?(?:,dd?)?)/ 
  007  
  008   var %regex = /(?<= $+ $chr(3) $+ [0-9]| $+ $chr(3) $+ [0-9][0-9]) $+ $chr(44) $+ dd?/g, %res, %dummy = $regsub(%text, %regex, $null, %text) 
  009  
  010   while (%i <= $len(%text)) { 
    011     if ($mid(%text, %i, 1) == $chr(3)) { 
      012       var %lia $+(%lia, $chr(3)), %lib $+(%lib, $chr(3)), %lic $+(%lic, $chr(3)), %lid $+(%lid, $chr(3)), %lie $+(%lie, $chr(3)) 
      013       if ($mid(%text, $calc(%i + 1), 1) != $chr(32)) && ($regex(mtcol, $mid(%text, $calc(%i + 1), $mid(%text, $calc(%i + 1), 0)), %colregex)) { 
        014         var %m $regml(mtcol, 1) 
        015         var %lia %lia $+ %m, %lib %lib $+ %m, %lic %lic $+ %m, %lid %lid $+ %m, %lie %lie $+ %m 
        016         inc %i $len(%m) 
      017       } 
    018     } 
    019     else { 
      020       tokenize 32 $bigtext.char($mid(%text, %i, 1)) 
      021       var %lia $+(%lia, $1), %lib $+(%lib, $2), %lic $+(%lic, $3), %lid $+(%lid, $4), %lie $+(%lie, $5) 
      022       ; if ($bigtext.kern($mid(%text, %i, 2))) { 
        023       var %lia $+(%lia, .), %lib $+(%lib, .), %lic $+(%lic, .), %lid $+(%lid, .), %lie $+(%lie, .) 
      024       ; } 
    025     } 
    026     inc %i 
  027   } 
  028   say $bigtext.format(%lia) 
  029   say $bigtext.format(%lib) 
  030   say $bigtext.format(%lic) 
  031   say $bigtext.format(%lid) 
  032   say $bigtext.format(%lie) 
033 } 
034  
035 alias -l bigtext.char { 
  036   if ($1 === $chr(32)) || ($1 === $null) return $& 
    037     ... $& 
    038     ... $& 
    039     ... $& 
    040     ... $& 
    041     ... 
  042   if ($1 === $chr(160)) return $& 
    043     ..... $& 
    044     ..... $& 
    045     ..... $& 
    046     ..... $& 
    047     ..... 
  048   elseif ($1 == 0) return $& 
    049     .XXXX. $& 
    050     XX..XX $& 
    051     XX.XXX $& 
    052     XXX.XX $& 
    053     .XXXX. 
  054   elseif ($1 == 1) return $& 
    055     .XXXX $& 
    056     XX.XX $& 
    057     ...XX $& 
    058     ...XX $& 
    059     ...XX 
  060   elseif ($1 == 2) return $& 
    061     XXXXX. $& 
    062     ....XX $& 
    063     ..XX.. $& 
    064     XX.... $& 
    065     XXXXXX 
  066   elseif ($1 == 3) return $& 
    067     XXXXX. $& 
    068     ....XX $& 
    069     .XXXX. $& 
    070     ....XX $& 
    071     XXXXX. 
  072   elseif ($1 == 4) return $& 
    073     .....XXX. $& 
    074     ...XX.XX. $& 
    075     .XX...XX. $& 
    076     XXXXXXXXX $& 
    077     ......XX. 
  078   elseif ($1 == 5) return $& 
    079     XXXXX $& 
    080     XX... $& 
    081     XXXX. $& 
    082     ...XX $& 
    083     XXXX. 
  084   elseif ($1 == 6) return $& 
    085     .XXXX. $& 
    086     XX.... $& 
    087     XXXXX. $& 
    088     XX..XX $& 
    089     .XXXX. 
  090   elseif ($1 == 7) return $& 
    091     XXXXXX $& 
    092     ...XX. $& 
    093     ..XX.. $& 
    094     .XX... $& 
    095     XX.... 
  096   elseif ($1 == 8) return $& 
    097     .XXXX. $& 
    098     XX..XX $& 
    099     .XXXX. $& 
    100     XX..XX $& 
    101     .XXXX. 
  102   elseif ($1 == 9) return $& 
    103     .XXXX. $& 
    104     XX..XX $& 
    105     .XXXXX $& 
    106     ....XX $& 
    107     .XXXX. 
  108   elseif ($1 == A) return $& 
    109     .XXXX. $& 
    110     XX..XX $& 
    111     XXXXXX $& 
    112     XX..XX $& 
    113     XX..XX 
  114   elseif ($1 == B) return $& 
    115     XXXXX. $& 
    116     XX..XX $& 
    117     XXXXX. $& 
    118     XX..XX $& 
    119     XXXXX. 
  120   elseif ($1 == C) return $& 
    121     .XXXX. $& 
    122     XX..XX $& 
    123     XX.... $& 
    124     XX..XX $& 
    125     .XXXX. 
  126   elseif ($1 == D) return $& 
    127     XXXX.. $& 
    128     XX.XX. $& 
    129     XX..XX $& 
    130     XX..XX $& 
    131     XXXXX. 
  132   elseif ($1 == E) return $& 
    133     XXXXX $& 
    134     XX... $& 
    135     XXXX. $& 
    136     XX... $& 
    137     XXXXX 
  138   elseif ($1 == F) return $& 
    139     XXXXX $& 
    140     XX... $& 
    141     XXXX. $& 
    142     XX... $& 
    143     XX... 
  144   elseif ($1 == G) return $& 
    145     .XXXX. $& 
    146     XX.... $& 
    147     XX.XXX $& 
    148     XX..XX $& 
    149     .XXXXX 
  150   elseif ($1 == H) return $& 
    151     XX...XX $& 
    152     XX...XX $& 
    153     XXXXXXX $& 
    154     XX...XX $& 
    155     XX...XX 
  156   elseif ($1 == I) return $& 
    157     XXXX $& 
    158     .XX. $& 
    159     .XX. $& 
    160     .XX. $& 
    161     XXXX 
  162   elseif ($1 == J) return $& 
    163     ....XX $& 
    164     ....XX $& 
    165     ....XX $& 
    166     XX..XX $& 
    167     .XXXX. 
  168   elseif ($1 == K) return $& 
    169     XX..XX $& 
    170     XX.XX. $& 
    171     XXXX.. $& 
    172     XX.XX. $& 
    173     XX..XX 
  174   elseif ($1 == L) return $& 
    175     XX... $& 
    176     XX... $& 
    177     XX... $& 
    178     XX... $& 
    179     XXXXX 
  180   elseif ($1 == M) return $& 
    181     XX....XX $& 
    182     XXX..XXX $& 
    183     XXXXXXXX $& 
    184     XX.XX.XX $& 
    185     XX....XX 
  186   elseif ($1 == N) return $& 
    187     XX..XX $& 
    188     XXX.XX $& 
    189     XXXXXX $& 
    190     XX.XXX $& 
    191     XX..XX 
  192   elseif ($1 == O) return $& 
    193     .XXXX. $& 
    194     XX..XX $& 
    195     XX..XX $& 
    196     XX..XX $& 
    197     .XXXX. 
  198   elseif ($1 == P) return $& 
    199     XXXXX. $& 
    200     XX..XX $& 
    201     XXXXX. $& 
    202     XX.... $& 
    203     XX.... 
  204   elseif ($1 == Q) return $& 
    205     .XXXX.. $& 
    206     XX..XX. $& 
    207     XX..XX. $& 
    208     XX..XX. $& 
    209     .XXXXXX 
  210   elseif ($1 == R) return $& 
    211     XXXXX. $& 
    212     XX..XX $& 
    213     XXXXX. $& 
    214     XX..XX $& 
    215     XX..XX 
  216   elseif ($1 == S) return $& 
    217     .XXXX. $& 
    218     XX.... $& 
    219     .XXXX. $& 
    220     ....XX $& 
    221     XXXXX. 
  222   elseif ($1 == T) return $& 
    223     XXXXXX $& 
    224     ..XX.. $& 
    225     ..XX.. $& 
    226     ..XX.. $& 
    227     ..XX.. 
  228   elseif ($1 == U) return $& 
    229     XX..XX $& 
    230     XX..XX $& 
    231     XX..XX $& 
    232     XX..XX $& 
    233     .XXXX. 
  234   elseif ($1 == V) return $& 
    235     XX....XX $& 
    236     XX....XX $& 
    237     .XX..XX. $& 
    238     ..XXXX.. $& 
    239     ...XX... 
  240   elseif ($1 == W) return $& 
    241     XX...XX $& 
    242     XX...XX $& 
    243     XX.X.XX $& 
    244     XXXXXXX $& 
    245     .XX.XX. 
  246   elseif ($1 == X) return $& 
    247     XX...XX $& 
    248     .XX.XX. $& 
    249     ..XXX.. $& 
    250     .XX.XX. $& 
    251     XX...XX 
  252   elseif ($1 == Y) return $& 
    253     XX..XX $& 
    254     XX..XX $& 
    255     .XXXX. $& 
    256     ..XX.. $& 
    257     ..XX.. 
  258   elseif ($1 == Z) return $& 
    259     XXXXXX $& 
    260     ...XX. $& 
    261     ..XX.. $& 
    262     .XX... $& 
    263     XXXXXX 
  264   elseif ($1 == $chr(35)) return $& 
    265     .XX..XX. $& 
    266     XXXXXXXX $& 
    267     .XX..XX. $& 
    268     XXXXXXXX $& 
    269     .XX..XX. 
  270   elseif ($1 == ') return $& 
    271     .XX $& 
    272     XX. $& 
    273     ... $& 
    274     ... $& 
    275     ... 
  276   elseif ($1 == ") return $& 
    277     XX..XX $& 
    278     XX..XX $& 
    279     ...... $& 
    280     ...... $& 
    281     ...... 
  282   elseif ($1 == +) return $& 
    283     ...... $& 
    284     ..XX.. $& 
    285     XXXXXX $& 
    286     ..XX.. $& 
    287     ...... 
  288   elseif ($1 == =) return $& 
    289     ...... $& 
    290     XXXXXX $& 
    291     ...... $& 
    292     XXXXXX $& 
    293     ...... 
  294   elseif ($1 == -) return $& 
    295     ...... $& 
    296     ...... $& 
    297     XXXXXX $& 
    298     ...... $& 
    299     ...... 
  300   elseif ($1 == _) return $& 
    301     ...... $& 
    302     ...... $& 
    303     ...... $& 
    304     ...... $& 
    305     XXXXXX 
  306   elseif ($1 == ] ) return $& 
    307     XXXXXX $& 
    308     ...... $& 
    309     ...... $& 
    310     ...... $& 
    311     ...... 
  312   elseif ($1 == [) return $& 
    313     .XXX. $& 
    314     XX.XX $& 
    315     .XXX. $& 
    316     ..... $& 
    317     ..... 
  318   elseif ($1 == :) return $& 
    319     .. $& 
    320     XX $& 
    321     .. $& 
    322     XX $& 
    323     .. 
  324   elseif ($1 == !) return $& 
    325     XX $& 
    326     XX $& 
    327     XX $& 
    328     .. $& 
    329     XX 
  330   elseif ($1 == ?) return $& 
    331     XXX. $& 
    332     ..XX $& 
    333     .XX. $& 
    334     .... $& 
    335     .XX. 
  336   elseif ($1 == .) return $& 
    337     .. $& 
    338     .. $& 
    339     .. $& 
    340     .. $& 
    341     XX 
  342   elseif ($1 == /) return $& 
    343     ....XX $& 
    344     ...XX. $& 
    345     ..XX.. $& 
    346     .XX... $& 
    347     XX.... 
  348   elseif ($1 == ) return $& 
    349     XX.... $& 
    350     .XX... $& 
    351     ..XX.. $& 
    352     ...XX. $& 
    353     ....XX 
  354   elseif ($1 == $chr(40)) return $& 
    355     ...XX $& 
    356     .XX.. $& 
    357     XX... $& 
    358     .XX.. $& 
    359     ...XX 
  360   elseif ($1 == $chr(41)) return $& 
    361     XX... $& 
    362     ..XX. $& 
    363     ...XX $& 
    364     ..XX. $& 
    365     XX... 
  366   elseif ($1 == $chr(37)) return $& 
    367     XX..XX $& 
    368     ...XX. $& 
    369     ..XX.. $& 
    370     .XX... $& 
    371     XX..XX 
  372   elseif ($1 == [) return $& 
    373     XXXXX $& 
    374     XX... $& 
    375     XX... $& 
    376     XX... $& 
    377     XXXXX 
  378   elseif ($1 == ]) return $& 
    379     XXXXX $& 
    380     ...XX $& 
    381     ...XX $& 
    382     ...XX $& 
    383     XXXXX 
  384   elseif ($1 == |) return $& 
    385     .XX. $& 
    386     .XX. $& 
    387     .XX. $& 
    388     .XX. $& 
    389     .XX. 
  390   elseif ($1 == <) return $& 
    391     ....XX $& 
    392     ..XX.. $& 
    393     XX.... $& 
    394     ..XX.. $& 
    395     ....XX 
  396   elseif ($1 == >) return $& 
    397     XX.... $& 
    398     ..XX.. $& 
    399     ....XX $& 
    400     ..XX.. $& 
    401     XX.... 
  402   elseif ($1 == ) return $& 
    403     .... $& 
    404     .... $& 
    405     .XX. $& 
    406     ..XX $& 
    407     XXX. 
  408   elseif ($1 == ,) return $& 
    409     ... $& 
    410     ... $& 
    411     XXX $& 
    412     .XX $& 
    413     XX. 
414 } 
415  
416  
417  
418 alias bigtext.unsupp { 
  419   var %res, %dummy = $regsub($1-, /[]a-z  0-9# $+ $chr(44) $+ '+=:!?./()%[|<>_"-]/igS, $null, %res) 
  420   return %res 
421 } 
422  
423 alias bigtext.kern { 
  424   var %res $true 
  425   if ($regex($1-, /^(.|[_GDSQL-]T|[TPFVY7/"]J|T.|L[1Y"]|[LTK<[]-|-[]>%]|S1|T4|?.|.?|[467L]|[J/]|L'|//|\|J|[_]|[T_]_|>.|.<)$/i)) %res = $false 
  426   return %res 
427 } 
428  
429 alias bigtext.format { 
  430   var %res, %i 1, %previous 0, %current, %curcolor, %colregex /^(dd?(?:,dd?)?)/ 
  431   while (%i <= $len($1-)) { 
    432     if ($mid($1-, %i, 1) == $chr(3)) { 
      433       if ($regex(mtcol, $mid($1-, $calc(%i + 1), $mid($1-, $calc(%i + 1), 0)), %colregex)) { 
        434         if ($gettok($regml(mtcol, 1), 1, 44) != %curcolor) { 
          435           %curcolor = $gettok($regml(mtcol, 1), 1, 44) 
          436           if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15) 
        437         } 
        438         inc %i $len($regml(mtcol, 1)) 
      439       } 
      440       elseif (%curcolor) { 
        441         %curcolor = 
        442         if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15) 
      443       } 
    444     } 
    445     else { 
      446       %current = $iif($mid($1-, %i, 1) == ., 0, 1) 
      447       if (%previous != %current) { 
        448         %previous = %current 
        449         if (%curcolor) { 
          450           if (%current) %res = %res $+ $chr(3) $+ %curcolor $+ , $+ %curcolor 
          451           else %res = %res $+ $chr(3) 
        452         } 
        453         else %res = %res $+ $chr(22) 
      454       } 
      455       %res = %res $+ $chr(160) 
    456     } 
    457     inc %i 
  458   } 
  459   return %res 
460 }
461   
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461alias big { 
  if ($bigtext.unsupp($1-)) { 
    echo -ac info * Characters not supported by Big Text present in your message: $bigtext.unsupp($1-) 
    return 
  } 
  var %lia, %lib, %lic, %lid, %lie, %i 1, %text $strip($1-, bur), %colregex /^(dd?(?:,dd?)?)/ 

  var %regex = /(?<= $+ $chr(3) $+ [0-9]| $+ $chr(3) $+ [0-9][0-9]) $+ $chr(44) $+ dd?/g, %res, %dummy = $regsub(%text, %regex, $null, %text) 

  while (%i <= $len(%text)) { 
    if ($mid(%text, %i, 1) == $chr(3)) { 
      var %lia $+(%lia, $chr(3)), %lib $+(%lib, $chr(3)), %lic $+(%lic, $chr(3)), %lid $+(%lid, $chr(3)), %lie $+(%lie, $chr(3)) 
      if ($mid(%text, $calc(%i + 1), 1) != $chr(32)) && ($regex(mtcol, $mid(%text, $calc(%i + 1), $mid(%text, $calc(%i + 1), 0)), %colregex)) { 
        var %m $regml(mtcol, 1) 
        var %lia %lia $+ %m, %lib %lib $+ %m, %lic %lic $+ %m, %lid %lid $+ %m, %lie %lie $+ %m 
        inc %i $len(%m) 
      } 
    } 
    else { 
      tokenize 32 $bigtext.char($mid(%text, %i, 1)) 
      var %lia $+(%lia, $1), %lib $+(%lib, $2), %lic $+(%lic, $3), %lid $+(%lid, $4), %lie $+(%lie, $5) 
      ; if ($bigtext.kern($mid(%text, %i, 2))) { 
      var %lia $+(%lia, .), %lib $+(%lib, .), %lic $+(%lic, .), %lid $+(%lid, .), %lie $+(%lie, .) 
      ; } 
    } 
    inc %i 
  } 
  say $bigtext.format(%lia) 
  say $bigtext.format(%lib) 
  say $bigtext.format(%lic) 
  say $bigtext.format(%lid) 
  say $bigtext.format(%lie) 
} 

alias -l bigtext.char { 
  if ($1 === $chr(32)) || ($1 === $null) return $& 
    ... $& 
    ... $& 
    ... $& 
    ... $& 
    ... 
  if ($1 === $chr(160)) return $& 
    ..... $& 
    ..... $& 
    ..... $& 
    ..... $& 
    ..... 
  elseif ($1 == 0) return $& 
    .XXXX. $& 
    XX..XX $& 
    XX.XXX $& 
    XXX.XX $& 
    .XXXX. 
  elseif ($1 == 1) return $& 
    .XXXX $& 
    XX.XX $& 
    ...XX $& 
    ...XX $& 
    ...XX 
  elseif ($1 == 2) return $& 
    XXXXX. $& 
    ....XX $& 
    ..XX.. $& 
    XX.... $& 
    XXXXXX 
  elseif ($1 == 3) return $& 
    XXXXX. $& 
    ....XX $& 
    .XXXX. $& 
    ....XX $& 
    XXXXX. 
  elseif ($1 == 4) return $& 
    .....XXX. $& 
    ...XX.XX. $& 
    .XX...XX. $& 
    XXXXXXXXX $& 
    ......XX. 
  elseif ($1 == 5) return $& 
    XXXXX $& 
    XX... $& 
    XXXX. $& 
    ...XX $& 
    XXXX. 
  elseif ($1 == 6) return $& 
    .XXXX. $& 
    XX.... $& 
    XXXXX. $& 
    XX..XX $& 
    .XXXX. 
  elseif ($1 == 7) return $& 
    XXXXXX $& 
    ...XX. $& 
    ..XX.. $& 
    .XX... $& 
    XX.... 
  elseif ($1 == 8) return $& 
    .XXXX. $& 
    XX..XX $& 
    .XXXX. $& 
    XX..XX $& 
    .XXXX. 
  elseif ($1 == 9) return $& 
    .XXXX. $& 
    XX..XX $& 
    .XXXXX $& 
    ....XX $& 
    .XXXX. 
  elseif ($1 == A) return $& 
    .XXXX. $& 
    XX..XX $& 
    XXXXXX $& 
    XX..XX $& 
    XX..XX 
  elseif ($1 == B) return $& 
    XXXXX. $& 
    XX..XX $& 
    XXXXX. $& 
    XX..XX $& 
    XXXXX. 
  elseif ($1 == C) return $& 
    .XXXX. $& 
    XX..XX $& 
    XX.... $& 
    XX..XX $& 
    .XXXX. 
  elseif ($1 == D) return $& 
    XXXX.. $& 
    XX.XX. $& 
    XX..XX $& 
    XX..XX $& 
    XXXXX. 
  elseif ($1 == E) return $& 
    XXXXX $& 
    XX... $& 
    XXXX. $& 
    XX... $& 
    XXXXX 
  elseif ($1 == F) return $& 
    XXXXX $& 
    XX... $& 
    XXXX. $& 
    XX... $& 
    XX... 
  elseif ($1 == G) return $& 
    .XXXX. $& 
    XX.... $& 
    XX.XXX $& 
    XX..XX $& 
    .XXXXX 
  elseif ($1 == H) return $& 
    XX...XX $& 
    XX...XX $& 
    XXXXXXX $& 
    XX...XX $& 
    XX...XX 
  elseif ($1 == I) return $& 
    XXXX $& 
    .XX. $& 
    .XX. $& 
    .XX. $& 
    XXXX 
  elseif ($1 == J) return $& 
    ....XX $& 
    ....XX $& 
    ....XX $& 
    XX..XX $& 
    .XXXX. 
  elseif ($1 == K) return $& 
    XX..XX $& 
    XX.XX. $& 
    XXXX.. $& 
    XX.XX. $& 
    XX..XX 
  elseif ($1 == L) return $& 
    XX... $& 
    XX... $& 
    XX... $& 
    XX... $& 
    XXXXX 
  elseif ($1 == M) return $& 
    XX....XX $& 
    XXX..XXX $& 
    XXXXXXXX $& 
    XX.XX.XX $& 
    XX....XX 
  elseif ($1 == N) return $& 
    XX..XX $& 
    XXX.XX $& 
    XXXXXX $& 
    XX.XXX $& 
    XX..XX 
  elseif ($1 == O) return $& 
    .XXXX. $& 
    XX..XX $& 
    XX..XX $& 
    XX..XX $& 
    .XXXX. 
  elseif ($1 == P) return $& 
    XXXXX. $& 
    XX..XX $& 
    XXXXX. $& 
    XX.... $& 
    XX.... 
  elseif ($1 == Q) return $& 
    .XXXX.. $& 
    XX..XX. $& 
    XX..XX. $& 
    XX..XX. $& 
    .XXXXXX 
  elseif ($1 == R) return $& 
    XXXXX. $& 
    XX..XX $& 
    XXXXX. $& 
    XX..XX $& 
    XX..XX 
  elseif ($1 == S) return $& 
    .XXXX. $& 
    XX.... $& 
    .XXXX. $& 
    ....XX $& 
    XXXXX. 
  elseif ($1 == T) return $& 
    XXXXXX $& 
    ..XX.. $& 
    ..XX.. $& 
    ..XX.. $& 
    ..XX.. 
  elseif ($1 == U) return $& 
    XX..XX $& 
    XX..XX $& 
    XX..XX $& 
    XX..XX $& 
    .XXXX. 
  elseif ($1 == V) return $& 
    XX....XX $& 
    XX....XX $& 
    .XX..XX. $& 
    ..XXXX.. $& 
    ...XX... 
  elseif ($1 == W) return $& 
    XX...XX $& 
    XX...XX $& 
    XX.X.XX $& 
    XXXXXXX $& 
    .XX.XX. 
  elseif ($1 == X) return $& 
    XX...XX $& 
    .XX.XX. $& 
    ..XXX.. $& 
    .XX.XX. $& 
    XX...XX 
  elseif ($1 == Y) return $& 
    XX..XX $& 
    XX..XX $& 
    .XXXX. $& 
    ..XX.. $& 
    ..XX.. 
  elseif ($1 == Z) return $& 
    XXXXXX $& 
    ...XX. $& 
    ..XX.. $& 
    .XX... $& 
    XXXXXX 
  elseif ($1 == $chr(35)) return $& 
    .XX..XX. $& 
    XXXXXXXX $& 
    .XX..XX. $& 
    XXXXXXXX $& 
    .XX..XX. 
  elseif ($1 == ') return $& 
    .XX $& 
    XX. $& 
    ... $& 
    ... $& 
    ... 
  elseif ($1 == ") return $& 
    XX..XX $& 
    XX..XX $& 
    ...... $& 
    ...... $& 
    ...... 
  elseif ($1 == +) return $& 
    ...... $& 
    ..XX.. $& 
    XXXXXX $& 
    ..XX.. $& 
    ...... 
  elseif ($1 == =) return $& 
    ...... $& 
    XXXXXX $& 
    ...... $& 
    XXXXXX $& 
    ...... 
  elseif ($1 == -) return $& 
    ...... $& 
    ...... $& 
    XXXXXX $& 
    ...... $& 
    ...... 
  elseif ($1 == _) return $& 
    ...... $& 
    ...... $& 
    ...... $& 
    ...... $& 
    XXXXXX 
  elseif ($1 == ] ) return $& 
    XXXXXX $& 
    ...... $& 
    ...... $& 
    ...... $& 
    ...... 
  elseif ($1 == [) return $& 
    .XXX. $& 
    XX.XX $& 
    .XXX. $& 
    ..... $& 
    ..... 
  elseif ($1 == :) return $& 
    .. $& 
    XX $& 
    .. $& 
    XX $& 
    .. 
  elseif ($1 == !) return $& 
    XX $& 
    XX $& 
    XX $& 
    .. $& 
    XX 
  elseif ($1 == ?) return $& 
    XXX. $& 
    ..XX $& 
    .XX. $& 
    .... $& 
    .XX. 
  elseif ($1 == .) return $& 
    .. $& 
    .. $& 
    .. $& 
    .. $& 
    XX 
  elseif ($1 == /) return $& 
    ....XX $& 
    ...XX. $& 
    ..XX.. $& 
    .XX... $& 
    XX.... 
  elseif ($1 == ) return $& 
    XX.... $& 
    .XX... $& 
    ..XX.. $& 
    ...XX. $& 
    ....XX 
  elseif ($1 == $chr(40)) return $& 
    ...XX $& 
    .XX.. $& 
    XX... $& 
    .XX.. $& 
    ...XX 
  elseif ($1 == $chr(41)) return $& 
    XX... $& 
    ..XX. $& 
    ...XX $& 
    ..XX. $& 
    XX... 
  elseif ($1 == $chr(37)) return $& 
    XX..XX $& 
    ...XX. $& 
    ..XX.. $& 
    .XX... $& 
    XX..XX 
  elseif ($1 == [) return $& 
    XXXXX $& 
    XX... $& 
    XX... $& 
    XX... $& 
    XXXXX 
  elseif ($1 == ]) return $& 
    XXXXX $& 
    ...XX $& 
    ...XX $& 
    ...XX $& 
    XXXXX 
  elseif ($1 == |) return $& 
    .XX. $& 
    .XX. $& 
    .XX. $& 
    .XX. $& 
    .XX. 
  elseif ($1 == <) return $& 
    ....XX $& 
    ..XX.. $& 
    XX.... $& 
    ..XX.. $& 
    ....XX 
  elseif ($1 == >) return $& 
    XX.... $& 
    ..XX.. $& 
    ....XX $& 
    ..XX.. $& 
    XX.... 
  elseif ($1 == ) return $& 
    .... $& 
    .... $& 
    .XX. $& 
    ..XX $& 
    XXX. 
  elseif ($1 == ,) return $& 
    ... $& 
    ... $& 
    XXX $& 
    .XX $& 
    XX. 
} 



alias bigtext.unsupp { 
  var %res, %dummy = $regsub($1-, /[]a-z  0-9# $+ $chr(44) $+ '+=:!?./()%[|<>_"-]/igS, $null, %res) 
  return %res 
} 

alias bigtext.kern { 
  var %res $true 
  if ($regex($1-, /^(.|[_GDSQL-]T|[TPFVY7/"]J|T.|L[1Y"]|[LTK<[]-|-[]>%]|S1|T4|?.|.?|[467L]|[J/]|L'|//|\|J|[_]|[T_]_|>.|.<)$/i)) %res = $false 
  return %res 
} 

alias bigtext.format { 
  var %res, %i 1, %previous 0, %current, %curcolor, %colregex /^(dd?(?:,dd?)?)/ 
  while (%i <= $len($1-)) { 
    if ($mid($1-, %i, 1) == $chr(3)) { 
      if ($regex(mtcol, $mid($1-, $calc(%i + 1), $mid($1-, $calc(%i + 1), 0)), %colregex)) { 
        if ($gettok($regml(mtcol, 1), 1, 44) != %curcolor) { 
          %curcolor = $gettok($regml(mtcol, 1), 1, 44) 
          if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15) 
        } 
        inc %i $len($regml(mtcol, 1)) 
      } 
      elseif (%curcolor) { 
        %curcolor = 
        if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15) 
      } 
    } 
    else { 
      %current = $iif($mid($1-, %i, 1) == ., 0, 1) 
      if (%previous != %current) { 
        %previous = %current 
        if (%curcolor) { 
          if (%current) %res = %res $+ $chr(3) $+ %curcolor $+ , $+ %curcolor 
          else %res = %res $+ $chr(3) 
        } 
        else %res = %res $+ $chr(22) 
      } 
      %res = %res $+ $chr(160) 
    } 
    inc %i 
  } 
  return %res 
}
o