I am working on making an error header file and this is what I have:

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <sstream>
#include <string>
#define VANARGS(n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15,n16,n17,n18,n19,n20,n21,n22,n23,n24,n25,n26,n27,n28,n29,n30,n31,n32,n33,n34,n35,n36,n37,n38,n39,n40,n41,n42,n43,n44,n45,n46,n47,n48,n49,n50,n51,n52,n53,n54,n55,n56,n57,n58,n59,n60,n61,n62,n63,N,...) N
#define __VA_NARGS__(...) (VANARGS(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0))
#define ERROR(...) (\
(__VA_NARGS__(__VA_ARGS__)==0)?"NONE":(\
(__VA_NARGS__(__VA_ARGS__)==1)?(_1(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==2)?(_2(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==3)?(_3(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==4)?(_4(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==5)?(_5(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==6)?(_6(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==7)?(_7(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==8)?(_8(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==9)?(_9(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==10)?(_10(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==11)?(_11(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==12)?(_12(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==13)?(_13(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==14)?(_14(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==15)?(_15(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==16)?(_16(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==17)?(_17(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==18)?(_18(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==19)?(_19(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==20)?(_20(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==21)?(_21(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==22)?(_22(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==23)?(_23(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==24)?(_24(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==25)?(_25(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==26)?(_26(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==27)?(_27(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==28)?(_28(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==29)?(_29(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==30)?(_30(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==31)?(_31(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==32)?(_32(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==33)?(_33(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==34)?(_34(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==35)?(_35(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==36)?(_36(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==37)?(_37(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==38)?(_38(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==39)?(_39(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==40)?(_40(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==41)?(_41(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==42)?(_42(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==43)?(_43(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==44)?(_44(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==45)?(_45(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==46)?(_46(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==47)?(_47(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==48)?(_48(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==49)?(_49(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==50)?(_50(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==51)?(_51(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==52)?(_52(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==53)?(_53(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==54)?(_54(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==55)?(_55(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==56)?(_56(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==57)?(_57(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==58)?(_58(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==59)?(_59(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==60)?(_60(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==61)?(_61(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(__VA_NARGS__(__VA_ARGS__)==62)?(_62(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)):(\
(_63(__VA_ARGS__,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
#define _1(A,...) _1_(A)
#define _2(A,B,...) _2_(A,B)
#define _3(A,B,C,...) _3_(A,B,C)
#define _4(A,B,C,D,...) _4_(A,B,C,D)
#define _5(A,B,C,D,E,...) _5_(A,B,C,D,E)
#define _6(A,B,C,D,E,F,...) _6_(A,B,C,D,E,F)
#define _7(A,B,C,D,E,F,G,...) _7_(A,B,C,D,E,F,G)
#define _8(A,B,C,D,E,F,G,H,...) _8_(A,B,C,D,E,F,G,H)
#define _9(A,B,C,D,E,F,G,H,I,...) _9_(A,B,C,D,E,F,G,H,I)
#define _10(A,B,C,D,E,F,G,H,I,J,...) _10_(A,B,C,D,E,F,G,H,I,J)
#define _11(A,B,C,D,E,F,G,H,I,J,K,...) _11_(A,B,C,D,E,F,G,H,I,J,K)
#define _12(A,B,C,D,E,F,G,H,I,J,K,L,...) _12_(A,B,C,D,E,F,G,H,I,J,K,L)
#define _13(A,B,C,D,E,F,G,H,I,J,K,L,M,...) _13_(A,B,C,D,E,F,G,H,I,J,K,L,M)
#define _14(A,B,C,D,E,F,G,H,I,J,K,L,M,N,...) _14_(A,B,C,D,E,F,G,H,I,J,K,L,M,N)
#define _15(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,...) _15_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O)
#define _16(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,...) _16_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P)
#define _17(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,...) _17_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q)
#define _18(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,...) _18_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R)
#define _19(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,...) _19_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S)
#define _20(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,...) _20_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T)
#define _21(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,...) _21_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U)
#define _22(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,...) _22_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V)
#define _23(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,...) _23_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W)
#define _24(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,...) _24_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X)
#define _25(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,...) _25_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y)
#define _26(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,...) _26_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z)
#define _27(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,...) _27_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA)
#define _28(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,...) _28_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB)
#define _29(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,...) _29_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC)
#define _30(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,...) _30_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD)
#define _31(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,...) _31_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE)
#define _32(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,...) _32_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF)
#define _33(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,...) _33_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG)
#define _34(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,...) _34_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH)
#define _35(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,...) _35_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI)
#define _36(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,...) _36_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ)
#define _37(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,...) _37_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK)
#define _38(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,...) _38_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL)
#define _39(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,...) _39_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM)
#define _40(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,...) _40_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN)
#define _41(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,...) _41_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO)
#define _42(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,...) _42_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP)
#define _43(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,...) _43_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ)
#define _44(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,...) _44_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR)
#define _45(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,...) _45_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS)
#define _46(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,...) _46_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT)
#define _47(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,...) _47_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU)
#define _48(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,...) _48_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV)
#define _49(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,...) _49_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW)
#define _50(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,...) _50_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX)
#define _51(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,...) _51_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY)
#define _52(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,...) _52_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ)
#define _53(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,...) _53_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA)
#define _54(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,...) _54_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB)
#define _55(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,...) _55_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC)
#define _56(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,...) _56_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD)
#define _57(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,...) _57_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE)
#define _58(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,...) _58_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF)
#define _59(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,...) _59_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG)
#define _60(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,...) _60_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH)
#define _61(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,...) _61_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI)
#define _62(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,...) _62_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ)
#define _63(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK,...) _63_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK)
#define _1_(A) FERROR(STRN_(A))
#define _2_(A,B) FERROR(STRN_(A),STRN_(B))
#define _3_(A,B,C) FERROR(STRN_(A),STRN_(B),STRN_(C))
#define _4_(A,B,C,D) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D))
#define _5_(A,B,C,D,E) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E))
#define _6_(A,B,C,D,E,F) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F))
#define _7_(A,B,C,D,E,F,G) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G))
#define _8_(A,B,C,D,E,F,G,H) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H))
#define _9_(A,B,C,D,E,F,G,H,I) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I))
#define _10_(A,B,C,D,E,F,G,H,I,J) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J))
#define _11_(A,B,C,D,E,F,G,H,I,J,K) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K))
#define _12_(A,B,C,D,E,F,G,H,I,J,K,L) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L))
#define _13_(A,B,C,D,E,F,G,H,I,J,K,L,M) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M))
#define _14_(A,B,C,D,E,F,G,H,I,J,K,L,M,N) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N))
#define _15_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O))
#define _16_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P))
#define _17_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q))
#define _18_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R))
#define _19_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S))
#define _20_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T))
#define _21_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U))
#define _22_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V))
#define _23_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W))
#define _24_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X))
#define _25_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y))
#define _26_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z))
#define _27_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA))
#define _28_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB))
#define _29_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC))
#define _30_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD))
#define _31_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE))
#define _32_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF))
#define _33_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG))
#define _34_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH))
#define _35_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI))
#define _36_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ))
#define _37_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK))
#define _38_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL))
#define _39_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM))
#define _40_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN))
#define _41_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO))
#define _42_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP))
#define _43_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ))
#define _44_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR))
#define _45_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS))
#define _46_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT))
#define _47_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU))
#define _48_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU),STRN_(AV))
#define _49_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU),STRN_(AV),STRN_(AW))
#define _50_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU),STRN_(AV),STRN_(AW),STRN_(AX))
#define _51_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU),STRN_(AV),STRN_(AW),STRN_(AX),STRN_(AY))
#define _52_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU),STRN_(AV),STRN_(AW),STRN_(AX),STRN_(AY),STRN_(AZ))
#define _53_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU),STRN_(AV),STRN_(AW),STRN_(AX),STRN_(AY),STRN_(AZ),STRN_(BA))
#define _54_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU),STRN_(AV),STRN_(AW),STRN_(AX),STRN_(AY),STRN_(AZ),STRN_(BA),STRN_(BB))
#define _55_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU),STRN_(AV),STRN_(AW),STRN_(AX),STRN_(AY),STRN_(AZ),STRN_(BA),STRN_(BB),STRN_(BC))
#define _56_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU),STRN_(AV),STRN_(AW),STRN_(AX),STRN_(AY),STRN_(AZ),STRN_(BA),STRN_(BB),STRN_(BC),STRN_(BD))
#define _57_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU),STRN_(AV),STRN_(AW),STRN_(AX),STRN_(AY),STRN_(AZ),STRN_(BA),STRN_(BB),STRN_(BC),STRN_(BD),STRN_(BE))
#define _58_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU),STRN_(AV),STRN_(AW),STRN_(AX),STRN_(AY),STRN_(AZ),STRN_(BA),STRN_(BB),STRN_(BC),STRN_(BD),STRN_(BE),STRN_(BF))
#define _59_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU),STRN_(AV),STRN_(AW),STRN_(AX),STRN_(AY),STRN_(AZ),STRN_(BA),STRN_(BB),STRN_(BC),STRN_(BD),STRN_(BE),STRN_(BF),STRN_(BG))
#define _60_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU),STRN_(AV),STRN_(AW),STRN_(AX),STRN_(AY),STRN_(AZ),STRN_(BA),STRN_(BB),STRN_(BC),STRN_(BD),STRN_(BE),STRN_(BF),STRN_(BG),STRN_(BH))
#define _61_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU),STRN_(AV),STRN_(AW),STRN_(AX),STRN_(AY),STRN_(AZ),STRN_(BA),STRN_(BB),STRN_(BC),STRN_(BD),STRN_(BE),STRN_(BF),STRN_(BG),STRN_(BH),STRN_(BI))
#define _62_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU),STRN_(AV),STRN_(AW),STRN_(AX),STRN_(AY),STRN_(AZ),STRN_(BA),STRN_(BB),STRN_(BC),STRN_(BD),STRN_(BE),STRN_(BF),STRN_(BG),STRN_(BH),STRN_(BI),STRN_(BJ))
#define _63_(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK) FERROR(STRN_(A),STRN_(B),STRN_(C),STRN_(D),STRN_(E),STRN_(F),STRN_(G),STRN_(H),STRN_(I),STRN_(J),STRN_(K),STRN_(L),STRN_(M),STRN_(N),STRN_(O),STRN_(P),STRN_(Q),STRN_(R),STRN_(S),STRN_(T),STRN_(U),STRN_(V),STRN_(W),STRN_(X),STRN_(Y),STRN_(Z),STRN_(AA),STRN_(AB),STRN_(AC),STRN_(AD),STRN_(AE),STRN_(AF),STRN_(AG),STRN_(AH),STRN_(AI),STRN_(AJ),STRN_(AK),STRN_(AL),STRN_(AM),STRN_(AN),STRN_(AO),STRN_(AP),STRN_(AQ),STRN_(AR),STRN_(AS),STRN_(AT),STRN_(AU),STRN_(AV),STRN_(AW),STRN_(AX),STRN_(AY),STRN_(AZ),STRN_(BA),STRN_(BB),STRN_(BC),STRN_(BD),STRN_(BE),STRN_(BF),STRN_(BG),STRN_(BH),STRN_(BI),STRN_(BJ),STRN_(BK))
template <typename T>
char *STRN_(T in)
{
    std::stringstream ret;
    ret<<in;
    const char *r=ret.str().c_str();
    char *returnvalue=new char[ret.str().length()];
    for (int i=0; i<ret.str().length(); i++)
    {
        returnvalue[i]=r[i];
    }
    delete [] r;
    return returnvalue;
}
static FILE *fERROR=fopen("ERROR.txt", "w");
static FILE *fEXIT=fopen("EXIT.txt", "w");
char *space=" ";
void FERROR(char *A=space,char *B=space,char *C=space,char *D=space,char *E=space,char *F=space,char *G=space,char *H=space,char *I=space,char *J=space,char *K=space,char *L=space,char *M=space,char *N=space,char *O=space,char *P=space,char *Q=space,char *R=space,char *S=space,char *T=space,char *U=space,char *V=space,char *W=space,char *X=space,char *Y=space,char *Z=space,char *AA=space,char *AB=space,char *AC=space,char *AD=space,char *AE=space,char *AF=space,char *AG=space,char *AH=space,char *AI=space,char *AJ=space,char *AK=space,char *AL=space,char *AM=space,char *AN=space,char *AO=space,char *AP=space,char *AQ=space,char *AR=space,char *AS=space,char *AT=space,char *AU=space,char *AV=space,char *AW=space,char *AX=space,char *AY=space,char *AZ=space,char *BA=space,char *BB=space,char *BC=space,char *BD=space,char *BE=space,char *BF=space,char *BG=space,char *BH=space,char *BI=space,char *BJ=space,char *BK=space)
{
    fprintf(fERROR,"ERROR:\n\tAT LINE: %s\n\tIN FILE: %s\n\tMESSAGE: %s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s", STRN_(__LINE__), STRN_(__FILE__), A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK);
    fclose(fERROR);
    fclose(fEXIT);
    exit(-1);
}

The problem is that when I call ERROR(somestuff), I get an error: FERROR(<THE INSANELY LONG FUNCTION DEFINITION>) but the definition of FERROR is so long that it overruns the error report width and I cannot see what the problem is. Can anybody see what the problem is?

Recommended Answers

Line 210 causes a crash, you should never delete a pointer that you didn't allocate yourself. Especially in this case. The pointer returned by str().c_str() is not a pointer that you can delete (the string object will take care of that).

This must be the craziest code I have …

Jump to Post

Code.Blocks uses the GCC compiler (with MinGW). GCC supports variadic templates from version 4.4 up to the current version (4.6.0, experimental). To enable them, you have to compile your code with the compiler flag "-std=gnu++0x", this enables the support in GCC for the draft-version of the upcoming C++ standard, called …

Jump to Post

All 6 Replies

Line 210 causes a crash, you should never delete a pointer that you didn't allocate yourself. Especially in this case. The pointer returned by str().c_str() is not a pointer that you can delete (the string object will take care of that).

This must be the craziest code I have ever seen. You have some real patience, writing all that repetitive stuff out.

I hate to say this, but your MACROs have reserved words for name. All identifiers, including MACROs, can start with (almost) any character except the underscore character, these are reserved by the C++ standard for implementation-specific needs (meaning that you should not be using any names starting with _ character, that's illegal). Furthermore, the names _1, _2, _3 ... are used by Boost.Bind/Lambda libraries and will soon also be reserved keywords in the upcoming C++0x standard, so you definitely cannot use those.

If I were you, I would save myself all this trouble of writing this ERROR function and just use the variadic template feature of the upcoming standard (you can set the compiler to use its draft-version compatibility (gcc: "-std=c++0x" or "-std=gnu++0x") for now until the standard is officially released). Using variadic templates, you can achieve the same result as your code with the following:

#include <iostream>
#include <fstream>

namespace detail {

template <typename T, typename... Args>
void FERROR(std::ostream& out, T value, Args... args) {
  out << value;
  FERROR(out,args...);
};

};

template <typename... Args>
void FERROR(const char* sourcefile, int sourceline, Args... args) {
  std::ofstream fERROR("ERROR.txt");
  fERROR << "ERROR:\n\tAT LINE: " << sourceline << "\n\tIN FILE: " << sourcefile << "\n\tMESSAGE: ";
  detail::FERROR(fERROR, args...);
  exit(-1);
};

int main() {
  //oops, an error occurred:
  FERROR(__FILE__,__LINE__,"Hello World! ",42,"foo",5.04);
};

BTW, in the code you have, the __FILE__ and __LINE__ should appear in a MACRO or at the line where the error is called, not inside the function. As you have it, your code will report all errors to be in the FERROR function, not in the original place where the error was reported.

Personally, I just use the following for this kind of error reporting:

#define ERROR(X) std::cout << RELATIVE_PATH(__FILE__) << ":" << __LINE__ << " Error: " << X << std::endl

//then use it as such:
int main() {
  //oops, an error occurred:
  ERROR("Hello World! " << 42 << "foo" << 5.04);
};

Thanks, the ellipses in template would be perfect, but I don't understand what I need to do to implement it. I am using Code::Blocks v8.[something] how do I let it use the variadic templates.

P.S.: The repetitive code is a result of a chemistry class with no teacher, but we still had to sit at our desks and 'work' on our laptops :P

Code.Blocks uses the GCC compiler (with MinGW). GCC supports variadic templates from version 4.4 up to the current version (4.6.0, experimental). To enable them, you have to compile your code with the compiler flag "-std=gnu++0x", this enables the support in GCC for the draft-version of the upcoming C++ standard, called C++0x. You can verify the version of your compiler either through some menu in Code.Blocks or by finding the installation directory of MinGW and executing "gcc --version". If it is greater than or equal to 4.4, which it should if you have the latest Code.Blocks version (which comes with 4.4), then you go to "build options.." and add to the compiler flags: "-std=gnu++0x" (without the quotes). By trying to compile the code I posted, you can verify that it works.

Ok, thank you, it is working preliminarily now (i decided not to use C++0x just yet, especially since I did not want to delete all those lines of code). The only thing missing is the RELATIVE_PATH macro that you used. I assumed that it was a predefined macro, but it isn't. What do I have to define RELATIVE_PATH as?

Oh, RELATIVE_PATH is actually not really a MACRO, nor is it predefined. There are usually compiler options to make __FILE__ give just the filename or fullpath (I think that MSVC uses "/FC" and "/ZI" for that, there is probably something similar in GCC). The ERROR macro that I posted was taken from my own code and in my code, all the source files are under a single top-level folder, so I use this RELATIVE_PATH function to parse the __FILE__ string to look for that top-level folder name and output everything after that folder from the full-path. Here is the code for it (my top-level folder is called "ReaK"):

/**
 * This function will convert an absolute path that goes through a folder named "ReaK" and
 * return a the path relative to that ReaK trunk folder.
 *
 * \param S Some string containing a full file/folder path.
 * \return string containing the file/folder path relative to the ReaK trunk folder.
 */
inline std::string RK_RELATIVE_PATH(const std::string& S) {
  for(unsigned int i=0;i + 5 < S.size();++i)
    if(S.substr(i,4) == "ReaK")
      return S.substr(i+4);
  return S;
};

Thank you for the help! :)

Be a part of the DaniWeb community

We're a friendly, industry-focused community of 1.20 million developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.