%% Copyright (c) 2014-2018, Loïc Hoguin %% %% Permission to use, copy, modify, and/or distribute this software for any %% purpose with or without fee is hereby granted, provided that the above %% copyright notice and this permission notice appear in all copies. %% %% THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES %% WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF %% MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR %% ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES %% WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN %% ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF %% OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -ifndef(COW_INLINE_HRL). -define(COW_INLINE_HRL, 1). %% LC(Character) -define(LC(C), case C of $A -> $a; $B -> $b; $C -> $c; $D -> $d; $E -> $e; $F -> $f; $G -> $g; $H -> $h; $I -> $i; $J -> $j; $K -> $k; $L -> $l; $M -> $m; $N -> $n; $O -> $o; $P -> $p; $Q -> $q; $R -> $r; $S -> $s; $T -> $t; $U -> $u; $V -> $v; $W -> $w; $X -> $x; $Y -> $y; $Z -> $z; _ -> C end). %% LOWER(Bin) %% %% Lowercase the entire binary string in a binary comprehension. -define(LOWER(Bin), <<<> || <> <= Bin>>). %% LOWERCASE(Function, Rest, Acc, ...) %% %% To be included at the end of a case block. %% Defined for up to 10 extra arguments. -define(LOWER(Function, Rest, Acc), case C of $A -> Function(Rest, <>); $B -> Function(Rest, <>); $C -> Function(Rest, <>); $D -> Function(Rest, <>); $E -> Function(Rest, <>); $F -> Function(Rest, <>); $G -> Function(Rest, <>); $H -> Function(Rest, <>); $I -> Function(Rest, <>); $J -> Function(Rest, <>); $K -> Function(Rest, <>); $L -> Function(Rest, <>); $M -> Function(Rest, <>); $N -> Function(Rest, <>); $O -> Function(Rest, <>); $P -> Function(Rest, <>); $Q -> Function(Rest, <>); $R -> Function(Rest, <>); $S -> Function(Rest, <>); $T -> Function(Rest, <>); $U -> Function(Rest, <>); $V -> Function(Rest, <>); $W -> Function(Rest, <>); $X -> Function(Rest, <>); $Y -> Function(Rest, <>); $Z -> Function(Rest, <>); C -> Function(Rest, <>) end). -define(LOWER(Function, Rest, A0, Acc), case C of $A -> Function(Rest, A0, <>); $B -> Function(Rest, A0, <>); $C -> Function(Rest, A0, <>); $D -> Function(Rest, A0, <>); $E -> Function(Rest, A0, <>); $F -> Function(Rest, A0, <>); $G -> Function(Rest, A0, <>); $H -> Function(Rest, A0, <>); $I -> Function(Rest, A0, <>); $J -> Function(Rest, A0, <>); $K -> Function(Rest, A0, <>); $L -> Function(Rest, A0, <>); $M -> Function(Rest, A0, <>); $N -> Function(Rest, A0, <>); $O -> Function(Rest, A0, <>); $P -> Function(Rest, A0, <>); $Q -> Function(Rest, A0, <>); $R -> Function(Rest, A0, <>); $S -> Function(Rest, A0, <>); $T -> Function(Rest, A0, <>); $U -> Function(Rest, A0, <>); $V -> Function(Rest, A0, <>); $W -> Function(Rest, A0, <>); $X -> Function(Rest, A0, <>); $Y -> Function(Rest, A0, <>); $Z -> Function(Rest, A0, <>); C -> Function(Rest, A0, <>) end). -define(LOWER(Function, Rest, A0, A1, Acc), case C of $A -> Function(Rest, A0, A1, <>); $B -> Function(Rest, A0, A1, <>); $C -> Function(Rest, A0, A1, <>); $D -> Function(Rest, A0, A1, <>); $E -> Function(Rest, A0, A1, <>); $F -> Function(Rest, A0, A1, <>); $G -> Function(Rest, A0, A1, <>); $H -> Function(Rest, A0, A1, <>); $I -> Function(Rest, A0, A1, <>); $J -> Function(Rest, A0, A1, <>); $K -> Function(Rest, A0, A1, <>); $L -> Function(Rest, A0, A1, <>); $M -> Function(Rest, A0, A1, <>); $N -> Function(Rest, A0, A1, <>); $O -> Function(Rest, A0, A1, <>); $P -> Function(Rest, A0, A1, <>); $Q -> Function(Rest, A0, A1, <>); $R -> Function(Rest, A0, A1, <>); $S -> Function(Rest, A0, A1, <>); $T -> Function(Rest, A0, A1, <>); $U -> Function(Rest, A0, A1, <>); $V -> Function(Rest, A0, A1, <>); $W -> Function(Rest, A0, A1, <>); $X -> Function(Rest, A0, A1, <>); $Y -> Function(Rest, A0, A1, <>); $Z -> Function(Rest, A0, A1, <>); C -> Function(Rest, A0, A1, <>) end). -define(LOWER(Function, Rest, A0, A1, A2, Acc), case C of $A -> Function(Rest, A0, A1, A2, <>); $B -> Function(Rest, A0, A1, A2, <>); $C -> Function(Rest, A0, A1, A2, <>); $D -> Function(Rest, A0, A1, A2, <>); $E -> Function(Rest, A0, A1, A2, <>); $F -> Function(Rest, A0, A1, A2, <>); $G -> Function(Rest, A0, A1, A2, <>); $H -> Function(Rest, A0, A1, A2, <>); $I -> Function(Rest, A0, A1, A2, <>); $J -> Function(Rest, A0, A1, A2, <>); $K -> Function(Rest, A0, A1, A2, <>); $L -> Function(Rest, A0, A1, A2, <>); $M -> Function(Rest, A0, A1, A2, <>); $N -> Function(Rest, A0, A1, A2, <>); $O -> Function(Rest, A0, A1, A2, <>); $P -> Function(Rest, A0, A1, A2, <>); $Q -> Function(Rest, A0, A1, A2, <>); $R -> Function(Rest, A0, A1, A2, <>); $S -> Function(Rest, A0, A1, A2, <>); $T -> Function(Rest, A0, A1, A2, <>); $U -> Function(Rest, A0, A1, A2, <>); $V -> Function(Rest, A0, A1, A2, <>); $W -> Function(Rest, A0, A1, A2, <>); $X -> Function(Rest, A0, A1, A2, <>); $Y -> Function(Rest, A0, A1, A2, <>); $Z -> Function(Rest, A0, A1, A2, <>); C -> Function(Rest, A0, A1, A2, <>) end). -define(LOWER(Function, Rest, A0, A1, A2, A3, Acc), case C of $A -> Function(Rest, A0, A1, A2, A3, <>); $B -> Function(Rest, A0, A1, A2, A3, <>); $C -> Function(Rest, A0, A1, A2, A3, <>); $D -> Function(Rest, A0, A1, A2, A3, <>); $E -> Function(Rest, A0, A1, A2, A3, <>); $F -> Function(Rest, A0, A1, A2, A3, <>); $G -> Function(Rest, A0, A1, A2, A3, <>); $H -> Function(Rest, A0, A1, A2, A3, <>); $I -> Function(Rest, A0, A1, A2, A3, <>); $J -> Function(Rest, A0, A1, A2, A3, <>); $K -> Function(Rest, A0, A1, A2, A3, <>); $L -> Function(Rest, A0, A1, A2, A3, <>); $M -> Function(Rest, A0, A1, A2, A3, <>); $N -> Function(Rest, A0, A1, A2, A3, <>); $O -> Function(Rest, A0, A1, A2, A3, <>); $P -> Function(Rest, A0, A1, A2, A3, <>); $Q -> Function(Rest, A0, A1, A2, A3, <>); $R -> Function(Rest, A0, A1, A2, A3, <>); $S -> Function(Rest, A0, A1, A2, A3, <>); $T -> Function(Rest, A0, A1, A2, A3, <>); $U -> Function(Rest, A0, A1, A2, A3, <>); $V -> Function(Rest, A0, A1, A2, A3, <>); $W -> Function(Rest, A0, A1, A2, A3, <>); $X -> Function(Rest, A0, A1, A2, A3, <>); $Y -> Function(Rest, A0, A1, A2, A3, <>); $Z -> Function(Rest, A0, A1, A2, A3, <>); C -> Function(Rest, A0, A1, A2, A3, <>) end). -define(LOWER(Function, Rest, A0, A1, A2, A3, A4, Acc), case C of $A -> Function(Rest, A0, A1, A2, A3, A4, <>); $B -> Function(Rest, A0, A1, A2, A3, A4, <>); $C -> Function(Rest, A0, A1, A2, A3, A4, <>); $D -> Function(Rest, A0, A1, A2, A3, A4, <>); $E -> Function(Rest, A0, A1, A2, A3, A4, <>); $F -> Function(Rest, A0, A1, A2, A3, A4, <>); $G -> Function(Rest, A0, A1, A2, A3, A4, <>); $H -> Function(Rest, A0, A1, A2, A3, A4, <>); $I -> Function(Rest, A0, A1, A2, A3, A4, <>); $J -> Function(Rest, A0, A1, A2, A3, A4, <>); $K -> Function(Rest, A0, A1, A2, A3, A4, <>); $L -> Function(Rest, A0, A1, A2, A3, A4, <>); $M -> Function(Rest, A0, A1, A2, A3, A4, <>); $N -> Function(Rest, A0, A1, A2, A3, A4, <>); $O -> Function(Rest, A0, A1, A2, A3, A4, <>); $P -> Function(Rest, A0, A1, A2, A3, A4, <>); $Q -> Function(Rest, A0, A1, A2, A3, A4, <>); $R -> Function(Rest, A0, A1, A2, A3, A4, <>); $S -> Function(Rest, A0, A1, A2, A3, A4, <>); $T -> Function(Rest, A0, A1, A2, A3, A4, <>); $U -> Function(Rest, A0, A1, A2, A3, A4, <>); $V -> Function(Rest, A0, A1, A2, A3, A4, <>); $W -> Function(Rest, A0, A1, A2, A3, A4, <>); $X -> Function(Rest, A0, A1, A2, A3, A4, <>); $Y -> Function(Rest, A0, A1, A2, A3, A4, <>); $Z -> Function(Rest, A0, A1, A2, A3, A4, <>); C -> Function(Rest, A0, A1, A2, A3, A4, <>) end). -define(LOWER(Function, Rest, A0, A1, A2, A3, A4, A5, Acc), case C of $A -> Function(Rest, A0, A1, A2, A3, A4, A5, <>); $B -> Function(Rest, A0, A1, A2, A3, A4, A5, <>); $C -> Function(Rest, A0, A1, A2, A3, A4, A5, <>); $D -> Function(Rest, A0, A1, A2, A3, A4, A5, <>); $E -> Function(Rest, A0, A1, A2, A3, A4, A5, <>); $F -> Function(Rest, A0, A1, A2, A3, A4, A5, <>); $G -> Function(Rest, A0, A1, A2, A3, A4, A5, <>); $H -> Function(Rest, A0, A1, A2, A3, A4, A5, <>); $I -> Function(Rest, A0, A1, A2, A3, A4, A5, <>); $J -> Function(Rest, A0, A1, A2, A3, A4, A5, <>); $K -> Function(Rest, A0, A1, A2, A3, A4, A5, <>); $L -> Function(Rest, A0, A1, A2, A3, A4, A5, <>); $M -> Function(Rest, A0, A1, A2, A3, A4, A5, <>); $N -> Function(Rest, A0, A1, A2, A3, A4, A5, <>); $O -> Function(Rest, A0, A1, A2, A3, A4, A5, <>); $P -> Function(Rest, A0, A1, A2, A3, A4, A5, <>); $Q -> Function(Rest, A0, A1, A2, A3, A4, A5, <>); $R -> Function(Rest, A0, A1, A2, A3, A4, A5, <>); $S -> Function(Rest, A0, A1, A2, A3, A4, A5, <>); $T -> Function(Rest, A0, A1, A2, A3, A4, A5, <>); $U -> Function(Rest, A0, A1, A2, A3, A4, A5, <>); $V -> Function(Rest, A0, A1, A2, A3, A4, A5, <>); $W -> Function(Rest, A0, A1, A2, A3, A4, A5, <>); $X -> Function(Rest, A0, A1, A2, A3, A4, A5, <>); $Y -> Function(Rest, A0, A1, A2, A3, A4, A5, <>); $Z -> Function(Rest, A0, A1, A2, A3, A4, A5, <>); C -> Function(Rest, A0, A1, A2, A3, A4, A5, <>) end). -define(LOWER(Function, Rest, A0, A1, A2, A3, A4, A5, A6, Acc), case C of $A -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, <>); $B -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, <>); $C -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, <>); $D -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, <>); $E -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, <>); $F -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, <>); $G -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, <>); $H -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, <>); $I -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, <>); $J -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, <>); $K -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, <>); $L -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, <>); $M -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, <>); $N -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, <>); $O -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, <>); $P -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, <>); $Q -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, <>); $R -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, <>); $S -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, <>); $T -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, <>); $U -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, <>); $V -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, <>); $W -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, <>); $X -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, <>); $Y -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, <>); $Z -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, <>); C -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, <>) end). -define(LOWER(Function, Rest, A0, A1, A2, A3, A4, A5, A6, A7, Acc), case C of $A -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, <>); $B -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, <>); $C -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, <>); $D -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, <>); $E -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, <>); $F -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, <>); $G -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, <>); $H -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, <>); $I -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, <>); $J -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, <>); $K -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, <>); $L -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, <>); $M -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, <>); $N -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, <>); $O -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, <>); $P -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, <>); $Q -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, <>); $R -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, <>); $S -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, <>); $T -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, <>); $U -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, <>); $V -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, <>); $W -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, <>); $X -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, <>); $Y -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, <>); $Z -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, <>); C -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, <>) end). -define(LOWER(Function, Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, Acc), case C of $A -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, <>); $B -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, <>); $C -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, <>); $D -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, <>); $E -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, <>); $F -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, <>); $G -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, <>); $H -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, <>); $I -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, <>); $J -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, <>); $K -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, <>); $L -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, <>); $M -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, <>); $N -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, <>); $O -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, <>); $P -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, <>); $Q -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, <>); $R -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, <>); $S -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, <>); $T -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, <>); $U -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, <>); $V -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, <>); $W -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, <>); $X -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, <>); $Y -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, <>); $Z -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, <>); C -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, <>) end). -define(LOWER(Function, Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, Acc), case C of $A -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, <>); $B -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, <>); $C -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, <>); $D -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, <>); $E -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, <>); $F -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, <>); $G -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, <>); $H -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, <>); $I -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, <>); $J -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, <>); $K -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, <>); $L -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, <>); $M -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, <>); $N -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, <>); $O -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, <>); $P -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, <>); $Q -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, <>); $R -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, <>); $S -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, <>); $T -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, <>); $U -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, <>); $V -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, <>); $W -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, <>); $X -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, <>); $Y -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, <>); $Z -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, <>); C -> Function(Rest, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, <>) end). %% HEX(C) -define(HEX(C), (?HEXHL(C bsr 4)), (?HEXHL(C band 16#0f))). -define(HEXHL(HL), case HL of 0 -> $0; 1 -> $1; 2 -> $2; 3 -> $3; 4 -> $4; 5 -> $5; 6 -> $6; 7 -> $7; 8 -> $8; 9 -> $9; 10 -> $A; 11 -> $B; 12 -> $C; 13 -> $D; 14 -> $E; 15 -> $F end ). %% UNHEX(H, L) -define(UNHEX(H, L), (?UNHEX(H) bsl 4 bor ?UNHEX(L))). -define(UNHEX(C), case C of $0 -> 0; $1 -> 1; $2 -> 2; $3 -> 3; $4 -> 4; $5 -> 5; $6 -> 6; $7 -> 7; $8 -> 8; $9 -> 9; $A -> 10; $B -> 11; $C -> 12; $D -> 13; $E -> 14; $F -> 15; $a -> 10; $b -> 11; $c -> 12; $d -> 13; $e -> 14; $f -> 15 end ). -endif.